From c6b60e560726094dd6d8c6872225b85c5b1cb268 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Tue, 26 Nov 2024 10:49:58 +0000 Subject: [PATCH 01/18] Use C++20 everywhere --- CMakeLists.txt | 5 +++++ crypto3/benchmarks/CMakeLists.txt | 2 +- crypto3/libs/algebra/example/CMakeLists.txt | 2 +- crypto3/libs/blueprint/example/CMakeLists.txt | 2 +- crypto3/libs/blueprint/test/CMakeLists.txt | 3 ++- crypto3/libs/containers/example/CMakeLists.txt | 2 +- crypto3/libs/containers/test/CMakeLists.txt | 3 ++- crypto3/libs/hash/test/CMakeLists.txt | 3 ++- crypto3/libs/marshalling/algebra/test/CMakeLists.txt | 2 +- crypto3/libs/marshalling/core/CMakeLists.txt | 2 +- crypto3/libs/marshalling/core/test/CMakeLists.txt | 2 +- crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt | 2 +- crypto3/libs/marshalling/zk/test/CMakeLists.txt | 3 ++- crypto3/libs/math/test/CMakeLists.txt | 2 +- crypto3/libs/random/example/CMakeLists.txt | 2 +- crypto3/libs/random/test/CMakeLists.txt | 3 ++- crypto3/libs/transpiler/test/CMakeLists.txt | 3 ++- crypto3/libs/zk/test/CMakeLists.txt | 3 ++- debug-tools/bin/circgen/CMakeLists.txt | 2 +- debug-tools/bin/excalibur/src/CMakeLists.txt | 2 +- evm-assigner/cmake/cable/toolchains/cxx17-32bit.cmake | 2 +- evm-assigner/cmake/cable/toolchains/cxx17-pic.cmake | 2 +- evm-assigner/cmake/cable/toolchains/cxx17.cmake | 2 +- parallel-crypto3/benchmarks/CMakeLists.txt | 3 ++- .../libs/parallel-containers/example/CMakeLists.txt | 2 +- .../libs/parallel-containers/test/CMakeLists.txt | 3 ++- parallel-crypto3/libs/parallel-math/test/CMakeLists.txt | 2 +- parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt | 3 ++- .../libs/parallelization-utils/test/CMakeLists.txt | 2 +- proof-producer/libs/assigner/CMakeLists.txt | 1 + 30 files changed, 44 insertions(+), 28 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index ca9439b532..3610c59698 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -24,6 +24,11 @@ endif() # Add dummy target for the more efficient reusing of precompiled headers file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp) add_library(crypto3_precompiled_headers STATIC ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy.cpp) +set_target_properties(crypto3_precompiled_headers PROPERTIES + LINKER_LANGUAGE CXX + CXX_STANDARD 20 + CXX_STANDARD_REQUIRED TRUE +) file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy-23.cpp) add_library(crypto3_precompiled_headers_23 STATIC ${CMAKE_CURRENT_BINARY_DIR}/generated-dummy-23.cpp) diff --git a/crypto3/benchmarks/CMakeLists.txt b/crypto3/benchmarks/CMakeLists.txt index 12b27d6a0c..476fde2323 100644 --- a/crypto3/benchmarks/CMakeLists.txt +++ b/crypto3/benchmarks/CMakeLists.txt @@ -40,7 +40,7 @@ macro(define_benchmark benchmark) set_target_properties(${full_name} PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/algebra/example/CMakeLists.txt b/crypto3/libs/algebra/example/CMakeLists.txt index e80e023306..c9c0d345c2 100644 --- a/crypto3/libs/algebra/example/CMakeLists.txt +++ b/crypto3/libs/algebra/example/CMakeLists.txt @@ -15,7 +15,7 @@ macro(define_algebra_example name) Boost::random ) - set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 17) + set_target_properties(algebra_${name}_example PROPERTIES CXX_STANDARD 20) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/blueprint/example/CMakeLists.txt b/crypto3/libs/blueprint/example/CMakeLists.txt index 70c7611d82..a50be63a96 100644 --- a/crypto3/libs/blueprint/example/CMakeLists.txt +++ b/crypto3/libs/blueprint/example/CMakeLists.txt @@ -22,7 +22,7 @@ macro(define_blueprint_example name) ${CMAKE_WORKSPACE_NAME}::zk ${Boost_LIBRARIES}) - set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 17 CXX_STANDARD_REQUIRED TRUE) + set_target_properties(${full_example_name} PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) endmacro() diff --git a/crypto3/libs/blueprint/test/CMakeLists.txt b/crypto3/libs/blueprint/test/CMakeLists.txt index 3dad8ae8e8..fb42cdb663 100644 --- a/crypto3/libs/blueprint/test/CMakeLists.txt +++ b/crypto3/libs/blueprint/test/CMakeLists.txt @@ -44,6 +44,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} crypto3::random crypto3::hash ) +set_target_properties(_cm_internal_tests-crypto3-blueprint-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-blueprint-test REUSE_FROM crypto3_precompiled_headers) macro(define_blueprint_test test) @@ -59,7 +60,7 @@ macro(define_blueprint_test test) target_include_directories(${full_test_name} PRIVATE ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) target_compile_definitions(${full_test_name} PRIVATE TEST_DATA_DIR="${CMAKE_CURRENT_SOURCE_DIR}/zkevm/data/") diff --git a/crypto3/libs/containers/example/CMakeLists.txt b/crypto3/libs/containers/example/CMakeLists.txt index 57efe55cb4..3c9a21834e 100644 --- a/crypto3/libs/containers/example/CMakeLists.txt +++ b/crypto3/libs/containers/example/CMakeLists.txt @@ -37,7 +37,7 @@ macro(define_containers_example example) ${CMAKE_WORKSPACE_NAME}::algebra ${CMAKE_WORKSPACE_NAME}::hash Boost::container) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/containers/test/CMakeLists.txt b/crypto3/libs/containers/test/CMakeLists.txt index 03eac4b407..ec5296ad0f 100644 --- a/crypto3/libs/containers/test/CMakeLists.txt +++ b/crypto3/libs/containers/test/CMakeLists.txt @@ -33,6 +33,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::random ) +set_target_properties(_cm_internal_tests-crypto3-containers-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-containers-test REUSE_FROM crypto3_precompiled_headers) macro(define_storage_test test) @@ -56,7 +57,7 @@ macro(define_storage_test test) Boost::random ) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647" "-ftemplate-backtrace-limit=0") diff --git a/crypto3/libs/hash/test/CMakeLists.txt b/crypto3/libs/hash/test/CMakeLists.txt index 7aa4eb8eec..64e3c20bba 100644 --- a/crypto3/libs/hash/test/CMakeLists.txt +++ b/crypto3/libs/hash/test/CMakeLists.txt @@ -12,6 +12,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${${CURRENT_PROJECT_NAME}_INTERFACE_LIBRARIES} Boost::unit_test_framework) +set_target_properties(_cm_internal_tests-crypto3-hash-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-hash-test REUSE_FROM crypto3_precompiled_headers) macro(define_hash_test name) @@ -26,7 +27,7 @@ macro(define_hash_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(${test_name} PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/algebra/test/CMakeLists.txt b/crypto3/libs/marshalling/algebra/test/CMakeLists.txt index 5752de2dc4..a23fdbc245 100644 --- a/crypto3/libs/marshalling/algebra/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/algebra/test/CMakeLists.txt @@ -32,7 +32,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(${test_name} PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/core/CMakeLists.txt b/crypto3/libs/marshalling/core/CMakeLists.txt index 16f38450dc..bff49113d0 100644 --- a/crypto3/libs/marshalling/core/CMakeLists.txt +++ b/crypto3/libs/marshalling/core/CMakeLists.txt @@ -20,7 +20,7 @@ if(CRYPTO3_MARSHALLING_THROWS) endif() if(NOT CMAKE_CXX_STANDARD) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) endif() cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}) diff --git a/crypto3/libs/marshalling/core/test/CMakeLists.txt b/crypto3/libs/marshalling/core/test/CMakeLists.txt index 4cb22d618e..1bbed47ce9 100644 --- a/crypto3/libs/marshalling/core/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/core/test/CMakeLists.txt @@ -28,7 +28,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_core_${name}_test PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) endmacro() diff --git a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt index eee7cc4ce6..07dffa77af 100644 --- a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt @@ -39,7 +39,7 @@ macro(define_marshalling_test name) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_${name}_test PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/marshalling/zk/test/CMakeLists.txt b/crypto3/libs/marshalling/zk/test/CMakeLists.txt index c92433ccc2..f54dca72bc 100644 --- a/crypto3/libs/marshalling/zk/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/zk/test/CMakeLists.txt @@ -22,6 +22,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${CMAKE_WORKSPACE_NAME}::marshalling-algebra ${CMAKE_WORKSPACE_NAME}::marshalling-core) +set_target_properties(_cm_internal_tests-crypto3-marshalling-zk-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-marshalling-zk-test REUSE_FROM crypto3_precompiled_headers) macro(define_marshalling_test test) @@ -39,7 +40,7 @@ macro(define_marshalling_test test) ${Boost_INCLUDE_DIRS}) set_target_properties(marshalling_zk_${name}_test PROPERTIES - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") diff --git a/crypto3/libs/math/test/CMakeLists.txt b/crypto3/libs/math/test/CMakeLists.txt index 4fb55a179e..b7e57806d2 100644 --- a/crypto3/libs/math/test/CMakeLists.txt +++ b/crypto3/libs/math/test/CMakeLists.txt @@ -24,7 +24,7 @@ macro(define_math_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) endmacro() diff --git a/crypto3/libs/random/example/CMakeLists.txt b/crypto3/libs/random/example/CMakeLists.txt index 1780bcd219..3abc5572c9 100644 --- a/crypto3/libs/random/example/CMakeLists.txt +++ b/crypto3/libs/random/example/CMakeLists.txt @@ -22,7 +22,7 @@ macro(define_random_example name) ${CMAKE_WORKSPACE_NAME}::multiprecision Boost::container) - set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 17) + set_target_properties(random_${name}_example PROPERTIES CXX_STANDARD 20) endmacro() set(EXAMPLES_NAMES diff --git a/crypto3/libs/random/test/CMakeLists.txt b/crypto3/libs/random/test/CMakeLists.txt index fe72198edc..484d40f82a 100644 --- a/crypto3/libs/random/test/CMakeLists.txt +++ b/crypto3/libs/random/test/CMakeLists.txt @@ -12,6 +12,7 @@ include(CMTest) cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} ${CMAKE_WORKSPACE_NAME}::multiprecision Boost::unit_test_framework) +set_target_properties(_cm_internal_tests-crypto3-random-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-random-test REUSE_FROM crypto3_precompiled_headers) macro(define_random_test test) @@ -26,7 +27,7 @@ macro(define_random_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/crypto3/libs/transpiler/test/CMakeLists.txt b/crypto3/libs/transpiler/test/CMakeLists.txt index eb4b8867e8..a8b3197e65 100644 --- a/crypto3/libs/transpiler/test/CMakeLists.txt +++ b/crypto3/libs/transpiler/test/CMakeLists.txt @@ -17,6 +17,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} crypto3::random crypto3::zk ${Boost_LIBRARIES}) +set_target_properties(_cm_internal_tests-crypto3-transpiler-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-transpiler-test REUSE_FROM crypto3_precompiled_headers) add_custom_target(compile_and_run_transpiler_tests) @@ -35,7 +36,7 @@ macro(define_transpiler_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/crypto3/libs/zk/test/CMakeLists.txt b/crypto3/libs/zk/test/CMakeLists.txt index 21902e0098..4443ef17aa 100644 --- a/crypto3/libs/zk/test/CMakeLists.txt +++ b/crypto3/libs/zk/test/CMakeLists.txt @@ -19,6 +19,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::log ) +set_target_properties(_cm_internal_tests-crypto3-zk-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-crypto3-zk-test REUSE_FROM crypto3_precompiled_headers) if(PROFILING_ENABLED) @@ -37,7 +38,7 @@ macro(define_zk_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/debug-tools/bin/circgen/CMakeLists.txt b/debug-tools/bin/circgen/CMakeLists.txt index 7a8b8f6794..003f359d2a 100644 --- a/debug-tools/bin/circgen/CMakeLists.txt +++ b/debug-tools/bin/circgen/CMakeLists.txt @@ -16,7 +16,7 @@ add_executable(circgen set_target_properties(circgen PROPERTIES LINKER_LANGUAGE CXX EXPORT_NAME circgen - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) diff --git a/debug-tools/bin/excalibur/src/CMakeLists.txt b/debug-tools/bin/excalibur/src/CMakeLists.txt index a52dca836b..3b54265c50 100644 --- a/debug-tools/bin/excalibur/src/CMakeLists.txt +++ b/debug-tools/bin/excalibur/src/CMakeLists.txt @@ -59,7 +59,7 @@ add_executable(${C3_TARGET} set_target_properties(${C3_TARGET} PROPERTIES LINKER_LANGUAGE CXX EXPORT_NAME ${CMAKE_PROJECT_NAME} - CXX_STANDARD 17 + CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) target_link_directories( diff --git a/evm-assigner/cmake/cable/toolchains/cxx17-32bit.cmake b/evm-assigner/cmake/cable/toolchains/cxx17-32bit.cmake index 183aab3129..159f630b2c 100644 --- a/evm-assigner/cmake/cable/toolchains/cxx17-32bit.cmake +++ b/evm-assigner/cmake/cable/toolchains/cxx17-32bit.cmake @@ -2,7 +2,7 @@ # Copyright 2019 Pawel Bylica. # Licensed under the Apache License, Version 2.0. -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/evm-assigner/cmake/cable/toolchains/cxx17-pic.cmake b/evm-assigner/cmake/cable/toolchains/cxx17-pic.cmake index edb3559e54..03122ccc18 100644 --- a/evm-assigner/cmake/cable/toolchains/cxx17-pic.cmake +++ b/evm-assigner/cmake/cable/toolchains/cxx17-pic.cmake @@ -2,7 +2,7 @@ # Copyright 2019 Pawel Bylica. # Licensed under the Apache License, Version 2.0. -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/evm-assigner/cmake/cable/toolchains/cxx17.cmake b/evm-assigner/cmake/cable/toolchains/cxx17.cmake index a4efcaa212..fb26e258d3 100644 --- a/evm-assigner/cmake/cable/toolchains/cxx17.cmake +++ b/evm-assigner/cmake/cable/toolchains/cxx17.cmake @@ -2,6 +2,6 @@ # Copyright 2019 Pawel Bylica. # Licensed under the Apache License, Version 2.0. -set(CMAKE_CXX_STANDARD 17) +set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) set(CMAKE_CXX_EXTENSIONS OFF) diff --git a/parallel-crypto3/benchmarks/CMakeLists.txt b/parallel-crypto3/benchmarks/CMakeLists.txt index 9230daf073..7df3c5efb2 100644 --- a/parallel-crypto3/benchmarks/CMakeLists.txt +++ b/parallel-crypto3/benchmarks/CMakeLists.txt @@ -34,7 +34,7 @@ macro(define_bench_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) target_precompile_headers(${test_name} REUSE_FROM crypto3_precompiled_headers) endmacro() @@ -45,6 +45,7 @@ cm_test_link_libraries( crypto3::random ${Boost_LIBRARIES} ) +set_target_properties(_cm_internal_tests--parallel-crypto3-benchmarks PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests--parallel-crypto3-benchmarks REUSE_FROM crypto3_precompiled_headers) set(TESTS_NAMES diff --git a/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt b/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt index 346575486f..577cf0342f 100644 --- a/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-containers/example/CMakeLists.txt @@ -37,7 +37,7 @@ macro(define_containers_example example) ${CMAKE_WORKSPACE_NAME}::algebra ${CMAKE_WORKSPACE_NAME}::hash ${Boost_LIBRARIES}) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) endmacro() set(EXAMPLES_NAMES diff --git a/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt index 63504737d2..5ccc9c396b 100644 --- a/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-containers/test/CMakeLists.txt @@ -29,6 +29,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} crypto3::algebra crypto3::hash Boost::random) +set_target_properties(_cm_internal_tests-actor-containers-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-actor-containers-test REUSE_FROM crypto3_precompiled_headers) macro(define_storage_test test) @@ -59,7 +60,7 @@ macro(define_storage_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${target_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${target_name} PROPERTIES CXX_STANDARD 20) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt index d88e18ea21..8339de6ebf 100644 --- a/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-math/test/CMakeLists.txt @@ -34,7 +34,7 @@ macro(define_math_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) endmacro() diff --git a/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt b/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt index f6660c2544..e77dc23406 100644 --- a/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallel-zk/test/CMakeLists.txt @@ -19,6 +19,7 @@ cm_test_link_libraries(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} Boost::unit_test_framework Boost::log ) +set_target_properties(_cm_internal_tests-actor-zk-test PROPERTIES CXX_STANDARD 20) target_precompile_headers(_cm_internal_tests-actor-zk-test REUSE_FROM crypto3_precompiled_headers) if(PROFILING_ENABLED) @@ -38,7 +39,7 @@ macro(define_zk_test test) ${Boost_INCLUDE_DIRS}) - set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${full_test_name} PROPERTIES CXX_STANDARD 20) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") diff --git a/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt b/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt index b31893e81a..6862d1cf7e 100644 --- a/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt +++ b/parallel-crypto3/libs/parallelization-utils/test/CMakeLists.txt @@ -36,7 +36,7 @@ macro(define_actor_core_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17) + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20) get_target_property(target_type Boost::unit_test_framework TYPE) if(target_type STREQUAL "SHARED_LIB") diff --git a/proof-producer/libs/assigner/CMakeLists.txt b/proof-producer/libs/assigner/CMakeLists.txt index 2a2e51f75b..e6e80285d2 100644 --- a/proof-producer/libs/assigner/CMakeLists.txt +++ b/proof-producer/libs/assigner/CMakeLists.txt @@ -28,6 +28,7 @@ endforeach() add_library(proof_generatorAssigner SHARED ${PROTO_SRC} ) +set_target_properties(proof_generatorAssigner PROPERTIES CXX_STANDARD 20) target_include_directories(proof_generatorAssigner PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${PROTOBUF_INCLUDE_DIR} From ffa6a4153740a1ff9d67c861438da3b423fcc85b Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 29 Nov 2024 11:15:36 +0000 Subject: [PATCH 02/18] transpiler/test: increase constexpr computation limit for gcc --- crypto3/libs/transpiler/test/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crypto3/libs/transpiler/test/CMakeLists.txt b/crypto3/libs/transpiler/test/CMakeLists.txt index a8b3197e65..1e9efa2d84 100644 --- a/crypto3/libs/transpiler/test/CMakeLists.txt +++ b/crypto3/libs/transpiler/test/CMakeLists.txt @@ -28,7 +28,9 @@ macro(define_transpiler_test name) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") target_compile_options(${full_test_name} PRIVATE "-fconstexpr-steps=2147483647") - endif() + elseif (CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + target_compile_options(${full_test_name} PRIVATE "-fconstexpr-ops-limit=4294967295") + endif () target_include_directories(${full_test_name} PRIVATE "$" From 430739ef03fdc0b83ab6d5058746ca257ca52970 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 11 Oct 2024 21:49:29 +0000 Subject: [PATCH 03/18] Multiprecision refactoring --- .../multiprecision/big_int/big_int.hpp | 402 +++++ .../multiprecision/big_int/big_uint.hpp | 10 + .../multiprecision/big_int/big_uint_impl.hpp | 1477 +++++++++++++++++ .../big_int/cpp_int_conversions.hpp | 61 + .../multiprecision/big_int/detail/assert.hpp | 6 + .../multiprecision/big_int/detail/config.hpp | 27 + .../multiprecision/big_int/detail/endian.hpp | 37 + .../big_int/detail/helper_macros.hpp | 34 + .../multiprecision/big_int/detail/int128.hpp | 18 + .../big_int/detail/intel_intrinsics.hpp | 85 + .../crypto3/multiprecision/big_int/limits.hpp | 83 + .../multiprecision/big_int/literals.hpp | 147 ++ .../big_int/modular/big_mod.hpp | 5 + .../big_int/modular/big_mod_impl.hpp | 363 ++++ .../big_int/modular/modular_ops.hpp | 600 +++++++ .../big_int/modular/modular_ops_storage.hpp | 55 + .../big_int/modular/ops/inverse.hpp | 21 + .../big_int/modular/ops/misc.hpp | 31 + .../big_int/ops/import_export.hpp | 211 +++ .../multiprecision/big_int/ops/inverse.hpp | 78 + .../multiprecision/big_int/ops/jacobi.hpp | 67 + .../multiprecision/big_int/ops/misc.hpp | 123 ++ .../multiprecision/big_int/ops/ressol.hpp | 135 ++ .../multiprecision/big_int/ops/wnaf.hpp | 101 ++ .../multiprecision/big_int/storage.hpp | 37 + .../nil/crypto3/multiprecision/literals.hpp | 3 + .../libs/multiprecision/test/CMakeLists.txt | 28 +- crypto3/libs/multiprecision/test/big_int.cpp | 197 +++ .../test/big_int_comparision.cpp | 74 + .../test/big_int_cpp_int_conversions.cpp | 26 + .../multiprecision/test/big_int_inverse.cpp | 390 +++++ .../multiprecision/test/big_int_jacobi.cpp | 63 + .../multiprecision/test/big_int_modular.cpp | 177 ++ .../test/big_int_modular_comprehensive.cpp | 506 ++++++ .../multiprecision/test/big_int_ressol.cpp | 318 ++++ 35 files changed, 5995 insertions(+), 1 deletion(-) create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/limits.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp create mode 100644 crypto3/libs/multiprecision/test/big_int.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_comparision.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_inverse.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_jacobi.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_modular.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp create mode 100644 crypto3/libs/multiprecision/test/big_int_ressol.cpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp new file mode 100644 index 0000000000..cbfcdd3fc2 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp @@ -0,0 +1,402 @@ +#pragma once + +#include +#include +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" + +namespace nil::crypto3::multiprecision { + /** + * @brief Big signed integer type + * + * @tparam Bits Number of bits, not including the sign bit + * + * @details + * The sign bit is stored separately from the rest of the integer. + * + * @note + * Like big_uint, this is not optimized. It is provided for convenience. + */ + template + class big_int { + public: + static constexpr std::size_t Bits = Bits_; + using self_type = big_int; + + using unsigned_type = big_uint; + + // Constructor + + constexpr big_int() noexcept {} + + template + constexpr big_int(const big_uint& b) noexcept : m_abs(b) {} + + template && std::is_signed_v, int> = 0> + constexpr big_int(T val) noexcept : m_abs(abs(val)) { + // for ADL + using std::abs; + if (val < 0) { + negate(); + } + } + + template && std::is_unsigned_v, int> = 0> + constexpr big_int(T val) noexcept : m_abs(val) {} + + template + constexpr big_int(const big_int& other) noexcept + : m_negative(other.negative()), m_abs(other.abs()) {} + + // Assignment + + template + constexpr big_int& operator=(const big_uint& b) { + m_negative = false; + m_abs = b; + } + + template + constexpr big_int& operator=(const big_int& other) noexcept { + m_negative = other.negative(); + m_abs = other.abs(); + return *this; + } + + template && std::is_signed_v, int> = 0> + constexpr big_int& operator=(T val) noexcept { + using std::abs; + m_abs = abs(val); + if (val < 0) { + negate(); + } + return *this; + } + + template && std::is_unsigned_v, int> = 0> + constexpr big_int& operator=(T val) noexcept { + m_negative = false; + m_abs = val; + return *this; + } + + constexpr std::string str() const { + return (negative() ? std::string("-") : std::string("")) + m_abs.str(); + } + + template = 0> + constexpr big_int truncate() const noexcept { + return {m_negative, m_abs.template truncate()}; + } + + // Cast to integral types + + template, int> = 0> + explicit constexpr operator T() const { + return multiplied_by_sign(static_cast(abs())); + } + + template + explicit constexpr operator big_uint() const { + NIL_CO3_MP_ASSERT(!this->negative()); + return m_abs; + } + + // Utilities + + constexpr bool negative() const { return m_negative; } + + constexpr int sign() const noexcept { return negative() ? -1 : (is_zero(m_abs) ? 0 : 1); } + + constexpr const unsigned_type& abs() const { return m_abs; } + + constexpr void negate() { + if (is_zero(m_abs)) { + return; + } + m_negative = !m_negative; + } + + // Comparision + + template + constexpr int compare(const big_int& other) const noexcept { + if (negative() && !other.negative()) { + return -1; + } + if (!negative() && other.negative()) { + return 1; + } + if (negative() && other.negative()) { + return other.m_abs.compare(this->m_abs); + } + return this->m_abs.compare(other.m_abs); + } + + // Arithmetic operations + + // Addition/subtraction + + static constexpr big_int add(const big_int& a, const big_int& b) noexcept { + if (!a.negative() && !b.negative()) { + return a.m_abs + b.m_abs; + } + if (!a.negative() && b.negative()) { + if (a.m_abs >= b.m_abs) { + return a.m_abs - b.m_abs; + } + return -big_int(b.m_abs - a.m_abs); + } + if (a.negative() && !b.negative()) { + return add(b, a); + } + return -big_int(a.m_abs + b.m_abs); + } + + static constexpr big_int subtract(const big_int& a, const big_int& b) noexcept { + return add(a, -b); + } + + NIL_CO3_MP_FORCEINLINE constexpr void increment() noexcept { + if (negative()) { + --m_abs; + normalize(); + return; + } + ++m_abs; + } + + NIL_CO3_MP_FORCEINLINE constexpr void decrement() noexcept { + if (negative()) { + ++m_abs; + return; + } + if (is_zero(m_abs)) { + m_negative = true; + ++m_abs; + return; + } + --m_abs; + } + + // Modulus + + static constexpr big_int modulus(const big_int& x, const big_int& y) { + return static_cast(x - static_cast((x / y) * y)); + } + + // Division + + static constexpr big_int divide(const big_int& x, const big_int& y) { + big_int result = x.m_abs / y.m_abs; + if (x.negative() != y.negative()) { + result.negate(); + } + return result; + } + + // Multiplication + + template + static constexpr big_int multiply(const big_int& a, + const big_int& b) noexcept { + big_int result = a.m_abs * b.m_abs; + if (a.sign() * b.sign() < 0) { + result = -result; + } + return result; + } + + private: + constexpr void normalize() noexcept { + if (is_zero(m_abs)) { + m_negative = false; + } + } + + template + constexpr void multiply_by_sign(T& a) const { + if (negative()) { + a = -a; + } + } + template + constexpr T multiplied_by_sign(const T& a) const { + if (negative()) { + return -a; + } + return a; + } + + bool m_negative = false; + big_uint m_abs; + }; + + template + NIL_CO3_MP_FORCEINLINE constexpr bool is_zero(const big_int& val) noexcept { + return is_zero(val.abs()); + } + + namespace detail { + template + constexpr bool is_big_int_v = false; + + template + constexpr bool is_big_int_v> = true; + + template + constexpr bool is_signed_integral_v = is_integral_v || is_big_int_v; + + template, int> = 0> + constexpr std::size_t get_bits() { + return T::Bits; + } + } // namespace detail + +#define NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE \ + template< \ + typename T1, typename T2, \ + std::enable_if_t && detail::is_signed_integral_v && \ + (detail::is_big_int_v || detail::is_big_int_v), \ + int> = 0, \ + typename largest_t = big_int(), detail::get_bits())>> + +#define NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE \ + template && detail::is_signed_integral_v, \ + int> = 0> + +#define NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE \ + template, int> = 0> + + // Comparison + +#define NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(op) \ + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE \ + constexpr bool operator op(const T1& a, const T2& b) noexcept { \ + largest_t ap = a; \ + largest_t bp = b; \ + return ap.compare(bp) op 0; \ + } + + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(<) + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(<=) + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(>) + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(>=) + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(==) + NIL_CO3_MP_BIG_INT_IMPL_OPERATOR(!=) + +#undef NIL_CO3_MP_BIG_INT_IMPL_OPERATOR + + // Arithmetic operations + + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + constexpr auto operator+(const T1& a, const T2& b) noexcept { + big_int result; + result = decltype(result)::add(a, b); + return result; + } + NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator+=(big_int_t& a, const T& b) noexcept { + a = a + b; + return a; + } + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr auto& operator++(big_int_t& a) noexcept { + a.increment(); + return a; + } + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr auto operator++(big_int_t& a, int) noexcept { + auto copy = a; + ++a; + return copy; + } + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr auto operator+(const big_int_t& a) noexcept { return a; } + + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + constexpr auto operator-(const T1& a, const T2& b) noexcept { return T1::subtract(a, b); } + NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator-=(big_int_t& a, const T& b) { + a = a - b; + return a; + } + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr auto& operator--(big_int_t& a) noexcept { + a.decrement(); + return a; + } + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr auto operator--(big_int_t& a, int) noexcept { + auto copy = a; + --a; + return copy; + } + + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + constexpr big_int_t operator-(big_int_t a) noexcept { + a.negate(); + return a; + } + + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + constexpr auto operator*(const T1& a, const T2& b) noexcept { + return std::decay_t::multiply(a, b); + } + NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator*=(big_int_t& a, const T& b) noexcept { + a = a * b; + return a; + } + + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + constexpr auto operator/(const T1& a, const T2& b) noexcept { + return largest_t::divide(static_cast(a), static_cast(b)); + } + NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator/=(big_int_t& a, const T& b) noexcept { + a = a / b; + return a; + } + + NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + constexpr auto operator%(const T1& a, const T2& b) noexcept { + return largest_t::modulus(static_cast(a), static_cast(b)); + } + NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator%=(big_int_t& a, const T& b) { + a = a % b; + return a; + } + + template + constexpr std::size_t hash_value(const big_int& val) noexcept { + std::size_t result = 0; + boost::hash_combine(result, hash_value(val.abs())); + boost::hash_combine(result, val.negative()); + return result; + } + + // IO + + NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE + std::ostream& operator<<(std::ostream& os, const big_int_t& value) { + os << value.str(); + return os; + } + +#undef NIL_CO3_MP_BIG_INT_UNARY_TEMPLATE +#undef NIL_CO3_MP_BIG_INT_INTEGRAL_ASSIGNMENT_TEMPLATE +#undef NIL_CO3_MP_BIG_INT_INTEGRAL_TEMPLATE + +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp new file mode 100644 index 0000000000..2b0e388c07 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp @@ -0,0 +1,10 @@ +#pragma once + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/limits.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/import_export.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/inverse.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/misc.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/ressol.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/wnaf.hpp" // IWYU pragma: export diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp new file mode 100644 index 0000000000..fd0802f3e3 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp @@ -0,0 +1,1477 @@ +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/endian.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision { + template + class big_uint; + + namespace detail { + constexpr bool is_valid_hex_digit(char c) { + return ('0' <= c && c <= '9') || ('a' <= c && c <= 'f') || ('A' <= c && c <= 'F'); + } + + constexpr unsigned parse_hex_digit(char c) { + if ('0' <= c && c <= '9') { + return c - '0'; + } + if ('a' <= c && c <= 'f') { + return (c - 'a') + 10; + } + return (c - 'A') + 10; + } + + template + constexpr big_uint parse_int_hex(std::string_view str) { + if (str.size() < 2 || str[0] != '0' || str[1] != 'x') { + throw std::invalid_argument("hex literal should start with 0x"); + } + + big_uint result{0}; + + std::size_t bits = 0; + for (std::size_t i = 2; i < str.size(); ++i) { + char c = str[i]; + if (!is_valid_hex_digit(c)) { + throw std::invalid_argument("non-hex character in literal"); + } + result <<= 4; + if (bits != 0) { + bits += 4; + } + unsigned digit = parse_hex_digit(c); + result += digit; + if (bits == 0 && digit != 0) { + bits += std::bit_width(digit); + } + } + if (bits > Bits) { + throw std::invalid_argument("not enough bits to store literal"); + } + return result; + } + + template + constexpr big_uint parse_int_decimal(std::string_view str) { + big_uint result{0}; + + for (std::size_t i = 0; i < str.size(); ++i) { + char c = str[i]; + if (c < '0' || c > '9') { + throw std::invalid_argument("non decimal character in literal"); + } + result *= 10; + result += c - '0'; + } + return result; + } + + template + constexpr big_uint parse_int(std::string_view str) { + if (str.size() >= 2 && str[0] == '0' && str[1] == 'x') { + return parse_int_hex(str); + } + return parse_int_decimal(str); + } + } // namespace detail + + /** + * @brief Big unsigned integer type + * + * @tparam Bits Number of bits + * + * @details + * This is a class that represents a big unsigned integer with a fixed size in bits. + * + * @note + * Addition and subtraction operations are optimized, while multiplication and division are not. + * Multiplication and division should be used in compile time or in non-performance critical + * code. + * If you need fast arithmetic, you probably are looking for big_mod, which implements fast + * modular arithmetic. + */ + template + class big_uint { + public: + static constexpr std::size_t Bits = Bits_; + using self_type = big_uint; + + using limb_type = detail::limb_type; + using double_limb_type = detail::double_limb_type; + using signed_limb_type = detail::signed_limb_type; + using signed_double_limb_type = detail::signed_double_limb_type; + + // Storage + + using limb_pointer = detail::limb_pointer; + using const_limb_pointer = detail::const_limb_pointer; + static constexpr std::size_t limb_bits = detail::limb_bits; + static constexpr limb_type max_limb_value = detail::max_limb_value; + + static constexpr std::size_t internal_limb_count = + (Bits / limb_bits) + (((Bits % limb_bits) != 0u) ? 1u : 0u); + static constexpr limb_type upper_limb_mask = + (Bits % limb_bits) ? (limb_type(1) << (Bits % limb_bits)) - 1 : (~limb_type(0u)); + + // + // Helper functions for getting at our internal data, and manipulating storage: + // + constexpr std::size_t limbs_count() const noexcept { + static_assert(internal_limb_count != 0, "No limbs in storage."); + return internal_limb_count; + } + constexpr limb_pointer limbs() noexcept { return m_data.data(); } + constexpr const_limb_pointer limbs() const noexcept { return m_data.data(); } + constexpr auto& limbs_array() noexcept { return m_data; } + constexpr const auto& limbs_array() const noexcept { return m_data; } + + private: + // Zeros out everything after limb[i], replaces resizing. + constexpr void zero_after(std::size_t start_index) { + auto pr = this->limbs(); + for (std::size_t i = start_index; i < this->limbs_count(); ++i) { + pr[i] = 0; + } + } + constexpr void normalize() noexcept { limbs()[internal_limb_count - 1] &= upper_limb_mask; } + + public: + constexpr bool has_carry() const noexcept { return m_carry; } + constexpr void set_carry(bool carry) noexcept { m_carry = carry; } + + // Constructor + + constexpr big_uint() noexcept {} + + constexpr big_uint(const char* str) { *this = str; } + + template /*&& std::is_unsigned_v*/, int> = 0> + constexpr big_uint(T val) noexcept { + if (val < 0) { + std::cerr << "big_uint: assignment from negative integer" << std::endl; + std::terminate(); + } + do_assign_integral(static_cast>(val)); + } + + // This should be implicit even for Bits2 < Bits because it's used in boost random + template + constexpr big_uint(const big_uint& other) noexcept { + do_assign(other); + if constexpr (Bits2 > Bits) { + NIL_CO3_MP_ASSERT(other.compare(*this) == 0); + } + } + + // Assignment + + constexpr big_uint& operator=(const char* str) { + *this = detail::parse_int(str); + return *this; + } + + template + constexpr big_uint& operator=(const big_uint& other) noexcept { + do_assign(other); + if constexpr (Bits2 > Bits) { + NIL_CO3_MP_ASSERT(other.compare(*this) == 0); + } + return *this; + } + + template /*&& std::is_unsigned_v*/, int> = 0> + constexpr big_uint& operator=(T val) noexcept { + NIL_CO3_MP_ASSERT_MSG(val >= 0, "big_uint: assignment from negative integer"); + do_assign_integral(static_cast>(val)); + return *this; + } + + constexpr std::string str() const { + std::string result; + result.reserve(order() * limb_bits / 4 + 2); + result += "0x"; + bool found_first = false; + for (int i = internal_limb_count - 1; i >= 0; --i) { + auto limb = limbs()[i]; + bool should_pad = found_first; + found_first = found_first || limb != 0; + if (found_first) { + std::size_t len = limb == 0 ? 1 : (std::bit_width(limb) + 3) / 4; + std::size_t padded_len = len; + if (should_pad) { + padded_len = sizeof(limb_type) * 2; + } + for (std::size_t j = 0; j < padded_len - len; ++j) { + result += '0'; + } + std::size_t start_offset = result.size(); + result.resize(result.size() + len); + auto ec = std::to_chars(result.data() + start_offset, + result.data() + result.size(), limb, 16) + .ec; + NIL_CO3_MP_ASSERT(ec == std::errc{}); + } + } + for (std::size_t i = 2; i < result.size(); ++i) { + result[i] = static_cast(std::toupper(static_cast(result[i]))); + } + if (result.size() == 2) { + result += '0'; + } + return result; + } + + template = 0> + constexpr big_uint truncate() const noexcept { + big_uint result; + result.do_assign(*this); + return result; + } + + // Cast to integral types + + template && std::is_unsigned_v, int> = 0> + explicit constexpr operator T() const { + if constexpr (sizeof(T) <= sizeof(limb_type)) { + return static_cast(this->limbs()[0]); + } else { + constexpr std::size_t n = + std::min(sizeof(T) / sizeof(limb_type), internal_limb_count); + T result = 0; + for (std::size_t i = 0; i < n; ++i) { + result <<= limb_bits; + result |= limbs()[n - i - 1]; + } + return result; + } + } + + // Comparisions + + constexpr int compare(const big_uint& b) const noexcept { + auto pa = limbs(); + auto pb = b.limbs(); + for (int i = limbs_count() - 1; i >= 0; --i) { + if (pa[i] != pb[i]) { + return pa[i] > pb[i] ? 1 : -1; + } + } + return 0; + } + + // Arithmetic operations + + // Addition/subtraction + + private: + static constexpr void add_constexpr(big_uint& result, const big_uint& a, + const big_uint& b) noexcept { + // + // This is the generic, C++ only version of addition. + // It's also used for all constexpr branches, hence the name. + // Nothing fancy, just let uintmax_t take the strain: + // + double_limb_type carry = 0; + std::size_t s = a.limbs_count(); + if (s == 1) { + double_limb_type r = static_cast(*a.limbs()) + + static_cast(*b.limbs()); + double_limb_type mask = big_uint::upper_limb_mask; + if (r & ~mask) { + result = r & mask; + result.set_carry(true); + } else { + result = r; + } + return; + } + + const_limb_pointer pa = a.limbs(); + const_limb_pointer pb = b.limbs(); + limb_pointer pr = result.limbs(); + + // First where a and b overlap: + for (std::size_t i = 0; i < s; ++i) { + carry += static_cast(*pa) + static_cast(*pb); + *pr = static_cast(carry); + carry >>= big_uint::limb_bits; + ++pr, ++pa, ++pb; + } + if constexpr (Bits % big_uint::limb_bits == 0) { + result.set_carry(carry); + } else { + limb_type mask = big_uint::upper_limb_mask; + // If we have set any bit above "Bits", then we have a carry. + if (result.limbs()[s - 1] & ~mask) { + result.limbs()[s - 1] &= mask; + result.set_carry(true); + } + } + } + + // + // Core subtraction routine: + // It is the caller's responsibility to make sure that a >= b. + // + static constexpr void subtract_constexpr(big_uint& result, const big_uint& a, + const big_uint& b) noexcept { + NIL_CO3_MP_ASSERT(a >= b); + + // + // This is the generic, C++ only version of subtraction. + // It's also used for all constexpr branches, hence the name. + // Nothing fancy, just let uintmax_t take the strain: + // + std::size_t s = a.limbs_count(); + if (s == 1) { + result = *a.limbs() - *b.limbs(); + return; + } + const_limb_pointer pa = a.limbs(); + const_limb_pointer pb = b.limbs(); + limb_pointer pr = result.limbs(); + + double_limb_type borrow = 0; + // First where a and b overlap: + for (std::size_t i = 0; i < s; ++i) { + borrow = static_cast(pa[i]) - + static_cast(pb[i]) - borrow; + pr[i] = static_cast(borrow); + borrow = (borrow >> big_uint::limb_bits) & 1u; + } + // if a > b, then borrow must be 0 at the end. + NIL_CO3_MP_ASSERT(0 == borrow); + } + + public: +#ifdef NIL_CO3_MP_HAS_IMMINTRIN_H + // + // This is the key addition routine: + // + // + // This optimization is limited to: GCC, LLVM, ICC (Intel), MSVC for x86_64 and i386. + // If your architecture and compiler supports ADC intrinsic, please file a bug. + // + // As of May, 2020 major compilers don't recognize carry chain though adc + // intrinsics are used to hint compilers to use ADC and still compilers don't + // unroll the loop efficiently (except LLVM) so manual unrolling is done. + // + // Also note that these intrinsics were only introduced by Intel as part of the + // ADX processor extensions, even though the addc instruction has been available + // for basically all x86 processors. That means gcc-9, clang-9, msvc-14.2 and up + // are required to support these intrinsics. + // + static constexpr void add(big_uint& result, const big_uint& a, const big_uint& b) noexcept { + if (std::is_constant_evaluated()) { + add_constexpr(result, a, b); + } else { + // Nothing fancy, just let uintmax_t take the strain: + std::size_t as = a.used_limbs(); + std::size_t bs = b.used_limbs(); + auto [m, x] = std::minmax(as, bs); + + if (x == 1) { + double_limb_type v = static_cast(*a.limbs()) + + static_cast(*b.limbs()); + if (result.limbs_count() == 1) { + double_limb_type mask = big_uint::upper_limb_mask; + if (v & ~mask) { + v &= mask; + result.set_carry(true); + } + } + result = v; + return; + } + const_limb_pointer pa = a.limbs(); + const_limb_pointer pb = b.limbs(); + limb_pointer pr = result.limbs(); + + if (as < bs) { + std::swap(pa, pb); + } + + std::size_t i = 0; + unsigned char carry = 0; + for (; i + 4 <= m; i += 4) { + carry = detail::addcarry_limb(carry, pa[i + 0], pb[i + 0], pr + i); + carry = detail::addcarry_limb(carry, pa[i + 1], pb[i + 1], pr + i + 1); + carry = detail::addcarry_limb(carry, pa[i + 2], pb[i + 2], pr + i + 2); + carry = detail::addcarry_limb(carry, pa[i + 3], pb[i + 3], pr + i + 3); + } + for (; i < m; ++i) { + carry = detail::addcarry_limb(carry, pa[i], pb[i], pr + i); + } + for (; i < x && carry; ++i) { + // We know carry is 1, so we just need to increment pa[i] (ie add a literal 1) + // and capture the carry: + carry = detail::addcarry_limb(0, pa[i], 1, pr + i); + } + if (i == x && carry) { + if (internal_limb_count > x) { + result.limbs()[x] = static_cast(1u); + } + } else if (x != i) { + // Copy remaining digits only if we need to: + std::copy(pa + i, pa + x, pr + i); + } + + if constexpr (Bits % big_uint::limb_bits == 0) { + result.set_carry(carry); + } else { + limb_type mask = big_uint::upper_limb_mask; + // If we have set any bit above "Bits", then we have a carry. + if (result.limbs()[result.limbs_count() - 1] & ~mask) { + result.limbs()[result.limbs_count() - 1] &= mask; + result.set_carry(true); + } + } + } + } + + // It is the caller's responsibility to make sure that a > b. + static constexpr void subtract(big_uint& result, const big_uint& a, + const big_uint& b) noexcept { + NIL_CO3_MP_ASSERT(a.compare(b) >= 0); + + if (std::is_constant_evaluated()) { + subtract_constexpr(result, a, b); + } else { + // Nothing fancy, just let uintmax_t take the strain: + std::size_t m = b.used_limbs(); + std::size_t x = a.used_limbs(); + + // + // special cases for small limb counts: + // + if (x == 1) { + result = *a.limbs() - *b.limbs(); + return; + } + // Now that a, b, and result are stable, get pointers to their limbs: + const_limb_pointer pa = a.limbs(); + const_limb_pointer pb = b.limbs(); + limb_pointer pr = result.limbs(); + + std::size_t i = 0; + unsigned char borrow = 0; + // First where a and b overlap: + for (; i + 4 <= m; i += 4) { + borrow = detail::subborrow_limb(borrow, pa[i], pb[i], pr + i); + borrow = detail::subborrow_limb(borrow, pa[i + 1], pb[i + 1], pr + i + 1); + borrow = detail::subborrow_limb(borrow, pa[i + 2], pb[i + 2], pr + i + 2); + borrow = detail::subborrow_limb(borrow, pa[i + 3], pb[i + 3], pr + i + 3); + } + for (; i < m; ++i) { + borrow = detail::subborrow_limb(borrow, pa[i], pb[i], pr + i); + } + while (borrow && (i < x)) { + borrow = detail::subborrow_limb(borrow, pa[i], 0, pr + i); + ++i; + } + // Any remaining digits are the same as those in pa: + if ((x != i) && (pa != pr)) { + std::copy(pa + i, pa + x, pr + i); + } + NIL_CO3_MP_ASSERT(0 == borrow); + } // constexpr. + } + +#else + + static constexpr void add(big_uint& result, const big_uint& a, const big_uint& b) noexcept { + add_constexpr(result, a, b); + } + + static constexpr void subtract(big_uint& result, const big_uint& a, + const big_uint& b) noexcept { + subtract_constexpr(result, a, b); + } + +#endif + + static constexpr void add(big_uint& result, const big_uint& a, + const limb_type& o) noexcept { + // Addition using modular arithmetic. + // Nothing fancy, just let uintmax_t take the strain: + + double_limb_type carry = o; + limb_pointer pr = result.limbs(); + const_limb_pointer pa = a.limbs(); + std::size_t i = 0; + // Addition with carry until we either run out of digits or carry is zero: + for (; carry && (i < result.limbs_count()); ++i) { + carry += static_cast(pa[i]); + pr[i] = static_cast(carry); + carry >>= big_uint::limb_bits; + } + // Just copy any remaining digits: + if (&a != &result) { + std::copy(pa + i, pa + a.limbs_count(), pr + i); + } + if constexpr (Bits % big_uint::limb_bits == 0) { + result.set_carry(carry); + } else { + limb_type mask = big_uint::upper_limb_mask; + // If we have set any bit above "Bits", then we have a carry. + if (pr[result.limbs_count() - 1] & ~mask) { + pr[result.limbs_count() - 1] &= mask; + result.set_carry(true); + } + } + } + + // + // And again to subtract a single limb: caller is responsible to check that a > b and + // the result is non-negative. + // + static constexpr void subtract(big_uint& result, const big_uint& a, + const limb_type& b) noexcept { + NIL_CO3_MP_ASSERT(a >= b); + + // Subtract one limb. + // Nothing fancy, just let uintmax_t take the strain: + constexpr double_limb_type borrow = + static_cast(big_uint::max_limb_value) + 1; + limb_pointer pr = result.limbs(); + const_limb_pointer pa = a.limbs(); + if (*pa >= b) { + *pr = *pa - b; + if (&result != &a) { + std::copy(pa + 1, pa + a.limbs_count(), pr + 1); + } + } else if (result.limbs_count() == 1) { + *pr = b - *pa; + } else { + *pr = static_cast((borrow + *pa) - b); + std::size_t i = 1; + while (!pa[i]) { + pr[i] = big_uint::max_limb_value; + ++i; + } + pr[i] = pa[i] - 1; + if (&result != &a) { + ++i; + std::copy(pa + i, pa + a.limbs_count(), pr + i); + } + } + } + + NIL_CO3_MP_FORCEINLINE constexpr void increment() noexcept { + if (limbs()[0] < big_uint::max_limb_value) { + ++limbs()[0]; + } else { + add(*this, *this, static_cast(1u)); + } + } + + NIL_CO3_MP_FORCEINLINE constexpr void decrement() noexcept { + if (limbs()[0]) { + --limbs()[0]; + } else { + subtract(*this, *this, static_cast(1u)); + } + } + + // Bitwise + + template + static constexpr void bitwise_op(big_uint& result, const big_uint& o, Op op) noexcept { + // + // Both arguments are unsigned types, very simple case handled as a special case. + // + // First figure out how big the result needs to be and set up some data: + // + std::size_t rs = result.limbs_count(); + std::size_t os = o.limbs_count(); + auto [m, x] = std::minmax(rs, os); + limb_pointer pr = result.limbs(); + const_limb_pointer po = o.limbs(); + for (std::size_t i = rs; i < x; ++i) { + pr[i] = 0; + } + + for (std::size_t i = 0; i < os; ++i) { + pr[i] = op(pr[i], po[i]); + } + for (std::size_t i = os; i < x; ++i) { + pr[i] = op(pr[i], limb_type(0)); + } + result.normalize(); + } + + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_and(big_uint& result, + const big_uint& o) noexcept { + bitwise_op(result, o, std::bit_and()); + } + + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_or(big_uint& result, + const big_uint& o) noexcept { + bitwise_op(result, o, std::bit_or()); + } + + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_xor(big_uint& result, + const big_uint& o) noexcept { + bitwise_op(result, o, std::bit_xor()); + } + // + // Again for operands which are single limbs: + // + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_and(big_uint& result, + limb_type l) noexcept { + result.limbs()[0] &= l; + result.zero_after(1); + } + + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_or(big_uint& result, + limb_type l) noexcept { + result.limbs()[0] |= l; + } + + NIL_CO3_MP_FORCEINLINE static constexpr void bitwise_xor(big_uint& result, + limb_type l) noexcept { + result.limbs()[0] ^= l; + } + + NIL_CO3_MP_FORCEINLINE static constexpr void complement(big_uint& result, + const big_uint& o) noexcept { + std::size_t os = o.limbs_count(); + for (std::size_t i = 0; i < os; ++i) { + result.limbs()[i] = ~o.limbs()[i]; + } + result.normalize(); + } + + // Left shift will throw away upper Bits. + // This function must be called only when s % 8 == 0, i.e. we shift bytes. + static void left_shift_byte(big_uint& result, double_limb_type s) { + limb_pointer pr = result.limbs(); + + std::size_t bytes = static_cast(s / CHAR_BIT); + if (s >= Bits) { + // Set result to 0. + result.zero_after(0); + } else { + unsigned char* pc = reinterpret_cast(pr); + std::memmove(pc + bytes, pc, result.limbs_count() * sizeof(limb_type) - bytes); + std::memset(pc, 0, bytes); + } + } + + // Left shift will throw away upper Bits. + // This function must be called only when s % limb_bits == 0, i.e. we shift limbs, which + // are normally 64 bit. + static constexpr void left_shift_limb(big_uint& result, double_limb_type s) { + limb_type offset = static_cast(s / limb_bits); + NIL_CO3_MP_ASSERT(static_cast(s % limb_bits) == 0); + + limb_pointer pr = result.limbs(); + + if (s >= Bits) { + // Set result to 0. + result.zero_after(0); + } else { + std::size_t i = offset; + std::size_t rs = result.limbs_count() + offset; + for (; i < result.limbs_count(); ++i) { + pr[rs - 1 - i] = pr[result.limbs_count() - 1 - i]; + } + for (; i < rs; ++i) { + pr[rs - 1 - i] = 0; + } + } + } + + // Left shift will throw away upper Bits. + static constexpr void left_shift_generic(big_uint& result, double_limb_type s) { + if (s >= Bits) { + // Set result to 0. + result.zero_after(0); + } else { + limb_type offset = static_cast(s / limb_bits); + limb_type shift = static_cast(s % limb_bits); + + limb_pointer pr = result.limbs(); + std::size_t i = 0; + std::size_t rs = result.limbs_count(); + // This code only works when shift is non-zero, otherwise we invoke undefined + // behaviour! + NIL_CO3_MP_ASSERT(shift); + for (; rs - i >= 2 + offset; ++i) { + pr[rs - 1 - i] = pr[rs - 1 - i - offset] << shift; + pr[rs - 1 - i] |= pr[rs - 2 - i - offset] >> (limb_bits - shift); + } + if (rs - i >= 1 + offset) { + pr[rs - 1 - i] = pr[rs - 1 - i - offset] << shift; + ++i; + } + for (; i < rs; ++i) { + pr[rs - 1 - i] = 0; + } + } + } + + // Shifting left throws away upper Bits. + static constexpr void left_shift(big_uint& result, double_limb_type s) noexcept { + if (!s) { + return; + } + +#if NIL_CO3_MP_ENDIAN_LITTLE_BYTE && defined(NIL_CO3_MP_USE_LIMB_SHIFT) + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + constexpr limb_type byte_shift_mask = CHAR_BIT - 1; + + if ((s & limb_shift_mask) == 0) { + left_shift_limb(result, s); + } else if (((s & byte_shift_mask) == 0) && !std::is_constant_evaluated()) { + left_shift_byte(result, s); + } +#elif NIL_CO3_MP_ENDIAN_LITTLE_BYTE + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + constexpr limb_type byte_shift_mask = CHAR_BIT - 1; + + if (std::is_constant_evaluated() && ((s & limb_shift_mask) == 0)) { + left_shift_limb(result, s); + } else if (((s & byte_shift_mask) == 0) && !std::is_constant_evaluated()) { + left_shift_byte(result, s); + } +#else + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + + if ((s & limb_shift_mask) == 0) { + left_shift_limb(result, s); + } +#endif + else { + left_shift_generic(result, s); + } + result.normalize(); + } + + static void right_shift_byte(big_uint& result, double_limb_type s) { + limb_type offset = static_cast(s / limb_bits); + NIL_CO3_MP_ASSERT((s % CHAR_BIT) == 0); + std::size_t ors = result.limbs_count(); + std::size_t rs = ors; + if (offset >= rs) { + result.zero_after(0); + return; + } + rs -= offset; + limb_pointer pr = result.limbs(); + unsigned char* pc = reinterpret_cast(pr); + limb_type shift = static_cast(s / CHAR_BIT); + std::memmove(pc, pc + shift, ors * sizeof(pr[0]) - shift); + shift = (sizeof(limb_type) - shift % sizeof(limb_type)) * CHAR_BIT; + if (shift < limb_bits) { + pr[ors - offset - 1] &= (static_cast(1u) << shift) - 1; + if (!pr[ors - offset - 1] && (rs > 1)) { + --rs; + } + } + // Set zeros after 'rs', alternative to resizing to size 'rs'. + result.zero_after(rs); + } + + static constexpr void right_shift_limb(big_uint& result, double_limb_type s) { + limb_type offset = static_cast(s / limb_bits); + NIL_CO3_MP_ASSERT((s % limb_bits) == 0); + std::size_t ors = result.limbs_count(); + std::size_t rs = ors; + if (offset >= rs) { + result.zero_after(0); + return; + } + rs -= offset; + limb_pointer pr = result.limbs(); + std::size_t i = 0; + for (; i < rs; ++i) { + pr[i] = pr[i + offset]; + } + // Set zeros after 'rs', alternative to resizing to size 'rs'. + result.zero_after(rs); + } + + static constexpr void right_shift_generic(big_uint& result, double_limb_type s) { + limb_type offset = static_cast(s / limb_bits); + limb_type shift = static_cast(s % limb_bits); + std::size_t ors = result.limbs_count(); + std::size_t rs = ors; + + if (offset >= rs) { + result = limb_type(0); + return; + } + rs -= offset; + limb_pointer pr = result.limbs(); + if ((pr[ors - 1] >> shift) == 0) { + if (--rs == 0) { + result = limb_type(0); + return; + } + } + std::size_t i = 0; + + // This code only works for non-zero shift, otherwise we invoke undefined behaviour! + NIL_CO3_MP_ASSERT(shift); + for (; i + offset + 1 < ors; ++i) { + pr[i] = pr[i + offset] >> shift; + pr[i] |= pr[i + offset + 1] << (limb_bits - shift); + } + pr[i] = pr[i + offset] >> shift; + + // We cannot resize any more, so we need to set all the limbs to zero. + result.zero_after(rs); + } + + static constexpr void right_shift(big_uint& result, double_limb_type s) noexcept { + if (!s) { + return; + } + +#if NIL_CO3_MP_ENDIAN_LITTLE_BYTE && defined(NIL_CO3_MP_USE_LIMB_SHIFT) + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + constexpr limb_type byte_shift_mask = CHAR_BIT - 1; + + if ((s & limb_shift_mask) == 0) { + right_shift_limb(result, s); + } else if (((s & byte_shift_mask) == 0) && !std::is_constant_evaluated()) { + right_shift_byte(result, s); + } +#elif NIL_CO3_MP_ENDIAN_LITTLE_BYTE + constexpr limb_type byte_shift_mask = CHAR_BIT - 1; + + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + if (std::is_constant_evaluated() && ((s & limb_shift_mask) == 0)) { + right_shift_limb(result, s); + } else if (((s & byte_shift_mask) == 0) && !std::is_constant_evaluated()) { + right_shift_byte(result, s); + } +#else + constexpr limb_type limb_shift_mask = big_uint::limb_bits - 1; + + if ((s & limb_shift_mask) == 0) { + right_shift_limb(result, s); + } +#endif + else { + right_shift_generic(result, s); + } + } + + constexpr std::size_t used_limbs() const noexcept { + for (int i = internal_limb_count - 1; i >= 0; --i) { + if (limbs()[i] != 0) { + return i + 1; + } + } + return 0; + } + + constexpr std::size_t order() const noexcept { + for (int i = internal_limb_count - 1; i >= 0; --i) { + if (limbs()[i] != 0) { + return i; + } + } + return 0; + } + + // Modulus/divide + + // This should be called only for creation of Montgomery and Barett + // params, not during "normal" execution, so we do not care about the execution speed. + + template + static constexpr void divide(big_uint* div, const big_uint& x, const big_uint& y, + big_uint& rem) { + /* + Very simple long division. + Start by setting the remainder equal to x, and the + result equal to 0. Then in each loop we calculate our + "best guess" for how many times y divides into rem, + add our guess to the result, and subtract guess*y + from the remainder rem. One wrinkle is that the remainder + may go negative, in which case we subtract the current guess + from the result rather than adding. The value of the guess + is determined by dividing the most-significant-limb of the + current remainder by the most-significant-limb of y. + + Note that there are more efficient algorithms than this + available, in particular see Knuth Vol 2. However for small + numbers of limbs this generally outperforms the alternatives + and avoids the normalisation step which would require extra storage. + */ + + if (is_zero(y)) { + throw std::overflow_error("integer division by zero"); + } + + const_limb_pointer px = x.limbs(); + const_limb_pointer py = y.limbs(); + + if (is_zero(x)) { + // x is zero, so is the result: + rem = x; + if (div) { + *div = x; + } + return; + } + + rem = x; + std::size_t rem_order = rem.order(); + std::size_t y_order = y.order(); + if (div) { + *div = 0u; + } + // + // Check if the remainder is already less than the divisor, if so + // we already have the result. Note we try and avoid a full compare + // if we can: + // + if (rem < y) { + return; + } + + big_uint t; + bool rem_neg = false; + + // + // See if we can short-circuit long division, and use basic arithmetic instead: + // + if (rem_order == 0) { + if (div) { + *div = px[0] / py[0]; + } + rem = px[0] % py[0]; + return; + } + if (rem_order == 1) { + double_limb_type a = (static_cast(px[1]) << limb_bits) | px[0]; + double_limb_type b = + y_order ? (static_cast(py[1]) << limb_bits) | py[0] : py[0]; + if (div) { + *div = a / b; + } + rem = a % b; + return; + } + const_limb_pointer prem = rem.limbs(); + // This is initialised just to keep the compiler from emitting useless warnings later + // on: + limb_pointer pdiv = limb_pointer(); + if (div) { + pdiv = div->limbs(); + for (std::size_t i = 1; i < 1 + rem_order - y_order; ++i) { + pdiv[i] = 0; + } + } + bool first_pass = true; + + do { + // + // Calculate our best guess for how many times y divides into rem: + // + limb_type guess = 1; + if (rem_order > 0 && prem[rem_order] <= py[y_order]) { + double_limb_type a = + (static_cast(prem[rem_order]) << limb_bits) | + prem[rem_order - 1]; + double_limb_type b = py[y_order]; + double_limb_type v = a / b; + if (v <= max_limb_value) { + guess = static_cast(v); + --rem_order; + } + } else if (rem_order == 0) { + guess = prem[0] / py[y_order]; + } else { + double_limb_type a = + (static_cast(prem[rem_order]) << limb_bits) | + prem[rem_order - 1]; + double_limb_type b = + (y_order > 0) ? (static_cast(py[y_order]) << limb_bits) | + py[y_order - 1] + : (static_cast(py[y_order]) << limb_bits); + NIL_CO3_MP_ASSERT(b); + double_limb_type v = a / b; + guess = static_cast(v); + } + NIL_CO3_MP_ASSERT(guess); // If the guess ever gets to zero we go on forever.... + // + // Update result: + // + std::size_t shift = rem_order - y_order; + if (div) { + if (rem_neg) { + if (pdiv[shift] > guess) { + pdiv[shift] -= guess; + } else { + t = 0u; + t.limbs()[shift] = guess; + *div -= t; + } + } else if (max_limb_value - pdiv[shift] > guess) { + pdiv[shift] += guess; + } else { + t = 0u; + t.limbs()[shift] = guess; + *div += t; + } + } + // + // Calculate guess * y, we use a fused mutiply-shift O(N) for this + // rather than a full O(N^2) multiply: + // + double_limb_type carry = 0; + // t.resize(y.limbs_count() + shift + 1, y.limbs_count() + shift); + // bool truncated_t = (t.limbs_count() != y.limbs_count() + shift + 1); + const bool truncated_t = y_order + shift + 2 > internal_limb_count; + t = 0u; + limb_pointer pt = t.limbs(); + for (std::size_t i = 0; i < y_order + 1; ++i) { + carry += + static_cast(py[i]) * static_cast(guess); + pt[i + shift] = static_cast(carry); + carry >>= limb_bits; + } + if (carry && !truncated_t) { + pt[y_order + shift + 1] = static_cast(carry); + } else if (!truncated_t) { + // t.resize(t.limbs_count() - 1, t.limbs_count() - 1); + } + // + // Update rem in a way that won't actually produce a negative result + // in case the argument types are unsigned: + // + if (truncated_t && carry) { + NIL_CO3_MP_ASSERT_MSG(false, "how can this even happen"); + // We need to calculate 2^n + t - rem + // where n is the number of bits in this type. + // Simplest way is to get 2^n - rem by complementing and incrementing + // rem, then add t to it. + for (std::size_t i = 0; i <= rem_order; ++i) { + rem.limbs()[i] = ~prem[i]; + } + rem.normalize(); + ++rem; + rem += t; + rem_neg = !rem_neg; + } else if (rem > t) { + rem -= t; + } else { + std::swap(rem, t); + rem -= t; + prem = rem.limbs(); + rem_neg = !rem_neg; + } + // + // First time through we need to strip any leading zero, otherwise + // the termination condition goes belly-up: + // + // if (div && first_pass) { + // first_pass = false; + // // while (pdiv[div->limbs_count() - 1] == 0) + // // div->resize(div->limbs_count() - 1, div->limbs_count() - 1); + // } + // + // Update rem_order: + // + rem_order = rem.order(); + } + // Termination condition is really just a check that rem > y, but with a common + // short-circuit case handled first: + while ((rem_order >= y_order) && ((rem_order > y_order) || (rem >= y))); + + // + // We now just have to normalise the result: + // + if (rem_neg && !is_zero(rem)) { + // We have one too many in the result: + if (div) { + --*div; + } + rem = y - rem; + } + + // remainder must be less than the divisor or our code has failed + NIL_CO3_MP_ASSERT(rem < y); + } + + // Multiplication + + // These should be called only for creation of Montgomery and Barett + // params, calculation of inverse element and montgomery_reduce. Since these functions + // are relatively slow and are not called very often, we will not optimize them. We do + // NOT care about the execution speed. + + // Caller is responsible for the result to fit in Bits bits, we will NOT throw!!! + + template + static constexpr void multiply(big_uint& result, const big_uint& a, + const big_uint& b) noexcept { + std::size_t as = a.limbs_count(); + std::size_t bs = b.limbs_count(); + const_limb_pointer pa = a.limbs(); + const_limb_pointer pb = b.limbs(); + limb_pointer pr = result.limbs(); + for (std::size_t i = 0; i < result.limbs_count(); ++i) { + pr[i] = 0; + } + + double_limb_type carry = 0; + for (std::size_t i = 0; i < as; ++i) { + NIL_CO3_MP_ASSERT(result.limbs_count() > i); + std::size_t inner_limit = (std::min)(result.limbs_count() - i, bs); + std::size_t j = 0; + for (; j < inner_limit; ++j) { + NIL_CO3_MP_ASSERT(i + j < result.limbs_count()); + carry += + static_cast(pa[i]) * static_cast(pb[j]); + NIL_CO3_MP_ASSERT( + !std::numeric_limits::is_specialized || + ((std::numeric_limits::max)() - carry >= pr[i + j])); + carry += pr[i + j]; + pr[i + j] = static_cast(carry); + carry >>= limb_bits; + NIL_CO3_MP_ASSERT(carry <= max_limb_value); + } + if (carry) { + NIL_CO3_MP_ASSERT(result.limbs_count() > i + j); + if (i + j < result.limbs_count()) { + pr[i + j] = static_cast(carry); + } + } + carry = 0; + } + result.normalize(); + } + + private: + // Assignment + + template && std::is_unsigned_v, int> = 0> + constexpr void do_assign_integral(const T& a) noexcept { + if constexpr (sizeof(T) <= sizeof(limb_type)) { + this->limbs()[0] = a; + this->zero_after(1); + } else { + static_assert(sizeof(T) % sizeof(limb_type) == 0); + constexpr std::size_t n = + std::min(internal_limb_count, sizeof(T) / sizeof(limb_type)); + auto a_copy = a; + for (std::size_t i = 0; i < n; ++i) { + limbs()[i] = a_copy & static_cast(static_cast(-1)); + a_copy >>= limb_bits; + } + zero_after(n); + } + this->normalize(); + if constexpr (sizeof(T) * CHAR_BIT > Bits) { + NIL_CO3_MP_ASSERT(big_uint(a).compare(*this) == 0); + } + } + + template + constexpr void do_assign(const big_uint& other) noexcept { + std::size_t count = (std::min)(other.limbs_count(), this->limbs_count()); + for (std::size_t i = 0; i < count; ++i) { + this->limbs()[i] = other.limbs()[i]; + } + // Zero out everything after (std::min)(other.limbs_count(), limbs_count()), so if size + // of other was less, we have 0s at the end. + this->zero_after((std::min)(other.limbs_count(), this->limbs_count())); + this->normalize(); + } + + // Data + + // m_data[0] contains the lowest bits. + std::array m_data{0}; + + // This is a temporary value which is set when carry has happend during addition. + // If this value is true, reduction by modulus must happen next. + bool m_carry = false; + + template + friend class big_uint; + }; + + namespace detail { + template + static constexpr bool always_false = false; + + template + constexpr bool is_big_uint_v = false; + + template + constexpr bool is_big_uint_v> = true; + + template + constexpr bool is_integral_v = std::is_integral_v || is_big_uint_v; + + template, int> = 0> + constexpr std::size_t get_bits() { + return sizeof(T) * CHAR_BIT; + } + + template, int> = 0> + constexpr std::size_t get_bits() { + return T::Bits; + } + } // namespace detail + +#define NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE \ + template && detail::is_integral_v && \ + (detail::is_big_uint_v || detail::is_big_uint_v), \ + int> = 0, \ + typename largest_t = \ + big_uint(), detail::get_bits())>> + +#define NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE \ + template< \ + typename big_uint_t, typename T, \ + std::enable_if_t && detail::is_integral_v, int> = 0> + +#define NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE \ + template, int> = 0> + + // Comparison + +#define NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(op) \ + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE \ + constexpr bool operator op(const T1& a, const T2& b) noexcept { \ + largest_t ap = a; \ + largest_t bp = b; \ + return ap.compare(bp) op 0; \ + } + + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(<) + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(<=) + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(>) + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(>=) + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(==) + NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR(!=) + +#undef NIL_CO3_MP_BIG_UINT_IMPL_OPERATOR + + // Arithmetic operations + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator+(const T1& a, const T2& b) noexcept { + big_uint result = a; + decltype(result)::add(result, result, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator+=(big_uint_t& a, const T& b) noexcept { + big_uint_t::add(a, a, b); + return a; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator++(big_uint_t& a) noexcept { + a.increment(); + return a; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator++(big_uint_t& a, int) noexcept { + auto copy = a; + ++a; + return copy; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator+(const big_uint_t& a) noexcept { return a; } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator-(const T1& a, const T2& b) noexcept { + T1 result; + T1::subtract(result, a, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator-=(big_uint_t& a, const T& b) { + big_uint_t::subtract(a, a, b); + return a; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator--(big_uint_t& a) noexcept { + a.decrement(); + return a; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator--(big_uint_t& a, int) noexcept { + auto copy = a; + --a; + return copy; + } + + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr big_uint_t operator-(const big_uint_t& /* unused */) noexcept { + static_assert(detail::always_false, "can't negate unsigned type"); + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator*(const T1& a, const T2& b) noexcept { + big_uint() + detail::get_bits()> result; + decltype(result)::multiply(result, a, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator*=(big_uint_t& a, const T& b) noexcept { + big_uint() + detail::get_bits()> result; + decltype(result)::multiply(result, a, static_cast(b)); + a = result; + return a; + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator/(const T1& a, const T2& b) noexcept { + largest_t result; + largest_t modulus; + largest_t::divide(&result, a, b, modulus); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator/=(big_uint_t& a, const T& b) noexcept { + big_uint_t result; + big_uint_t modulus; + big_uint_t::divide(&result, a, b, modulus); + a = result; + return a; + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator%(const T1& a, const T2& b) noexcept { + largest_t modulus; + largest_t::divide(nullptr, static_cast(a), static_cast(b), modulus); + return modulus; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator%=(big_uint_t& a, const T& b) { + big_uint_t modulus; + big_uint_t::divide(nullptr, a, b, modulus); + a = modulus; + return a; + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator&(const T1& a, const T2& b) noexcept { + largest_t result = a; + T1::bitwise_and(result, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator&=(big_uint_t& a, const T& b) { + big_uint_t::bitwise_and(a, b); + return a; + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator|(const T1& a, const T2& b) noexcept { + largest_t result = a; + T1::bitwise_or(result, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator|=(big_uint_t& a, const T& b) { + big_uint_t::bitwise_or(a, b); + return a; + } + + NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator^(const T1& a, const T2& b) noexcept { + largest_t result = a; + T1::bitwise_xor(result, b); + return result; + } + NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator^=(big_uint_t& a, const T& b) { + big_uint_t::bitwise_or(a, b); + return a; + } + + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator~(const big_uint_t& a) noexcept { + big_uint_t result; + big_uint_t::complement(result, a); + return result; + } + + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator<<(const big_uint_t& a, std::size_t shift) noexcept { + big_uint_t result = a; + big_uint_t::left_shift(result, shift); + return result; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator<<=(big_uint_t& a, std::size_t shift) noexcept { + big_uint_t::left_shift(a, shift); + return a; + } + + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator>>(const big_uint_t& a, std::size_t shift) noexcept { + big_uint_t result = a; + big_uint_t::right_shift(result, shift); + return result; + } + NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator>>=(big_uint_t& a, std::size_t shift) noexcept { + big_uint_t::right_shift(a, shift); + return a; + } + +#undef NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE +#undef NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE +#undef NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE + + // Hash + + template + constexpr std::size_t hash_value(const big_uint& val) noexcept { + std::size_t result = 0; + for (std::size_t i = 0; i < val.limbs_count(); ++i) { + boost::hash_combine(result, val.limbs()[i]); + } + return result; + } + + // IO + + template + std::ostream& operator<<(std::ostream& os, const big_uint& value) { + os << value.str(); + return os; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp new file mode 100644 index 0000000000..94779e2cbe --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp @@ -0,0 +1,61 @@ +#pragma once + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_int.hpp" +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +// Converting to and from cpp_int. Should be used only in tests. + +namespace nil::crypto3::multiprecision { + template + using unsigned_cpp_int_type = + boost::multiprecision::number>; + template + using signed_cpp_int_type = + boost::multiprecision::number>; + + template + constexpr unsigned_cpp_int_type to_cpp_int(const big_uint& a) { + unsigned_cpp_int_type result; + for (const auto limb : a.limbs_array() | std::views::reverse) { + result <<= detail::limb_bits; + result |= limb; + } + return result; + } + + template + constexpr big_uint to_big_uint(unsigned_cpp_int_type cppint) { + big_uint result; + for (auto& limb : result.limbs_array()) { + limb = static_cast(cppint & static_cast(-1)); + cppint >>= detail::limb_bits; + } + return result; + } + + template + constexpr signed_cpp_int_type to_cpp_int(const big_int& a) { + signed_cpp_int_type result = to_cpp_int(a.abs()); + if (a.sign() < 0) { + result = -result; + } + return result; + } + + template + constexpr big_int to_big_int(const signed_cpp_int_type& cppint) { + big_int result = to_big_uint(abs(cppint)); + if (cppint.sign() < 0) { + result = -result; + } + return result; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp new file mode 100644 index 0000000000..3a8ca9e01c --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp @@ -0,0 +1,6 @@ +#pragma once + +#include + +#define NIL_CO3_MP_ASSERT(expr) assert(expr) +#define NIL_CO3_MP_ASSERT_MSG(expr, msg) assert((expr) && (msg)) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp new file mode 100644 index 0000000000..f78ae1a7f6 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp @@ -0,0 +1,27 @@ +#pragma once + +#if !defined(NIL_CO3_MP_FORCEINLINE) + +#if defined(NDEBUG) && !defined(_DEBUG) + +#if defined(_MSC_VER) +#define NIL_CO3_MP_FORCEINLINE __forceinline +#elif defined(__GNUC__) && __GNUC__ > 3 +// Clang also defines __GNUC__ (as 4) +#define NIL_CO3_MP_FORCEINLINE inline __attribute__((__always_inline__)) +#else +#define NIL_CO3_MP_FORCEINLINE inline +#endif + +#else + +#define NIL_CO3_MP_FORCEINLINE inline + +#endif + +// Enable to use limb shift instead of byte shift with memmove in runtime +// #define NIL_CO3_MP_USE_LIMB_SHIFT + +#endif + + diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp new file mode 100644 index 0000000000..609535bd66 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp @@ -0,0 +1,37 @@ +#pragma once + +#include + +#define NIL_CO3_MP_ENDIAN_BIG_BYTE 0 +#define NIL_CO3_MP_ENDIAN_BIG_WORD 0 +#define NIL_CO3_MP_ENDIAN_LITTLE_BYTE 0 +#define NIL_CO3_MP_ENDIAN_LITTLE_WORD 0 + +#if defined(__BYTE_ORDER) +#if defined(__BIG_ENDIAN) && (__BYTE_ORDER == __BIG_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_BIG_BYTE +#define NIL_CO3_MP_ENDIAN_BIG_BYTE 1 +#endif +#if defined(__LITTLE_ENDIAN) && (__BYTE_ORDER == __LITTLE_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_LITTLE_BYTE +#define NIL_CO3_MP_ENDIAN_LITTLE_BYTE 1 +#endif +#if defined(__PDP_ENDIAN) && (__BYTE_ORDER == __PDP_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_LITTLE_WORD +#define NIL_CO3_MP_ENDIAN_LITTLE_WORD 1 +#endif +#endif +#if !defined(__BYTE_ORDER) && defined(_BYTE_ORDER) +#if defined(_BIG_ENDIAN) && (_BYTE_ORDER == _BIG_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_BIG_BYTE +#define NIL_CO3_MP_ENDIAN_BIG_BYTE 1 +#endif +#if defined(_LITTLE_ENDIAN) && (_BYTE_ORDER == _LITTLE_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_LITTLE_BYTE +#define NIL_CO3_MP_ENDIAN_LITTLE_BYTE 1 +#endif +#if defined(_PDP_ENDIAN) && (_BYTE_ORDER == _PDP_ENDIAN) +#undef NIL_CO3_MP_ENDIAN_LITTLE_WORD +#define NIL_CO3_MP_ENDIAN_LITTLE_WORD 1 +#endif +#endif \ No newline at end of file diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp new file mode 100644 index 0000000000..838b4dde21 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp @@ -0,0 +1,34 @@ +#pragma once + +// Copyright 2001 John Maddock. +// Copyright 2017 Peter Dimov. +// +// Distributed under the Boost Software License, Version 1.0. +// +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +// +// NIL_CO3_MP_STRINGIZE(X) +// NIL_CO3_MP_JOIN(X, Y) +// +// Note that this header is C compatible. + +// +// Helper macro NIL_CO3_MP_STRINGIZE: +// Converts the parameter X to a string after macro replacement +// on X has been performed. +// +#define NIL_CO3_MP_STRINGIZE(X) NIL_CO3_MP_DO_STRINGIZE(X) +#define NIL_CO3_MP_DO_STRINGIZE(X) #X + +// +// Helper macro NIL_CO3_MP_JOIN: +// The following piece of macro magic joins the two +// arguments together, even when one of the arguments is +// itself a macro (see 16.3.1 in C++ standard). The key +// is that macro expansion of macro arguments does not +// occur in NIL_CO3_MP_DO_JOIN2 but does in NIL_CO3_MP_DO_JOIN. +// +#define NIL_CO3_MP_JOIN(X, Y) NIL_CO3_MP_DO_JOIN(X, Y) +#define NIL_CO3_MP_DO_JOIN(X, Y) NIL_CO3_MP_DO_JOIN2(X, Y) +#define NIL_CO3_MP_DO_JOIN2(X, Y) X##Y diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp new file mode 100644 index 0000000000..eabe5b6043 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp @@ -0,0 +1,18 @@ +#pragma once + +#if defined(__SIZEOF_INT128__) +#define NIL_CO3_MP_HAS_INT128 +#endif + +// same again for __int128: +#if defined(NIL_CO3_MP_HAS_INT128) && defined(__cplusplus) +namespace nil::crypto3::multiprecision::detail { +#ifdef __GNUC__ + __extension__ typedef __int128 int128_t; + __extension__ typedef unsigned __int128 uint128_t; +#else + typedef __int128 int128_type; + typedef unsigned __int128 uint128_type; +#endif +} // namespace nil::crypto3::multiprecision::detail +#endif diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp new file mode 100644 index 0000000000..35138ee06b --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp @@ -0,0 +1,85 @@ +#pragma once + +#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/int128.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +#if __has_include() +#define NIL_CO3_MP_HAS_IMMINTRIN_H +#endif + +// +// If the compiler supports the intrinsics used by GCC internally +// inside then we'll use them directly. +// This is a bit of defensive programming, mostly for a modern clang +// sitting on top of an older GCC header install. +// +#if defined(__has_builtin) + +#if __has_builtin(__builtin_ia32_addcarryx_u64) +#define NIL_CO3_MP_ADDC __builtin_ia32_addcarryx_u +#endif + +#if __has_builtin(__builtin_ia32_subborrow_u64) +#define NIL_CO3_MP_SUBB __builtin_ia32_subborrow_u +#elif __has_builtin(__builtin_ia32_sbb_u64) +#define NIL_CO3_MP_SUBB __builtin_ia32_sbb_u +#endif + +#endif + +#ifndef NIL_CO3_MP_ADDC +#define NIL_CO3_MP_ADDC _addcarry_u +#endif +#ifndef NIL_CO3_MP_SUBB +#define NIL_CO3_MP_SUBB _subborrow_u +#endif + +#ifdef NIL_CO3_MP_HAS_IMMINTRIN_H + +#include // IWYU pragma: keep + +#if defined(NIL_CO3_MP_HAS_INT128) + +namespace nil::crypto3::multiprecision::detail { + + NIL_CO3_MP_FORCEINLINE unsigned char addcarry_limb(unsigned char carry, limb_type a, + limb_type b, limb_type* p_result) { + using cast_type = unsigned long long; + + return NIL_CO3_MP_JOIN(NIL_CO3_MP_ADDC, 64)(carry, a, b, + reinterpret_cast(p_result)); + } + + NIL_CO3_MP_FORCEINLINE unsigned char subborrow_limb(unsigned char carry, limb_type a, + limb_type b, limb_type* p_result) { + using cast_type = unsigned long long; + + return NIL_CO3_MP_JOIN(NIL_CO3_MP_SUBB, 64)(carry, a, b, + reinterpret_cast(p_result)); + } + +} // namespace nil::crypto3::multiprecision::detail + +#else + +namespace nil::crypto3::multiprecision::detail { + + NIL_CO3_MP_FORCEINLINE unsigned char addcarry_limb(unsigned char carry, limb_type a, + limb_type b, limb_type* p_result) { + return NIL_CO3_MP_JOIN(NIL_CO3_MP_ADDC, 32)(carry, a, b, + reinterpret_cast(p_result)); + } + + NIL_CO3_MP_FORCEINLINE unsigned char subborrow_limb(unsigned char carry, limb_type a, + limb_type b, limb_type* p_result) { + return NIL_CO3_MP_JOIN(NIL_CO3_MP_SUBB, 32)(carry, a, b, + reinterpret_cast(p_result)); + } + +} // namespace nil::crypto3::multiprecision::detail + +#endif + +#endif diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/limits.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/limits.hpp new file mode 100644 index 0000000000..4b348f8949 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/limits.hpp @@ -0,0 +1,83 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2012 John Maddock. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + +#pragma once + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" + +namespace nil::crypto3::multiprecision::detail { + template + constexpr big_uint get_min() { + constexpr big_uint val = 0u; + return val; + } + + template + constexpr big_uint get_max() { + constexpr auto val = ~big_uint(0u); + return val; + } + + constexpr std::size_t calc_digits10(std::size_t d) { + // + // We need floor(log10(2) * (d-1)), see: + // https://www.exploringbinary.com/number-of-digits-required-for-round-trip-conversions/ + // and references therein. + // + return static_cast( + 0.301029995663981195213738894724493026768189881462108541310 * + static_cast(d - 1u)); + } +} // namespace nil::crypto3::multiprecision::detail + +namespace std { + template + class numeric_limits> { + using number_type = nil::crypto3::multiprecision::big_uint; + + public: + static constexpr bool is_specialized = true; + + static constexpr number_type(min)() { + return nil::crypto3::multiprecision::detail::get_min(); + } + static constexpr number_type(max)() { + return nil::crypto3::multiprecision::detail::get_max(); + } + static constexpr number_type lowest() { return (min)(); } + static constexpr int digits = number_type::Bits; + static constexpr int digits10 = nil::crypto3::multiprecision::detail::calc_digits10(digits); + static constexpr int max_digits10 = + nil::crypto3::multiprecision::detail::calc_digits10(digits); + static constexpr bool is_signed = false; + static constexpr bool is_integer = true; + static constexpr bool is_exact = true; + static constexpr int radix = 2; + static constexpr number_type epsilon() { return 0; } + static constexpr number_type round_error() { return 0; } + static constexpr int min_exponent = 0; + static constexpr int min_exponent10 = 0; + static constexpr int max_exponent = 0; + static constexpr int max_exponent10 = 0; + static constexpr bool has_infinity = false; + static constexpr bool has_quiet_NaN = false; + static constexpr bool has_signaling_NaN = false; + static constexpr float_denorm_style has_denorm = denorm_absent; + static constexpr bool has_denorm_loss = false; + static constexpr number_type infinity() { return 0; } + static constexpr number_type quiet_NaN() { return 0; } + static constexpr number_type signaling_NaN() { return 0; } + static constexpr number_type denorm_min() { return 0; } + static constexpr bool is_iec559 = false; + static constexpr bool is_bounded = true; + static constexpr bool is_modulo = true; + static constexpr bool traps = false; + static constexpr bool tinyness_before = false; + }; +} // namespace std diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp new file mode 100644 index 0000000000..845d3900d1 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp @@ -0,0 +1,147 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2013 John Maddock. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + +#pragma once + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +namespace nil::crypto3::multiprecision::literals { + template + constexpr auto operator"" _bigui() { + constexpr std::size_t N = sizeof...(C); + static_assert(N > 2, "hex literal should start with 0x"); + constexpr std::array str{C...}; + constexpr auto result = + nil::crypto3::multiprecision::detail::parse_int_hex<(N - 2) * 4>({str.data(), N}); + return result; + } +} // namespace nil::crypto3::multiprecision::literals + +#define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ + namespace nil::crypto3::multiprecision::literals { \ + template \ + constexpr auto operator"" _bigui##Bits() { \ + constexpr std::size_t N = sizeof...(C); \ + constexpr std::array str{C...}; \ + constexpr auto result = \ + nil::crypto3::multiprecision::detail::parse_int_hex({str.data(), N}); \ + return result; \ + } \ + } + +// This is a comprehensive list of all bitlengths we use in algebra. +// Custom ones can be defined using this macro in every place where they are used. +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(7) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(13) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(15) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(16) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(17) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(18) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(64) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(92) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(94) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(128) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(130) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(149) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(150) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(151) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(152) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(160) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(161) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(163) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(164) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(177) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(178) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(179) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(180) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(181) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(182) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(183) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(191) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(192) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(205) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(206) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(222) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(223) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(224) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(225) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(226) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(239) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(248) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(249) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(250) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(251) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(252) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(253) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(254) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(255) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(256) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(257) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(263) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(264) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(280) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(281) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(292) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(293) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(294) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(295) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(296) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(297) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(298) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(315) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(316) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(319) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(320) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(330) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(331) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(374) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(375) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(376) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(377) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(378) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(379) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(380) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(381) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(384) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(503) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(504) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(507) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(512) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(515) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(516) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(521) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(546) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(577) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(578) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(585) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(595) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(636) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(706) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(707) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(758) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(753) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(759) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(761) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(859) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(860) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(893) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(894) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(913) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1024) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1490) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1536) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2048) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2790) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(3072) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4096) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4269) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4314) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(6144) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8192) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp new file mode 100644 index 0000000000..b45864e0e5 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp @@ -0,0 +1,5 @@ +#pragma once + +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp" // IWYU pragma: export diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp new file mode 100644 index 0000000000..b9af43b7ad --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp @@ -0,0 +1,363 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2021 Aleksei Moskvin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp" + +namespace nil::crypto3::multiprecision { + namespace detail { + template + class big_mod_impl { + public: + static constexpr std::size_t Bits = Bits_; + using big_uint_t = big_uint; + using modular_ops_t = typename modular_ops_storage_t::modular_ops_t; + + // Constructors + + protected: + template + constexpr big_mod_impl(const big_uint& x, + modular_ops_storage_t&& modular_ops_storage) + : m_modular_ops_storage(std::move(modular_ops_storage)) { + ops().adjust_modular(m_raw_base, x); + } + + public: + // Comparison + + constexpr bool compare_eq(const big_mod_impl& o) const { + return ops().compare_eq(o.ops()) && m_raw_base == o.m_raw_base; + } + + constexpr big_uint_t base() const { return ops().adjusted_regular(m_raw_base); } + constexpr const big_uint_t& mod() const { return ops().mod(); } + + // String conversion + + constexpr std::string str() const { return base().str() + " mod " + mod().str(); } + + // Mathemetical operations + + constexpr void negate() { + if (!is_zero(m_raw_base)) { + auto initial_m_base = m_raw_base; + m_raw_base = mod(); + m_raw_base -= initial_m_base; + } + } + + // Accessing raw base value. Should only be used internally by multiprecision library. + constexpr auto& raw_base() { return m_raw_base; } + constexpr const auto& raw_base() const { return m_raw_base; } + + constexpr const auto& ops() const { return m_modular_ops_storage.ops(); } + + protected: + modular_ops_storage_t m_modular_ops_storage; + big_uint_t m_raw_base; + }; + } // namespace detail + + template typename modular_ops_template> + struct big_mod_ct_impl : public detail::big_mod_impl< + std::decay_t::Bits, + detail::modular_ops_storage_ct> { + using base_type = + detail::big_mod_impl::Bits, + detail::modular_ops_storage_ct>; + + using typename base_type::big_uint_t; + + constexpr big_mod_ct_impl() : base_type(big_uint_t(0u), {}) {} + + template + constexpr big_mod_ct_impl(const big_uint& b) : base_type(b, {}) { + this->ops().adjust_modular(this->m_raw_base, b); + } + + // A method for converting a signed integer to a modular adaptor. + // + // TODO: We are not supposed to have this, but in the code we already have conversions from + // 'int' into modular type. In the future we must remove this. + template && std::is_signed_v, int> = 0> + constexpr big_mod_ct_impl(SI b) + : base_type(big_uint(std::abs(b)), {}) { + if (b < 0) { + this->negate(); + } + } + + template && std::is_unsigned_v, int> = 0> + constexpr big_mod_ct_impl(UI b) : base_type(big_uint(b), {}) {} + + template + constexpr big_mod_ct_impl with_replaced_base(const big_uint& b) const { + return big_mod_ct_impl(b); + } + }; + + template typename modular_ops_template> + struct big_mod_rt_impl + : public detail::big_mod_impl> { + using base_type = + detail::big_mod_impl>; + + using typename base_type::big_uint_t; + + // A method for converting a signed integer to a modular adaptor. + // + // TODO: We are not supposed to have this, but in the code we already have conversions from + // 'int' into modular type. In the future we must remove this. + template && std::is_signed_v, int> = 0> + constexpr big_mod_rt_impl(SI b, const big_uint_t& m) + : base_type(big_uint(std::abs(b)), m) { + if (b < 0) { + this->negate(); + } + } + + template + constexpr big_mod_rt_impl(const big_uint& b, const big_uint_t& m) + : base_type(b, m) {} + + template && std::is_unsigned_v, int> = 0> + constexpr big_mod_rt_impl(UI b, const big_uint_t& m) + : base_type(big_uint(b), m) {} + + template + constexpr big_mod_rt_impl with_replaced_base(const big_uint& b) const { + auto copy = *this; + copy.m_raw_base = b; + copy.ops().adjust_modular(copy.m_raw_base); + return copy; + } + }; + + namespace detail { + template + constexpr bool is_big_mod_v = false; + + template typename modular_ops_storage_t> + constexpr bool is_big_mod_v> = true; + + template typename modular_ops_storage_t> + constexpr bool is_big_mod_v> = true; + + template + constexpr bool is_modular_integral_v = + std::is_integral_v || detail::is_big_uint_v || is_big_mod_v; + + template, int> = 0> + constexpr std::size_t get_bits() { + return T::Bits; + } + } // namespace detail + + // Comparison + +#define NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(op) \ + template && detail::is_big_mod_v, int> = 0> \ + constexpr bool operator op(const T1& a, const T2& b) noexcept { \ + return a.compare_eq(b) op true; \ + } + + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(==) + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(!=) + +#undef NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL + + // Arithmetic operations + +#define NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE \ + template && detail::is_big_mod_v, int> = 0, \ + typename largest_t = T1> + +#define NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE \ + template && std::is_same_v, \ + int> = 0> + +#define NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE \ + template, int> = 0> + + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator+(const T1& a, const T2& b) noexcept { + NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); + largest_t result = a; + a.ops().add(result.raw_base(), b.raw_base()); + return result; + } + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator+=(big_mod_t& a, const T& b) noexcept { + NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); + a.ops().add(a.raw_base(), b.raw_base()); + return a; + } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator++(big_mod_t& a) noexcept { + ++a.raw_base(); + if (a.raw_base() == a.mod()) { + a.raw_base() = 0u; + } + return a; + } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator++(big_mod_t& a, int) noexcept { + auto copy = a; + ++a; + return copy; + } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator+(const big_mod_t& a) noexcept { return a; } + + namespace detail { + template + constexpr void subtract(big_mod_impl& result, + const big_mod_impl& o) { + if (result.raw_base() < o.raw_base()) { + auto v = result.mod(); + v -= o.raw_base(); + result.raw_base() += v; + } else { + result.raw_base() -= o.raw_base(); + } + } + } // namespace detail + + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator-(const T1& a, const T2& b) noexcept { + largest_t result = a; + detail::subtract(result, b); + return result; + } + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator-=(big_mod_t& a, const T& b) { + detail::subtract(a, b); + return a; + } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr auto& operator--(big_mod_t& a) noexcept { + if (is_zero(a.raw_base())) { + a.raw_base() = a.mod(); + } + --a.raw_base(); + return a; + } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr auto operator--(big_mod_t& a, int) noexcept { + auto copy = a; + --a; + return copy; + } + + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE + constexpr big_mod_t operator-(const big_mod_t& a) noexcept { + big_mod_t result = a; + result.negate(); + return result; + } + + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE + constexpr auto operator*(const T1& a, const T2& b) noexcept { + NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); + largest_t result = a; + a.ops().mul(result.raw_base(), b.raw_base()); + return result; + } + NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE + constexpr auto& operator*=(big_mod_t& a, const T& b) noexcept { + NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); + a.ops().mul(a.raw_base(), b.raw_base()); + return a; + } + +#undef NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE +#undef NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE +#undef NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE + + // Additional operations + + template + constexpr bool is_zero(const detail::big_mod_impl& val) noexcept { + // In barrett form raw_base is the same as base + // In montgomery form raw_base is base multiplied by r, so it is zero iff base is + return is_zero(val.raw_base()); + } + + // Hash + + template + constexpr std::size_t hash_value( + const detail::big_mod_impl& val) noexcept { + return hash_value(val.raw_base()); + } + + // IO + + template, int> = 0> + std::ostream& operator<<(std::ostream& os, const T& value) { + os << value.str(); + return os; + } + + // Common ops + + template, int> = 0> + constexpr bool is_zero(const big_mod_t& a) { + return a.is_zero(); + } + + // Actual big integer modular types + + // Montgomery modular big integer type with compile-time modulus. Modulus should be a static + // big_uint constant. + template + using montgomery_big_mod = big_mod_ct_impl; + + // Montgomery modular big integer type with runtime modulus. + template + using montgomery_big_mod_rt = big_mod_rt_impl; + + // Simple modular big integer type with compile-time modulus. Modulus should be a static + // big_uint constant. Uses barret optimizations. + template + using big_mod = big_mod_ct_impl; + + // Simple modular big integer type with runtime modulus. Uses barret optimizations. + template + using big_mod_rt = big_mod_rt_impl; + + // Modular big integer type with compile-time modulus, which automatically uses montomery form + // whenever possible (i.e. for odd moduli). Modulus should be a static big_uint constant. + template + using auto_big_mod = std::conditional_t, big_mod>; +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp new file mode 100644 index 0000000000..d4a945bd7a --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp @@ -0,0 +1,600 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2021 Aleksei Moskvin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private + +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision::detail { + template + constexpr bool check_montgomery_constraints(const big_uint &m) { + // Check m % 2 == 0 + return bit_test(m, 0u); + } + + template + struct modular_policy { + using big_uint_t = big_uint; + + static constexpr std::size_t limbs_count = big_uint_t::internal_limb_count; + static constexpr std::size_t limb_bits = big_uint_t::limb_bits; + + static constexpr std::size_t BitsCount_doubled = 2u * Bits; + static constexpr std::size_t BitsCount_doubled_1 = BitsCount_doubled + 1; + static constexpr std::size_t BitsCount_quadruple_1 = 2u * BitsCount_doubled + 1; + static constexpr std::size_t BitsCount_padded_limbs = limbs_count * limb_bits + limb_bits; + static constexpr std::size_t BitsCount_doubled_limbs = 2u * limbs_count * limb_bits; + static constexpr std::size_t BitsCount_doubled_padded_limbs = + BitsCount_doubled_limbs + limb_bits; + + using big_uint_doubled = big_uint; + using big_uint_doubled_1 = big_uint; + using big_uint_quadruple_1 = big_uint; + using big_uint_padded_limbs = big_uint; + using big_uint_doubled_limbs = big_uint; + using big_uint_doubled_padded_limbs = big_uint; + }; + + template + class barrett_modular_ops { + public: + static constexpr std::size_t Bits = Bits_; + using big_uint_t = big_uint; + using policy_type = modular_policy; + + using big_uint_doubled_1 = typename policy_type::big_uint_doubled_1; + using big_uint_quadruple_1 = typename policy_type::big_uint_quadruple_1; + using big_uint_padded_limbs = typename policy_type::big_uint_padded_limbs; + using big_uint_doubled_limbs = typename policy_type::big_uint_doubled_limbs; + using big_uint_doubled_padded_limbs = typename policy_type::big_uint_doubled_padded_limbs; + + static constexpr std::size_t limbs_count = policy_type::limbs_count; + static constexpr std::size_t limb_bits = policy_type::limb_bits; + + constexpr barrett_modular_ops(const big_uint_t &m) : m_mod(m), m_barrett_mu(0u) { + std::size_t bit = 2u * (1u + msb(m_mod)); + bit_set(m_barrett_mu, bit); + + m_barrett_mu /= m_mod; + + // Compute 2^Bits - Modulus, no matter if modulus is even or odd. + big_uint_padded_limbs compliment = 1u, modulus = m_mod; + compliment <<= Bits; + compliment -= modulus; + m_mod_compliment = compliment; + } + + constexpr const auto &mod() const { return m_mod; } + + protected: + constexpr const auto &mod_compliment() const { return m_mod_compliment; } + + private: + constexpr const auto &mu() const { return m_barrett_mu; } + + public: + template + constexpr void barrett_reduce(big_uint &result) const { + barrett_reduce(result, result); + } + + template= big_uint_t::Bits, int> = 0> + constexpr void barrett_reduce(big_uint &result, big_uint input) const { + if (!is_zero(input)) { + if (msb(input) < 2u * msb(mod()) + 1u) { + big_uint_quadruple_1 t1(input); + + t1 *= m_barrett_mu; + std::size_t shift_size = 2u * (1u + msb(mod())); + t1 >>= shift_size; + t1 *= mod(); + + input -= t1; + + if (input >= mod()) { + input -= mod(); + } + } else { + input %= mod(); + } + } + result = input; + } + + template= Bits3, int> = 0> + constexpr void add(big_uint &result, const big_uint &y) const { + NIL_CO3_MP_ASSERT(result < mod() && y < mod()); + + result += y; + // If we overflow and set the carry, we need to subtract the modulus, which is + // the same as adding 2 ^ Bits - Modulus to the remaining part of the number. + // After this we know for sure that the result < Modulus, do not waste time on + // checking again. + if (result.has_carry()) { + result += mod_compliment(); + result.set_carry(false); + } else if (result >= mod()) { + result -= mod(); + } + } + + template::Bits >= big_uint_t::Bits, int> = 0> + constexpr void mul(big_uint &result, const big_uint &y) const { + big_uint_doubled_limbs tmp = result; + tmp *= y; + barrett_reduce(result, tmp); + } + + template::Bits >= big_uint_t::Bits, int> = 0> + constexpr void exp(big_uint &result, const big_uint &a, + big_uint exp) const { + NIL_CO3_MP_ASSERT(a < mod()); + + if (exp == 0u) { + result = 1u; + return; + } + if (mod() == 1u) { + result = 0u; + return; + } + + big_uint_doubled_limbs base(a), res(1u); + + while (true) { + bool lsb = bit_test(exp, 0); + exp >>= 1u; + if (lsb) { + res *= base; + barrett_reduce(res); + if (is_zero(exp)) { + break; + } + } + base *= base; + barrett_reduce(base); + } + result = res; + } + + // Adjust to/from modular form + + constexpr void adjust_modular(big_uint_t &result) const { adjust_modular(result, result); } + + template + constexpr void adjust_modular(big_uint_t &result, big_uint input) const { + big_uint_doubled_limbs tmp; + barrett_reduce(tmp, input); + result = tmp; + } + + [[nodiscard]] constexpr big_uint_t adjusted_regular(const big_uint_t &a) const { + big_uint_t result; + adjust_regular(result, a); + return result; + } + + template= Bits3, int> = 0> + constexpr void adjust_regular(big_uint &result, const big_uint &input) const { + result = input; + } + + constexpr bool compare_eq(const barrett_modular_ops &o) const { return mod() == o.mod(); } + + protected: + big_uint_t m_mod; + // This is 2^Bits - m_mod, precomputed. + big_uint_t m_mod_compliment; + big_uint_doubled_1 m_barrett_mu; + }; + + template + class montgomery_modular_ops : public barrett_modular_ops { + public: + static constexpr std::size_t Bits = Bits_; + using big_uint_t = big_uint; + using policy_type = modular_policy; + + using big_uint_doubled_1 = typename policy_type::big_uint_doubled_1; + using big_uint_quadruple_1 = typename policy_type::big_uint_quadruple_1; + using big_uint_padded_limbs = typename policy_type::big_uint_padded_limbs; + using big_uint_doubled_limbs = typename policy_type::big_uint_doubled_limbs; + using big_uint_doubled_padded_limbs = typename policy_type::big_uint_doubled_padded_limbs; + + static constexpr std::size_t limbs_count = policy_type::limbs_count; + static constexpr std::size_t limb_bits = policy_type::limb_bits; + + constexpr montgomery_modular_ops(const big_uint_t &m) : barrett_modular_ops(m) { + if (!check_montgomery_constraints(m)) { + throw std::invalid_argument("module not usable with montgomery"); + } + + m_montgomery_p_dash = this->monty_inverse(this->m_mod.limbs()[0]); + + big_uint_doubled_padded_limbs r; + bit_set(r, 2 * this->m_mod.limbs_count() * limb_bits); + this->barrett_reduce(r); + + // Here we are intentionally throwing away half of the bits of r, it's + // correct. + m_montgomery_r2 = static_cast(r); + + m_no_carry_montgomery_mul_allowed = is_applicable_for_no_carry_montgomery_mul(); + } + + private: + /* + * Compute -input^-1 mod 2^limb_bits. Throws an exception if input + * is even. If input is odd, then input and 2^n are relatively prime + * and an inverse exists. + */ + constexpr limb_type monty_inverse(const limb_type &a) { + if (a % 2 == 0) { + throw std::invalid_argument("inverse does not exist"); + } + limb_type b = 1; + limb_type r = 0; + + for (std::size_t i = 0; i != limb_bits; ++i) { + const limb_type bi = b % 2; + r >>= 1; + r += bi << (limb_bits - 1); + + b -= a * bi; + b >>= 1; + } + + // Now invert in addition space + r = (~static_cast(0u) - r) + 1; + + return r; + } + + constexpr const auto &r2() const { return m_montgomery_r2; } + constexpr const auto &p_dash() const { return m_montgomery_p_dash; } + + public: + template= Bits, int> = 0> + constexpr void montgomery_reduce(big_uint &result) const { + big_uint_doubled_padded_limbs accum(result); + big_uint_doubled_padded_limbs prod; + + for (std::size_t i = 0; i < this->mod().limbs_count(); ++i) { + limb_type limb_accum = accum.limbs()[i]; + double_limb_type mult_res = limb_accum * + /// to prevent overflow error in constexpr + static_cast(p_dash()); + limb_type mult_res_limb = static_cast(mult_res); + + prod = this->mod(); + prod *= mult_res_limb; + prod <<= i * limb_bits; + accum += prod; + } + accum >>= this->mod().limbs_count() * limb_bits; + + if (accum >= this->mod()) { + accum -= this->mod(); + } + + result = accum; + } + + // Delegates Montgomery multiplication to one of corresponding algorithms. + template + constexpr void mul(big_uint &result, const big_uint &y) const { + if (m_no_carry_montgomery_mul_allowed) { + montgomery_mul_no_carry_impl(result, y); + } else { + montgomery_mul_CIOS_impl(result, y); + } + } + + private: + // Tests if the faster implementation of Montgomery multiplication is possible. + constexpr bool is_applicable_for_no_carry_montgomery_mul() const { + // Check that + // 1. The most significant bit of modulus is non-zero, meaning we have at least + // 1 additional bit in the number. E.g. if modulus is 255 bits, then we have 1 + // additional "unused" bit in the number. + // 2. Some other bit in modulus is 0. + // 3. The number has < 12 limbs. + return this->mod().limbs_count() < 12 && (Bits % sizeof(limb_type) != 0) && + this->mod_compliment() != limb_type(1u); + } + + public: + // Non-carry implementation of Montgomery multiplication. + // Implemented from pseudo-code at + // "https://hackmd.io/@gnark/modular_multiplication". + template + constexpr void montgomery_mul_no_carry_impl(big_uint &c, + const big_uint &b) const { + NIL_CO3_MP_ASSERT(c < this->mod() && b < this->mod()); + NIL_CO3_MP_ASSERT(is_applicable_for_no_carry_montgomery_mul()); + + // Obtain number of limbs + constexpr int N = big_uint::internal_limb_count; + + const big_uint a(c); // Copy the first argument, as the implemented + // algorithm doesn't work in-place. + + // We cannot write directly to 'c', because b may be equal to c, and by changing + // the value of 'c' we will change 'b' as well. + big_uint result = limb_type(0u); + + // Prepare temporary variables + limb_type A(0u), C(0u); + double_limb_type tmp(0u); + limb_type dummy(0u); + + auto *a_limbs = a.limbs(); + auto *b_limbs = b.limbs(); + auto *result_limbs = result.limbs(); + auto *m_mod_limbs = this->mod().limbs(); + + for (int i = 0; i < N; ++i) { + // "(A,t[0]) := t[0] + a[0]*b[i]" + tmp = a_limbs[0]; + tmp *= b_limbs[i]; + tmp += result_limbs[0]; + dbl_limb_to_limbs(tmp, A, result_limbs[0]); + + // "m := t[0]*q'[0] mod W" + tmp = result_limbs[0]; + // tmp *= q.limbs()[0]; + tmp *= p_dash(); + // tmp = -tmp; + // Note that m is a shorter integer, and we are taking the last bits of tmp. + limb_type m = tmp; + + // "(C,_) := t[0] + m*q[0]" + tmp = m; + tmp *= m_mod_limbs[0]; + tmp += result_limbs[0]; + dbl_limb_to_limbs(tmp, C, dummy); + + // The lower loop is unrolled. We want to do this for every 3, because + // normally mod_size == 4. + std::size_t j = 1; + +#define NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(X) \ + /* "(A,t[X]) := t[X] + a[X]*b[i] + A" */ \ + tmp = a_limbs[X]; \ + tmp *= b_limbs[i]; \ + tmp += result_limbs[X]; \ + tmp += A; \ + dbl_limb_to_limbs(tmp, A, result_limbs[X]); \ + \ + /* "(C,t[X-1]) := t[X] + m*q[X] + C" */ \ + tmp = m; \ + tmp *= m_mod_limbs[X]; \ + tmp += result_limbs[X]; \ + tmp += C; \ + dbl_limb_to_limbs(tmp, C, result_limbs[(X) - 1]); + + for (; j + 5 <= N; j += 5) { + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 1); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 2); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 3); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 4); + } + + for (; j + 3 <= N; j += 3) { + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 1); + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j + 2); + } + + for (; j < N; ++j) { + NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY(j); + } + + // "t[N-1] = C + A" + result_limbs[N - 1] = C + A; + } + + if (result >= this->mod()) { + result -= this->mod(); + } + c = result; + } +#undef NIL_CO3_MP_MONTGOMERY_MUL_NO_CARRY_LOOP_BODY + + template + constexpr void montgomery_mul_CIOS_impl(big_uint &result, + const big_uint &y) const { + NIL_CO3_MP_ASSERT(result < this->mod() && y < this->mod()); + + big_uint_t A(limb_type(0u)); + const std::size_t mod_size = this->mod().limbs_count(); + auto *mod_limbs = this->mod().limbs(); + auto mod_last_limb = static_cast(mod_limbs[0]); + auto y_last_limb = y.limbs()[0]; + auto *y_limbs = y.limbs(); + auto *x_limbs = result.limbs(); + auto *A_limbs = A.limbs(); + limb_type carry = 0; // This is the highest limb of 'A'. + + limb_type x_i = 0; + limb_type A_0 = 0; + limb_type u_i = 0; + + // A += x[i] * y + u_i * m followed by a 1 limb-shift to the right + limb_type k = 0; + limb_type k2 = 0; + + double_limb_type z = 0; + double_limb_type z2 = 0; + + for (std::size_t i = 0; i < mod_size; ++i) { + x_i = x_limbs[i]; + A_0 = A_limbs[0]; + u_i = (A_0 + x_i * y_last_limb) * p_dash(); + + // A += x[i] * y + u_i * m followed by a 1 limb-shift to the right + k = 0; + k2 = 0; + + z = static_cast(y_last_limb) * + static_cast(x_i) + + A_0 + k; + z2 = mod_last_limb * static_cast(u_i) + + static_cast(z) + k2; + k = static_cast(z >> std::numeric_limits::digits); + k2 = static_cast(z2 >> std::numeric_limits::digits); + + std::size_t j = 1; + + // The lower loop is unrolled. We want to do this for every 3, because + // normally mod_size == 4. + double_limb_type t = 0, t2 = 0; + +#define NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(X) \ + t = static_cast(y_limbs[X]) * static_cast(x_i) + \ + A_limbs[X] + k; \ + t2 = static_cast(mod_limbs[X]) * static_cast(u_i) + \ + static_cast(t) + k2; \ + A_limbs[(X) - 1] = static_cast(t2); \ + k = static_cast(t >> std::numeric_limits::digits); \ + k2 = static_cast(t2 >> std::numeric_limits::digits); + + for (; j + 5 <= mod_size; j += 5) { + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 1); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 2); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 3); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 4); + } + + for (; j + 3 <= mod_size; j += 3) { + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 1); + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j + 2); + } + + for (; j < mod_size; ++j) { + NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY(j); + } + + double_limb_type tmp = static_cast(carry) + k + k2; + A_limbs[mod_size - 1] = static_cast(tmp); + carry = static_cast(tmp >> std::numeric_limits::digits); + } + + if (carry) { + // The value of A is actually A + 2 ^ Bits, so remove that 2 ^ Bits. + A += this->mod_compliment(); + } else if (A >= this->mod()) { + A -= this->mod(); + } + + result = A; + } +#undef NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY + + template::Bits >= big_uint_t::Bits, int> = 0> + constexpr void exp(big_uint &result, const big_uint &a, + big_uint exp) const { + /// input parameter should be less than modulus + NIL_CO3_MP_ASSERT(a < this->mod()); + + big_uint_t R_mod_m(1u); + adjust_modular(R_mod_m); + + big_uint_t base(a); + + if (exp == 0u) { + result = 1u; + adjust_modular(result); + return; + } + if (this->mod() == 1u) { + result = 0u; + return; + } + + while (true) { + bool lsb = bit_test(exp, 0); + exp >>= 1u; + if (lsb) { + mul(R_mod_m, base); + if (exp == 0u) { + break; + } + } + mul(base, base); + } + result = R_mod_m; + } + + // Adjust to/from modular form + + constexpr void adjust_modular(big_uint_t &result) const { adjust_modular(result, result); } + + template + constexpr void adjust_modular(big_uint_t &result, const big_uint &input) const { + big_uint_doubled_limbs tmp; + this->barrett_reduce(tmp, input); + tmp *= r2(); + montgomery_reduce(tmp); + result = tmp; + } + + [[nodiscard]] constexpr big_uint_t adjusted_regular(const big_uint_t &a) const { + big_uint_t result; + adjust_regular(result, a); + return result; + } + + template= Bits3, int> = 0> + constexpr void adjust_regular(big_uint &result, const big_uint &input) const { + result = input; + montgomery_reduce(result); + } + + protected: + big_uint_t m_montgomery_r2; + limb_type m_montgomery_p_dash; + + // If set, no-carry optimization is allowed. Is set to + // is_applicable_for_no_carry_montgomery_mul() after initialization. + bool m_no_carry_montgomery_mul_allowed; + }; +} // namespace nil::crypto3::multiprecision::detail diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp new file mode 100644 index 0000000000..38c2f8910c --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp @@ -0,0 +1,55 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2021 Aleksei Moskvin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" + +namespace nil::crypto3::multiprecision::detail { + // Compile-time storage for modular arithmetic operations. Stores them in a constexpr variable. + template typename modular_ops_template> + class modular_ops_storage_ct { + public: + using big_uint_t = std::decay_t; + static constexpr std::size_t Bits = big_uint_t::Bits; + using modular_ops_t = modular_ops_template; + + static_assert(Bits == msb(Modulus) + 1, "modulus bit width should match used precision"); + + constexpr modular_ops_storage_ct() {} + + static constexpr const modular_ops_t &ops() { return m_modular_ops; } + + private: + static constexpr modular_ops_t m_modular_ops{Modulus}; + }; + + // Runtime storage for modular arithmetic operations. Stores them in a plain variable + // constructed at runtime. + template typename modular_ops_template> + class modular_ops_storage_rt { + public: + using big_uint_t = big_uint; + using modular_ops_t = modular_ops_template; + + constexpr modular_ops_storage_rt(const big_uint_t &input) : m_modular_ops(input) {} + + constexpr const modular_ops_t &ops() const { return m_modular_ops; } + + private: + modular_ops_t m_modular_ops; + }; +} // namespace nil::crypto3::multiprecision::detail diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp new file mode 100644 index 0000000000..c42b3d0e91 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp @@ -0,0 +1,21 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +#include "nil/crypto3/multiprecision/big_int/ops/inverse.hpp" + +namespace nil::crypto3::multiprecision { + template + constexpr big_mod_t inverse_extended_euclidean_algorithm(const big_mod_t &modular) { + return modular.with_replaced_base( + inverse_extended_euclidean_algorithm(modular.base(), modular.mod())); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp new file mode 100644 index 0000000000..4d45dad024 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp @@ -0,0 +1,31 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2019-2021 Aleksei Moskvin +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" + +namespace nil::crypto3::multiprecision { + template, int> = 0> + constexpr big_mod_t powm(const big_mod_t &b, const big_uint &e) { + auto result = b; + result.ops().exp(result.raw_base(), b.raw_base(), e); + return result; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp new file mode 100644 index 0000000000..face3b4b43 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp @@ -0,0 +1,211 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2015 John Maddock. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt +/////////////////////////////////////////////////////////////// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/endian.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision { + namespace detail { + /* This specialization is used when assigning `chunk_bits` + * of `bits` into `val` at `bit_location` in case where `val` + * is larger than one limb (machine word). + */ + template + void assign_bits(big_uint& val, Unsigned bits, std::size_t bit_location, + std::size_t chunk_bits) { + std::size_t limb = bit_location / limb_bits; + std::size_t shift = bit_location % limb_bits; + + limb_type mask = chunk_bits >= limb_bits + ? ~static_cast(0u) + : (static_cast(1u) << chunk_bits) - 1; + + limb_type value = static_cast(bits & mask) << shift; + if (value) { + // TODO(ioxid): when should we throw? + // We are ignoring any bits that will not fit into the number. + // We are not throwing, we will use as many bits from the input as we need to. + if (val.limbs_count() > limb) { + val.limbs()[limb] |= value; + } + } + + /* If some extra bits need to be assigned to the next limb */ + if (chunk_bits > limb_bits - shift) { + shift = limb_bits - shift; + chunk_bits -= shift; + bit_location += shift; + auto extra_bits = bits >> shift; + if (extra_bits) { + assign_bits(val, extra_bits, bit_location, chunk_bits); + } + } + } + + /* This specialization is used when assigning `chunk_bits` + * of `bits` into `val` at `bit_location` in case where `val` + * fits into one limb (machine word). + */ + template + void assign_bits(big_uint& val, Unsigned bits, std::size_t bit_location, + std::size_t chunk_bits, + const std::integral_constant& /*unused*/) { + using limb_type = typename big_uint::limb_type; + // + // Check for possible overflow, this may trigger an exception, or have no effect + // depending on whether this is a checked integer or not: + // + // We are not throwing, we will use as many bits from the input as we need to. + // NIL_CO3_MP_ASSERT(!((bit_location >= limb_bits) && bits)); + + limb_type mask = chunk_bits >= limb_bits + ? ~static_cast(0u) + : (static_cast(1u) << chunk_bits) - 1; + limb_type value = (static_cast(bits) & mask) << bit_location; + *val.limbs() |= value; + + // + // Check for overflow bits: + // + bit_location = limb_bits - bit_location; + + NIL_CO3_MP_ASSERT( + !((bit_location < sizeof(bits) * CHAR_BIT) && (bits >>= bit_location))); + } + + template + std::uintmax_t extract_bits(const big_uint& val, std::size_t location, + std::size_t count) { + std::size_t limb = location / limb_bits; + std::size_t shift = location % limb_bits; + std::uintmax_t result = 0; + std::uintmax_t mask = count == std::numeric_limits::digits + ? ~static_cast(0) + : (static_cast(1u) << count) - 1; + if (count > (limb_bits - shift)) { + result = extract_bits(val, location + limb_bits - shift, + count - limb_bits + shift); + result <<= limb_bits - shift; + } + if (limb < val.limbs_count()) { + result |= (val.limbs()[limb] >> shift) & mask; + } + return result; + } + + template + big_uint& import_bits_generic(big_uint& result, Iterator i, Iterator j, + std::size_t chunk_size = 0, bool msv_first = true) { + big_uint newval; + + using value_type = typename std::iterator_traits::value_type; + using difference_type = typename std::iterator_traits::difference_type; + using size_type = typename std::make_unsigned::type; + + if (!chunk_size) { + chunk_size = std::numeric_limits::digits; + } + + size_type limbs = std::distance(i, j); + size_type bits = limbs * chunk_size; + + NIL_CO3_MP_ASSERT(bits <= Bits); + + difference_type bit_location = msv_first ? bits - chunk_size : 0; + difference_type bit_location_change = + msv_first ? -static_cast(chunk_size) : chunk_size; + + while (i != j) { + assign_bits(newval, *i, static_cast(bit_location), chunk_size); + ++i; + bit_location += bit_location_change; + } + + // This will remove the upper bits using upper_limb_mask. + newval.normalize(); + + result = std::move(newval); + return result; + } + + template + inline big_uint import_bits_fast(big_uint& result, T* i, T* j, + std::size_t chunk_size = 0) { + std::size_t byte_len = (j - i) * (chunk_size ? chunk_size / CHAR_BIT : sizeof(*i)); + std::size_t limb_len = byte_len / sizeof(limb_type); + if (byte_len % sizeof(limb_type)) { + ++limb_len; + } + + NIL_CO3_MP_ASSERT(result.limbs_count() > limb_len); + + result.limbs()[result.limbs_count() - 1] = 0u; + std::memcpy(result.limbs(), i, + (std::min)(byte_len, result.limbs_count() * sizeof(limb_type))); + + // This is probably unneeded, but let it stay for now. + result.normalize(); + return result; + } + } // namespace detail + + template + inline big_uint& import_bits(big_uint& val, Iterator i, Iterator j, + std::size_t chunk_size = 0, bool msv_first = true) { + return detail::import_bits_generic(val, i, j, chunk_size, msv_first); + } + + template + inline big_uint& import_bits(big_uint& val, T* i, T* j, std::size_t chunk_size = 0, + bool msv_first = true) { +#if NIL_CO3_MP_ENDIAN_LITTLE_BYTE + if (((chunk_size % CHAR_BIT) == 0) && !msv_first && (sizeof(*i) * CHAR_BIT == chunk_size)) { + return detail::import_bits_fast(val, i, j, chunk_size); + } +#endif + return detail::import_bits_generic(val, i, j, chunk_size, msv_first); + } + + template + OutputIterator export_bits(const big_uint& val, OutputIterator out, + std::size_t chunk_size, bool msv_first = true) { + if (!val) { + *out = 0; + ++out; + return out; + } + std::size_t bitcount = msb(val) + 1; + + std::ptrdiff_t bit_location = + msv_first ? static_cast(bitcount - chunk_size) : 0; + const std::ptrdiff_t bit_step = msv_first ? (-static_cast(chunk_size)) + : static_cast(chunk_size); + while (bit_location % bit_step) { + ++bit_location; + } + do { + *out = detail::extract_bits(val, bit_location, chunk_size); + ++out; + bit_location += bit_step; + } while ((bit_location >= 0) && (bit_location < static_cast(bitcount))); + + return out; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp new file mode 100644 index 0000000000..34fc67fdf6 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp @@ -0,0 +1,78 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2021 Aleksei Moskvin +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include + +#include "nil/crypto3/multiprecision/big_int/big_int.hpp" +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" + +namespace nil::crypto3::multiprecision { + namespace detail { + // a^(-1) mod p + // http://www-math.ucdenver.edu/~wcherowi/courses/m5410/exeucalg.html + template + constexpr big_int extended_euclidean_algorithm(const big_int& num1, + const big_int& num2, + big_int& bezout_x, + big_int& bezout_y) { + big_int x, y, tmp_num1 = num1, tmp_num2 = num2; + y = 1u; + x = 0u; + + bezout_x = 1u; + bezout_y = 0u; + + // Extended Euclidean Algorithm + while (!is_zero(tmp_num2)) { + big_int quotient = tmp_num1; + big_int remainder = tmp_num1; + big_int placeholder; + + quotient /= tmp_num2; + remainder %= tmp_num2; + + tmp_num1 = tmp_num2; + tmp_num2 = remainder; + + big_int temp_x = x, temp_y = y; + placeholder = quotient * x; + placeholder = bezout_x - placeholder; + x = placeholder; + bezout_x = temp_x; + + placeholder = quotient * y; + placeholder = bezout_y - placeholder; + y = placeholder; + bezout_y = temp_y; + } + return tmp_num1; + } + } // namespace detail + + template + constexpr big_uint inverse_extended_euclidean_algorithm(const big_uint& a, + const big_uint& m) { + big_int aa = a, mm = m, x, y, g; + g = detail::extended_euclidean_algorithm(aa, mm, x, y); + if (g != 1u) { + return 0u; + } + x %= m; + if (x.negative()) { + x += m; + } + NIL_CO3_MP_ASSERT(x < m && !x.negative()); + return x.abs(); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp new file mode 100644 index 0000000000..bdc5ba5e60 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp @@ -0,0 +1,67 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2018-2020 Mikhail Komarov +// Copyright (c) 2021 Aleksei Moskvin +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" + +namespace nil::crypto3::multiprecision { + + template + constexpr int jacobi(const big_uint &a, const big_uint &n) { + using big_uint_t = big_uint; + + if (n % 2 == 0 || n <= 1) { + throw std::invalid_argument("jacobi: second argument must be odd and > 1"); + } + + big_uint_t x = a, y = n; + int J = 1; + + while (y > 1) { + x %= y; + + big_uint_t yd2 = y; + yd2 >>= 1; + + if (x > yd2) { + big_uint_t tmp(y); + tmp -= x; + x = tmp; + if (y % 4 == 3) { + J = -J; + } + } + if (is_zero(x)) { + return 0; + } + + std::size_t shifts = lsb(x); + x >>= shifts; + if (shifts & 1) { + std::size_t y_mod_8 = static_cast(y % 8); + if (y_mod_8 == 3 || y_mod_8 == 5) { + J = -J; + } + } + + if (x % 4 == 3 && y % 4 == 3) { + J = -J; + } + + std::swap(x, y); + } + return J; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp new file mode 100644 index 0000000000..cc5dd23e45 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp @@ -0,0 +1,123 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2012-2020 John Maddock. +// Copyright 2020 Madhur Chauhan. +// Distributed under the Boost Software License, Version 1.0. +// (See accompanying file LICENSE_1_0.txt or copy at +// https://www.boost.org/LICENSE_1_0.txt) +/////////////////////////////////////////////////////////////// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision { + template + NIL_CO3_MP_FORCEINLINE constexpr bool is_zero(const big_uint &val) noexcept { + for (std::size_t i = 0; i < val.limbs_count(); ++i) { + if (val.limbs()[i] != 0) { + return false; + } + } + return true; + } + + template + constexpr std::size_t lsb(const big_uint &a) { + // + // Find the index of the least significant limb that is non-zero: + // + std::size_t index = 0; + while ((index < a.limbs_count()) && !a.limbs()[index]) { + ++index; + } + + if (index == a.limbs_count()) { + throw std::invalid_argument("zero has no lsb"); + } + + // + // Find the index of the least significant bit within that limb: + // + std::size_t result = std::countr_zero(a.limbs()[index]); + + return result + index * big_uint::limb_bits; + } + + template + constexpr std::size_t msb(const big_uint &a) { + // + // Find the index of the most significant bit that is non-zero: + // + for (std::size_t i = a.limbs_count() - 1; i > 0; --i) { + if (a.limbs()[i] != 0) { + return i * big_uint::limb_bits + std::bit_width(a.limbs()[i]) - 1; + } + } + if (a.limbs()[0] == 0) { + throw std::invalid_argument("zero has no msb"); + } + return std::bit_width(a.limbs()[0]) - 1; + } + + template + constexpr bool bit_test(const big_uint &val, std::size_t index) noexcept { + using detail::limb_type; + + std::size_t offset = index / big_uint::limb_bits; + std::size_t shift = index % big_uint::limb_bits; + limb_type mask = limb_type(1u) << shift; + if (offset >= val.limbs_count()) { + return false; + } + return static_cast(val.limbs()[offset] & mask); + } + + template + constexpr void bit_set(big_uint &val, std::size_t index) { + using detail::limb_type; + + std::size_t offset = index / big_uint::limb_bits; + std::size_t shift = index % big_uint::limb_bits; + limb_type mask = limb_type(1u) << shift; + if (offset >= val.limbs_count()) { + return; // fixed precision overflow + } + val.limbs()[offset] |= mask; + } + + template + constexpr void bit_unset(big_uint &val, std::size_t index) noexcept { + using detail::limb_type; + + std::size_t offset = index / big_uint::limb_bits; + std::size_t shift = index % big_uint::limb_bits; + limb_type mask = limb_type(1u) << shift; + if (offset >= val.limbs_count()) { + return; + } + val.limbs()[offset] &= ~mask; + val.normalize(); + } + + template + constexpr void bit_flip(big_uint &val, std::size_t index) { + using detail::limb_type; + + std::size_t offset = index / big_uint::limb_bits; + std::size_t shift = index % big_uint::limb_bits; + limb_type mask = limb_type(1u) << shift; + if (offset >= val.limbs_count()) { + return; // fixed precision overflow + } + val.limbs()[offset] ^= mask; + val.normalize(); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp new file mode 100644 index 0000000000..16609231a9 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp @@ -0,0 +1,135 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2018-2020 Mikhail Komarov +// Copyright (c) 2018-2020 Pavel Kharitonov +// Copyright (c) 2021 Aleksei Moskvin +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp" +#include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision { + template + constexpr big_uint ressol(const big_uint &a, const big_uint &p) { + /* + * The implementation is split for two different cases: + * 1. if p mod 4 == 3 we apply Handbook of Applied Cryptography algorithm 3.36 and compute + * r directly as r = n(p+1)/4 mod p + * 2. otherwise we use Tonelli-Shanks algorithm + */ + using big_uint_t = big_uint; + using big_uint_padded_t = big_uint; + + using ui_type = detail::limb_type; + + big_uint_t two = ui_type(2u); + big_uint_t res; + + if (is_zero(a)) { + return 0u; + } + NIL_CO3_MP_ASSERT(a < p); + + if (p == two) { + return a; + } + NIL_CO3_MP_ASSERT(p > 1u); + NIL_CO3_MP_ASSERT(p % 2u != 0u); + + if (jacobi(a, p) != 1) { + throw std::invalid_argument("Not a quadratic residue"); + } + + // We can use montgomery_big_mod because p is odd + + montgomery_big_mod_rt a_mod(a, p); + + if (p % 4 == 3) { + big_uint_padded_t exp_padded = p; + + ++exp_padded; + exp_padded >>= 2u; + + return powm(a_mod, big_uint_t(exp_padded)).base(); + } + + big_uint_t p_negone = p; + --p_negone; + std::size_t s = lsb(p_negone); + + big_uint_t q = p; + q >>= s; + --q; + q >>= 1u; + + montgomery_big_mod_rt n_mod = a_mod; + + auto r_mod = powm(a_mod, q); + auto r_sq_mod = powm(r_mod, two); + n_mod *= r_sq_mod; + r_mod *= a_mod; + + if (n_mod.base() == 1u) { + return r_mod.base(); + } + + // find random quadratic nonresidue z + big_uint_t z = two; + while (jacobi(z, p) == 1) { + if (is_zero(z)) { + throw std::invalid_argument("No quadratic nonresidue"); + } + ++z; + } + + q <<= 1u; + ++q; + + montgomery_big_mod_rt z_mod(z, p); + + auto c_mod = powm(z_mod, q); + + while (n_mod.base() > 1u) { + std::size_t i = 0u; + + auto q_mod = n_mod; + + while (q_mod.base() != 1u) { + q_mod = powm(q_mod, two); + ++i; + + if (i >= s) { + // TODO(ioxid): when can this happen? (jacobi said that this should not happen) + // Martun: the value now has a square root + throw std::invalid_argument("Not a quadratic residue"); + } + } + + big_uint_t power_of_2; + + bit_set(power_of_2, s - i - 1); + c_mod = powm(c_mod, power_of_2); + r_mod *= c_mod; + c_mod = powm(c_mod, two); + n_mod *= c_mod; + + s = i; + } + + return r_mod.base(); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp new file mode 100644 index 0000000000..e95ead027e --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp @@ -0,0 +1,101 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2018-2020 Mikhail Komarov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/storage.hpp" + +namespace nil::crypto3::multiprecision { + /* Vector version */ + template + std::vector find_wnaf(const std::size_t window_size, + const big_uint& scalar) noexcept { + using big_uint_t = big_uint; + using ui_type = detail::limb_type; + + // upper bound + constexpr std::size_t length = + big_uint_t::internal_limb_count * std::numeric_limits::digits; + std::vector res(length + 1); + + big_uint_t c(scalar); + ui_type j = 0; + + while (is_zero(c)) { + long u = 0; + if (bit_test(c, 0)) { + u = c.limbs()[0] % (1u << (window_size + 1)); + if (u > (1 << window_size)) { + u = u - (1 << (window_size + 1)); + } + + if (u > 0) { + c -= ui_type(u); + } else { + c += ui_type(-u); + } + } else { + u = 0; + } + res[j] = u; + ++j; + + c >>= 1; + } + + return res; + } + + /* Array version */ + template + constexpr auto find_wnaf_a(const std::size_t window_size, + const big_uint& scalar) noexcept { + using big_uint_t = big_uint; + using ui_type = detail::limb_type; + + // upper bound + constexpr std::size_t length = + big_uint_t::internal_limb_count * std::numeric_limits::digits; + + std::array res{0}; + + big_uint_t c(scalar); + ui_type j = 0; + + while (!is_zero(c)) { + long u = 0; + if (bit_test(c, 0)) { + u = c.limbs()[0] % (1u << (window_size + 1)); + if (u > (1 << window_size)) { + u = u - (1 << (window_size + 1)); + } + + if (u > 0) { + c -= u; + } else { + c += ui_type(-u); + } + } + + res[j] = u; + ++j; + c >>= 1; + } + + return res; + } + +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp new file mode 100644 index 0000000000..2a0c06ba23 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp @@ -0,0 +1,37 @@ +#pragma once + +// IWYU pragma: private + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/detail/int128.hpp" + +namespace nil::crypto3::multiprecision::detail { +#ifdef NIL_CO3_MP_HAS_INT128 + using limb_type = std::uint64_t; + using double_limb_type = uint128_t; + using signed_limb_type = std::int64_t; + using signed_double_limb_type = int128_t; +#else + using limb_type = std::uint32_t; + using double_limb_type = std::uint64_t; + using signed_limb_type = std::int32_t; + using signed_double_limb_type = std::int64_t; +#endif + + using limb_pointer = limb_type *; + using const_limb_pointer = const limb_type *; + + static constexpr std::size_t limb_bits = sizeof(limb_type) * CHAR_BIT; + static constexpr limb_type max_limb_value = ~static_cast(0u); + + // Given a value represented in 'double_limb_type', decomposes it into + // two 'limb_type' variables, based on high order bits and low order bits. + // There 'a' receives high order bits of 'X', and 'b' receives the low order bits. + static constexpr void dbl_limb_to_limbs(const double_limb_type &X, limb_type &a, limb_type &b) { + b = X; + a = X >> limb_bits; + } +} // namespace nil::crypto3::multiprecision::detail diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp new file mode 100644 index 0000000000..3dd9f1fc12 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp @@ -0,0 +1,3 @@ +#pragma once + +#include \ No newline at end of file diff --git a/crypto3/libs/multiprecision/test/CMakeLists.txt b/crypto3/libs/multiprecision/test/CMakeLists.txt index e2e050e90c..9a9237b4c9 100644 --- a/crypto3/libs/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/multiprecision/test/CMakeLists.txt @@ -8,6 +8,7 @@ #---------------------------------------------------------------------------# add_custom_target(${CURRENT_PROJECT_NAME}_test_suite_modular_cpp_int_tests) +add_custom_target(${CURRENT_PROJECT_NAME}_test_suite_big_int_tests) cm_test_link_libraries( ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} @@ -26,7 +27,7 @@ macro(define_runtime_multiprecision_test name) ${Boost_INCLUDE_DIRS} ) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17 + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 23 CXX_STANDARD_REQUIRED TRUE) if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -48,6 +49,16 @@ macro(define_modular_cpp_int_test name) endmacro(define_modular_cpp_int_test) +macro(define_big_int_test name) + define_runtime_multiprecision_test(${name}) + + set(test_name "${CURRENT_PROJECT_NAME}_${name}_test") + target_compile_definitions(${test_name} PUBLIC -DTEST_CPP_INT) + # target_link_libraries(${test_name} no_eh_support) + add_dependencies(${CURRENT_PROJECT_NAME}_test_suite_big_int_tests ${test_name}) + +endmacro(define_big_uint_test) + set(RUNTIME_TESTS_NAMES "inverse" "jacobi" @@ -59,6 +70,17 @@ set(MODULAR_TESTS_NAMES "modular_adaptor_fixed" ) +set(BIG_INT_TESTS_NAMES + "big_int" + "big_int_comparision" + "big_int_cpp_int_conversions" + "big_int_inverse" + "big_int_jacobi" + "big_int_modular" + "big_int_modular_comprehensive" + "big_int_ressol" +) + foreach(TEST_NAME ${RUNTIME_TESTS_NAMES}) define_runtime_multiprecision_test(${TEST_NAME}) endforeach() @@ -66,3 +88,7 @@ endforeach() foreach(TEST_NAME ${MODULAR_TESTS_NAMES}) define_modular_cpp_int_test(${TEST_NAME}) endforeach() + +foreach(TEST_NAME ${BIG_INT_TESTS_NAMES}) + define_big_int_test(${TEST_NAME}) +endforeach() diff --git a/crypto3/libs/multiprecision/test/big_int.cpp b/crypto3/libs/multiprecision/test/big_int.cpp new file mode 100644 index 0000000000..4dbb77b9b2 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int.cpp @@ -0,0 +1,197 @@ + +#define BOOST_TEST_MODULE big_int_test + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/literals.hpp" + +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(32) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(33) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(36) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(37) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(60) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(83) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(85) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(133) + +using namespace nil::crypto3::multiprecision::literals; + +BOOST_AUTO_TEST_SUITE(smoke) + +BOOST_AUTO_TEST_CASE(construct_constexpr) { + constexpr nil::crypto3::multiprecision::big_uint<60> a = 0x123_bigui60; +} + +BOOST_AUTO_TEST_CASE(to_string_trivial) { BOOST_CHECK_EQUAL((0x1_bigui60).str(), "0x1"); } + +BOOST_AUTO_TEST_CASE(to_string_small) { BOOST_CHECK_EQUAL((0x20_bigui60).str(), "0x20"); } + +BOOST_AUTO_TEST_CASE(to_string_medium) { + constexpr auto a = 0x123456789ABCDEF1234321_bigui85; + BOOST_CHECK_EQUAL(a.str(), "0x123456789ABCDEF1234321"); +} + +BOOST_AUTO_TEST_CASE(to_string_big) { + constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + BOOST_CHECK_EQUAL(a.str(), "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"); +} + +BOOST_AUTO_TEST_CASE(ops) { + nil::crypto3::multiprecision::big_uint<60> a = 2u, b; + + auto c1{a}; + auto c2{std::move(a)}; + auto c3{2}; + auto c4{2u}; + b = a; + b = std::move(a); + b = 2; + b = 2u; + +#define TEST_BINARY_OP(op) \ + do { \ + b = 32u; \ + a = 4; \ + b = a op a; \ + /* b = 2 op a; */ \ + /* b = a op 2; */ \ + /* b = 2u op a; */ \ + /* b = a op 2u; */ \ + b = 32u; \ + b op## = a; \ + /* b op## = 2; */ \ + /*b op## = 2u; */ \ + } while (false) + + TEST_BINARY_OP(+); + ++b; + b++; + b = +b; + + TEST_BINARY_OP(-); + --b; + b--; + // b = -b; + + TEST_BINARY_OP(%); + TEST_BINARY_OP(/); + TEST_BINARY_OP(*); + + TEST_BINARY_OP(&); + TEST_BINARY_OP(|); + TEST_BINARY_OP(^); + + b = ~a; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(addition) + +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_bigui60 + 0x3_bigui60, 0x5_bigui60); } + +BOOST_AUTO_TEST_CASE(does_not_wrap) { + BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui32 + 0x2_bigui32, 0x100000001_bigui33); +} + +BOOST_AUTO_TEST_CASE(does_not_wrap_rev) { + BOOST_CHECK_EQUAL(0x2_bigui32 + 0xFFFFFFFF_bigui32, 0x100000001_bigui33); +} + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL(0xAFFFFFFFF_bigui36 + 0x2_bigui36, 0xB00000001_bigui36); +} + +BOOST_AUTO_TEST_CASE(multilimb_rev) { + BOOST_CHECK_EQUAL(0x2_bigui36 + 0xAFFFFFFFF_bigui36, 0xB00000001_bigui36); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(multiplication) + +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_bigui60 * 0x3_bigui60, 0x6_bigui60); } + +BOOST_AUTO_TEST_CASE(wraps) { + BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui32 * 0x2_bigui32, 0x1FFFFFFFE_bigui33); +} + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL(0xAFFFFFFFF_bigui36 * 0x2_bigui36, 0x15FFFFFFFE_bigui37); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(division) + +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_bigui60 / 0x2_bigui60, 0x3_bigui60); } + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui36 / 0x2_bigui36, 0x7FFFFFFF_bigui36); +} + +BOOST_AUTO_TEST_CASE(failing_small) { + BOOST_CHECK_EQUAL(0x442a8c9973ac96aec_bigui / 0x1874dfece1887_bigui, 0x2c988_bigui); +} + +BOOST_AUTO_TEST_CASE(big) { + BOOST_CHECK_EQUAL( + 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_bigui133 / 0x7DDD38BA708356E41324F_bigui83, + 0x38AB4C1B9E373_bigui133); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(modulus) + +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_bigui60 % 0x4_bigui60, 0x3_bigui60); } + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui36 % 0x7_bigui36, 0x3_bigui36); +} + +BOOST_AUTO_TEST_CASE(failing) { + BOOST_CHECK_EQUAL( + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256 % 2, 1u); +} + +BOOST_AUTO_TEST_CASE(failing2) { + BOOST_CHECK_EQUAL(0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256 % + 0x200000000_bigui, + 0x100000001_bigui); +} + +BOOST_AUTO_TEST_CASE(failing3) { + BOOST_CHECK_EQUAL(0xFFFFFFFFFFFFFFFFFFFFFFFF_bigui % 0x100000000FFFFFFFF_bigui, + 0x1fffffffe_bigui); +} + +BOOST_AUTO_TEST_CASE(big) { + BOOST_CHECK_EQUAL( + 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_bigui133 % 0x7DDD38BA708356E41324F_bigui83, + 0xE60EDD894AC4D0D82E58_bigui133); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(convert) + +BOOST_AUTO_TEST_CASE(to_uint64_t) { + std::uint64_t a = static_cast(0x123456789ABCDEF_bigui64); + BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF); +} + +BOOST_AUTO_TEST_CASE(from_uint64_t) { + nil::crypto3::multiprecision::big_uint<64> a = static_cast(0x123456789ABCDEFull); + BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_bigui64); +} + +BOOST_AUTO_TEST_CASE(from_int64_t) { + nil::crypto3::multiprecision::big_uint<64> a = static_cast(0x123456789ABCDEFull); + BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_bigui64); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_comparision.cpp b/crypto3/libs/multiprecision/test/big_int_comparision.cpp new file mode 100644 index 0000000000..9f3b17ef2f --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_comparision.cpp @@ -0,0 +1,74 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2024 Martun Karapetyan +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#define BOOST_TEST_MODULE big_int_comparision_test + +#include +#include +#include +#include +#include + +// We need cpp_int to compare to it. +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" + +using namespace boost::multiprecision; + +using nil::crypto3::multiprecision::big_uint; +using nil::crypto3::multiprecision::to_cpp_int; +using nil::crypto3::multiprecision::unsigned_cpp_int_type; + +// This test case uses normal boost::cpp_int for comparison to our big_uint +template +void value_comparisons_tests(const big_uint& a, const big_uint& b) { + typedef big_uint Backend1; + typedef big_uint Backend2; + typedef unsigned_cpp_int_type cpp_int_number1; + typedef unsigned_cpp_int_type cpp_int_number2; + + // Convert from big_uint to cpp_int_backend numbers. + cpp_int_number1 a_cppint = to_cpp_int(a); + cpp_int_number2 b_cppint = to_cpp_int(b); + + BOOST_CHECK_EQUAL(a > b, a_cppint > b_cppint); + BOOST_CHECK_EQUAL(a >= b, a_cppint >= b_cppint); + BOOST_CHECK_EQUAL(a == b, a_cppint == b_cppint); + BOOST_CHECK_EQUAL(a < b, a_cppint < b_cppint); + BOOST_CHECK_EQUAL(a <= b, a_cppint <= b_cppint); + BOOST_CHECK_EQUAL(a != b, a_cppint != b_cppint); +} + +template +void value_comparisons_tests(const std::size_t N) { + using standard_number1 = big_uint; + using standard_number2 = big_uint; + + int seed = 0; + boost::random::mt19937 gen(seed); + boost::random::uniform_int_distribution d1; + boost::random::uniform_int_distribution d2; + + for (std::size_t i = 0; i < N; ++i) { + standard_number1 a = d1(gen); + standard_number2 b = d2(gen); + value_comparisons_tests(a, b); + } +} + +BOOST_AUTO_TEST_SUITE(static_tests) + +BOOST_AUTO_TEST_CASE(base_test_backend_12_17) { value_comparisons_tests<12, 17>(1000); } + +BOOST_AUTO_TEST_CASE(base_test_backend_260_130) { value_comparisons_tests<260, 130>(1000); } + +BOOST_AUTO_TEST_CASE(base_test_backend_128_256) { value_comparisons_tests<128, 256>(1000); } + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp new file mode 100644 index 0000000000..2e15bb15b6 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp @@ -0,0 +1,26 @@ +#define BOOST_TEST_MODULE big_int_cpp_int_conversions_test + +#include + +#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" +#include "nil/crypto3/multiprecision/big_int/literals.hpp" + +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(60) +BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(60) + +using namespace nil::crypto3::multiprecision::literals; +using namespace boost::multiprecision::literals; + +BOOST_AUTO_TEST_SUITE(cpp_int_conversion) + +BOOST_AUTO_TEST_CASE(to_cpp_int) { + BOOST_CHECK_EQUAL(nil::crypto3::multiprecision::to_cpp_int(0xFFFFFFFFFFF_bigui60).str(), + "17592186044415"); +} + +BOOST_AUTO_TEST_CASE(from_cpp_int) { + auto result = nil::crypto3::multiprecision::to_big_uint(0xFFFFFFFFFFF_cppui60); + BOOST_CHECK_EQUAL(result, 0xFFFFFFFFFFF_bigui60); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_inverse.cpp b/crypto3/libs/multiprecision/test/big_int_inverse.cpp new file mode 100644 index 0000000000..772597bf53 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_inverse.cpp @@ -0,0 +1,390 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2018-2020 Mikhail Komarov +// Copyright (c) 2018-2020 Pavel Kharitonov +// Copyright (c) 2021 Aleksei Moskvin +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#define BOOST_TEST_MODULE big_int_inverse_test + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +using namespace nil::crypto3::multiprecision; + +template +void test_inverse_extended_euclidean_algorithm() { + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm(T(5), T("0x7fffffffffffffffffffffffffffffff")), + T("0x33333333333333333333333333333333")); + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm(T(333), T("0x7fffffffffffffffffffffffffffffff")), + T("0x17d4f2ee517d4f2ee517d4f2ee517d4f")); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T("0x435b21e35ccd62dbdbafa1368cf742f0"), + T("0x7fffffffffffffffffffffffffffffff")), + T("0x604ddb74e5a55e559a7320e45b06eaf6")); + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm( + T(2), T("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")), + T("0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000" + "0000000000000000000000000")); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(3), T(8)), T(3)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(46), T(207)), T(0)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(2), T(2)), T(0)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(0), T(2)), T(0)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(46), T(46)), T(0)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(1), T(7)), T(1)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(35), T(118)), T(27)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(37), T(37)), T(0)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(32), T(247)), T(193)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(3), T(232)), T(155)); + + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm( + T("256992387993922882115519242002267204163958280694902854777438773165028812741820300742" + "384101" + "620467227297951260702776745365693102268609333941403372929142489383748076291"), + T("310556067329850632847208938574658589632291100674077275160516075249922714838542485036" + "214015" + "8165019680645739648726058090243814223511639161631852729287604717869259565828")), + T("2322484593360248972803085811686365806060063797313230509497970163285203519904646342173323" + "688226" + "147654544918783691327115436052292182385106099615339567513136063879840431")); + + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm( + T("657900513264442578215729259525804042708991731028255426638688946278845827095715186772" + "097484" + "16019817305674876843604308670298295897660589296995641401495105646770364032950"), + T("146059874272782860583686068115674600616627249438711269370889274434354805551497286303" + "947620" + "1659720247220048664250204314648520085411164461712526657028588699682983099362771")), + T("3701344688092353558099310214964185602579277616517826314317231208222417072861266226192312" + "282752" + "10678415132318220494260963802381448709723310690465171935975287188943190781")); + + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(3), T(0x10)), T(11)); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(T(43000466091), T(0x10000000000)), + T(140404367363)); + + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm( + T("3329223706171052463206866408355190852145308853551222855374206553291583" + "6412003628111698671675220667324272" + "5944106904545859091557017307727326666832362641891029072983311591760876" + "2612451607036836604560196526748133" + "2952294823154321608619569856617204150085028173765891223691691685030517" + "0057553436136073435791550700526779" + "1266056164843197115173542457409178397682412186017844044878477733706673" + "6659493124795020814172868481356070" + "6694079674126165187970576121654781364910559498699000784756722078722425" + "3724912309650653332895570458720843" + "3224850656811897686972917521497485758932335208567118381404016914945323" + "3350227887942508765678216349436356" + "7584633848194784070822245649557468578497368723157561724530746784741768" + "6461029368632606300888825458750471" + "73194357829837349405264332156553159"), + T("5159669275902268897019683770634129859849131442089512209466255369748647" + "8852950434581004530951396375324897" + "3237934933418399835900527154085143847573539006016005510145975736902509" + "4548935216928274885474920588457238" + "9321992128261328481129830302072287292303501430702452146150323300983736" + "0681685755548737891159735617529596" + "3296209024100980888874174104384926439773409352855895683162800486061893" + "6254613392484195923653331976713963" + "9022384965245831654887217363203207214249335996119270164515039005157887" + "5246900773560274606831152842526302" + "3211977032707524224960793107608042288596827341046613333670880853546357" + "0182780841768637479016464266039055" + "7925243983808216928421220094838103017958334974205040660858707963225716" + "1952224606791379941232782765846637" + "12976241848458904056941218720227786752")), + T("16169765086855986127154046155397117295914963038387272783617457684599127447" + "6610311080533553178926047190203266" + "85568238777817971191773697446756550362276938623879013359293805261585253356" + "1719117119940626105914149272955096" + "43833787555922713773309241786955753178554821984186872072841194724366388916" + "5526728787046894739482800359519447" + "64596203739541946184136389849598657786471023022865585926888106336640072640" + "1157990917652680450814220027329982" + "28525926769366297380133831033446426381884582602684819819652397562413743816" + "5546650367370131035732951388159175" + "97189009924722836031296505773554187289297878370713302855264475968171422470" + "4381891573964406129272600659255700" + "50082441202586929437053251315496103922094819482313181774501817762229043061" + "5352105032422136121552433314291445" + "5291939319")); + BOOST_CHECK_EQUAL( + inverse_extended_euclidean_algorithm( + T(65279), T("0x100000000000000000000000000000000000000000000000000000000000000000000000" + "0000000000000000" + "00000000000000000000000000000000000000000000000000000000000")), + T("2136191453734241471355287191702994357470910407859959447816962783332820558450714636705703" + "817069" + "8710253677755075362127788711957331760388539866898398399344480664991941861081743615")); +} + +template +void test_inverse_mod() { + BOOST_CHECK_EQUAL(inverse_mod(T(5), T("0x7fffffffffffffffffffffffffffffff")), + T("0x33333333333333333333333333333333")); + BOOST_CHECK_EQUAL(inverse_mod(T(333), T("0x7fffffffffffffffffffffffffffffff")), + T("0x17d4f2ee517d4f2ee517d4f2ee517d4f")); + BOOST_CHECK_EQUAL(inverse_mod(T("0x435b21e35ccd62dbdbafa1368cf742f0"), + T("0x7fffffffffffffffffffffffffffffff")), + T("0x604ddb74e5a55e559a7320e45b06eaf6")); + BOOST_CHECK_EQUAL( + inverse_mod(T(2), + T("0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff" + "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")), + T("0x10000000000000000000000000000000000000000000000000000000000000000000000000000000000000" + "00000000000000000000" + "0000000000000000000000000")); + BOOST_CHECK_EQUAL(inverse_mod(T(3), T(8)), T(3)); + BOOST_CHECK_EQUAL(inverse_mod(T(46), T(207)), T(0)); + BOOST_CHECK_EQUAL(inverse_mod(T(2), T(2)), T(0)); + BOOST_CHECK_EQUAL(inverse_mod(T(0), T(2)), T(0)); + BOOST_CHECK_EQUAL(inverse_mod(T(46), T(46)), T(0)); + BOOST_CHECK_EQUAL(inverse_mod(T(1), T(7)), T(1)); + BOOST_CHECK_EQUAL(inverse_mod(T(35), T(118)), T(27)); + BOOST_CHECK_EQUAL(inverse_mod(T(37), T(37)), T(0)); + BOOST_CHECK_EQUAL(inverse_mod(T(32), T(247)), T(193)); + BOOST_CHECK_EQUAL(inverse_mod(T(3), T(232)), T(155)); + + BOOST_CHECK_EQUAL( + inverse_mod( + T("256992387993922882115519242002267204163958280694902854777438773165028812741820300742" + "384101" + "620467227297951260702776745365693102268609333941403372929142489383748076291"), + T("310556067329850632847208938574658589632291100674077275160516075249922714838542485036" + "214015" + "8165019680645739648726058090243814223511639161631852729287604717869259565828")), + T("2322484593360248972803085811686365806060063797313230509497970163285203519904646342173323" + "688226" + "147654544918783691327115436052292182385106099615339567513136063879840431")); + + BOOST_CHECK_EQUAL( + inverse_mod( + T("657900513264442578215729259525804042708991731028255426638688946278845827095715186772" + "097484" + "16019817305674876843604308670298295897660589296995641401495105646770364032950"), + T("146059874272782860583686068115674600616627249438711269370889274434354805551497286303" + "947620" + "1659720247220048664250204314648520085411164461712526657028588699682983099362771")), + T("3701344688092353558099310214964185602579277616517826314317231208222417072861266226192312" + "282752" + "10678415132318220494260963802381448709723310690465171935975287188943190781")); + + BOOST_CHECK_EQUAL(inverse_mod(T(3), T(0x10)), T(11)); + BOOST_CHECK_EQUAL(inverse_mod(T(43000466091), T(0x10000000000)), T(140404367363)); + + BOOST_CHECK_EQUAL(inverse_mod(T("33292237061710524632068664083551908521453088535512228553742065" + "532915836412003628111698671675220667324272" + "59441069045458590915570173077273266668323626418910290729833115" + "917608762612451607036836604560196526748133" + "29522948231543216086195698566172041500850281737658912236916916" + "850305170057553436136073435791550700526779" + "12660561648431971151735424574091783976824121860178440448784777" + "337066736659493124795020814172868481356070" + "66940796741261651879705761216547813649105594986990007847567220" + "787224253724912309650653332895570458720843" + "32248506568118976869729175214974857589323352085671183814040169" + "149453233350227887942508765678216349436356" + "75846338481947840708222456495574685784973687231575617245307467" + "847417686461029368632606300888825458750471" + "73194357829837349405264332156553159"), + T("51596692759022688970196837706341298598491314420895122094662553" + "697486478852950434581004530951396375324897" + "32379349334183998359005271540851438475735390060160055101459757" + "369025094548935216928274885474920588457238" + "93219921282613284811298303020722872923035014307024521461503233" + "009837360681685755548737891159735617529596" + "32962090241009808888741741043849264397734093528558956831628004" + "860618936254613392484195923653331976713963" + "90223849652458316548872173632032072142493359961192701645150390" + "051578875246900773560274606831152842526302" + "32119770327075242249607931076080422885968273410466133336708808" + "535463570182780841768637479016464266039055" + "79252439838082169284212200948381030179583349742050406608587079" + "632257161952224606791379941232782765846637" + "12976241848458904056941218720227786752")), + T("16169765086855986127154046155397117295914963038387272783617457684599127447" + "6610311080533553178926047190203266" + "85568238777817971191773697446756550362276938623879013359293805261585253356" + "1719117119940626105914149272955096" + "43833787555922713773309241786955753178554821984186872072841194724366388916" + "5526728787046894739482800359519447" + "64596203739541946184136389849598657786471023022865585926888106336640072640" + "1157990917652680450814220027329982" + "28525926769366297380133831033446426381884582602684819819652397562413743816" + "5546650367370131035732951388159175" + "97189009924722836031296505773554187289297878370713302855264475968171422470" + "4381891573964406129272600659255700" + "50082441202586929437053251315496103922094819482313181774501817762229043061" + "5352105032422136121552433314291445" + "5291939319")); + BOOST_CHECK_EQUAL( + inverse_mod(T(65279), T("0x1000000000000000000000000000000000000000000000000000000000000000" + "000000000000000000000000" + "00000000000000000000000000000000000000000000000000000000000")), + T("2136191453734241471355287191702994357470910407859959447816962783332820558450714636705703" + "817069" + "8710253677755075362127788711957331760388539866898398399344480664991941861081743615")); +} + +template +void test_monty_inverse() { + // test for monty_inverse + BOOST_CHECK_EQUAL(monty_inverse(T(12), T(5), T(5)), T(1823)); + BOOST_CHECK_EQUAL(monty_inverse(T(10), T(37), T(1)), T(26)); + BOOST_CHECK_EQUAL(monty_inverse(T(3), T(2), T(3)), T(3)); + BOOST_CHECK_EQUAL(monty_inverse(T(3), T(4), T(2)), T(11)); + BOOST_CHECK_EQUAL(monty_inverse(T(4), T(7), T(2)), T(37)); + BOOST_CHECK_EQUAL(monty_inverse(T(32), T(247), T(1)), T(193)); + BOOST_CHECK_EQUAL(monty_inverse(T(3), T(7), T(7)), T(549029)); + BOOST_CHECK_EQUAL(monty_inverse(T(5317589), T(23), T(8)), T(32104978469)); +} + +BOOST_AUTO_TEST_SUITE(runtime_tests) + +BOOST_AUTO_TEST_CASE(inverse_tests) { + // test_monty_inverse>(); + // test_inverse_mod>(); + // test_inverse_extended_euclidean_algorithm>(); +} + +BOOST_AUTO_TEST_CASE(test_big_mod_6_bits) { + auto modular = big_mod_rt<6>(10u, 37u); + BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(modular).base(), 26u); +} + +// BOOST_AUTO_TEST_CASE(test_cpp_int_modular_backend_6_bits) { +// using namespace boost::multiprecision; +// using T = boost::multiprecision::cpp_int_modular_modular_backend<6>; +// +// modular = number>>(3, 8); +// modular.backend().mod_data().adjust_regular(res.backend(), +// inverse_extended_euclidean_algorithm(modular).backend().base_data()); +// BOOST_CHECK_EQUAL(number(res.backend()), number(3)); +// +// modular = number>>(3, 16); +// modular.backend().mod_data().adjust_regular(res.backend(), +// inverse_extended_euclidean_algorithm(modular).backend().base_data()); +// BOOST_CHECK_EQUAL(number(res.backend()), number(11)); +// +// modular = number>>( +// 65279, +// "0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" +// "000000000000000000000000000000000000000"); +// modular.backend().mod_data().adjust_regular(res.backend(), +// inverse_extended_euclidean_algorithm(modular).backend().base_data()); +// BOOST_CHECK_EQUAL( +// number(res.backend()), +// number("213619145373424147135528719170299435747091040785995944781696278333282055845071463670570381706987102536" +// "77755075362127788711957331760388539866898398399344480664991941861081743615")); +// +// modular = number>>( +// "33292237061710524632068664083551908521453088535512228553742065532915836412003628111698671675220667324272594410" +// "69045458590915570173077273266668323626418910290729833115917608762612451607036836604560196526748133295229482315" +// "43216086195698566172041500850281737658912236916916850305170057553436136073435791550700526779126605616484319711" +// "51735424574091783976824121860178440448784777337066736659493124795020814172868481356070669407967412616518797057" +// "61216547813649105594986990007847567220787224253724912309650653332895570458720843322485065681189768697291752149" +// "74857589323352085671183814040169149453233350227887942508765678216349436356758463384819478407082224564955746857" +// "8497368723157561724530746784741768646102936863260630088882545875047173194357829837349405264332156553159", +// "51596692759022688970196837706341298598491314420895122094662553697486478852950434581004530951396375324897323793" +// "49334183998359005271540851438475735390060160055101459757369025094548935216928274885474920588457238932199212826" +// "13284811298303020722872923035014307024521461503233009837360681685755548737891159735617529596329620902410098088" +// "88741741043849264397734093528558956831628004860618936254613392484195923653331976713963902238496524583165488721" +// "73632032072142493359961192701645150390051578875246900773560274606831152842526302321197703270752422496079310760" +// "80422885968273410466133336708808535463570182780841768637479016464266039055792524398380821692842122009483810301" +// "7958334974205040660858707963225716195222460679137994123278276584663712976241848458904056941218720227786752"); +// modular.backend().mod_data().adjust_regular(res.backend(), +// inverse_extended_euclidean_algorithm(modular).backend().base_data()); +// BOOST_CHECK_EQUAL( +// number(res.backend()), +// number("161697650868559861271540461553971172959149630383872727836174576845991274476610311080533553178926047190" +// "203266855682387778179711917736974467565503622769386238790133592938052615852533561719117119940626105914" +// "149272955096438337875559227137733092417869557531785548219841868720728411947243663889165526728787046894" +// "739482800359519447645962037395419461841363898495986577864710230228655859268881063366400726401157990917" +// "652680450814220027329982285259267693662973801338310334464263818845826026848198196523975624137438165546" +// "650367370131035732951388159175971890099247228360312965057735541872892978783707133028552644759681714224" +// "704381891573964406129272600659255700500824412025869294370532513154961039220948194823131817745018177622" +// "2904306153521050324221361215524333142914455291939319")); +// number> +// t1("46183318524466423714385242700212935662232011232920767824642233133732825160423"); +// number> +// t2("52435875175126190479447740508185965837690552500527637822603658699938581184513"); +// std::cout << "res1=" << inverse_mod(t1, t2) << std::endl; +// std::cout << std::endl; +// std::cout << "res1=" << inverse_mod(number>>(t1, t2)) << std::endl; +////5340958855958624790350191648327454295961274282628640357656781123563169745534 +// modular = number>>(43000466091, +// 0x10000000000); modular.backend().mod_data().adjust_regular(res.backend(), +// inverse_extended_euclidean_algorithm(modular).backend().base_data()); +// BOOST_CHECK_EQUAL(number(res.backend()), number(140404367363)); +//} + +BOOST_AUTO_TEST_SUITE_END() + +// BOOST_AUTO_TEST_SUITE(static_tests) +// +// BOOST_AUTO_TEST_CASE(cpp_int_fixed_test) { +// using Backend = cpp_int_modular_backend<585>; +// using Backend_modular = modular_adaptor>; +// using modular_number = number; +// +// constexpr auto mod = +// 0x100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000_cppui_modular585; +// constexpr auto a = 0xfeff_cppui_modular585; +// constexpr auto a_inv = +// 0x565eb513c8dca58227a9d17b4cc814dcf1cec08f4fdf2f0e3d4b88d45d318ec04f0f5e6dcc3a06404686cd542175970ca3b05404585cb511c6d89f78178fa736de14f307fb02fe00ff_cppui_modular585; +// static_assert(a_inv == inverse_extended_euclidean_algorithm(a, mod), "inverse error"); +// +// constexpr modular_number a_m(a, mod); +// constexpr modular_number a_inv_m(a_inv, mod); +// static_assert(a_inv_m == inverse_extended_euclidean_algorithm(a_m), "inverse error"); +// +// using T = number; +// +// static_assert(inverse_extended_euclidean_algorithm(T(3), T(8)) == T(3)); +// static_assert(inverse_extended_euclidean_algorithm(T(46), T(207)) == T(0)); +// static_assert(inverse_extended_euclidean_algorithm(T(2), T(2)) == T(0)); +// static_assert(inverse_extended_euclidean_algorithm(T(0), T(2)) == T(0)); +// static_assert(inverse_extended_euclidean_algorithm(T(46), T(46)) == T(0)); +// static_assert(inverse_extended_euclidean_algorithm(T(1), T(7)) == T(1)); +// static_assert(inverse_extended_euclidean_algorithm(T(35), T(118)) == T(27)); +// static_assert(inverse_extended_euclidean_algorithm(T(37), T(37)) == T(0)); +// static_assert(inverse_extended_euclidean_algorithm(T(32), T(247)) == T(193)); +// static_assert(inverse_extended_euclidean_algorithm(T(3), T(232)) == T(155)); +// +// static_assert(inverse_mod(T(3), T(8)) == T(3)); +// static_assert(inverse_mod(T(46), T(207)) == T(0)); +// static_assert(inverse_mod(T(2), T(2)) == T(0)); +// static_assert(inverse_mod(T(0), T(2)) == T(0)); +// static_assert(inverse_mod(T(46), T(46)) == T(0)); +// static_assert(inverse_mod(T(1), T(7)) == T(1)); +// static_assert(inverse_mod(T(35), T(118)) == T(27)); +// static_assert(inverse_mod(T(37), T(37)) == T(0)); +// static_assert(inverse_mod(T(32), T(247)) == T(193)); +// static_assert(inverse_mod(T(3), T(232)) == T(155)); +// +// static_assert(monty_inverse(T(12), T(5), T(5)) == T(1823)); +// static_assert(monty_inverse(T(10), T(37), T(1)) == T(26)); +// static_assert(monty_inverse(T(3), T(2), T(3)) == T(3)); +// static_assert(monty_inverse(T(3), T(4), T(2)) == T(11)); +// static_assert(monty_inverse(T(4), T(7), T(2)) == T(37)); +// static_assert(monty_inverse(T(32), T(247), T(1)) == T(193)); +// static_assert(monty_inverse(T(3), T(7), T(7)) == T(549029)); +// static_assert(monty_inverse(T(5317589), T(23), T(8)) == T(32104978469)); +// } +// +// BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_jacobi.cpp b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp new file mode 100644 index 0000000000..d4ecda4666 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp @@ -0,0 +1,63 @@ +/////////////////////////////////////////////////////////////// +// Copyright (c) 2020 Mikhail Komarov. +// Copyright (c) 2021 Aleksei Moskvin +// Distributed under the Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + +#define BOOST_TEST_MODULE big_int_jacobi_test + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/literals.hpp" + +using namespace nil::crypto3::multiprecision; +using namespace nil::crypto3::multiprecision::literals; + +template +void test() { + BOOST_CHECK_EQUAL(jacobi(T(5u), T(9u)), 1); + BOOST_CHECK_EQUAL(jacobi(T(1u), T(27u)), 1); + BOOST_CHECK_EQUAL(jacobi(T(2u), T(27u)), -1); + BOOST_CHECK_EQUAL(jacobi(T(3u), T(27u)), 0); + BOOST_CHECK_EQUAL(jacobi(T(4u), T(27u)), 1); + BOOST_CHECK_EQUAL(jacobi(T(506u), T(1103u)), -1); + + // new tests from algebra: + BOOST_CHECK_EQUAL( + jacobi(T(76749407), + T("21888242871839275222246405745257275088696311157297823662689037894645226208583")), + -1); + BOOST_CHECK_EQUAL( + jacobi(T(76749407), + T("52435875175126190479447740508185965837690552500527637822603658699938581184513")), + -1); + BOOST_CHECK_EQUAL(jacobi(T(76749407), T("184014718449470976641732519409003087090464839378677150" + "73880837110864239498070802969129867528264353400424" + "032981962325037091562455342195893356806385102540277644" + "37882223571969881035804085174863110178951694406403" + "431417089392760397647317208332132155598016390667992838" + "98191098079351209268491644339667178604494222971572" + "788971054374438281331602764950963417101448891412424011" + "58886206885011341008817780140927978648973063559908" + "134085593076268545817483710423044623820472777162845900" + "87959373746400022332313336095224466892979000905491" + "154007647609104599675915034901101477294892962614518354" + "5025870323741270110314006814529932451772897")), + -1); +} + +BOOST_AUTO_TEST_SUITE(jacobi_tests) + +BOOST_AUTO_TEST_CASE(jacobi_test) { + test>(); + + constexpr auto a = 0x4931a5f_bigui256; + constexpr auto b = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256; + static_assert(jacobi(a, b) == -1, "jacobi error"); + static_assert(jacobi(0x2_bigui4, 0xb_bigui4) == -1); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_modular.cpp b/crypto3/libs/multiprecision/test/big_int_modular.cpp new file mode 100644 index 0000000000..9227d44787 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_modular.cpp @@ -0,0 +1,177 @@ +#define BOOST_TEST_MODULE big_int_modular_test + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +using namespace nil::crypto3::multiprecision; +using namespace nil::crypto3::multiprecision::literals; + +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(32) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(36) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(57) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(60) + +using namespace nil::crypto3::multiprecision::literals; + +constexpr auto mod = 0x123456789ABCDEF_bigui57; +using big_mod_t = montgomery_big_mod; + +BOOST_AUTO_TEST_SUITE(smoke) + +BOOST_AUTO_TEST_CASE(construct_constexpr) { + constexpr big_mod_t a = static_cast(0x123_bigui64); +} + +BOOST_AUTO_TEST_CASE(construct_modular_ct_trivial_montgomery) { + static constexpr auto mod = 0x3_bigui2; + auto_big_mod a = auto_big_mod(0x5_bigui); + BOOST_CHECK_EQUAL(a.str(), "0x2 mod 0x3"); +} + +BOOST_AUTO_TEST_CASE(construct_modular_rt_trivial_montgomery) { + big_mod_rt<2> a{0x5_bigui, 0x3_bigui}; + BOOST_CHECK_EQUAL(a.str(), "0x2 mod 0x3"); +} + +BOOST_AUTO_TEST_CASE(construct_modular_ct_small_montgomery) { + static constexpr auto mod = 0x79_bigui7; + auto_big_mod a = auto_big_mod(0x1234_bigui); + BOOST_CHECK_EQUAL(a.str(), "0x3E mod 0x79"); +} + +BOOST_AUTO_TEST_CASE(construct_modular_rt_small_montgomery) { + big_mod_rt<7> a{0x1234_bigui, 0x79_bigui}; + BOOST_CHECK_EQUAL(a.str(), "0x3E mod 0x79"); +} + +BOOST_AUTO_TEST_CASE(construct_modular_ct_small) { + static constexpr auto mod = 0x78_bigui7; + auto_big_mod a = auto_big_mod(0x1234_bigui); + BOOST_CHECK_EQUAL(a.str(), "0x64 mod 0x78"); +} + +BOOST_AUTO_TEST_CASE(construct_modular_rt_small) { + big_mod_rt<7> a{0x1234_bigui, 0x78_bigui}; + BOOST_CHECK_EQUAL(a.str(), "0x64 mod 0x78"); +} + +BOOST_AUTO_TEST_CASE(to_string_trivial) { + BOOST_CHECK_EQUAL((static_cast(0x1_bigui)).str(), "0x1 mod 0x123456789ABCDEF"); +} + +BOOST_AUTO_TEST_CASE(to_string_small) { + BOOST_CHECK_EQUAL((static_cast(0x20_bigui)).str(), "0x20 mod 0x123456789ABCDEF"); +} + +BOOST_AUTO_TEST_CASE(ops) { + big_mod_t a = 2u, b; + + auto c1{a}; + auto c2{std::move(a)}; + auto c3{2}; + auto c4{2u}; + b = a; + b = std::move(a); + b = 2; + b = 2u; + +#define TEST_BINARY_OP(op) \ + do { \ + b = a op a; \ + /* b = 2 op a; */ \ + /* b = a op 2; */ \ + /* b = 2u op a; */ \ + /* b = a op 2u; */ \ + b op## = a; \ + /* b op## = 2; */ \ + /*b op## = 2u; */ \ + } while (false) + + TEST_BINARY_OP(+); + ++b; + b++; + b = +b; + + TEST_BINARY_OP(-); + --b; + b--; + b = -b; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(addition) + +BOOST_AUTO_TEST_CASE(simple) { + BOOST_CHECK_EQUAL(static_cast(0x2_bigui64) + static_cast(0x3_bigui64), + static_cast(0x5_bigui64)); +} + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL( + static_cast(0xAFFFFFFFF_bigui64) + static_cast(0x2_bigui36), + static_cast(0xB00000001_bigui64)); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(multiplication) + +BOOST_AUTO_TEST_CASE(simple) { + BOOST_CHECK_EQUAL(static_cast(0x2_bigui64) * static_cast(0x3_bigui64), + static_cast(0x6_bigui64)); +} + +BOOST_AUTO_TEST_CASE(multilimb) { + BOOST_CHECK_EQUAL( + static_cast(0xAFFFFFFFF_bigui64) * static_cast(0x2_bigui36), + static_cast(0x15FFFFFFFE_bigui64)); +} + +BOOST_AUTO_TEST_CASE(big) { + static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_bigui224; + + big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_bigui224; + + BOOST_CHECK_EQUAL((a * b).base(), + 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_bigui224); +} + +BOOST_AUTO_TEST_CASE(big_assign) { + static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_bigui224; + + big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_bigui224; + + a *= b; + + BOOST_CHECK_EQUAL(a.base(), + 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_bigui224); +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(convert) + +// BOOST_AUTO_TEST_CASE(to_uint64_t) { +// std::uint64_t a = +// static_cast(static_cast(0x123456789ABCDEF_bigui64)); +// BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF); +// } + +// BOOST_AUTO_TEST_CASE(from_uint64_t) { +// big_mod_impl a = static_cast(0x123456789ABCDEFull); +// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_bigui64)); +// } + +// BOOST_AUTO_TEST_CASE(from_int64_t) { +// big_mod_impl a = static_cast(0x123456789ABCDEFull); +// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_bigui64)); +// } + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp new file mode 100644 index 0000000000..08e7bc8a1d --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp @@ -0,0 +1,506 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2024 Martun Karapetyan +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#define BOOST_TEST_MODULE big_int_modular_comprehensive_test + +#include +#include +#include + +// We need cpp_int to compare to it. +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" +#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +using namespace nil::crypto3::multiprecision::literals; + +enum test_set_enum : std::size_t { + mod_e, + a_e, + b_e, + // a_add_b_e, a_sub_b_e, a_mul_b_e, a_div_b_e, a_mod_b_e, a_pow_b_e, + test_set_len +}; + +template +constexpr void pow_test(const big_uint_t& a, const big_uint_t& b, const big_uint_t& m) { + typedef nil::crypto3::multiprecision::big_mod_rt modular_number; + typedef nil::crypto3::multiprecision::unsigned_cpp_int_type standard_number; + + modular_number a_m(a, m); + modular_number b_m(b, m); + + standard_number a_cppint = to_cpp_int(a); + standard_number b_cppint = to_cpp_int(b); + standard_number m_cppint = to_cpp_int(m); + + standard_number a_powm_b = powm(a_cppint, b_cppint, m_cppint); + // pow could be used only with modular_numbers + // modular_number a_m_pow_b_m = pow(a_m, b_m); + // powm could be used with mixed types + // modular_number a_m_powm_b_m = powm(a_m, b_m); + modular_number a_m_powm_b = powm(a_m, b); + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_m_powm_b_m)) == a_powm_b, "powm error"); + BOOST_ASSERT_MSG(to_cpp_int(a_m_powm_b.base()) == a_powm_b, "powm error"); +} + +template +bool base_operations_test(std::array test_set) { + typedef + typename nil::crypto3::multiprecision::unsigned_cpp_int_type::backend_type + CppIntBackend; + + typedef nil::crypto3::multiprecision::big_uint Backend_doubled; + typedef typename boost::multiprecision::default_ops::double_precision_type::type + CppIntBackend_doubled; + typedef nil::crypto3::multiprecision::big_mod_rt modular_number; + typedef boost::multiprecision::number standard_number; + typedef boost::multiprecision::number dbl_standard_number; + + // Convert from cpp_int_modular_backend to cpp_int_backend numbers. + standard_number a_cppint = to_cpp_int(test_set[a_e]); + standard_number b_cppint = to_cpp_int(test_set[b_e]); + standard_number e_cppint = to_cpp_int(test_set[mod_e]); + + dbl_standard_number a_add_b_s = + (static_cast(a_cppint) + static_cast(b_cppint)) % + e_cppint; + dbl_standard_number a_sub_b_s = (static_cast(a_cppint) - + static_cast(b_cppint) + e_cppint) % + e_cppint; + dbl_standard_number a_mul_b_s = + (static_cast(a_cppint) * static_cast(b_cppint)) % + e_cppint; + // dbl_standard_number a_mod_b_s = + // (static_cast(a_cppint) % static_cast(b_cppint)) + // % e_cppint; + // standard_number a_and_b_s = (a_cppint & b_cppint) % e_cppint; + // standard_number a_or_b_s = (a_cppint | b_cppint) % e_cppint; + // standard_number a_xor_b_s = (a_cppint ^ b_cppint) % e_cppint; + standard_number a_powm_b_s = powm(a_cppint, b_cppint, e_cppint); + // standard_number a_bit_set_s = a_cppint; + // bit_set(a_bit_set_s, 1); + // a_bit_set_s %= e_cppint; + // standard_number a_bit_unset_s = a_cppint; + // a_bit_unset_s %= e_cppint; + // bit_unset(a_bit_unset_s, 2); + // standard_number a_bit_flip_s = a_cppint; + // bit_flip(a_bit_flip_s, 3); + // a_bit_flip_s %= e_cppint; + + // int b_msb_s = msb(b_cppint); + // int b_lsb_s = lsb(b_cppint); + + modular_number a(test_set[a_e], test_set[mod_e]); + modular_number b(test_set[b_e], test_set[mod_e]); + + modular_number a_add_b = a + b; + modular_number a_sub_b = a - b; + modular_number a_mul_b = a * b; + // modular_number a_and_b = a & b; + // modular_number a_or_b = a | b; + // modular_number a_xor_b = a ^ b; + modular_number a_powm_b = powm(a, b.base()); + // modular_number a_bit_set = a; + // bit_set(a_bit_set, 1); + // modular_number a_bit_unset = a; + // bit_unset(a_bit_unset, 2); + // modular_number a_bit_flip = a; + // bit_flip(a_bit_flip, 3); + + // int b_msb = msb(b); + // int b_lsb = lsb(b); + + // We cannot use convert_to here, because there's a bug inside boost, convert_to is constexpr, + // but it calls function generic_interconvert which is not. + BOOST_ASSERT_MSG(to_cpp_int(a_add_b.base()) == a_add_b_s, "addition error"); + BOOST_ASSERT_MSG(to_cpp_int(a_sub_b.base()) == a_sub_b_s, "subtraction error"); + BOOST_ASSERT_MSG(to_cpp_int(a_mul_b.base()) == a_mul_b_s, "multiplication error"); + + // BOOST_ASSERT_MSG((a > b) == (a_cppint > b_cppint), "g error"); + // BOOST_ASSERT_MSG((a >= b) == (a_cppint >= b_cppint), "ge error"); + BOOST_ASSERT_MSG((a == b) == (a_cppint == b_cppint), "e error"); + // BOOST_ASSERT_MSG((a < b) == (a_cppint < b_cppint), "l error"); + // BOOST_ASSERT_MSG((a <= b) == (a_cppint <= b_cppint), "le error"); + BOOST_ASSERT_MSG((a != b) == (a_cppint != b_cppint), "ne error"); + + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_and_b)) == a_and_b_s, "and error"); + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_or_b)) == a_or_b_s, "or error"); + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_xor_b)) == a_xor_b_s, "xor error"); + + BOOST_ASSERT_MSG(to_cpp_int(a_powm_b.base()) == a_powm_b_s, "powm error"); + pow_test(test_set[a_e], test_set[b_e], test_set[mod_e]); + + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_bit_set)) == a_bit_set_s, "bit set error"); + // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_bit_unset)) == a_bit_unset_s, "bit unset + // error"); BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_bit_flip)) == a_bit_flip_s, "bit flip + // error"); + + // BOOST_ASSERT_MSG(b_msb_s == b_msb, "msb error"); + // BOOST_ASSERT_MSG(b_lsb_s == b_lsb, "lsb error"); + + return true; +} + +template +bool base_operations_test(const std::array, N>& test_data) { + for (const auto& test_set : test_data) { + base_operations_test(test_set); + } + return true; +} + +BOOST_AUTO_TEST_SUITE(static_tests) + +BOOST_AUTO_TEST_CASE(base_ops_prime_mod_backend_130) { + using standard_number = nil::crypto3::multiprecision::big_uint<130>; + using test_set = std::array; + using test_data_t = std::array; + constexpr test_data_t test_data = {{ + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1902d38b6904893e90b9c5b8732d1f37d_bigui130, + 0x2b9060b88dea177d5213deb6f3794434_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x20de70b3f1426ef30b2b2c85d75e2ff2a_bigui130, + 0x1a50227dc3bd742a232db8798e16d1fbb_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2395c23e8da249dec864da20301b1b64a_bigui130, + 0xdf185b46a84f318f34160415cc2cc010_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x43c06149ee7c03529dc8a03d091b4e94_bigui130, + 0x310216180d322187af2c938af5a1ce59_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x26352a54193fd97c1b30ba3e4f624abf3_bigui130, + 0x271cc74f6ca6cb859a1c1420922eb29ae_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x55cc328d5cc8b9d3362664a61c49d05_bigui130, + 0x203c88f7c00196a19ca13f3956d823cf9_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b7b43b1d5e1d838e06ac851dd57c2921_bigui130, + 0x1c3e4586b67511bdc48a424ab7934f3e2_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x71bff3e8b1dca8851adc38f3f7949f15_bigui130, + 0x1aa747f949397fd5dd7c8651e8150552_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1a2ce759cfc6960d663313054f1bb102f_bigui130, + 0xc7a66c97d85f5662ffeebbb953476196_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x29e2517b6b554a879c74e8c4e0516f177_bigui130, + 0x1f1218f45001011d29934c8cf15c52970_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x24633cbd7c7bfc5f2bd53ee68d61c35d2_bigui130, + 0x144cedf22adfea125bb43d0be11ca1d0c_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xfa48dc5dd7b4b1489220e933791b4338_bigui130, + 0x2b234e335952ad1681afa214a74622526_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x15b8a80d1056036fb5b43afa7acf2fba1_bigui130, + 0x20100f6e5147f7eae0dd456dcb21a8b57_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x11ad3e87c291c9ee81d50b80086315fff_bigui130, + 0x21f4e281ab8da64819ab4c2311bb5b18e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1cac9e60c8ba9fe1dd02a72bd7f302986_bigui130, + 0x1ca1068fbfa3b573d8f1f189dd5747a16_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1ed35770d0d86801f43eeb651aff88be9_bigui130, + 0x1906ec17bd1c75f7427c8c94bd7d1baa8_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x159635b82f84b811c9dd90d5cb6b178b_bigui130, + 0x140f2dea986ddcb181072cb9211f57a8d_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x27d6f0f737bacbce899e43dc682b5624d_bigui130, + 0x1011587e1de922107a18d7b925c77dd54_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x280f4c62adaa0ffd674affb50fe2e1695_bigui130, + 0x1d094e72b514dcbf1c711fdcf3e53cb8_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x6e5882e4497adbf5bb25efec29dfc7d8_bigui130, + 0x1a842e4abcdeedbc8abc583f41e46b125_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xdf8e9c5a1aef9fb8a84c47e4c13a8e32_bigui130, + 0x1a60dcd50617841662e100abea05666b4_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1f80459133a5f8b5049a346d931edca2e_bigui130, + 0x130fe586a5ec4e0045a6e16c4ebac2486_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1f284be48f9037159abfc1c11bd1e06e6_bigui130, + 0x31251cfead95629cb37cf61595785efa6_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x63766cb772cbaf3e4dfedffb2af6f181_bigui130, + 0x311d5240457feecb26f8c0e214a1bca75_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2ce5755bfe84b7cb37503711fe5585523_bigui130, + 0x1f028047ad558bd3208927b6644ae2ab9_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2bee37fdda5691f95381d391f9194f3f_bigui130, + 0xcbba87247175168e5d40dfb270b3427a_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x9bff8375de0961c15151ff7bc1c97589_bigui130, + 0x4ccf8b525bf3db5773680b031b007029_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b861409455060d7b6a5e1d5f6c652548_bigui130, + 0x220fdc8a8d41a6ef2b2c0a1ec4569300b_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x239d57e467841c5247327e4eaa8d001f8_bigui130, + 0x10dfd3fb5b333abdaf5529542ce52b843_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x8c555f62b02b7f2c94987bd4e0c400a4_bigui130, + 0x326eaaaa17ba3ffef1b2622038e4277a_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b7199f47c784514517cb65fbc3681820_bigui130, + 0x53368a9f4b547e43867c3b0fbbb55ba0_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1c867f8a6c7f7ba691baba7c34c8972c0_bigui130, + 0x18a36d27f551b90f3b70990c02be4040f_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xe08f32c086174483eb5c0fd194284789_bigui130, + 0x232cee45b9fafa3dd99b916f0da6b5b9f_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2fa93bf0d7dcdd1d2490b228602c11bc4_bigui130, + 0x313e75ddb32849fc2f920b7dac0784b8e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xfa23f38fe8ee768390a947885b402fbb_bigui130, + 0x1ed41f3daece99382858b91eb9341352_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x19046693c278bc3362c21e3369d28337b_bigui130, + 0x213100709424048752d19aaba00d597d2_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1c50381e9fe77faacbb4625d8a73454a9_bigui130, + 0x4c27748ded9d69446a518953eda5ea0c_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x19038fc207ecfca9a1a474489cd184a6d_bigui130, + 0xcf46092c1d5ccf5e41dff63f92c079b9_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x248e3a01cf8cd1147bfa3e5ed0b6e4a41_bigui130, + 0x7388310b8e62700604f76f2d45f98e52_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x282252b232f1c43f5f014529ee6e3134e_bigui130, + 0xc324f7242a9d93665f3f3d72bf731500_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x136d5cc4b596ecbacbcbea6385708cea8_bigui130, + 0x2eceb23b47b8beeb5cd704605f0102a27_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xa41d7a6deba861eb210e76fedf048120_bigui130, + 0x2b80b6fe5fce48e77bc6529a43670fa89_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xbe044d7bc860898b4b67f2b0e47b2957_bigui130, + 0x1385abf4521b731a0ef6585e6fcbe1087_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x15431c536a4b40b7a2def9881b3ed3f65_bigui130, + 0x2c7a86a326513aec20b909a5b06e1d724_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x22dae6c3c21886db3a222b319df2fcc18_bigui130, + 0x29874fcdec2d26c29d56990f86e49921e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1966a81455bb9ae791b06c79361cb04a9_bigui130, + 0x1ffebba8847893384f651589275aaceb1_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2744dda0f21e9343d45d80cf7717947c4_bigui130, + 0x5559c5bfee5bdd51d7695f8be84aa7e0_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x217faf49e078d4f40e8bed99a20a4e3f4_bigui130, + 0x21e2c14e9f39cfdfc87a7eddbfa8de653_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x571a667c902421037c8d855907b904fd_bigui130, + 0x873f600a7769bf94aab70506e04d3dee_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x662ba0a5876b6f5f448563d9194ff704_bigui130, + 0xc88c6b7366ae5740e6860d5f1c906c00_bigui130}, + }}; + + bool res = base_operations_test(test_data); +} + +BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_130) { + using standard_number = nil::crypto3::multiprecision::big_uint<130>; + using test_set = std::array; + using test_data_t = std::array; + constexpr test_data_t test_data = {{ + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xf6ce85e6f42595ffc6fcb50fdc3c9160_bigui130, + 0x2f04006a57e467c0d45f180da37f9a602_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x6d9d6fed00c44c3eaa674b2b86004106_bigui130, + 0x1f811a14b9a0ea15d873e532bb3364548_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1f72515d6e96f189c58447d4424da9cf5_bigui130, + 0x1cb8d94653cfbe79c97028957fd6b37d3_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x4c2fe1ff52320c73ec081a03082dfaf7_bigui130, + 0xb156219a04e9ac54ba60ce2d79d706eb_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xb6222e4281e459f84c0bd5d77ce3493_bigui130, + 0x32efd252fec869d766989d986cf31fc2_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1043b1bfcefc15dbe214d68e1061d8645_bigui130, + 0x43dede03370eb136ecbfa7ec396f0d6d_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x514c264f84ecf1c6e27d7c7c78e6b4a2_bigui130, + 0x2e9bae255ae7a67003d91da36a76615b8_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2ff3bee3f9723332a002b583133320c93_bigui130, + 0x25283c79b9b1e505f159c2fe560caffc9_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1446284dc17091cd19bf687b8bcfa8829_bigui130, + 0xc9e35084ad8092316a3ce0b77b61b998_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xc447bb62c4287d9f409ab060dae3ae92_bigui130, + 0x22efe8c2ac2188ad9e638d88bb4c754b5_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x313265520502bb48dceca31b17afa02f0_bigui130, + 0x109c4589d316e8ec374c1671ed51ee911_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d639758db1ae7106138010f0e573079e_bigui130, + 0x268a07bc08a254c23c9d71e3303352c1b_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x20898a292ba2360df9b8f42651f342554_bigui130, + 0x13ea3770bbfab80ba966ddc255a419664_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x879758e1d55d9db504d0122b735255ac_bigui130, + 0x2287b16011ef333a67b1984c1f8d2aa55_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xeff14b264f211d251f3852bd87ebeae2_bigui130, + 0x1b5ebb5ef4a47e00cc6a801e5b383b69e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xc2723880d0678f28cd177e8792d5ed2d_bigui130, + 0x2a790884868d6fc5ef87d73d5b80ff46e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x28a83dffca1513a29489e8835d244d6c5_bigui130, + 0x15d4f2d8e0949e0aa82f178300c2da5d3_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x25ded52e8495fe687f442ab3579d22963_bigui130, + 0x2754bb6b9fb861566833f59229e28e0b1_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1ec91d30d83ac012534a9b7561f390be4_bigui130, + 0x308d7237b1cfb01b5ca9fa894ae3c6c48_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xa8b175970e5266b7575376c254c5ad4_bigui130, + 0x7bd2cb80c703ab2fe711022067a805f1_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x3068f458ab46abf38f3ab53368fefe1b3_bigui130, + 0x44da306ee50c5462b9910fcba033ec28_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x7347fcf946c50eb24121d2695a74138_bigui130, + 0x2cc6b5e5400509f854189e73f9e252331_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x13e5c415b09516c96134af94a77018a61_bigui130, + 0x4b1f1e72fb30cffbef1bbe88d8d6c25_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x157cedbd74cdd229f3b43e8ab59199092_bigui130, + 0x144db4073011653f19851e3b7231b8eb0_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xadbf28669d70f71efea08f2b7dcd3929_bigui130, + 0x2352ba5d47b493e545238dc33f8018555_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x3118fbf21bf8820849498b777ae4369c2_bigui130, + 0x8e3b38851b87235ab9e415c4f9973cb5_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d87b88301585c45369f392edad58ebbb_bigui130, + 0x17b9f6b9257dc97b99d2b43da9a557a76_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2836115435665dffa299a2e1dba2bc02_bigui130, + 0x181aa88e10efd256cebb4563cbfb06436_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x4010011e94719b273a8f657daecb8154_bigui130, + 0x16aa3735374efa31f48b9f0b63eca9f1e_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xfd82a47f158cf4773e6177c3b9087ce1_bigui130, + 0x14686b4ba0accbb93c1fb046e69015338_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x662de620b44deb4469155819375bd2ae_bigui130, + 0xa1a7f7e023df7165ca899d4366bbc7f5_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xd12ea24d1261fc11787313ef5906f58d_bigui130, + 0x1c2a2731db836bc6156689cd762da9364_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x26d99465f1a39a64ef21a46d454161f24_bigui130, + 0x27c3ed62253a11d4dc15d370704817498_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2570d84dca037136829b41df4809e3810_bigui130, + 0x904beba3c2f174a54466d0bed0fb581b_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1183aa1a729def2d3c7138aae27332134_bigui130, + 0x208bc970b97cf55008c06fc620d025053_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xd8c70b07b915682a3d9f01ea5c51d34b_bigui130, + 0x6584051efd453ff081e2189928a9a9c4_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xa14b405e334ae992f920fb9373508696_bigui130, + 0x104aa2d49412388ae364af54a916fb501_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xe5f1875befdf2bc34c0ef450753afb87_bigui130, + 0x20f84732af830324ed3949c93704a0ce2_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x22dea1e18f9ec2bdb731db37bcab995ad_bigui130, + 0x1eb896b7179ab4a60a5cfb051c4f6805b_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x322c6c9cd1a662e0a20738db589ae298_bigui130, + 0x2872647f25d62d395a64406fdcf9ea04b_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xbfde51cd756d321a25d54a3909890edb_bigui130, + 0xbd2e612e27d726d58a8be3a643373147_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xb63cc77f71d194b5824946e44fe21831_bigui130, + 0x556942440de628a1b78d70b8ce61cad5_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x28b231976fbb6484e07f1c36b709811c6_bigui130, + 0x22da443e75ea4b64e4dd5b0e701948b9a_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2b564befbf84fb99e6d3e96a00e28a111_bigui130, + 0x2680850f06cffc374d3c98dac2a3522ca_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x19738eb221a6b1cc01159dac5232f5f94_bigui130, + 0x1888b0fd2c91a44559730f4772021e7ae_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x128cbc897d8a21f0924f0824cc0a2a2af_bigui130, + 0x1667817727b346d00cfe296b83099260a_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1176a4938cafb93365f979e0648a9b36d_bigui130, + 0x1d424e90ed8b1d58a4e5f63a983f66b23_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xe1d5e0b579b9ffabd79f55a3ad58095a_bigui130, + 0x28facaa806c45f06b33f90a25a256cb57_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x29492c8c9736c8b22abbe8cc151c0bbe5_bigui130, + 0x1e2e6cf551c64286202dbc4202eb950b4_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d38c6d88e4be77725f5a337fadacb890_bigui130, + 0x2b711aed3a4d108fd95d3a8c3338bf713_bigui130}, + }}; + + bool res = base_operations_test(test_data); +} + +// This one tests 64-bit numbers used in Goldilock fields. +BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_64) { + using standard_number = nil::crypto3::multiprecision::big_uint<64>; + using test_set = std::array; + using test_data_t = std::array; + constexpr test_data_t test_data = {{ + {0xffffffff00000001_bigui64, 0x1_bigui64, 0x2_bigui64}, + {0xffffffff00000001_bigui64, 0x7fffffff91725e00_bigui64, 0x3fffffffe6869400_bigui64}, + {0xffffffff00000001_bigui64, 0x7ffaffff91745e00_bigui64, 0x1fafff0fe6869400_bigui64}, + {0xffffffff00000001_bigui64, 0x7ffaffff91745e00_bigui64, 0x1fafff0fe6869400_bigui64}, + {0xffffffff00000001_bigui64, 0x1ffaffff91745e00_bigui64, 0xffffffff00000000_bigui64}, + {0xffffffff00000001_bigui64, 0x00_bigui64, 0x1_bigui64}, + }}; + + bool res = base_operations_test(test_data); +} + +// BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_17) { +// using standard_number = nil::crypto3::multiprecision::big_uint<17>; +// using test_set = std::array; +// using test_data_t = std::array; +// constexpr test_data_t test_data = {{ +// {0x1e240_bigui17, 0x3a97_bigui17, 0xc070_bigui17}, +// {0x1e240_bigui17, 0x1dea7_bigui17, 0x1aaab_bigui17}, +// {0x1e240_bigui17, 0x1936f_bigui17, 0xfb0b_bigui17}, +// {0x1e240_bigui17, 0x13067_bigui17, 0x1566c_bigui17}, +// {0x1e240_bigui17, 0x1b960_bigui17, 0x1773f_bigui17}, +// {0x1e240_bigui17, 0x101e4_bigui17, 0x156ca_bigui17}, +// {0x1e240_bigui17, 0x167f3_bigui17, 0x13c52_bigui17}, +// {0x1e240_bigui17, 0xc536_bigui17, 0x14c8e_bigui17}, +// {0x1e240_bigui17, 0xed02_bigui17, 0x1dafc_bigui17}, +// {0x1e240_bigui17, 0x126a6_bigui17, 0x18a8b_bigui17}, +// {0x1e240_bigui17, 0x111ac_bigui17, 0x94c2_bigui17}, +// {0x1e240_bigui17, 0x3a03_bigui17, 0x89d8_bigui17}, +// {0x1e240_bigui17, 0x3add_bigui17, 0x101ae_bigui17}, +// {0x1e240_bigui17, 0x8db4_bigui17, 0x50e2_bigui17}, +// {0x1e240_bigui17, 0x1bab_bigui17, 0x1d5f6_bigui17}, +// {0x1e240_bigui17, 0x144dc_bigui17, 0x172f8_bigui17}, +// {0x1e240_bigui17, 0x1cd30_bigui17, 0x1a5c_bigui17}, +// {0x1e240_bigui17, 0x13c3d_bigui17, 0x4358_bigui17}, +// {0x1e240_bigui17, 0x18d68_bigui17, 0x1299d_bigui17}, +// {0x1e240_bigui17, 0x10153_bigui17, 0x2c8a_bigui17}, +// }}; + +// bool res = base_operations_test(test_data); +// } + +// BOOST_AUTO_TEST_CASE(base_ops_odd_mod_backend_17) { +// using Backend = cpp_int_modular_backend<17>; +// using standard_number = boost::multiprecision::number; +// using test_set = std::array; +// using test_data_t = std::array; +// constexpr test_data_t test_data = {{ +// {0x1e241_bigui17, 0x3a97_bigui17, 0xc070_bigui17}, +// {0x1e241_bigui17, 0x1dea7_bigui17, 0x1aaab_bigui17}, +// {0x1e241_bigui17, 0x1936f_bigui17, 0xfb0b_bigui17}, +// {0x1e241_bigui17, 0x13067_bigui17, 0x1566c_bigui17}, +// {0x1e241_bigui17, 0x1b960_bigui17, 0x1773f_bigui17}, +// {0x1e241_bigui17, 0x101e4_bigui17, 0x156ca_bigui17}, +// {0x1e241_bigui17, 0x167f3_bigui17, 0x13c52_bigui17}, +// {0x1e241_bigui17, 0xc536_bigui17, 0x14c8e_bigui17}, +// {0x1e241_bigui17, 0xed02_bigui17, 0x1dafc_bigui17}, +// {0x1e241_bigui17, 0x126a6_bigui17, 0x18a8b_bigui17}, +// {0x1e241_bigui17, 0x111ac_bigui17, 0x94c2_bigui17}, +// {0x1e241_bigui17, 0x3a03_bigui17, 0x89d8_bigui17}, +// {0x1e241_bigui17, 0x3add_bigui17, 0x101ae_bigui17}, +// {0x1e241_bigui17, 0x8db4_bigui17, 0x50e2_bigui17}, +// {0x1e241_bigui17, 0x1bab_bigui17, 0x1d5f6_bigui17}, +// {0x1e241_bigui17, 0x144dc_bigui17, 0x172f8_bigui17}, +// {0x1e241_bigui17, 0x1cd30_bigui17, 0x1a5c_bigui17}, +// {0x1e241_bigui17, 0x13c3d_bigui17, 0x4358_bigui17}, +// {0x1e241_bigui17, 0x18d68_bigui17, 0x1299d_bigui17}, +// {0x1e241_bigui17, 0x10153_bigui17, 0x2c8a_bigui17}, +// }}; + +// bool res = base_operations_test(test_data); +// } + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(runtime_tests) + +BOOST_AUTO_TEST_CASE(secp256k1_incorrect_multiplication) { + using standart_number = nil::crypto3::multiprecision::big_uint<256>; + using modular_number = nil::crypto3::multiprecision::big_mod_rt<256>; + + constexpr standart_number modulus = + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + constexpr standart_number x_standard = + 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_bigui256; + constexpr standart_number res_standard = + 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_bigui256; + constexpr modular_number x(x_standard, modulus); + constexpr modular_number res(res_standard, modulus); + BOOST_CHECK_EQUAL(x * x, res); +} + +BOOST_AUTO_TEST_CASE(bad_negation) { + using standart_number = nil::crypto3::multiprecision::big_uint<256>; + using modular_number = nil::crypto3::multiprecision::big_mod_rt<256>; + + constexpr standart_number modulus = + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + constexpr modular_number x(0u, modulus); + constexpr modular_number res = -x; + // TODO + // BOOST_CHECK(res == 0u); + BOOST_CHECK(res == x); + BOOST_CHECK(-res == x); +} + +BOOST_AUTO_TEST_CASE(conversion_to_shorter_number) { + using standart_number = nil::crypto3::multiprecision::big_uint<256>; + using short_number = nil::crypto3::multiprecision::big_uint<128>; + constexpr standart_number x = + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + short_number s = x.truncate<128>(); + // 2nd half of the number must stay. + BOOST_CHECK_EQUAL(s, 0xfffffffffffffffffffffffefffffc2f_bigui128); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_ressol.cpp b/crypto3/libs/multiprecision/test/big_int_ressol.cpp new file mode 100644 index 0000000000..751ccfb00e --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_ressol.cpp @@ -0,0 +1,318 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2018-2020 Mikhail Komarov +// Copyright (c) 2018-2020 Pavel Kharitonov +// Copyright (c) 2021 Aleksei Moskvin +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#define BOOST_TEST_MODULE big_int_ressol_test + +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +using namespace nil::crypto3::multiprecision; + +BOOST_AUTO_TEST_SUITE(ressol_runtime_tests) + +BOOST_AUTO_TEST_CASE(ressol_runtime_4_bit_tests) { + using T = big_uint<4>; + BOOST_CHECK_EQUAL(ressol(T(0u), T(11u)), 0u); + BOOST_CHECK_EQUAL(ressol(T(5u), T(11u)), 4u); + + BOOST_CHECK_THROW(ressol(T(10u), T(11u)), std::invalid_argument); + BOOST_CHECK_THROW(ressol(T(2u), T(11u)), std::invalid_argument); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_521_bit_tests) { + using T = big_uint<521>; + BOOST_CHECK_EQUAL( + ressol(T(5u), T("68647976601306097149819007990813932172694353001433054093944634591855431833" + "9765605212255" + "9640661454554977296311391480858037121987999716643812574028291115057151")), + T("5128001483797946816458955548662741861156429216952843873274631897232136999791540518339021" + "539968" + "609345897897688700798659762992302941280478805021587896033442584")); + + BOOST_CHECK_THROW( + ressol(T(4), T("686479766013060971498190079908139321726943530014330540939446345918554318339" + "765605212255" + "9640661454554977296311391480858037121987999716643812574028291115057149")), + std::invalid_argument); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_224_bit_tests) { + using T = big_uint<224>; + BOOST_CHECK_EQUAL( + ressol(T("20749193632488214633180774027217139706413443729200940480695355894185"), + T("26959946667150639794667015087019630673557916260026308143510066298881")), + T("1825097171398375765346899906888660610489759292065918530856859649959")); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_315_bit_tests) { + using T = big_uint<315>; + BOOST_CHECK_EQUAL( + ressol( + T(1024u), + T("0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff")), + 32u); + BOOST_CHECK_EQUAL( + ressol( + T(16u), + T("0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff")), + 4u); + BOOST_CHECK_EQUAL( + ressol( + T(120846049u), + T("0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff")), + T("0x40000000000000000000000000000000000000000000000000000000000c100000000000000d50e")); + BOOST_CHECK_EQUAL( + ressol( + T(1025), + T("0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff")), + T("7195614950510915163755738138441999335431224576038191833055420996031360079131617522512565" + "985187")); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_18_bit_tests) { + using T = big_uint<18>; + + BOOST_CHECK_EQUAL(ressol(T(1024u), T(174763u)), 174731u); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_7_bit_tests) { + using T = big_uint<7>; + + BOOST_CHECK_THROW(ressol(T(64), T(85)), std::invalid_argument); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_8_bit_tests) { + using T = big_uint<8>; + + BOOST_CHECK_THROW(ressol(T(181), T(217)), std::invalid_argument); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_16_bit_tests) { + using T = big_uint<16>; + + BOOST_CHECK_THROW(ressol(T(4225), T(33153)), std::invalid_argument); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_15_bit_tests) { + using T = big_uint<15>; + + BOOST_CHECK_THROW(ressol(T(2048), T(31417)), std::logic_error); +} + +BOOST_AUTO_TEST_CASE(ressol_runtime_13_bit_tests) { + using T = big_uint<13>; + + BOOST_CHECK_THROW(ressol(T(2), T(4369)), std::invalid_argument); +} + +BOOST_AUTO_TEST_SUITE_END() // ressol_runtime_tests + +// constexpr bool test_static() { +// constexpr auto a1 = 0x5_cppui_modular4; +// constexpr auto p1 = 0xb_cppui_modular4; +// constexpr auto res1 = 0x4_cppui_modular4; +// static_assert(ressol(a1, p1) == res1, "ressol error"); +// +// constexpr auto a2 = 0x5_cppui_modular521; +// constexpr auto p2 = +// 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular521; +// constexpr auto res2 = +// 0x17e76bd20bdb7664ba9117dd46c437ac50063e33390efa159b637a043df2fbfa55e97b9f7dc55968462121ec1b7a8d686ff263d511011f1b2ee6af5fa7726b97b18_cppui_modular521; +// static_assert(ressol(a2, p2) == res2, "ressol error"); +// +// constexpr auto a3 = 0x4_cppui_modular521; +// constexpr auto p3 = +// 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd_cppui_modular521; +// static_assert(ressol(a3, p3) == -1, "ressol error"); +// +// constexpr auto a4 = +// 0xc5067ee5d80302e0561545a8467c6d5c98bc4d37672eb301c38ce9a9_cppui_modular224; constexpr auto +// p4 = 0xffffffffffffffffffffffffffffffff000000000000000000000001_cppui_modular224; constexpr +// auto res4 = 0x115490c2141baa1c2407abe908fcf3416b0cb0d290dcd3960c3ec7a7_cppui_modular224; +// static_assert(ressol(a4, p4) == res4, "ressol error"); +// +// constexpr auto a5 = 0x40_cppui_modular7; +// constexpr auto p5 = 0x55_cppui_modular7; +// static_assert(ressol(a5, p5) == -1, "ressol error"); +// +// constexpr auto a6 = 0xb5_cppui_modular8; +// constexpr auto p6 = 0xd9_cppui_modular8; +// static_assert(ressol(a6, p6) == -1, "ressol error"); +// +// constexpr auto a7 = 0x1081_cppui_modular16; +// constexpr auto p7 = 0x8181_cppui_modular16; +// static_assert(ressol(a7, p7) == -1, "ressol error"); +// +// constexpr auto a8 = 0x800_cppui_modular15; +// constexpr auto p8 = 0x7ab9_cppui_modular15; +// static_assert(ressol(a8, p8) == -1, "ressol error"); +// +// constexpr auto a9 = 0x2_cppui_modular13; +// constexpr auto p9 = 0x1111_cppui_modular13; +// static_assert(ressol(a9, p9) == -1, "ressol error"); +// +// constexpr auto a10 = 0x400_cppui_modular315; +// constexpr auto p10 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315; +// constexpr auto res10 = 0x20_cppui_modular315; +// static_assert(ressol(a10, p10) == res10, "ressol error"); +// +// constexpr auto a11 = 0x400_cppui_modular18; +// constexpr auto p11 = 0x2aaab_cppui_modular18; +// constexpr auto res11 = 0x2aa8b_cppui_modular18; +// static_assert(ressol(a11, p11) == res11, "ressol error"); +// +// constexpr auto a12 = 0x401_cppui_modular315; +// constexpr auto p12 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315; +// constexpr auto res12 = +// 0xdcc6506af06fe9e142cacb7b5ff56c1864fe7a0b2f7fb10739990aed564e07beb533b5edd95fa3_cppui_modular315; +// static_assert(ressol(a12, p12) == res12, "ressol error"); +// +// constexpr auto a13 = 0x10_cppui_modular315; +// constexpr auto p13 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315; +// constexpr auto res13 = 0x4_cppui_modular315; +// static_assert(ressol(a13, p13) == res13, "ressol error"); +// +// constexpr auto a14 = 0x733f6e1_cppui_modular315; +// constexpr auto p14 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315; +// constexpr auto res14 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000d50e_cppui_modular315; +// static_assert(ressol(a14, p14) == res14, "ressol error"); +// +// return true; +// } + +// constexpr bool test_backend_static() { +// using cpp521 = backends::cpp_int_modular_backend<521>; +// using cpp315 = backends::cpp_int_modular_backend<315>; +// using cpp224 = backends::cpp_int_modular_backend<224>; +// using cpp18 = backends::cpp_int_modular_backend<18>; +// using cpp16 = backends::cpp_int_modular_backend<16>; +// using cpp15 = backends::cpp_int_modular_backend<15>; +// using cpp13 = backends::cpp_int_modular_backend<13>; +// using cpp8 = backends::cpp_int_modular_backend<8>; +// using cpp7 = backends::cpp_int_modular_backend<7>; +// using cpp4 = backends::cpp_int_modular_backend<4>; +// +// using modular_adaptor_type_4 = backends::modular_adaptor>; constexpr auto a1_m = +// number(modular_adaptor_type_4(0x5_cppui_modular4, +// 0xb_cppui_modular4)); +// constexpr auto res1 = 0x4_cppui_modular4; +// static_assert(ressol(a1_m).template convert_to>() == res1, "ressol error"); +// +// using modular_adaptor_type_521 = backends::modular_adaptor>; constexpr auto a2_m = +// number(modular_adaptor_type_521( +// 0x5_cppui_modular521, +// 0x1ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular521)); +// constexpr auto res2 = +// 0x17e76bd20bdb7664ba9117dd46c437ac50063e33390efa159b637a043df2fbfa55e97b9f7dc55968462121ec1b7a8d686ff263d511011f1b2ee6af5fa7726b97b18_cppui_modular521; +// static_assert(ressol(a2_m).template convert_to>() == res2, "ressol error"); +// +// constexpr auto a3_m = number(modular_adaptor_type_521( +// 0x4_cppui_modular521, +// 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd_cppui_modular521)); +// constexpr auto negone_3 = number(modular_adaptor_type_521( +// number(-1), +// 0x1fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd_cppui_modular521)); +// static_assert(ressol(a3_m) == negone_3, "ressol error"); +// +// using modular_adaptor_type_224 = backends::modular_adaptor>; constexpr auto a4_m = +// number(modular_adaptor_type_224( +// 0xc5067ee5d80302e0561545a8467c6d5c98bc4d37672eb301c38ce9a9_cppui_modular224, +// 0xffffffffffffffffffffffffffffffff000000000000000000000001_cppui_modular224)); +// constexpr auto res4 = +// 0x115490c2141baa1c2407abe908fcf3416b0cb0d290dcd3960c3ec7a7_cppui_modular224; +// static_assert(ressol(a4_m).template convert_to>() == res4, "ressol error"); +// +// using modular_adaptor_type_7 = backends::modular_adaptor>; constexpr auto a5_m = +// number(modular_adaptor_type_7(0x40_cppui_modular7, +// 0x55_cppui_modular7)); constexpr auto negone_5 = +// number(modular_adaptor_type_7(0, 0x55_cppui_modular7)); +// static_assert(ressol(a5_m) == negone_5, "ressol error"); +// +// using modular_adaptor_type_8 = backends::modular_adaptor>; constexpr auto a6_m = +// number(0xb5_cppui_modular8, 0xd9_cppui_modular8); constexpr auto +// negone_6 = number(0, 0xd9_cppui_modular8); static_assert(ressol(a6_m) +// == negone_6, "ressol error"); +// +// constexpr auto a7_m = +// number>>(0x1081_cppui_modular16, 0x8181_cppui_modular16); +// constexpr auto negone_7 = +// number>>(number(-1), 0x8181_cppui_modular16); +// static_assert(ressol(a7_m) == negone_7, "ressol error"); +// +// constexpr auto a8_m = +// number>>(0x800_cppui_modular15, 0x7ab9_cppui_modular15); +// constexpr auto negone_8 = number>>( +// number(-1), 0x7ab9_cppui_modular15); +// static_assert(ressol(a8_m) == negone_8, "ressol error"); +// +// constexpr auto a9_m = +// number>>(0x2_cppui_modular13, 0x1111_cppui_modular13); +// constexpr auto negone_9 = number>>( +// number(-1), 0x1111_cppui_modular13); +// static_assert(ressol(a9_m) == negone_9, "ressol error"); +// +// constexpr auto a10_m = number>>( +// 0x400_cppui_modular315, +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315); +// constexpr auto res10 = 0x20_cppui_modular315; +// static_assert(ressol(a10_m).template convert_to>() == res10, "ressol error"); +// +// constexpr auto a11_m = +// number>>(0x400_cppui_modular18, 0x2aaab_cppui_modular18); +// constexpr auto res11 = 0x2aa8b_cppui_modular18; +// static_assert(ressol(a11_m).template convert_to>() == res11, "ressol error"); +// +// constexpr auto a12_m = number>>( +// 0x401_cppui_modular315, +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315); +// constexpr auto res12 = +// 0xdcc6506af06fe9e142cacb7b5ff56c1864fe7a0b2f7fb10739990aed564e07beb533b5edd95fa3_cppui_modular315; +// static_assert(ressol(a12_m).template convert_to>() == res12, "ressol error"); +// +// constexpr auto a13_m = number>>( +// 0x10_cppui_modular315, +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315); +// constexpr auto res13 = 0x4_cppui_modular315; +// static_assert(ressol(a13_m).template convert_to>() == res13, "ressol error"); +// +// constexpr auto a14_m = number>>( +// 0x733f6e1_cppui_modular315, +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000ffff_cppui_modular315); +// constexpr auto res14 = +// 0x40000000000000000000000000000000000000000000000000000000000c100000000000000d50e_cppui_modular315; +// static_assert(ressol(a14_m).template convert_to>() == res14, "ressol error"); +// +// return true; +// } From 3e16016430ec1ce2834a145c627d38191c20ab7c Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 15 Nov 2024 10:49:06 +0000 Subject: [PATCH 04/18] Reintroduce some asserts in import export --- .../crypto3/multiprecision/big_int/ops/import_export.hpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp index face3b4b43..5366f23e37 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp @@ -69,11 +69,9 @@ namespace nil::crypto3::multiprecision { const std::integral_constant& /*unused*/) { using limb_type = typename big_uint::limb_type; // - // Check for possible overflow, this may trigger an exception, or have no effect - // depending on whether this is a checked integer or not: + // Check for possible overflow. // - // We are not throwing, we will use as many bits from the input as we need to. - // NIL_CO3_MP_ASSERT(!((bit_location >= limb_bits) && bits)); + NIL_CO3_MP_ASSERT(!((bit_location >= limb_bits) && bits)); limb_type mask = chunk_bits >= limb_bits ? ~static_cast(0u) From 2418be3e893aa3bf50206faae80648745fa612fe Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Mon, 25 Nov 2024 18:26:26 +0000 Subject: [PATCH 05/18] placeholder refactor --- crypto3/libs/algebra/docs/implementation.md | 2 +- crypto3/libs/algebra/example/curves.cpp | 17 +- crypto3/libs/algebra/example/fields.cpp | 6 +- .../libs/algebra/example/random_element.cpp | 6 +- .../example/short_weierstrass_coordinates.cpp | 14 +- .../254/short_weierstrass_params.hpp | 8 +- .../curves/detail/babyjubjub/params.hpp | 14 +- .../bls12/377/short_weierstrass_params.hpp | 12 +- .../bls12/381/short_weierstrass_params.hpp | 12 +- .../algebra/curves/detail/bls12/g1.hpp | 4 +- .../algebra/curves/detail/bls12/g2.hpp | 8 +- .../algebra/curves/detail/curve25519/g1.hpp | 4 +- .../curves/detail/curve25519/params.hpp | 6 +- .../forms/montgomery/element_g1_affine.hpp | 10 +- .../short_weierstrass/element_g1_affine.hpp | 10 +- .../short_weierstrass/jacobian/element_g1.hpp | 5 +- .../jacobian_with_a4_0/element_g1.hpp | 10 +- .../jacobian_with_a4_minus_3/element_g1.hpp | 10 +- .../projective/element_g1.hpp | 10 +- .../twisted_edwards/element_g1_affine.hpp | 10 +- .../extended_with_a_minus_1/element_g1.hpp | 10 +- .../algebra/curves/detail/h2c/h2c_iso_map.hpp | 142 +- .../algebra/curves/detail/jubjub/params.hpp | 12 +- .../mnt4/298/short_weierstrass_params.hpp | 14 +- .../mnt6/298/short_weierstrass_params.hpp | 18 +- .../algebra/curves/detail/pallas/g1.hpp | 4 +- .../algebra/curves/detail/scalar_mul.hpp | 11 +- .../secp_k1/256/short_weierstrass_params.hpp | 16 +- .../secp_r1/256/short_weierstrass_params.hpp | 48 +- .../algebra/curves/detail/vesta/g1.hpp | 4 +- .../algebra/fields/alt_bn128/base_field.hpp | 16 +- .../algebra/fields/alt_bn128/scalar_field.hpp | 15 +- .../fields/arithmetic_params/alt_bn128.hpp | 44 +- .../fields/arithmetic_params/bls12.hpp | 86 +- .../fields/arithmetic_params/goldilocks64.hpp | 2 +- .../algebra/fields/arithmetic_params/mnt4.hpp | 27 +- .../algebra/fields/arithmetic_params/mnt6.hpp | 27 +- .../fields/arithmetic_params/pallas.hpp | 2 +- .../fields/arithmetic_params/vesta.hpp | 3 +- .../fields/babyjubjub/scalar_field.hpp | 14 +- .../algebra/fields/bls12/base_field.hpp | 31 +- .../algebra/fields/bls12/scalar_field.hpp | 31 +- .../algebra/fields/curve25519/base_field.hpp | 18 +- .../fields/curve25519/scalar_field.hpp | 16 +- .../algebra/fields/detail/element/fp.hpp | 49 +- .../detail/element/fp12_2over3over2.hpp | 7 +- .../algebra/fields/detail/element/fp4.hpp | 4 +- .../fields/detail/element/fp6_2over3.hpp | 4 +- .../algebra/fields/detail/exponentiation.hpp | 6 +- .../alt_bn128/fp12_2over3over2.hpp | 68 +- .../detail/extension_params/alt_bn128/fp2.hpp | 20 +- .../extension_params/alt_bn128/fp6_3over2.hpp | 64 +- .../bls12/fp12_2over3over2.hpp | 112 +- .../detail/extension_params/bls12/fp2.hpp | 33 +- .../extension_params/bls12/fp6_3over2.hpp | 72 +- .../detail/extension_params/mnt4/fp2.hpp | 16 +- .../detail/extension_params/mnt4/fp4.hpp | 12 +- .../detail/extension_params/mnt6/fp3.hpp | 27 +- .../extension_params/mnt6/fp6_2over3.hpp | 20 +- .../nil/crypto3/algebra/fields/field.hpp | 12 +- .../algebra/fields/fp12_2over3over2.hpp | 1 - .../nil/crypto3/algebra/fields/fp2.hpp | 1 - .../nil/crypto3/algebra/fields/fp3.hpp | 1 - .../nil/crypto3/algebra/fields/fp4.hpp | 1 - .../nil/crypto3/algebra/fields/fp6_2over3.hpp | 1 - .../nil/crypto3/algebra/fields/fp6_3over2.hpp | 1 - .../fields/goldilocks64/base_field.hpp | 13 +- .../algebra/fields/jubjub/scalar_field.hpp | 12 +- .../algebra/fields/mnt4/base_field.hpp | 15 +- .../algebra/fields/mnt6/base_field.hpp | 14 +- .../algebra/fields/pallas/base_field.hpp | 11 +- .../nil/crypto3/algebra/fields/params.hpp | 7 - .../fields/secp/secp_k1/base_field.hpp | 48 +- .../fields/secp/secp_k1/scalar_field.hpp | 48 +- .../fields/secp/secp_r1/base_field.hpp | 72 +- .../fields/secp/secp_r1/scalar_field.hpp | 72 +- .../algebra/fields/vesta/base_field.hpp | 11 +- .../nil/crypto3/algebra/multiexp/multiexp.hpp | 5 +- .../nil/crypto3/algebra/multiexp/policies.hpp | 15 +- .../pairing/detail/alt_bn128/params.hpp | 10 +- .../pairing/detail/bls12/377/params.hpp | 4 +- .../pairing/detail/bls12/381/params.hpp | 4 +- .../pairing/detail/mnt4/298/params.hpp | 4 +- .../pairing/detail/mnt6/298/params.hpp | 4 +- .../ate_double_miller_loop.hpp | 5 +- .../jacobian_with_a4_0/ate_miller_loop.hpp | 5 +- .../jacobian_with_a4_0/ate_precompute_g2.hpp | 5 +- .../ate_double_miller_loop.hpp | 1 - .../ate_miller_loop.hpp | 1 - .../ate_precompute_g2.hpp | 2 - .../projective/ate_precompute_g2.hpp | 5 +- .../mnt4/298/affine_ate_miller_loop.hpp | 5 +- .../mnt4/298/ate_double_miller_loop.hpp | 5 +- .../pairing/mnt4/298/ate_miller_loop.hpp | 5 +- .../mnt6/298/affine_ate_miller_loop.hpp | 5 +- .../mnt6/298/ate_double_miller_loop.hpp | 5 +- .../pairing/mnt6/298/ate_miller_loop.hpp | 5 +- .../include/nil/crypto3/algebra/primes.hpp | 21 +- .../nil/crypto3/algebra/random_element.hpp | 2 - .../include/nil/crypto3/algebra/totient.hpp | 2 +- .../include/nil/crypto3/algebra/wnaf.hpp | 16 +- crypto3/libs/algebra/test/CMakeLists.txt | 4 +- crypto3/libs/algebra/test/curves.cpp | 68 +- crypto3/libs/algebra/test/curves_static.cpp | 442 ++-- crypto3/libs/algebra/test/fields.cpp | 4 +- crypto3/libs/algebra/test/fields_static.cpp | 570 ++--- crypto3/libs/algebra/test/pairing.cpp | 7 +- .../test/short_weierstrass_coordinates.cpp | 6 +- crypto3/libs/algebra/test/type_traits.cpp | 2 - .../nil/blueprint/basic_non_native_policy.hpp | 132 +- .../include/nil/blueprint/bbf/exp.hpp | 12 +- .../plonk/non_native/complete_addition.hpp | 2 +- .../edwards/plonk/non_native/ec_point.hpp | 4 +- .../curves/pasta/plonk/endo_scalar.hpp | 8 +- .../pasta/plonk/variable_base_scalar_mul.hpp | 16 +- .../algebra/fields/plonk/exponentiation.hpp | 2 +- .../fields/plonk/non_native/reduction.hpp | 56 +- .../components/hashes/keccak/keccak_round.hpp | 2 +- .../components/hashes/keccak/keccak_table.hpp | 4 +- .../poseidon/plonk/poseidon_constants.hpp | 696 ++--- .../hashes/sha2/plonk/decomposition.hpp | 12 +- .../plonk/detail/sha_table_generators.hpp | 6 +- .../sha2/plonk/detail/split_functions.hpp | 8 +- .../hashes/sha2/plonk/sha512_process.hpp | 40 +- .../components/mock/mocked_components.hpp | 19 +- .../kimchi/batch_verify_scalar_field.hpp | 2 +- .../snark/plonk/kimchi/detail/compare.hpp | 4 +- .../snark/plonk/kimchi/detail/limbs.hpp | 8 +- .../snark/plonk/kimchi/detail/to_group.hpp | 24 +- .../snark/plonk/kimchi/oracles_scalar.hpp | 2 +- .../include/nil/blueprint/lookup_library.hpp | 4 +- .../nil/blueprint/zkevm/operations/addmod.hpp | 6 +- .../zkevm/operations/calldataload.hpp | 6 +- .../zkevm/operations/calldatasize.hpp | 6 +- .../blueprint/zkevm/operations/callvalue.hpp | 6 +- .../nil/blueprint/zkevm/operations/div.hpp | 11 +- .../blueprint/zkevm/operations/div_mod.hpp | 6 +- .../nil/blueprint/zkevm/operations/jumpi.hpp | 6 +- .../nil/blueprint/zkevm/operations/memory.hpp | 12 +- .../nil/blueprint/zkevm/operations/mul.hpp | 6 +- .../nil/blueprint/zkevm/operations/mulmod.hpp | 6 +- .../blueprint/zkevm/operations/padding.hpp | 6 +- .../nil/blueprint/zkevm/operations/pop.hpp | 6 +- .../nil/blueprint/zkevm/operations/return.hpp | 6 +- .../nil/blueprint/zkevm/operations/sar.hpp | 6 +- .../blueprint/zkevm/operations/sdiv_smod.hpp | 6 +- .../nil/blueprint/zkevm/operations/shl.hpp | 6 +- .../nil/blueprint/zkevm/operations/shr.hpp | 6 +- .../blueprint/zkevm/operations/storage.hpp | 12 +- .../include/nil/blueprint/zkevm/rw.hpp | 2 +- .../zkevm/zkevm_machine_interface.hpp | 2 +- .../nil/blueprint/zkevm/zkevm_word.hpp | 32 +- .../opcode_tester_input_generator.hpp | 2 +- .../blueprint/zkevm_bbf/opcodes/addmod.hpp | 6 +- .../blueprint/zkevm_bbf/opcodes/div_mod.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/mul.hpp | 10 +- .../blueprint/zkevm_bbf/opcodes/mulmod.hpp | 9 +- .../nil/blueprint/zkevm_bbf/opcodes/sar.hpp | 6 +- .../blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp | 9 +- .../nil/blueprint/zkevm_bbf/opcodes/shl.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/shr.hpp | 6 +- .../zkevm_bbf/opcodes/signextend.hpp | 6 +- .../include/nil/blueprint/zkevm_bbf/rw.hpp | 2 +- .../include/nil/blueprint/zkevm_bbf/util.hpp | 8 +- .../test/algebra/curves/plonk/endo_scalar.cpp | 26 +- .../plonk/variable_base_endo_scalar_mul.cpp | 2 +- .../curves/plonk/variable_base_scalar_mul.cpp | 6 +- .../plonk/non_native/multiplication.cpp | 16 +- .../algebra/fields/plonk/non_native/range.cpp | 4 +- .../fields/plonk/non_native/reduction.cpp | 11 +- .../fields/plonk/non_native/subtraction.cpp | 4 +- .../test/algebra/fields/plonk/range_check.cpp | 2 +- .../libs/blueprint/test/bbf/exp_wrapper.cpp | 22 +- .../test/hashes/plonk/decomposition.cpp | 12 +- .../blueprint/test/hashes/plonk/poseidon.cpp | 2 +- .../blueprint/test/hashes/plonk/sha256.cpp | 40 +- .../test/hashes/plonk/sha512_process.cpp | 56 +- .../blueprint/test/mock/mocked_components.cpp | 27 +- .../plonk/add_mul_zkllvm_compatible.cpp | 2 +- .../plonk/scalar_non_native_range.cpp | 6 +- .../test/verifiers/flexible/linear_check.cpp | 52 +- .../test/verifiers/flexible/poseidon.cpp | 2 +- .../scalar_details/evals_of_split_evals.cpp | 2 +- .../test/verifiers/placeholder/f1_loop.cpp | 156 +- .../test/verifiers/placeholder/f3_loop.cpp | 90 +- .../test/verifiers/placeholder/fri_cosets.cpp | 4 +- .../placeholder/gate_argument_verifier.cpp | 80 +- .../verifiers/placeholder/gate_component.cpp | 56 +- .../placeholder/lookup_argument_verifier.cpp | 536 ++-- .../permutation_argument_verifier.cpp | 82 +- .../libs/blueprint/test/zkevm/bytecode.cpp | 2 +- .../blueprint/test/zkevm/opcodes/add_sub.cpp | 24 +- .../blueprint/test/zkevm/opcodes/bitwise.cpp | 48 +- .../blueprint/test/zkevm/opcodes/byte_ops.cpp | 122 +- .../libs/blueprint/test/zkevm/opcodes/cmp.cpp | 60 +- .../libs/blueprint/test/zkevm/opcodes/div.cpp | 64 +- .../blueprint/test/zkevm/opcodes/err0.cpp | 4 +- .../blueprint/test/zkevm/opcodes/mod_ops.cpp | 48 +- .../libs/blueprint/test/zkevm/opcodes/mul.cpp | 12 +- .../libs/blueprint/test/zkevm/opcodes/not.cpp | 6 +- .../blueprint/test/zkevm/opcodes/workload.cpp | 6 +- .../test/zkevm_bbf/opcodes/add_sub.cpp | 24 +- .../test/zkevm_bbf/opcodes/bitwise.cpp | 48 +- .../test/zkevm_bbf/opcodes/byte_ops.cpp | 124 +- .../blueprint/test/zkevm_bbf/opcodes/cmp.cpp | 60 +- .../blueprint/test/zkevm_bbf/opcodes/div.cpp | 64 +- .../blueprint/test/zkevm_bbf/opcodes/exp.cpp | 16 +- .../blueprint/test/zkevm_bbf/opcodes/mul.cpp | 22 +- .../blueprint/test/zkevm_bbf/opcodes/not.cpp | 6 +- .../test/zkevm_bbf/opcodes/pushx.cpp | 64 +- .../libs/containers/test/merkle/merkle.cpp | 18 +- .../hash/block_to_field_elements_wrapper.hpp | 2 +- .../nil/crypto3/hash/detail/h2c/ep.hpp | 19 +- .../nil/crypto3/hash/detail/h2c/ep2.hpp | 20 +- .../crypto3/hash/detail/h2c/h2c_functions.hpp | 159 +- .../crypto3/hash/detail/h2c/h2c_iso_map.hpp | 142 +- .../nil/crypto3/hash/detail/h2c/h2c_sgn0.hpp | 17 +- .../crypto3/hash/detail/h2c/h2c_suites.hpp | 10 +- .../hash/detail/poseidon/kimchi_constants.hpp | 696 ++--- .../detail/poseidon/original_constants.hpp | 2276 ++++++++--------- .../poseidon/poseidon_constants_generator.hpp | 10 +- .../hash/include/nil/crypto3/hash/h2f.hpp | 11 +- crypto3/libs/hash/test/hash_to_curve.cpp | 3 - crypto3/libs/hash/test/poseidon.cpp | 136 +- .../algebra/processing/ed25519.hpp | 2 +- .../marshalling/algebra/processing/pallas.hpp | 4 +- .../algebra/processing/secp_k1.hpp | 4 +- .../algebra/processing/secp_r1.hpp | 4 +- .../marshalling/algebra/processing/vesta.hpp | 4 +- .../algebra/test/curve_element.cpp | 1 - .../algebra/test/field_element.cpp | 3 - ...field_element_non_fixed_size_container.cpp | 3 - .../multiprecision/test/CMakeLists.txt | 2 +- .../multiprecision/test/integral.cpp | 26 +- .../test/integral_fixed_size_container.cpp | 26 +- .../zk/detail/random_test_data_generation.hpp | 3 - .../zk/test/accumulation_vector.cpp | 3 - .../marshalling/zk/test/fri_commitment.cpp | 3 - .../marshalling/zk/test/kzg_commitment.cpp | 3 - .../libs/marshalling/zk/test/merkle_proof.cpp | 2 - .../zk/test/placeholder_common_data.cpp | 3 - .../placeholder_preprocessed_public_data.cpp | 3 - .../marshalling/zk/test/placeholder_proof.cpp | 8 +- .../marshalling/zk/test/polys_evaluator.cpp | 3 - .../marshalling/zk/test/sparse_vector.cpp | 3 - .../crypto3/math/algorithms/unity_root.hpp | 34 +- .../math/domains/evaluation_domain.hpp | 5 +- crypto3/libs/math/test/polynomial_dfs.cpp | 1234 ++++----- .../libs/math/test/polynomial_dfs_view.cpp | 590 ++--- .../multiprecision/big_int/big_uint_impl.hpp | 2 +- .../include/nil/crypto3/random/hash.hpp | 2 - .../recursive_verifier_generator.hpp | 10 +- .../templates/recursive_verifier.hpp | 4 +- .../element_knowledge_commitment.hpp | 12 +- .../knowledge_commitment_multiexp.hpp | 5 +- .../nil/crypto3/zk/math/expression.hpp | 5 +- .../arithmetization/plonk/constraint.hpp | 4 +- .../nil/crypto3/zk/transcript/fiat_shamir.hpp | 6 +- .../zk/transcript/kimchi_transcript.hpp | 5 +- crypto3/libs/zk/test/commitment/kzg.cpp | 276 +- .../zk/test/systems/plonk/pickles/kimchi.cpp | 84 +- .../zk/test/systems/plonk/pickles/pickles.cpp | 708 ++--- .../test/systems/plonk/pickles/to_field.cpp | 8 +- .../test/systems/plonk/pickles/to_group.cpp | 6 +- .../zk/test/transcript/kimchi_transcript.cpp | 454 ++-- .../libs/zk/test/transcript/transcript.cpp | 32 +- .../nil/proof-generator/file_operations.hpp | 1 + .../proof-generator/assigner/trace_parser.hpp | 2 +- .../test_assignment_table_writer.cpp | 18 +- 269 files changed, 6396 insertions(+), 7053 deletions(-) diff --git a/crypto3/libs/algebra/docs/implementation.md b/crypto3/libs/algebra/docs/implementation.md index d8696978b3..b40b2feb76 100644 --- a/crypto3/libs/algebra/docs/implementation.md +++ b/crypto3/libs/algebra/docs/implementation.md @@ -130,7 +130,7 @@ For example, `extension_params` structure keeps all the parameters needed for fi ### Field Element Algorithms ### {#field_element_algorithms} Field element corresponds an element of the field and has all the needed methods and overloaded arithmetic operators. The corresponding -algorithms are also defined here. As the backend they use now Boost::multiprecision, but it can be easily changed. +algorithms are also defined here. As the backend they use nil::crypto3::multiprecision. ## Elliptic Curves Architecture ## {#curves_architecture} diff --git a/crypto3/libs/algebra/example/curves.cpp b/crypto3/libs/algebra/example/curves.cpp index cd9eefe08d..3b51a02556 100644 --- a/crypto3/libs/algebra/example/curves.cpp +++ b/crypto3/libs/algebra/example/curves.cpp @@ -25,10 +25,7 @@ #include -#include -#include -#include -#include +#include #include #include @@ -122,12 +119,12 @@ int main() { using bjj_g1_f_v = typename babyjubjub_g1_type::field_type::value_type; typename babyjubjub_g1_type::value_type - P1(bjj_g1_f_v(0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_cppui_modular254), - bjj_g1_f_v(0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_cppui_modular251)), - P2(bjj_g1_f_v(0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_cppui_modular254), - bjj_g1_f_v(0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_cppui_modular254)), - P3(bjj_g1_f_v(0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_cppui_modular253), - bjj_g1_f_v(0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_cppui_modular253)); + P1(bjj_g1_f_v(0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_bigui254), + bjj_g1_f_v(0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_bigui251)), + P2(bjj_g1_f_v(0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_bigui254), + bjj_g1_f_v(0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_bigui254)), + P3(bjj_g1_f_v(0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_bigui253), + bjj_g1_f_v(0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_bigui253)); std::cout << "BabyJubJub addition test: " << std::endl; typename babyjubjub_g1_type::value_type P1pP2 = P1 + P2; diff --git a/crypto3/libs/algebra/example/fields.cpp b/crypto3/libs/algebra/example/fields.cpp index 1c27529261..04b7cb9fc8 100644 --- a/crypto3/libs/algebra/example/fields.cpp +++ b/crypto3/libs/algebra/example/fields.cpp @@ -25,10 +25,8 @@ #include -#include -#include -#include -#include +#include + #include #include diff --git a/crypto3/libs/algebra/example/random_element.cpp b/crypto3/libs/algebra/example/random_element.cpp index 5a45298584..12d0304f02 100644 --- a/crypto3/libs/algebra/example/random_element.cpp +++ b/crypto3/libs/algebra/example/random_element.cpp @@ -25,10 +25,8 @@ #include -#include -#include -#include -#include +#include + #include #include diff --git a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp index a371e32c21..f64029a459 100644 --- a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp +++ b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp @@ -23,10 +23,8 @@ // SOFTWARE. //---------------------------------------------------------------------------// -#include -#include -#include -#include +#include + #include @@ -37,10 +35,10 @@ void coordinates_examples() { typedef typename FpCurveGroup::value_type group_value_type; typedef typename FpCurveGroup::field_type::value_type field_value_type; - field_value_type e1 = field_value_type(0xfadaf4efc388b9fb1f5f6286032868c8c29a4d7b359f17bff792511cdbcea8ba_cppui_modular256), - e2(0x609eaeb55609889d764de70df4536a52a6773ce14244d2109afb1f6140d64ed2_cppui_modular256), e3(1), - e4(0x72213568b6cec6bad10c649c22d9388857085132ea254320c7d3c12727f55d97_cppui_modular256), - e5(0xff9d5ca60a4f5ae00b2abdb6dddb3f4fc5c853ed56a33a85ccaa7d3093084579_cppui_modular256), e6(1); + field_value_type e1 = field_value_type(0xfadaf4efc388b9fb1f5f6286032868c8c29a4d7b359f17bff792511cdbcea8ba_bigui256), + e2(0x609eaeb55609889d764de70df4536a52a6773ce14244d2109afb1f6140d64ed2_bigui256), e3(1), + e4(0x72213568b6cec6bad10c649c22d9388857085132ea254320c7d3c12727f55d97_bigui256), + e5(0xff9d5ca60a4f5ae00b2abdb6dddb3f4fc5c853ed56a33a85ccaa7d3093084579_bigui256), e6(1); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp index dd1cafa846..2566152174 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp @@ -96,11 +96,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED_cppui_modular254, - 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2_cppui_modular254), + 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED_bigui254, + 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2_bigui254), typename field_type::value_type( - 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA_cppui_modular254, - 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B_cppui_modular254)}; + 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA_bigui254, + 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B_bigui254)}; }; constexpr typename alt_bn128_types<254>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp index 70aa0e6550..f2b3515c76 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp @@ -44,10 +44,10 @@ namespace nil { // Edwards representation constants a and d constexpr static const typename babyjubjub_types::base_field_type::value_type a = ///< twisted Edwards elliptic curve - 0x292FC_cppui_modular18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 + 0x292FC_bigui18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 constexpr static const typename babyjubjub_types::base_field_type::value_type d = ///< twisted Edwards elliptic curve - 0x292F8_cppui_modular18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 + 0x292F8_bigui18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 }; constexpr @@ -63,7 +63,7 @@ namespace nil { // Montgomery representation constants A and B constexpr static const typename babyjubjub_types::base_field_type::value_type A = ///< Montgomery elliptic curve - 0x292FA_cppui_modular18; ///< described by equation b*y^2 = x^3 + a*x^2 + x + 0x292FA_bigui18; ///< described by equation b*y^2 = x^3 + a*x^2 + x constexpr static const typename babyjubjub_types::base_field_type::value_type B = ///< Montgomery elliptic curve 0x01; ///< described by equation b*y^2 = x^3 + a*x^2 + x @@ -85,9 +85,9 @@ namespace nil { constexpr static const std::array one_fill = { typename base_field_type::value_type( - 0xBB77A6AD63E739B4EACB2E09D6277C12AB8D8010534E0B62893F3F6BB957051_cppui_modular252), + 0xBB77A6AD63E739B4EACB2E09D6277C12AB8D8010534E0B62893F3F6BB957051_bigui252), typename base_field_type::value_type( - 0x25797203F7A0B24925572E1CD16BF9EDFCE0051FB9E133774B3C257A872D7D8B_cppui_modular254)}; + 0x25797203F7A0B24925572E1CD16BF9EDFCE0051FB9E133774B3C257A872D7D8B_bigui254)}; }; constexpr std::array< @@ -106,9 +106,9 @@ namespace nil { constexpr static const std::array one_fill = { typename base_field_type::value_type( - 0xfbc9ac10c16d45d4eacdd6489fa006480b17a811cdba46922896085f89faaf6_cppui_modular252), + 0xfbc9ac10c16d45d4eacdd6489fa006480b17a811cdba46922896085f89faaf6_bigui252), typename base_field_type::value_type( - 0x203a710160811d5c07ebaeb8fe1d9ce201c66b970d66f18d0d2b264c195309aa_cppui_modular254)}; + 0x203a710160811d5c07ebaeb8fe1d9ce201c66b970d66f18d0d2b264c195309aa_bigui254)}; }; constexpr std::array::base_field_type::value_type, diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp index be2827e9c1..e80cd95f03 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x8848DEFE740A67C8FC6225BF87FF5485951E2CAA9D41BB188282C8BD37CB5CD5481512FFCD394EEAB9B16EB21BE9EF_cppui_modular376), + 0x8848DEFE740A67C8FC6225BF87FF5485951E2CAA9D41BB188282C8BD37CB5CD5481512FFCD394EEAB9B16EB21BE9EF_bigui376), typename field_type::value_type( - 0x1914A69C5102EFF1F674F5D30AFEEC4BD7FB348CA3E52D96D182AD44FB82305C2FE3D3634A9591AFD82DE55559C8EA6_cppui_modular377)}; + 0x1914A69C5102EFF1F674F5D30AFEEC4BD7FB348CA3E52D96D182AD44FB82305C2FE3D3634A9591AFD82DE55559C8EA6_bigui377)}; }; template<> @@ -100,11 +100,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xB997FEF930828FE1B9E6A1707B8AA508A3DBFD7FE2246499C709226A0A6FEF49F85B3A375363F4F8F6EA3FBD159F8A_cppui_modular376, - 0xD6AC33B84947D9845F81A57A136BFA326E915FABC8CD6A57FF133B42D00F62E4E1AF460228CD5184DEAE976FA62596_cppui_modular376), + 0xB997FEF930828FE1B9E6A1707B8AA508A3DBFD7FE2246499C709226A0A6FEF49F85B3A375363F4F8F6EA3FBD159F8A_bigui376, + 0xD6AC33B84947D9845F81A57A136BFA326E915FABC8CD6A57FF133B42D00F62E4E1AF460228CD5184DEAE976FA62596_bigui376), typename field_type::value_type( - 0x118DD509B2E9A13744A507D515A595DBB7E3B63DF568866473790184BDF83636C94DF2B7A962CB2AF4337F07CB7E622_cppui_modular377, - 0x185067C6CA76D992F064A432BD9F9BE832B0CAC2D824D0518F77D39E76C3E146AFB825F2092218D038867D7F337A010_cppui_modular377)}; + 0x118DD509B2E9A13744A507D515A595DBB7E3B63DF568866473790184BDF83636C94DF2B7A962CB2AF4337F07CB7E622_bigui377, + 0x185067C6CA76D992F064A432BD9F9BE832B0CAC2D824D0518F77D39E76C3E146AFB825F2092218D038867D7F337A010_bigui377)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp index 2b75c6a8ce..56e018693c 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_cppui_modular381), + 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_bigui381), typename field_type::value_type( - 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_cppui_modular380)}; + 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_bigui380)}; }; template<> @@ -100,11 +100,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_cppui_modular378, - 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_cppui_modular381), + 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_bigui378, + 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_bigui381), typename field_type::value_type( - 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_cppui_modular380, - 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_cppui_modular379)}; + 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_bigui380, + 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_bigui379)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp index c275451cc6..8ee404a8de 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp @@ -67,8 +67,8 @@ namespace nil { static value_type one () { return make_value( - 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_cppui_modular381, - 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_cppui_modular380 + 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_bigui381, + 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_bigui380 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp index 948e50b5b3..aa4a163af4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp @@ -68,10 +68,10 @@ namespace nil { static value_type one () { return make_value( - 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_cppui_modular378, - 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_cppui_modular381, - 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_cppui_modular380, - 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_cppui_modular379 + 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_bigui378, + 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_bigui381, + 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_bigui380, + 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_bigui379 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp index cbaed496cc..bc5bcb5df4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp @@ -70,8 +70,8 @@ namespace nil { static value_type one () { return make_value( - 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a_cppui_modular256, - 0x6666666666666666666666666666666666666666666666666666666666666658_cppui_modular256 + 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a_bigui256, + 0x6666666666666666666666666666666666666666666666666666666666666658_bigui256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp index 2b494f73cf..0662ad272e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp @@ -69,7 +69,7 @@ namespace nil { constexpr static std::array one_fill = { typename field_type::value_type(0x09u), typename field_type::value_type( - 0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9_cppui_modular254)}; + 0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9_bigui254)}; #endif }; @@ -115,9 +115,9 @@ namespace nil { constexpr static std::array one_fill = { typename field_type::value_type( - 0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A_cppui_modular254), + 0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A_bigui254), typename field_type::value_type( - 0x6666666666666666666666666666666666666666666666666666666666666658_cppui_modular255)}; + 0x6666666666666666666666666666666666666666666666666666666666666658_bigui255)}; #endif }; #ifdef __ZKLLVM__ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/montgomery/element_g1_affine.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/montgomery/element_g1_affine.hpp index 8139ee992b..ee5426883b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/montgomery/element_g1_affine.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/montgomery/element_g1_affine.hpp @@ -87,10 +87,9 @@ namespace nil { constexpr curve_element(const field_value_type &in_X, const field_value_type &in_Y) : is_inf_point(false), X(in_X), Y(in_Y) {}; - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -203,10 +202,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/element_g1_affine.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/element_g1_affine.hpp index 580f0d19df..5105f0df8c 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/element_g1_affine.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/element_g1_affine.hpp @@ -86,10 +86,9 @@ namespace nil { : X(X), Y(Y){ } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -174,10 +173,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian/element_g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian/element_g1.hpp index e77404ac1a..9a99da5db2 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian/element_g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian/element_g1.hpp @@ -242,10 +242,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_0/element_g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_0/element_g1.hpp index 4052b24bc3..1f6d22ad1e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_0/element_g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_0/element_g1.hpp @@ -97,10 +97,9 @@ namespace nil { : X(X), Y(Y), Z(Z) { } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -250,10 +249,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_minus_3/element_g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_minus_3/element_g1.hpp index b9b0d4a102..e4b3502c6b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_minus_3/element_g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/jacobian_with_a4_minus_3/element_g1.hpp @@ -97,10 +97,9 @@ namespace nil { : X(X), Y(Y), Z(Z) { } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -254,10 +253,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/projective/element_g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/projective/element_g1.hpp index 7ac86a6a6b..e6c9d7851c 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/projective/element_g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/short_weierstrass/projective/element_g1.hpp @@ -95,10 +95,9 @@ namespace nil { : X(X), Y(Y), Z(Z) { } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -214,10 +213,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/element_g1_affine.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/element_g1_affine.hpp index c95cf59fb9..80edf742a8 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/element_g1_affine.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/element_g1_affine.hpp @@ -86,10 +86,9 @@ namespace nil { : X(X), Y(Y) { } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -218,10 +217,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/extended_with_a_minus_1/element_g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/extended_with_a_minus_1/element_g1.hpp index 3d4f9213ea..851822baa1 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/extended_with_a_minus_1/element_g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/forms/twisted_edwards/extended_with_a_minus_1/element_g1.hpp @@ -109,10 +109,9 @@ namespace nil { : X(X), Y(Y), T(X*Y), Z(field_value_type::one()) { } - template + template explicit constexpr curve_element( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; } @@ -229,10 +228,9 @@ namespace nil { return *this; } - template + template constexpr const curve_element& operator=( - const boost::multiprecision::number &value) { + const nil::crypto3::multiprecision::big_uint &value) { *this = one() * value; return *this; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp index 72f6b766bb..b6e944aeaa 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp @@ -52,65 +52,65 @@ namespace nil { typedef typename suite_type::integral_type integral_type; constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_cppui_modular381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_cppui_modular381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_cppui_modular381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_cppui_modular381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_cppui_modular381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_cppui_modular381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_cppui_modular381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_cppui_modular381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_cppui_modular381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_cppui_modular381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_cppui_modular381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_cppui_modular381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_cppui_modular381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_cppui_modular381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_cppui_modular381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_cppui_modular381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_cppui_modular381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_cppui_modular381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_cppui_modular381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_cppui_modular381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_cppui_modular381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_cppui_modular381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_cppui_modular381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_cppui_modular381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_cppui_modular381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_cppui_modular381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_cppui_modular381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_cppui_modular381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_cppui_modular381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_cppui_modular381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_cppui_modular381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_cppui_modular381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_cppui_modular381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_cppui_modular381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_cppui_modular381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_cppui_modular381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_cppui_modular381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_cppui_modular381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_cppui_modular381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_cppui_modular381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_cppui_modular381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_cppui_modular381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_cppui_modular381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_cppui_modular381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_cppui_modular381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_cppui_modular381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_cppui_modular381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_cppui_modular381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_cppui_modular381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_cppui_modular381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_cppui_modular381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_cppui_modular381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_cppui_modular381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -165,38 +165,38 @@ namespace nil { typedef typename suite_type::integral_type integral_type; constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_cppui_modular381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_cppui_modular381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_cppui_modular381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_cppui_modular381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp index 3ec0fff689..79c43d07e9 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp @@ -66,9 +66,9 @@ namespace nil { // A = 2 (a + d) / (a - d) // B = 4 / (a - d) constexpr static const typename jubjub_types::base_field_type::value_type - A = 0xA002_cppui_modular255; + A = 0xA002_bigui255; constexpr static const typename jubjub_types::base_field_type::value_type - B = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffff5ffd_cppui_modular255; + B = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffff5ffd_bigui255; static constexpr std::size_t cofactor = 8; }; @@ -89,9 +89,9 @@ namespace nil { // according to https://neuromancer.sk/std/other/JubJub constexpr static const std::array one_fill = { typename field_type::value_type( - 0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b_cppui_modular253), + 0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b_bigui253), typename field_type::value_type( - 0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa_cppui_modular253)}; + 0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa_bigui253)}; }; constexpr std::array::base_field_type::value_type, @@ -118,9 +118,9 @@ namespace nil { */ constexpr static const std::array one_fill = { typename field_type::value_type( - 0x52a47af6ec47deb77d663b6a45b148d1ccdaa4e2299ecfbd5504c409b3ea62c0_cppui_modular255), + 0x52a47af6ec47deb77d663b6a45b148d1ccdaa4e2299ecfbd5504c409b3ea62c0_bigui255), typename field_type::value_type( - 0x20bc4f2e8cff38006618840fd0f9b6d6e8ddec99c37916874e2fd6d5c6558938_cppui_modular254)}; + 0x20bc4f2e8cff38006618840fd0f9b6d6e8ddec99c37916874e2fd6d5c6558938_bigui254)}; }; constexpr std::array::base_field_type::value_type, diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp index 55fcdb6ff5..5301bff98f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp @@ -47,7 +47,7 @@ namespace nil { constexpr static const typename mnt4_types<298>::base_field_type::value_type a = 0x02; constexpr static const typename mnt4_types<298>::base_field_type::value_type - b = 0x3545A27639415585EA4D523234FC3EDD2A2070A085C7B980F4E9CD21A515D4B0EF528EC0FD5_cppui_modular298; + b = 0x3545A27639415585EA4D523234FC3EDD2A2070A085C7B980F4E9CD21A515D4B0EF528EC0FD5_bigui298; }; template<> @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x7A2CAF82A1BA85213FE6CA3875AEE86ABA8F73D69060C4079492B948DEA216B5B9C8D2AF46_cppui_modular295), + 0x7A2CAF82A1BA85213FE6CA3875AEE86ABA8F73D69060C4079492B948DEA216B5B9C8D2AF46_bigui295), typename field_type::value_type( - 0x2DB619461CC82672F7F159FEC2E89D0148DCC9862D36778C1AFD96A71E29CBA48E710A48AB2_cppui_modular298)}; + 0x2DB619461CC82672F7F159FEC2E89D0148DCC9862D36778C1AFD96A71E29CBA48E710A48AB2_bigui298)}; }; template<> @@ -109,11 +109,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x371780491C5660571FF542F2EF89001F205151E12A72CB14F01A931E72DBA7903DF6C09A9A4_cppui_modular298, - 0x4BA59A3F72DA165DEF838081AF697C851F002F576303302BB6C02C712C968BE32C0AE0A989_cppui_modular295), + 0x371780491C5660571FF542F2EF89001F205151E12A72CB14F01A931E72DBA7903DF6C09A9A4_bigui298, + 0x4BA59A3F72DA165DEF838081AF697C851F002F576303302BB6C02C712C968BE32C0AE0A989_bigui295), typename field_type::value_type( - 0x4B471F33FFAAD868A1C47D6605D31E5C4B3B2E0B60EC98F0F610A5AAFD0D9522BCA4E79F22_cppui_modular295, - 0x355D05A1C69A5031F3F81A5C100CB7D982F78EC9CFC3B5168ED8D75C7C484FB61A3CBF0E0F1_cppui_modular298)}; + 0x4B471F33FFAAD868A1C47D6605D31E5C4B3B2E0B60EC98F0F610A5AAFD0D9522BCA4E79F22_bigui295, + 0x355D05A1C69A5031F3F81A5C100CB7D982F78EC9CFC3B5168ED8D75C7C484FB61A3CBF0E0F1_bigui298)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp index 94e18751f8..6b3572cd73 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp @@ -47,7 +47,7 @@ namespace nil { constexpr static const typename mnt6_types<298>::base_field_type::value_type a = 0x0B; constexpr static const typename mnt6_types<298>::base_field_type::value_type - b = 0xD68C7B1DC5DD042E957B71C44D3D6C24E683FC09B420B1A2D263FDE47DDBA59463D0C65282_cppui_modular296; + b = 0xD68C7B1DC5DD042E957B71C44D3D6C24E683FC09B420B1A2D263FDE47DDBA59463D0C65282_bigui296; }; template<> @@ -64,9 +64,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x2A4FEEE24FD2C69D1D90471B2BA61ED56F9BAD79B57E0B4C671392584BDADEBC01ABBC0447D_cppui_modular298), + 0x2A4FEEE24FD2C69D1D90471B2BA61ED56F9BAD79B57E0B4C671392584BDADEBC01ABBC0447D_bigui298), typename field_type::value_type( - 0x32986C245F6DB2F82F4E037BF7AFD69CBFCBFF07FC25D71E9C75E1B97208A333D73D91D3028_cppui_modular298)}; + 0x32986C245F6DB2F82F4E037BF7AFD69CBFCBFF07FC25D71E9C75E1B97208A333D73D91D3028_bigui298)}; }; template<> @@ -100,13 +100,13 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x34F7320A12B56CE532BCCB3B44902CBAA723CD60035ADA7404B743AD2E644AD76257E4C6813_cppui_modular298, - 0xCF41620BAA52EEC50E61A70AB5B45F681952E0109340FEC84F1B2890ABA9B15CAC5A0C80FA_cppui_modular296, - 0x11F99170E10E326433CCCB8032FB48007CA3C4E105CF31B056AC767E2CB01258391BD4917CE_cppui_modular297), + 0x34F7320A12B56CE532BCCB3B44902CBAA723CD60035ADA7404B743AD2E644AD76257E4C6813_bigui298, + 0xCF41620BAA52EEC50E61A70AB5B45F681952E0109340FEC84F1B2890ABA9B15CAC5A0C80FA_bigui296, + 0x11F99170E10E326433CCCB8032FB48007CA3C4E105CF31B056AC767E2CB01258391BD4917CE_bigui297), typename field_type::value_type( - 0x3A65968F03CC64D62AD05C79C415E07EBD38B363EC48309487C0B83E1717A582C1B60FECC91_cppui_modular298, - 0xCA5E8427E5DB1506C1A24CEFC2451AB3ACCAEA5DB82DCB0C7117CC74402FAA5B2C37685C6E_cppui_modular296, - 0xF75D2DD88302C9A4EF941307629A1B3E197277D83ABB715F647C2E55A27BAF782F5C60E7F7_cppui_modular296)}; + 0x3A65968F03CC64D62AD05C79C415E07EBD38B363EC48309487C0B83E1717A582C1B60FECC91_bigui298, + 0xCA5E8427E5DB1506C1A24CEFC2451AB3ACCAEA5DB82DCB0C7117CC74402FAA5B2C37685C6E_bigui296, + 0xF75D2DD88302C9A4EF941307629A1B3E197277D83ABB715F647C2E55A27BAF782F5C60E7F7_bigui296)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp index efca519eed..347b53160d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp @@ -63,8 +63,8 @@ namespace nil { static value_type one () { return make_value( - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000_cppui_modular256, - 0x2_cppui_modular256 + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000_bigui256, + 0x2_bigui256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp index 0b9b217399..67f9f77c65 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp @@ -30,10 +30,7 @@ #include -#include -#include - -#include +#include #include @@ -43,10 +40,10 @@ namespace nil { namespace curves { namespace detail { - template + template constexpr void scalar_mul_inplace( CurveElementType &base, - boost::multiprecision::number> const& scalar) + nil::crypto3::multiprecision::big_uint const& scalar) { if (scalar.is_zero()) { base = CurveElementType::zero(); @@ -54,7 +51,7 @@ namespace nil { } const size_t window_size = 3; - auto naf = boost::multiprecision::eval_find_wnaf_a(window_size + 1, scalar.backend()); + auto naf = nil::crypto3::multiprecision::find_wnaf_a(window_size + 1, scalar); std::array table; CurveElementType dbl = base; dbl.double_inplace(); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp index 21bb4615e9..82f4bedff9 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp @@ -67,8 +67,8 @@ namespace nil { #endif constexpr static const std::array one_fill = { - typename field_type::value_type(0x3b4c382ce37aa192a4019e763036f4f5dd4d7ebb_cppui_modular160), - typename field_type::value_type(0x938cf935318fdced6bc28286531733c3f03c4fee_cppui_modular160)}; + typename field_type::value_type(0x3b4c382ce37aa192a4019e763036f4f5dd4d7ebb_bigui160), + typename field_type::value_type(0x938cf935318fdced6bc28286531733c3f03c4fee_bigui160)}; }; constexpr typename secp_k1_types<160>::base_field_type::value_type const @@ -117,9 +117,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xdb4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d_cppui_modular192), + 0xdb4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d_bigui192), typename field_type::value_type( - 0x9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d_cppui_modular192)}; + 0x9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d_bigui192)}; }; constexpr typename secp_k1_types<192>::base_field_type::value_type const @@ -166,9 +166,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xa1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c_cppui_modular224), + 0xa1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c_bigui224), typename field_type::value_type( - 0x7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5_cppui_modular224)}; + 0x7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5_bigui224)}; }; constexpr typename secp_k1_types<224>::base_field_type::value_type const @@ -215,9 +215,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798_cppui_modular256), + 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798_bigui256), typename field_type::value_type( - 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8_cppui_modular256)}; + 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8_bigui256)}; }; constexpr typename secp_k1_types<256>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp index 89fe04d5aa..1ef5c8f988 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp @@ -44,9 +44,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<160>::base_field_type::value_type - a = 0xffffffffffffffffffffffffffffffff7ffffffc_cppui_modular160; + a = 0xffffffffffffffffffffffffffffffff7ffffffc_bigui160; constexpr static const typename secp_r1_types<160>::base_field_type::value_type - b = 0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45_cppui_modular160; + b = 0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45_bigui160; }; template<> @@ -67,8 +67,8 @@ namespace nil { #endif constexpr static const std::array one_fill = { - typename field_type::value_type(0x4a96b5688ef573284664698968c38bb913cbfc82_cppui_modular160), - typename field_type::value_type(0x23a628553168947d59dcc912042351377ac5fb32_cppui_modular160)}; + typename field_type::value_type(0x4a96b5688ef573284664698968c38bb913cbfc82_bigui160), + typename field_type::value_type(0x23a628553168947d59dcc912042351377ac5fb32_bigui160)}; }; constexpr typename secp_r1_types<160>::base_field_type::value_type const @@ -91,9 +91,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<192>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffefffffffffffffffc_cppui_modular192; + a = 0xfffffffffffffffffffffffffffffffefffffffffffffffc_bigui192; constexpr static const typename secp_r1_types<192>::base_field_type::value_type - b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1_cppui_modular192; + b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1_bigui192; }; template<> @@ -115,9 +115,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012_cppui_modular192), + 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012_bigui192), typename field_type::value_type( - 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811_cppui_modular192)}; + 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811_bigui192)}; }; constexpr typename secp_r1_types<192>::base_field_type::value_type const @@ -140,9 +140,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<224>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe_cppui_modular224; + a = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe_bigui224; constexpr static const typename secp_r1_types<224>::base_field_type::value_type - b = 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4_cppui_modular224; + b = 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4_bigui224; }; template<> @@ -164,9 +164,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21_cppui_modular224), + 0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21_bigui224), typename field_type::value_type( - 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34_cppui_modular224)}; + 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34_bigui224)}; }; constexpr typename secp_r1_types<224>::base_field_type::value_type const @@ -189,9 +189,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<256>::base_field_type::value_type - a = 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc_cppui_modular256; + a = 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc_bigui256; constexpr static const typename secp_r1_types<256>::base_field_type::value_type - b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b_cppui_modular256; + b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b_bigui256; }; template<> @@ -212,9 +212,9 @@ namespace nil { #endif constexpr static const std::array one_fill = { typename field_type::value_type( - 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296_cppui_modular256), + 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296_bigui256), typename field_type::value_type( - 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5_cppui_modular256)}; + 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5_bigui256)}; }; constexpr typename secp_r1_types<256>::base_field_type::value_type const @@ -237,9 +237,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<384>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc_cppui_modular384; + a = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc_bigui384; constexpr static const typename secp_r1_types<384>::base_field_type::value_type - b = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef_cppui_modular384; + b = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef_bigui384; }; template<> @@ -261,9 +261,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7_cppui_modular384), + 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7_bigui384), typename field_type::value_type( - 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f_cppui_modular384)}; + 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f_bigui384)}; }; constexpr typename secp_r1_types<384>::base_field_type::value_type const @@ -286,9 +286,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<521>::base_field_type::value_type - a = 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc_cppui_modular521; + a = 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc_bigui521; constexpr static const typename secp_r1_types<521>::base_field_type::value_type - b = 0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00_cppui_modular521; + b = 0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00_bigui521; }; template<> @@ -310,9 +310,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66_cppui_modular521), + 0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66_bigui521), typename field_type::value_type( - 0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650_cppui_modular521)}; + 0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650_bigui521)}; }; constexpr typename secp_r1_types<521>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp index 83b9bffe94..545e151aa6 100755 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp @@ -65,8 +65,8 @@ namespace nil { static value_type one () { return make_value( - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000_cppui_modular256, - 0x2_cppui_modular256 + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000_bigui256, + 0x2_bigui256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp index 2cee7ea128..dad0321333 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp @@ -53,19 +53,12 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47_cppui_modular254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47_bigui254; constexpr static const integral_type group_order_minus_one_half = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_cppui_modular254; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui254; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; constexpr static const integral_type mul_generator = 0x03; typedef typename detail::element_fp>> value_type; @@ -84,9 +77,6 @@ namespace nil { constexpr typename alt_bn128_base_field<254>::integral_type const alt_bn128_base_field<254>::group_order_minus_one_half; - constexpr typename alt_bn128_base_field<254>::modular_params_type const - alt_bn128_base_field<254>::modulus_params; - constexpr typename alt_bn128_base_field<254>::integral_type const alt_bn128_base_field<254>::mul_generator; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp index 05d747f36d..89a4f9b0a4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp @@ -55,18 +55,12 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001_cppui_modular254; + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001_bigui254; constexpr static const integral_type group_order_minus_one_half = - 0x183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f8000000_cppui_modular254; + 0x183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f8000000_bigui254; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; constexpr static const integral_type mul_generator = 0x05; @@ -88,9 +82,6 @@ namespace nil { constexpr typename alt_bn128_scalar_field<254>::integral_type const alt_bn128_scalar_field<254>::group_order_minus_one_half; - constexpr typename alt_bn128_scalar_field<254>::modular_params_type const - alt_bn128_scalar_field<254>::modulus_params; - constexpr typename alt_bn128_scalar_field<254>::integral_type const alt_bn128_scalar_field<254>::mul_generator; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp index e54942f94b..b186f6d965 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp @@ -46,30 +46,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x01; constexpr static const integral_type t = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_cppui_modular253; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui253; constexpr static const integral_type t_minus_1_over_2 = - 0xC19139CB84C680A6E14116DA060561765E05AA45A1C72A34F082305B61F3F51_cppui_modular252; + 0xC19139CB84C680A6E14116DA060561765E05AA45A1C72A34F082305B61F3F51_bigui252; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x03; constexpr static const integral_type root_of_unity = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254; constexpr static const integral_type nqr = 0x03; constexpr static const integral_type nqr_to_t = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254; constexpr static const integral_type Rsquared = - 0x6D89F71CAB8351F47AB1EFF0A417FF6B5E71911D44501FBF32CFC5B538AFA89_cppui_modular251; + 0x6D89F71CAB8351F47AB1EFF0A417FF6B5E71911D44501FBF32CFC5B538AFA89_bigui251; constexpr static const integral_type Rcubed = - 0x20FD6E902D592544EF7F0B0C0ADA0AFB62F210E6A7283DB6B1CD6DAFDA1530DF_cppui_modular254; + 0x20FD6E902D592544EF7F0B0C0ADA0AFB62F210E6A7283DB6B1CD6DAFDA1530DF_bigui254; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_cppui_modular254; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui254; }; template<> @@ -79,25 +78,23 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; constexpr static const std::size_t s = 0x04; constexpr static const extended_integral_type t = - 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_cppui_modular504; + 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_bigui504; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_cppui_modular503; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_bigui503; constexpr static const std::array nqr = {0x02, 0x01}; constexpr static const std::array nqr_to_t = { - 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_cppui_modular252, - 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_cppui_modular248}; + 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_bigui252, + 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_bigui248}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_cppui_modular507; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_bigui507; }; template<> @@ -107,30 +104,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x1C; constexpr static const integral_type t = - 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F_cppui_modular226; + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F_bigui226; constexpr static const integral_type t_minus_1_over_2 = - 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F_cppui_modular225; + 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F_bigui225; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const integral_type root_of_unity = - 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_cppui_modular254; + 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_bigui254; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_cppui_modular254; + 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_bigui254; constexpr static const integral_type Rsquared = - 0x216D0B17F4E44A58C49833D53BB808553FE3AB1E35C59E31BB8E645AE216DA7_cppui_modular250; + 0x216D0B17F4E44A58C49833D53BB808553FE3AB1E35C59E31BB8E645AE216DA7_bigui250; constexpr static const integral_type Rcubed = - 0xCF8594B7FCC657C893CC664A19FCFED2A489CBE1CFBB6B85E94D8E1B4BF0040_cppui_modular252; + 0xCF8594B7FCC657C893CC664A19FCFED2A489CBE1CFBB6B85E94D8E1B4BF0040_bigui252; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F8000000_cppui_modular254; + 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F8000000_bigui254; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp index ddf9a10023..d6d2f6656d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp @@ -48,30 +48,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x01; constexpr static const integral_type t = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_cppui_modular380; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui380; constexpr static const integral_type t_minus_1_over_2 = - 0x680447A8E5FF9A692C6E9ED90D2EB35D91DD2E13CE144AFD9CC34A83DAC3D8907AAFFFFAC54FFFFEE7FBFFFFFFFEAAA_cppui_modular379; + 0x680447A8E5FF9A692C6E9ED90D2EB35D91DD2E13CE144AFD9CC34A83DAC3D8907AAFFFFAC54FFFFEE7FBFFFFFFFEAAA_bigui379; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x02; constexpr static const integral_type root_of_unity = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381; constexpr static const integral_type nqr = 0x02; constexpr static const integral_type nqr_to_t = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381; constexpr static const integral_type Rsquared = - 0x11988FE592CAE3AA9A793E85B519952D67EB88A9939D83C08DE5476C4C95B6D50A76E6A609D104F1F4DF1F341C341746_cppui_modular381; + 0x11988FE592CAE3AA9A793E85B519952D67EB88A9939D83C08DE5476C4C95B6D50A76E6A609D104F1F4DF1F341C341746_bigui381; constexpr static const integral_type Rcubed = - 0xAA6346091755D4D2512D4356572472834C04E5E921E17619A53352A615E29DD315F831E03A7ADF8ED48AC6BD94CA1E0_cppui_modular380; + 0xAA6346091755D4D2512D4356572472834C04E5E921E17619A53352A615E29DD315F831E03A7ADF8ED48AC6BD94CA1E0_bigui380; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_cppui_modular380; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui380; }; template<> @@ -81,25 +80,23 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; constexpr static const std::size_t s = 0x03; constexpr static const extended_integral_type t = - 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_cppui_modular759; + 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_bigui759; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_cppui_modular758; + 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_bigui758; constexpr static const std::array nqr = {1, 1}; constexpr static const std::array nqr_to_t = { - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381}; + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_cppui_modular761; + 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_bigui761; }; template<> @@ -109,30 +106,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x20; constexpr static const integral_type t = - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF_cppui_modular223; + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF_bigui223; constexpr static const integral_type t_minus_1_over_2 = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF_cppui_modular222; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF_bigui222; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x07; constexpr static const integral_type root_of_unity = - 0x16A2A19EDFE81F20D09B681922C813B4B63683508C2280B93829971F439F0D2B_cppui_modular253; + 0x16A2A19EDFE81F20D09B681922C813B4B63683508C2280B93829971F439F0D2B_bigui253; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x212D79E5B416B6F0FD56DC8D168D6C0C4024FF270B3E0941B788F500B912F1F_cppui_modular250; + 0x212D79E5B416B6F0FD56DC8D168D6C0C4024FF270B3E0941B788F500B912F1F_bigui250; constexpr static const integral_type Rsquared = - 0x748D9D99F59FF1105D314967254398F2B6CEDCB87925C23C999E990F3F29C6D_cppui_modular251; + 0x748D9D99F59FF1105D314967254398F2B6CEDCB87925C23C999E990F3F29C6D_bigui251; constexpr static const integral_type Rcubed = - 0x6E2A5BB9C8DB33E973D13C71C7B5F4181B3E0D188CF06990C62C1807439B73AF_cppui_modular255; + 0x6E2A5BB9C8DB33E973D13C71C7B5F4181B3E0D188CF06990C62C1807439B73AF_bigui255; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_cppui_modular254; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_bigui254; }; /************************* BLS12-377 ***********************************/ @@ -144,30 +140,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x2E; constexpr static const integral_type t = - 0x6B8E9185F1443AB18EC1701B28524EC688B67CC03D44E3C7BCD88BEE82520005C2D7510C00000021423_cppui_modular331; + 0x6B8E9185F1443AB18EC1701B28524EC688B67CC03D44E3C7BCD88BEE82520005C2D7510C00000021423_bigui331; constexpr static const integral_type t_minus_1_over_2 = - 0x35C748C2F8A21D58C760B80D94292763445B3E601EA271E3DE6C45F741290002E16BA88600000010A11_cppui_modular330; + 0x35C748C2F8A21D58C760B80D94292763445B3E601EA271E3DE6C45F741290002E16BA88600000010A11_bigui330; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x0F; constexpr static const integral_type root_of_unity = - 0x36A92E05198A8030F152488AEFFC9B40FBE05B4512A3D4B44D994A0DDFF8C606DF0A4306FE0BC37ECA603CC563B9A1_cppui_modular374; + 0x36A92E05198A8030F152488AEFFC9B40FBE05B4512A3D4B44D994A0DDFF8C606DF0A4306FE0BC37ECA603CC563B9A1_bigui374; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x382D3D99CDBC5D8FE9DEE6AA914B0AD14FCACA7022110EC6EAA2BC56228AC41EA03D28CC795186BA6B5EF26B00BBE8_cppui_modular374; + 0x382D3D99CDBC5D8FE9DEE6AA914B0AD14FCACA7022110EC6EAA2BC56228AC41EA03D28CC795186BA6B5EF26B00BBE8_bigui374; constexpr static const integral_type Rsquared = - 0x6DFCCB1E914B88837E92F041790BF9BFDF7D03827DC3AC22A5F11162D6B46D0329FCAAB00431B1B786686C9400CD22_cppui_modular375; + 0x6DFCCB1E914B88837E92F041790BF9BFDF7D03827DC3AC22A5F11162D6B46D0329FCAAB00431B1B786686C9400CD22_bigui375; constexpr static const integral_type Rcubed = - 0x1065AB4C0E7DDA53F72540713590CB96A2A9516C804A20E2BE8B1180449F513E50F4148BE329585581F532F8815DE20_cppui_modular377; + 0x1065AB4C0E7DDA53F72540713590CB96A2A9516C804A20E2BE8B1180449F513E50F4148BE329585581F532F8815DE20_bigui377; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_cppui_modular376; + 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_bigui376; }; template<> @@ -177,25 +172,23 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; constexpr static const std::size_t s = 0x2F; constexpr static const extended_integral_type t = - 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_cppui_modular707; + 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_bigui707; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_cppui_modular706; + 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_bigui706; constexpr static const std::array nqr = {0x00, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_cppui_modular377}; + 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_bigui377}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order_minus_one_half = - 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_cppui_modular753; + 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_bigui753; }; template<> @@ -205,30 +198,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x2F; constexpr static const integral_type t = - 0x2556CABD34594AACC1689A3CB86F6002B354EDFDA00000021423_cppui_modular206; + 0x2556CABD34594AACC1689A3CB86F6002B354EDFDA00000021423_bigui206; constexpr static const integral_type t_minus_1_over_2 = - 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11_cppui_modular205; + 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11_bigui205; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x16; constexpr static const integral_type root_of_unity = - 0x11D4B7F60CB92CC160C69477D1A8A12F9B506EE363E3F04A476EF4A4EC2A895E_cppui_modular253; + 0x11D4B7F60CB92CC160C69477D1A8A12F9B506EE363E3F04A476EF4A4EC2A895E_bigui253; constexpr static const integral_type nqr = 0x0B; constexpr static const integral_type nqr_to_t = - 0xF4F58D6B338DB36480B0DA08D4FF39BE5C1F1B84059D4CD726869AAA623875C_cppui_modular252; + 0xF4F58D6B338DB36480B0DA08D4FF39BE5C1F1B84059D4CD726869AAA623875C_bigui252; constexpr static const integral_type Rsquared = - 0x11FDAE7EFF1C939A7CC008FE5DC8593CC2C27B58860591F25D577BAB861857B_cppui_modular249; + 0x11FDAE7EFF1C939A7CC008FE5DC8593CC2C27B58860591F25D577BAB861857B_bigui249; constexpr static const integral_type Rcubed = - 0x601DFA555C48DDAB1E55EF6F1C9D713624D23FFAE2716996A4295C90F65454C_cppui_modular251; + 0x601DFA555C48DDAB1E55EF6F1C9D713624D23FFAE2716996A4295C90F65454C_bigui251; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0x955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_cppui_modular252; + 0x955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_bigui252; }; /************************* BLS12-381 definitions ***********************************/ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp index 90709cf4b8..68fcfec74e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp @@ -48,7 +48,7 @@ namespace nil { constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x07; constexpr static const integral_type root_of_unity = - 0x185629DCDA58878C_cppui_modular64; + 0x185629DCDA58878C_bigui64; }; constexpr std::size_t const arithmetic_params::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp index 463336da34..2e797abc83 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp @@ -46,30 +46,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x11; constexpr static const integral_type t = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B3_cppui_modular281; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B3_bigui281; constexpr static const integral_type t_minus_1_over_2 = - 0xEF3DEF351CE899892769EC1523B2BBB258D744CC3A906A78D794480384B24335969C59_cppui_modular280; + 0xEF3DEF351CE899892769EC1523B2BBB258D744CC3A906A78D794480384B24335969C59_bigui280; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x11; constexpr static const integral_type root_of_unity = - 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_cppui_modular298; + 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_bigui298; constexpr static const integral_type nqr = 0x11; constexpr static const integral_type nqr_to_t = - 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_cppui_modular298; + 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_bigui298; constexpr static const integral_type Rsquared = - 0x224F0918A341F32E014AD38D47B66BD7673318850E1A266A1ADBF2BC8930065ACEC5613D220_cppui_modular298; + 0x224F0918A341F32E014AD38D47B66BD7673318850E1A266A1ADBF2BC8930065ACEC5613D220_bigui298; constexpr static const integral_type Rcubed = - 0x35B329C5C21DB492B899FB731B0626C4C908A5073171DE648C893BA7447A3FE093A2C77F995_cppui_modular298; + 0x35B329C5C21DB492B899FB731B0626C4C908A5073171DE648C893BA7447A3FE093A2C77F995_bigui298; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_cppui_modular297; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_bigui297; }; template<> @@ -79,23 +78,21 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; constexpr static const std::size_t s = 0x12; constexpr static const extended_integral_type t = - 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_cppui_modular578; + 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_bigui578; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_cppui_modular577; + 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_bigui577; constexpr static const std::array nqr = {0x08, 0x01}; constexpr static const std::array nqr_to_t = { - 0x00, 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_cppui_modular294}; + 0x00, 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_bigui294}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_cppui_modular595; + 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_bigui595; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp index ca0eb1eed6..7b99004c0e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp @@ -46,30 +46,29 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; constexpr static const std::size_t s = 0x22; constexpr static const integral_type t = - 0xEF3DEF351CE899892769EC1523B2BBB258D73D10653ED25301E4975AB4EED0CD29_cppui_modular264; + 0xEF3DEF351CE899892769EC1523B2BBB258D73D10653ED25301E4975AB4EED0CD29_bigui264; constexpr static const integral_type t_minus_1_over_2 = - 0x779EF79A8E744CC493B4F60A91D95DD92C6B9E88329F692980F24BAD5A77686694_cppui_modular263; + 0x779EF79A8E744CC493B4F60A91D95DD92C6B9E88329F692980F24BAD5A77686694_bigui263; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x0A; constexpr static const integral_type root_of_unity = - 0xF29386B6F08DFECE98F8AA2954E2CF8650D75AE5D90488A8934C1AA0BB321B07D3B48F8379_cppui_modular296; + 0xF29386B6F08DFECE98F8AA2954E2CF8650D75AE5D90488A8934C1AA0BB321B07D3B48F8379_bigui296; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x330D0653B5BA46A85FC6D3958E16DA566E30E50010AAC4A990E4047A12E2043EE3EF848E190_cppui_modular298; + 0x330D0653B5BA46A85FC6D3958E16DA566E30E50010AAC4A990E4047A12E2043EE3EF848E190_bigui298; constexpr static const integral_type Rsquared = - 0x149BB44A34202FF00DCED8E4B6D4BBD6DCF1E3A8386034F9102ADB68371465A743C68E0596B_cppui_modular297; + 0x149BB44A34202FF00DCED8E4B6D4BBD6DCF1E3A8386034F9102ADB68371465A743C68E0596B_bigui297; constexpr static const integral_type Rcubed = - 0x1A0B411C083B440F6A9ED2947CEAC13907BAB5D43C2F687B031B7F0B2B9B6DE2F1B99BD9C4B_cppui_modular297; + 0x1A0B411C083B440F6A9ED2947CEAC13907BAB5D43C2F687B031B7F0B2B9B6DE2F1B99BD9C4B_bigui297; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_cppui_modular297; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_bigui297; }; template<> @@ -79,24 +78,22 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<3 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<3 * policy_type::modulus_bits>; constexpr static const std::size_t s = 0x22; constexpr static const extended_integral_type t = - 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_cppui_modular860; + 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_bigui860; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_cppui_modular859; + 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_bigui859; constexpr static const std::array nqr = {0x05, 0x00, 0x00}; constexpr static const std::array nqr_to_t = { - 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_cppui_modular297, 0x00, + 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_bigui297, 0x00, 0x00}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_cppui_modular893; + 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_bigui893; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp index ec220640f4..a411c7e1bc 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp @@ -53,7 +53,7 @@ namespace nil { constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const integral_type root_of_unity = - 0x1ea14637cbe1870c65d520c6cd47d259883000713dc3c2a1adf8b071592f247a_cppui_modular255; + 0x1ea14637cbe1870c65d520c6cd47d259883000713dc3c2a1adf8b071592f247a_bigui255; constexpr static const integral_type nqr = 0x05; }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp index 087927a9f6..a87c5dfd7f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp @@ -46,13 +46,12 @@ namespace nil { public: typedef typename policy_type::modular_type modular_type; typedef typename policy_type::integral_type integral_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const std::size_t s = 0x20; constexpr static const integral_type root_of_unity = - 0x39579430a0535caa2072a2239079f02b4c5b0caa29bfe9396f80d8a28434208f_cppui_modular255; + 0x39579430a0535caa2072a2239079f02b4c5b0caa29bfe9396f80d8a28434208f_bigui255; constexpr static const integral_type nqr = 0x05; }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp index cecac86ac6..260c58ae24 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp @@ -50,16 +50,9 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x60c89ce5c263405370a08b6d0302b0bab3eedb83920ee0a677297dc392126f1_cppui_modular251; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x60c89ce5c263405370a08b6d0302b0bab3eedb83920ee0a677297dc392126f1_bigui251; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -74,9 +67,6 @@ namespace nil { constexpr typename babyjubjub_scalar_field::integral_type const babyjubjub_scalar_field::modulus; - constexpr - typename babyjubjub_scalar_field::modular_params_type const babyjubjub_scalar_field::modulus_params; - using babyjubjub_fr = babyjubjub_scalar_field; } // namespace fields diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp index f1037f5c60..987fa4718a 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp @@ -58,19 +58,12 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB_cppui_modular381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB_bigui381; constexpr static const integral_type group_order_minus_one_half = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_cppui_modular381; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui381; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; #endif }; @@ -90,19 +83,12 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000001_cppui_modular377; + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000001_bigui377; constexpr static const integral_type group_order_minus_one_half = - 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_cppui_modular377; + 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_bigui377; - typedef typename policy_type::modular_backend modular_backend; - typedef boost::multiprecision::backends::modular_params modular_params_type; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; #endif @@ -124,11 +110,6 @@ namespace nil { constexpr typename bls12_base_field<381>::integral_type const bls12_base_field<381>::group_order_minus_one_half; constexpr typename bls12_base_field<377>::integral_type const bls12_base_field<377>::group_order_minus_one_half; - - constexpr - typename bls12_base_field<381>::modular_params_type const bls12_base_field<381>::modulus_params; - constexpr - typename bls12_base_field<377>::modular_params_type const bls12_base_field<377>::modulus_params; #endif template using bls12_fq = bls12_base_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp index aedd96d8b4..a0b628e40d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp @@ -60,19 +60,12 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001_cppui_modular255; + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001_bigui255; constexpr static const integral_type group_order_minus_one_half = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_cppui_modular255; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_bigui255; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; #endif }; @@ -92,18 +85,11 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11800000000001_cppui_modular253; + 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11800000000001_bigui253; constexpr static const integral_type group_order_minus_one_half = - 0x0955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_cppui_modular253; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x0955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_bigui253; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; #endif }; @@ -123,11 +109,6 @@ namespace nil { constexpr typename bls12_scalar_field<377>::integral_type const bls12_scalar_field<377>::modulus; constexpr typename bls12_scalar_field<381>::integral_type const bls12_scalar_field<381>::group_order_minus_one_half; constexpr typename bls12_scalar_field<377>::integral_type const bls12_scalar_field<377>::group_order_minus_one_half; - - constexpr - typename bls12_scalar_field<381>::modular_params_type const bls12_scalar_field<381>::modulus_params; - constexpr - typename bls12_scalar_field<377>::modular_params_type const bls12_scalar_field<377>::modulus_params; #endif template using bls12_fr = bls12_scalar_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp index fd87f46b55..d50f9ff08b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp @@ -51,26 +51,18 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const std::size_t value_bits = modulus_bits; constexpr static const std::size_t arity = 1; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; typedef typename policy_type::integral_type integral_type; #ifdef __ZKLLVM__ typedef __zkllvm_field_curve25519_base value_type; #else constexpr static const integral_type modulus = - 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed_cppui_modular255; + 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed_bigui255; constexpr static const integral_type group_order_minus_one_half = - 0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6_cppui_modular255; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6_bigui255; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; #endif }; @@ -82,8 +74,6 @@ namespace nil { #ifdef __ZKLLVM__ #else constexpr typename curve25519_base_field::integral_type const curve25519_base_field::modulus; - constexpr - typename curve25519_base_field::modular_params_type const curve25519_base_field::modulus_params; #endif using curve25519_fq = curve25519_base_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp index 2cf3fba0c1..0ca5ccc8ad 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp @@ -53,23 +53,15 @@ namespace nil { constexpr static const std::size_t arity = 1; typedef typename policy_type::integral_type integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits>; #ifdef __ZKLLVM__ typedef __zkllvm_field_curve25519_scalar value_type; #else constexpr static const integral_type modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular253; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui253; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; #endif }; @@ -80,8 +72,6 @@ namespace nil { #ifdef __ZKLLVM__ #else constexpr typename curve25519_scalar_field::integral_type const curve25519_scalar_field::modulus; - constexpr - typename curve25519_scalar_field::modular_params_type const curve25519_scalar_field::modulus_params; #endif using curve25519_fr = curve25519_scalar_field; } // namespace fields diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp index 86cfa50afc..f761509092 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp @@ -31,13 +31,8 @@ #include #include -#include -#include -#include -#include -#include - -#include +#include +#include #include @@ -55,10 +50,7 @@ namespace nil { typedef typename policy_type::modular_type modular_type; typedef typename policy_type::integral_type integral_type; - typedef typename policy_type::modular_backend modular_backend; - typedef typename policy_type::modular_params_type modular_params_type; - constexpr static const modular_params_type modulus_params = policy_type::modulus_params; constexpr static const integral_type modulus = policy_type::modulus; using data_type = modular_type; @@ -68,15 +60,14 @@ namespace nil { constexpr element_fp(const data_type &data) : data(data) {} - template::value), bool>::type = true> - constexpr element_fp(const Number &data) - : data(typename modular_type::backend_type(data.backend(), modulus_params)) {} + template + constexpr element_fp(const nil::crypto3::multiprecision::big_uint &data) + : data(data) {} template::value, bool>::type = true> constexpr element_fp(const Number &data) - : data(typename modular_type::backend_type(data, modulus_params)) {} + : data(data) {} constexpr element_fp(const element_fp &B) : data(B.data) {} @@ -161,19 +152,19 @@ namespace nil { } constexpr bool operator<(const element_fp &B) const { - return data < B.data; + return data.base() < B.data.base(); } constexpr bool operator>(const element_fp &B) const { - return data > B.data; + return data.base() > B.data.base(); } constexpr bool operator<=(const element_fp &B) const { - return data <= B.data; + return data.base() <= B.data.base(); } constexpr bool operator>=(const element_fp &B) const { - return data >= B.data; + return data.base() >= B.data.base(); } constexpr element_fp &operator++() { @@ -188,7 +179,7 @@ namespace nil { } constexpr element_fp &operator--() { - data = data - typename modular_type::backend_type(1u, modulus_params); + data = data - modular_type(1u); return *this; } @@ -217,7 +208,7 @@ namespace nil { } constexpr element_fp inversed() const { - return element_fp(inverse_mod(data)); + return element_fp(inverse_extended_euclidean_algorithm(data)); } constexpr element_fp squared() const { @@ -235,25 +226,15 @@ namespace nil { return (tmp.is_one() || tmp.is_zero()); } - template::value>::type> - constexpr element_fp pow(const PowerType pwr) const { - return element_fp(boost::multiprecision::powm(data, boost::multiprecision::uint128_modular_t(pwr))); - } - - template - constexpr element_fp - pow(const boost::multiprecision::number &pwr) const { - return element_fp(boost::multiprecision::powm(data, pwr)); + template + constexpr element_fp pow(const PowerType &pwr) const { + return element_fp(nil::crypto3::multiprecision::powm(data, pwr)); } }; template constexpr typename element_fp::integral_type const element_fp::modulus; - template - constexpr typename element_fp::modular_params_type const element_fp::modulus_params; - namespace element_fp_details { // These constexpr static variables can not be members of element_fp, because // element_fp is incomplete type until the end of its declaration. diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp12_2over3over2.hpp index ba3e3483b4..1386f14bd8 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp12_2over3over2.hpp @@ -30,9 +30,6 @@ #include #include -#include -#include - namespace nil { namespace crypto3 { namespace algebra { @@ -260,12 +257,12 @@ namespace nil { return res; bool found_one = false; - for (long i = boost::multiprecision::msb(exponent); i >= 0; --i) { + for (long i = exponent.msb(); i >= 0; --i) { if (found_one) { res = res.cyclotomic_squared(); } - if (boost::multiprecision::bit_test(exponent, i)) { + if (exponent.bit_test(i)) { found_one = true; res = res * (*this); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp4.hpp index 191e2ab61d..f9b9db5606 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp4.hpp @@ -29,8 +29,6 @@ #include #include -#include - namespace nil { namespace crypto3 { namespace algebra { @@ -198,7 +196,7 @@ namespace nil { element_fp4 this_inverse = this->unitary_inversed(); bool found_nonzero = false; - std::vector NAF = boost::multiprecision::find_wnaf(1, exponent); + std::vector NAF = nil::crypto3::multiprecision::find_wnaf(1, exponent); for (long i = static_cast(NAF.size() - 1); i >= 0; --i) { if (found_nonzero) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp6_2over3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp6_2over3.hpp index 889075e200..136d6db2a8 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp6_2over3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp6_2over3.hpp @@ -29,8 +29,6 @@ #include #include -#include - namespace nil { namespace crypto3 { namespace algebra { @@ -248,7 +246,7 @@ namespace nil { element_fp6_2over3 this_inverse = this->unitary_inversed(); bool found_nonzero = false; - std::vector NAF = boost::multiprecision::find_wnaf(1, exponent); + std::vector NAF = nil::crypto3::multiprecision::find_wnaf(1, exponent); for (long i = static_cast(NAF.size() - 1); i >= 0; --i) { if (found_nonzero) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp index 03d6edfcce..39b12c2474 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp @@ -29,7 +29,7 @@ #include -#include +#include namespace nil { @@ -46,12 +46,12 @@ namespace nil { bool found_one = false; - for (long i = boost::multiprecision::msb(exponent); i >= 0; --i) { + for (long i = nil::crypto3::multiprecision::msb(exponent); i >= 0; --i) { if (found_one) { result = result.squared(); } - if (boost::multiprecision::bit_test(exponent, i)) { + if (nil::crypto3::multiprecision::bit_test(exponent, i)) { found_one = true; result *= base; } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp index 88c30f0002..7fe592baf4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp @@ -71,52 +71,52 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_cppui_modular253, - 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_cppui_modular254), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_cppui_modular254, + non_residue_type(0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_bigui253, + 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_bigui254), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_bigui254, 0x00), - non_residue_type(0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_cppui_modular253, - 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_cppui_modular248), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + non_residue_type(0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_bigui253, + 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_bigui248), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00), - non_residue_type(0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_cppui_modular251, - 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_cppui_modular252), - non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254, + non_residue_type(0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_bigui251, + 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_bigui252), + non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254, 0x00), - non_residue_type(0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_cppui_modular253, - 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_cppui_modular252), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, 0x00), - non_residue_type(0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_cppui_modular253, - 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_cppui_modular254), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_cppui_modular191, 0x00), - non_residue_type(0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_cppui_modular254, - 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_cppui_modular254)};*/ + non_residue_type(0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_bigui253, + 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_bigui252), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), + non_residue_type(0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_bigui253, + 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_bigui254), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_bigui191, 0x00), + non_residue_type(0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_bigui254, + 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_bigui254)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_cppui_modular253, - 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_cppui_modular254, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_cppui_modular254, + 0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_bigui253, + 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_bigui254, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_bigui254, 0x00, - 0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_cppui_modular253, - 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_cppui_modular248, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + 0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_bigui253, + 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_bigui248, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00, - 0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_cppui_modular251, - 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_cppui_modular252, - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254, + 0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_bigui251, + 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_bigui252, + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254, 0x00, - 0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_cppui_modular253, - 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_cppui_modular252, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, + 0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_bigui253, + 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_bigui252, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00, - 0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_cppui_modular253, - 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_cppui_modular254, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_cppui_modular191, + 0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_bigui253, + 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_bigui254, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_bigui191, 0x00, - 0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_cppui_modular254, - 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_cppui_modular254}; + 0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_bigui254, + 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_bigui254}; constexpr static const non_residue_type non_residue = non_residue_type(0x09, 0x01); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp index 0955a36f98..fce9e3b470 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp @@ -55,9 +55,7 @@ namespace nil { typedef typename policy_type::integral_type integral_type; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>> - extended_integral_type; + typedef nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits> extended_integral_type; constexpr static const integral_type modulus = policy_type::modulus; @@ -69,26 +67,26 @@ namespace nil { constexpr static const std::size_t s = 0x04; constexpr static const extended_integral_type t = - 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_cppui_modular504; + 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_bigui504; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_cppui_modular503; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_bigui503; constexpr static const std::array nqr = {0x02, 0x01}; constexpr static const std::array nqr_to_t = { - 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_cppui_modular252, - 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_cppui_modular248}; + 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_bigui252, + 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_bigui248}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_cppui_modular507; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_bigui507; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254)};*/ + non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { - 0x01, 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254}; + 0x01, 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_cppui_modular254); + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254); }; template diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp index f96a112123..6938c567e5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp @@ -67,55 +67,55 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_cppui_modular254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_cppui_modular253), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + non_residue_type(0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui253), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00), - non_residue_type(0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_cppui_modular252, - 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_cppui_modular251), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, 0x00), - non_residue_type(0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_cppui_modular254, - 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_cppui_modular253)}; + non_residue_type(0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_bigui252, + 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_bigui251), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), + non_residue_type(0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_bigui254, + 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_bigui253)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_cppui_modular251, - 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_cppui_modular254), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, 0x00), - non_residue_type(0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_cppui_modular252, - 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_cppui_modular254), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + non_residue_type(0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_bigui251, + 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_bigui254), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), + non_residue_type(0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_bigui252, + 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_bigui254), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00), - non_residue_type(0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_cppui_modular253, - 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_cppui_modular253)};*/ + non_residue_type(0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_bigui253, + 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_bigui253)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_cppui_modular254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_cppui_modular253, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui253, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00, - 0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_cppui_modular252, - 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_cppui_modular251, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, + 0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_bigui252, + 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_bigui251, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00, - 0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_cppui_modular254, - 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_cppui_modular253}; + 0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_bigui254, + 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_bigui253}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_cppui_modular251, - 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_cppui_modular254, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_cppui_modular191, + 0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_bigui251, + 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_bigui254, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00, - 0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_cppui_modular252, - 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_cppui_modular254, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_cppui_modular254, + 0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_bigui252, + 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_bigui254, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, 0x00, - 0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_cppui_modular253, - 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_cppui_modular253}; + 0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_bigui253, + 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_bigui253}; constexpr static const non_residue_type non_residue = non_residue_type(0x09, 0x01); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp index fe59936a53..3f4309b955 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp @@ -68,56 +68,56 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_cppui_modular381, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_cppui_modular376), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_cppui_modular319, + non_residue_type(0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, 0x00), - non_residue_type(0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + non_residue_type(0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00), - non_residue_type(0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_cppui_modular381, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_cppui_modular379), + non_residue_type(0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381, + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379), - non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381, + non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, 0x00), - non_residue_type(0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_cppui_modular376, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_cppui_modular381), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + non_residue_type(0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381), + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00), - non_residue_type(0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_cppui_modular381, + non_residue_type(0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381), + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, 0x00), - non_residue_type(0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_cppui_modular379, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_cppui_modular381)};*/ + non_residue_type(0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_cppui_modular381, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_cppui_modular376, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_cppui_modular319, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, 0x00, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_cppui_modular381, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_cppui_modular379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381, + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381, + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, 0x00, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_cppui_modular376, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_cppui_modular381, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_cppui_modular381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, 0x00, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_cppui_modular379, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_cppui_modular381}; + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381}; constexpr static const non_residue_type non_residue = non_residue_type(0x01u, 0x01u); }; @@ -142,55 +142,55 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_cppui_modular376, + non_residue_type(0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_bigui376, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, 0x00), - non_residue_type(0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_cppui_modular377, + non_residue_type(0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_bigui377, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00), - non_residue_type(0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_cppui_modular376, + non_residue_type(0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_bigui376, 0x00), - non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_cppui_modular377, + non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, 0x00), - non_residue_type(0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_cppui_modular377, + non_residue_type(0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_bigui377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00), - non_residue_type(0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_cppui_modular375, + non_residue_type(0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_bigui375, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, 0x00), - non_residue_type(0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_cppui_modular376, + non_residue_type(0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_bigui376, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_cppui_modular376, + 0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_bigui376, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, 0x00, - 0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_cppui_modular377, + 0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_bigui377, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00, - 0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_cppui_modular376, + 0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_bigui376, 0x00, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_cppui_modular377, + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, 0x00, - 0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_cppui_modular377, + 0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_bigui377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00, - 0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_cppui_modular375, + 0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_bigui375, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, 0x00, - 0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_cppui_modular376, + 0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_bigui376, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x00u, 0x01u); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp index 7f5faa4e6e..534ef301a9 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp @@ -56,8 +56,7 @@ namespace nil { typedef typename policy_type::integral_type integral_type; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>> + typedef nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits> extended_integral_type; constexpr static const integral_type modulus = policy_type::modulus; @@ -69,23 +68,23 @@ namespace nil { constexpr static const std::size_t s = 0x03; constexpr static const extended_integral_type t = - 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_cppui_modular759; + 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_bigui759; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_cppui_modular758; + 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_bigui758; constexpr static const std::array nqr = {0x01, 0x01}; constexpr static const std::array nqr_to_t = { - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_cppui_modular379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_cppui_modular381}; + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_cppui_modular761; + 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_bigui761; constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381}; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381); + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381); }; /************************* BLS12-377 ***********************************/ @@ -101,9 +100,7 @@ namespace nil { typedef typename policy_type::integral_type integral_type; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>> - extended_integral_type; + typedef nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits> extended_integral_type; constexpr static const integral_type modulus = policy_type::modulus; @@ -115,23 +112,23 @@ namespace nil { constexpr static const std::size_t s = 0x2F; constexpr static const extended_integral_type t = - 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_cppui_modular707; + 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_bigui707; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_cppui_modular706; + 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_bigui706; constexpr static const std::array nqr = {0x00, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_cppui_modular377}; + 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_bigui377}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_cppui_modular753; + 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_bigui753; constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_cppui_modular377}; + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508BFFFFFFFFFFC_cppui_modular377); + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508BFFFFFFFFFFC_bigui377); }; constexpr typename fp2_extension_params>::non_residue_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp index cc6d55f3fd..ea9d6b6dfa 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp @@ -66,52 +66,52 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), non_residue_type(0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00), non_residue_type(0x00u, 0x01u), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00), non_residue_type(0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319)}; + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_cppui_modular381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, 0x00), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00), - non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381, + non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, 0x00), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_cppui_modular319, + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00, 0x00, 0x01, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319}; + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_cppui_modular381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_cppui_modular381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, 0x00, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_cppui_modular381, + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_cppui_modular319, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_cppui_modular319, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x01u, 0x01u); @@ -138,54 +138,54 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00), - non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_cppui_modular377, + non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, 0x00)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00), non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_cppui_modular377, + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, 0x00}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00, 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_cppui_modular316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_cppui_modular377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x00u, 0x01u); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp index 7b25056e1a..2fbb8c7fe5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp @@ -58,9 +58,7 @@ namespace nil { typedef typename policy_type::integral_type integral_type; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * policy_type::modulus_bits>> - extended_integral_type; + typedef nil::crypto3::multiprecision::big_uint<2 * policy_type::modulus_bits> extended_integral_type; constexpr static const integral_type modulus = policy_type::modulus; @@ -72,24 +70,24 @@ namespace nil { constexpr static const std::size_t s = 0x12; constexpr static const extended_integral_type t = - 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_cppui_modular578; + 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_bigui578; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_cppui_modular577; + 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_bigui577; constexpr static const std::array nqr = {0x08, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_cppui_modular294}; + 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_bigui294}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_cppui_modular595; + 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_bigui595; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_cppui_modular298)};*/ + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_cppui_modular298}; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298}; constexpr static const non_residue_type non_residue = non_residue_type(0x11u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp index 1681f2a962..98423aecd0 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp @@ -63,14 +63,14 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_cppui_modular292), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_cppui_modular298), - non_residue_type(0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_cppui_modular298)};*/ + non_residue_type(0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_bigui292), + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298), + non_residue_type(0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_bigui298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { - 0x01, 0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_cppui_modular292, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_cppui_modular298, - 0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_cppui_modular298}; + 0x01, 0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_bigui292, + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298, + 0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_bigui298}; constexpr static const non_residue_type non_residue = non_residue_type(0x11u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp index 156d2fa062..2733f18cc5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp @@ -57,8 +57,7 @@ namespace nil { typedef typename policy_type::integral_type integral_type; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<3 * policy_type::modulus_bits>> + typedef nil::crypto3::multiprecision::big_uint<3 * policy_type::modulus_bits> extended_integral_type; @@ -71,35 +70,35 @@ namespace nil { constexpr static const std::size_t s = 0x22; constexpr static const extended_integral_type t = - 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_cppui_modular860; + 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_bigui860; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_cppui_modular859; + 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_bigui859; constexpr static const std::array nqr = {0x05, 0x00, 0x00}; constexpr static const std::array nqr_to_t = { - 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_cppui_modular297, + 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_bigui297, 0x00, 0x00}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_cppui_modular893; + 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_bigui893; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292)}; + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298)};*/ + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292), + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292}; + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292}; constexpr static const std::array Frobenius_coeffs_c2 = { - 0x01, 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298}; + 0x01, 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292, + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298}; constexpr static const non_residue_type non_residue = non_residue_type(0x05u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp index 16a8769b1f..ce4981b3a1 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp @@ -62,19 +62,19 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_cppui_modular298), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_cppui_modular298), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular293)};*/ + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_bigui298), + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298), + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_bigui298), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui293)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_cppui_modular298, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_cppui_modular298, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_cppui_modular298, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular292, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_cppui_modular293}; + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_bigui298, + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298, + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_bigui298, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui293}; constexpr static const non_residue_type non_residue = non_residue_type(0x05u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp index 19742ce439..bba67dd09b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp @@ -25,9 +25,8 @@ #pragma once -#include -#include -#include +#include +#include namespace nil { namespace crypto3 { @@ -49,13 +48,8 @@ namespace nil { #ifdef __ZKLLVM__ typedef int integral_type; - typedef int extended_integral_type; #else - typedef boost::multiprecision::backends::cpp_int_modular_backend modular_backend; - - typedef boost::multiprecision::number integral_type; - - typedef boost::multiprecision::backends::modular_params modular_params_type; + typedef nil::crypto3::multiprecision::big_uint integral_type; #endif }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp12_2over3over2.hpp index 835294c65d..9a5c9c76e4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp12_2over3over2.hpp @@ -60,7 +60,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp2.hpp index c3223411f4..576ebf25a6 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp2.hpp @@ -55,7 +55,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp3.hpp index e4a3c47942..dc2c3c5e62 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp3.hpp @@ -53,7 +53,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp4.hpp index 5a920884a2..0072877c9d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp4.hpp @@ -53,7 +53,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_2over3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_2over3.hpp index 41c892fd23..2fddfc332b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_2over3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_2over3.hpp @@ -53,7 +53,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_3over2.hpp index e69de731b6..df62e66f34 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/fp6_3over2.hpp @@ -55,7 +55,6 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; typedef typename policy_type::modular_type modular_type; - typedef typename policy_type::modular_backend modular_backend; constexpr static const integral_type modulus = policy_type::modulus; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp index 79b46985ea..67a68da5a6 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp @@ -53,17 +53,10 @@ namespace nil { #else // 2^64 - 2^32 + 1 constexpr static const integral_type modulus = - 0xFFFFFFFF00000001_cppui_modular64; + 0xFFFFFFFF00000001_bigui64; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; #endif }; @@ -76,8 +69,6 @@ namespace nil { #else constexpr typename goldilocks64_base_field::integral_type const goldilocks64_base_field::modulus; constexpr typename goldilocks64_base_field::integral_type const goldilocks64_base_field::group_order_minus_one_half; - constexpr - typename goldilocks64_base_field::modular_params_type const goldilocks64_base_field::modulus_params; #endif using goldilocks64_fq = goldilocks64_base_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp index baa62ab721..8163be636e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp @@ -50,16 +50,9 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xE7DB4EA6533AFA906673B0101343B00A6682093CCC81082D0970E5ED6F72CB7_cppui_modular252; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0xE7DB4EA6533AFA906673B0101343B00A6682093CCC81082D0970E5ED6F72CB7_bigui252; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -74,7 +67,6 @@ namespace nil { constexpr typename jubjub_scalar_field::integral_type const jubjub_scalar_field::modulus; - constexpr typename jubjub_scalar_field::modular_params_type const jubjub_scalar_field::modulus_params; using jubjub_fr = jubjub_scalar_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp index e8437d98c2..0e9dda4aa5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp @@ -55,19 +55,12 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660001_cppui_modular298; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660001_bigui298; constexpr static const integral_type group_order_minus_one_half = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_cppui_modular298; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_bigui298; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -84,8 +77,6 @@ namespace nil { constexpr typename mnt4_base_field<298>::integral_type const mnt4_base_field<298>::group_order_minus_one_half; - constexpr typename mnt4_base_field<298>::modular_params_type const mnt4_base_field<298>::modulus_params; - template using mnt4_fq = mnt4_base_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp index 2c54fa0828..480f72ac1b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp @@ -55,19 +55,12 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000001_cppui_modular298; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000001_bigui298; constexpr static const integral_type group_order_minus_one_half = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_cppui_modular298; - - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_bigui298; + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -83,7 +76,6 @@ namespace nil { constexpr typename mnt6_base_field<298>::integral_type const mnt6_base_field<298>::modulus; constexpr typename mnt6_base_field<298>::integral_type const mnt6_base_field<298>::group_order_minus_one_half; - constexpr typename mnt6_base_field<298>::modular_params_type const mnt6_base_field<298>::modulus_params; template using mnt6_fq = mnt6_base_field; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp index c613c0a8f5..cba122fc8d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp @@ -52,18 +52,11 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_cppui_modular255; + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2 ; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; #endif }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/params.hpp index 525df25797..186554d5ed 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/params.hpp @@ -37,24 +37,17 @@ namespace nil { struct params { typedef FieldType field_type; typedef typename field_type::modular_type modular_type; - typedef typename field_type::modular_backend modular_backend; - typedef typename field_type::modular_params_type modular_params_type; constexpr static const std::size_t modulus_bits = field_type::modulus_bits; typedef typename field_type::integral_type integral_type; constexpr static const integral_type modulus = field_type::modulus; constexpr static const integral_type group_order_minus_one_half = field_type::group_order_minus_one_half; - - constexpr static const modular_params_type modulus_params = field_type::modulus_params; }; template constexpr typename params::integral_type const params::modulus; - template - constexpr typename params::modular_params_type const params::modulus_params; - template constexpr typename std::size_t const params::modulus_bits; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp index 7123002104..14473b06dc 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp @@ -55,18 +55,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffeffffac73_cppui_modular160; + 0xfffffffffffffffffffffffffffffffeffffac73_bigui160; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -83,18 +76,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffeffffee37_cppui_modular192; + 0xfffffffffffffffffffffffffffffffffffffffeffffee37_bigui192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -111,18 +97,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d_cppui_modular224; + 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d_bigui224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -139,18 +118,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -165,28 +137,24 @@ namespace nil { constexpr typename std::size_t const secp_k1_fq<160>::value_bits; constexpr typename secp_k1_fq<160>::integral_type const secp_k1_fq<160>::modulus; constexpr typename secp_k1_fq<160>::integral_type const secp_k1_fq<160>::group_order_minus_one_half; - constexpr typename secp_k1_fq<160>::modular_params_type const secp_k1_fq<160>::modulus_params; constexpr typename std::size_t const secp_k1_fq<192>::modulus_bits; constexpr typename std::size_t const secp_k1_fq<192>::number_bits; constexpr typename std::size_t const secp_k1_fq<192>::value_bits; constexpr typename secp_k1_fq<192>::integral_type const secp_k1_fq<192>::modulus; constexpr typename secp_k1_fq<192>::integral_type const secp_k1_fq<192>::group_order_minus_one_half; - constexpr typename secp_k1_fq<192>::modular_params_type const secp_k1_fq<192>::modulus_params; constexpr typename std::size_t const secp_k1_fq<224>::modulus_bits; constexpr typename std::size_t const secp_k1_fq<224>::number_bits; constexpr typename std::size_t const secp_k1_fq<224>::value_bits; constexpr typename secp_k1_fq<224>::integral_type const secp_k1_fq<224>::modulus; constexpr typename secp_k1_fq<224>::integral_type const secp_k1_fq<224>::group_order_minus_one_half; - constexpr typename secp_k1_fq<224>::modular_params_type const secp_k1_fq<224>::modulus_params; constexpr typename std::size_t const secp_k1_fq<256>::modulus_bits; constexpr typename std::size_t const secp_k1_fq<256>::number_bits; constexpr typename std::size_t const secp_k1_fq<256>::value_bits; constexpr typename secp_k1_fq<256>::integral_type const secp_k1_fq<256>::modulus; constexpr typename secp_k1_fq<256>::integral_type const secp_k1_fq<256>::group_order_minus_one_half; - constexpr typename secp_k1_fq<256>::modular_params_type const secp_k1_fq<256>::modulus_params; } // namespace fields } // namespace algebra } // namespace crypto3 diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp index 6ca633500d..c1d8a1fa94 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp @@ -56,18 +56,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x0100000000000000000001b8fa16dfab9aca16b6b3_cppui_modular161; + 0x0100000000000000000001b8fa16dfab9aca16b6b3_bigui161; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -84,18 +77,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d_cppui_modular192; + 0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d_bigui192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -113,18 +99,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7_cppui_modular225; + 0x010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7_bigui225; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -141,18 +120,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141_cppui_modular256; + 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141_bigui256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -167,28 +139,24 @@ namespace nil { constexpr typename std::size_t const secp_k1_fr<160>::value_bits; constexpr typename secp_k1_fr<160>::integral_type const secp_k1_fr<160>::modulus; constexpr typename secp_k1_fr<160>::integral_type const secp_k1_fr<160>::group_order_minus_one_half; - constexpr typename secp_k1_fr<160>::modular_params_type const secp_k1_fr<160>::modulus_params; constexpr typename std::size_t const secp_k1_fr<192>::modulus_bits; constexpr typename std::size_t const secp_k1_fr<192>::number_bits; constexpr typename std::size_t const secp_k1_fr<192>::value_bits; constexpr typename secp_k1_fr<192>::integral_type const secp_k1_fr<192>::modulus; constexpr typename secp_k1_fr<192>::integral_type const secp_k1_fr<192>::group_order_minus_one_half; - constexpr typename secp_k1_fr<192>::modular_params_type const secp_k1_fr<192>::modulus_params; constexpr typename std::size_t const secp_k1_fr<224>::modulus_bits; constexpr typename std::size_t const secp_k1_fr<224>::number_bits; constexpr typename std::size_t const secp_k1_fr<224>::value_bits; constexpr typename secp_k1_fr<224>::integral_type const secp_k1_fr<224>::modulus; constexpr typename secp_k1_fr<224>::integral_type const secp_k1_fr<224>::group_order_minus_one_half; - constexpr typename secp_k1_fr<224>::modular_params_type const secp_k1_fr<224>::modulus_params; constexpr typename std::size_t const secp_k1_fr<256>::modulus_bits; constexpr typename std::size_t const secp_k1_fr<256>::number_bits; constexpr typename std::size_t const secp_k1_fr<256>::value_bits; constexpr typename secp_k1_fr<256>::integral_type const secp_k1_fr<256>::modulus; constexpr typename secp_k1_fr<256>::integral_type const secp_k1_fr<256>::group_order_minus_one_half; - constexpr typename secp_k1_fr<256>::modular_params_type const secp_k1_fr<256>::modulus_params; } // namespace fields } // namespace algebra } // namespace crypto3 diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp index fdbb626215..66f88fb957 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp @@ -55,18 +55,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffff7fffffff_cppui_modular160; + 0xffffffffffffffffffffffffffffffff7fffffff_bigui160; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -83,18 +76,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffeffffffffffffffff_cppui_modular192; + 0xfffffffffffffffffffffffffffffffeffffffffffffffff_bigui192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -111,18 +97,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffff000000000000000000000001_cppui_modular224; + 0xffffffffffffffffffffffffffffffff000000000000000000000001_bigui224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -139,18 +118,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff_cppui_modular256; + 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff_bigui256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -167,18 +139,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff_cppui_modular384; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff_bigui384; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -195,18 +160,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular521; + 0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui521; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -221,42 +179,36 @@ namespace nil { constexpr typename std::size_t const secp_r1_fq<160>::value_bits; constexpr typename secp_r1_fq<160>::integral_type const secp_r1_fq<160>::modulus; constexpr typename secp_r1_fq<160>::integral_type const secp_r1_fq<160>::group_order_minus_one_half; - constexpr typename secp_r1_fq<160>::modular_params_type const secp_r1_fq<160>::modulus_params; constexpr typename std::size_t const secp_r1_fq<192>::modulus_bits; constexpr typename std::size_t const secp_r1_fq<192>::number_bits; constexpr typename std::size_t const secp_r1_fq<192>::value_bits; constexpr typename secp_r1_fq<192>::integral_type const secp_r1_fq<192>::modulus; constexpr typename secp_r1_fq<192>::integral_type const secp_r1_fq<192>::group_order_minus_one_half; - constexpr typename secp_r1_fq<192>::modular_params_type const secp_r1_fq<192>::modulus_params; constexpr typename std::size_t const secp_r1_fq<224>::modulus_bits; constexpr typename std::size_t const secp_r1_fq<224>::number_bits; constexpr typename std::size_t const secp_r1_fq<224>::value_bits; constexpr typename secp_r1_fq<224>::integral_type const secp_r1_fq<224>::modulus; constexpr typename secp_r1_fq<224>::integral_type const secp_r1_fq<224>::group_order_minus_one_half; - constexpr typename secp_r1_fq<224>::modular_params_type const secp_r1_fq<224>::modulus_params; constexpr typename std::size_t const secp_r1_fq<256>::modulus_bits; constexpr typename std::size_t const secp_r1_fq<256>::number_bits; constexpr typename std::size_t const secp_r1_fq<256>::value_bits; constexpr typename secp_r1_fq<256>::integral_type const secp_r1_fq<256>::modulus; constexpr typename secp_r1_fq<256>::integral_type const secp_r1_fq<256>::group_order_minus_one_half; - constexpr typename secp_r1_fq<256>::modular_params_type const secp_r1_fq<256>::modulus_params; constexpr typename std::size_t const secp_r1_fq<384>::modulus_bits; constexpr typename std::size_t const secp_r1_fq<384>::number_bits; constexpr typename std::size_t const secp_r1_fq<384>::value_bits; constexpr typename secp_r1_fq<384>::integral_type const secp_r1_fq<384>::modulus; constexpr typename secp_r1_fq<384>::integral_type const secp_r1_fq<384>::group_order_minus_one_half; - constexpr typename secp_r1_fq<384>::modular_params_type const secp_r1_fq<384>::modulus_params; constexpr typename std::size_t const secp_r1_fq<521>::modulus_bits; constexpr typename std::size_t const secp_r1_fq<521>::number_bits; constexpr typename std::size_t const secp_r1_fq<521>::value_bits; constexpr typename secp_r1_fq<521>::integral_type const secp_r1_fq<521>::modulus; constexpr typename secp_r1_fq<521>::integral_type const secp_r1_fq<521>::group_order_minus_one_half; - constexpr typename secp_r1_fq<521>::modular_params_type const secp_r1_fq<521>::modulus_params; } // namespace fields } // namespace algebra } // namespace crypto3 diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp index 365b713789..048e261d82 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp @@ -56,18 +56,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x0100000000000000000001f4c8f927aed3ca752257_cppui_modular161; + 0x0100000000000000000001f4c8f927aed3ca752257_bigui161; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -84,18 +77,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffff99def836146bc9b1b4d22831_cppui_modular192; + 0xffffffffffffffffffffffff99def836146bc9b1b4d22831_bigui192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -112,18 +98,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d_cppui_modular224; + 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d_bigui224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -140,18 +119,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551_cppui_modular256; + 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551_bigui256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -168,18 +140,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973_cppui_modular384; + 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973_bigui384; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -196,18 +161,11 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409_cppui_modular521; + 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409_bigui521; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; constexpr static const std::size_t value_bits = modulus_bits; @@ -222,42 +180,36 @@ namespace nil { constexpr typename std::size_t const secp_r1_fr<160>::value_bits; constexpr typename secp_r1_fr<160>::integral_type const secp_r1_fr<160>::modulus; constexpr typename secp_r1_fr<160>::integral_type const secp_r1_fr<160>::group_order_minus_one_half; - constexpr typename secp_r1_fr<160>::modular_params_type const secp_r1_fr<160>::modulus_params; constexpr typename std::size_t const secp_r1_fr<192>::modulus_bits; constexpr typename std::size_t const secp_r1_fr<192>::number_bits; constexpr typename std::size_t const secp_r1_fr<192>::value_bits; constexpr typename secp_r1_fr<192>::integral_type const secp_r1_fr<192>::modulus; constexpr typename secp_r1_fr<192>::integral_type const secp_r1_fr<192>::group_order_minus_one_half; - constexpr typename secp_r1_fr<192>::modular_params_type const secp_r1_fr<192>::modulus_params; constexpr typename std::size_t const secp_r1_fr<224>::modulus_bits; constexpr typename std::size_t const secp_r1_fr<224>::number_bits; constexpr typename std::size_t const secp_r1_fr<224>::value_bits; constexpr typename secp_r1_fr<224>::integral_type const secp_r1_fr<224>::modulus; constexpr typename secp_r1_fr<224>::integral_type const secp_r1_fr<224>::group_order_minus_one_half; - constexpr typename secp_r1_fr<224>::modular_params_type const secp_r1_fr<224>::modulus_params; constexpr typename std::size_t const secp_r1_fr<256>::modulus_bits; constexpr typename std::size_t const secp_r1_fr<256>::number_bits; constexpr typename std::size_t const secp_r1_fr<256>::value_bits; constexpr typename secp_r1_fr<256>::integral_type const secp_r1_fr<256>::modulus; constexpr typename secp_r1_fr<256>::integral_type const secp_r1_fr<256>::group_order_minus_one_half; - constexpr typename secp_r1_fr<256>::modular_params_type const secp_r1_fr<256>::modulus_params; constexpr typename std::size_t const secp_r1_fr<384>::modulus_bits; constexpr typename std::size_t const secp_r1_fr<384>::number_bits; constexpr typename std::size_t const secp_r1_fr<384>::value_bits; constexpr typename secp_r1_fr<384>::integral_type const secp_r1_fr<384>::modulus; constexpr typename secp_r1_fr<384>::integral_type const secp_r1_fr<384>::group_order_minus_one_half; - constexpr typename secp_r1_fr<384>::modular_params_type const secp_r1_fr<384>::modulus_params; constexpr typename std::size_t const secp_r1_fr<521>::modulus_bits; constexpr typename std::size_t const secp_r1_fr<521>::number_bits; constexpr typename std::size_t const secp_r1_fr<521>::value_bits; constexpr typename secp_r1_fr<521>::integral_type const secp_r1_fr<521>::modulus; constexpr typename secp_r1_fr<521>::integral_type const secp_r1_fr<521>::group_order_minus_one_half; - constexpr typename secp_r1_fr<521>::modular_params_type const secp_r1_fr<521>::modulus_params; } // namespace fields } // namespace algebra } // namespace crypto3 diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp index a523851bd3..3c77f2a464 100755 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp @@ -55,17 +55,10 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_cppui_modular255; + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2; - typedef typename policy_type::modular_backend modular_backend; - constexpr static const modular_params_type modulus_params = modulus.backend(); - typedef boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - modular_backend, - boost::multiprecision::backends::modular_params_ct>> - modular_type; - + typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; #endif }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/multiexp.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/multiexp.hpp index d4e2e508a2..e3aa18f10f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/multiexp.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/multiexp.hpp @@ -29,9 +29,6 @@ #include -#include -#include - #include #include @@ -188,7 +185,7 @@ namespace nil { for (std::size_t outer = 0; outer < outerc; ++outer) { std::size_t inner = 0; for (std::size_t i = 0; i < window; ++i) { - if (boost::multiprecision::bit_test(pow_val, outer * window + i)) { + if (pow_val.bit_test(outer * window + i)) { inner |= 1u << i; } } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/policies.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/policies.hpp index 413337b42f..5e23246efb 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/policies.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/multiexp/policies.hpp @@ -29,9 +29,6 @@ #include -#include -#include - #include namespace nil { @@ -118,11 +115,11 @@ namespace nil { for (std::size_t i = 0; i < length; i++) { // Should be - // std::size_t bn_exponents_i_msb = boost::multiprecision::msb(exponents[i].data) + 1; - // But boost::multiprecision::msb doesn't work for zero value + // std::size_t bn_exponents_i_msb = exponents[i].data.base().msb() + 1; + // But nil::crypto3::multiprecision::msb doesn't work for zero value std::size_t bn_exponents_i_msb = 1; if (exponents[i] != field_value_type::zero()) { - bn_exponents_i_msb = boost::multiprecision::msb(exponents[i].data) + 1; + bn_exponents_i_msb = exponents[i].data.base().msb() + 1; } num_bits = std::max(num_bits, bn_exponents_i_msb); } @@ -145,7 +142,7 @@ namespace nil { for (std::size_t i = 0; i < length; i++) { std::size_t id = 0; for (std::size_t j = 0; j < c; j++) { - if (boost::multiprecision::bit_test(exponents[i].data, k * c + j)) { + if (exponents[i].data.base().bit_test(k * c + j)) { id |= 1 << j; } } @@ -268,7 +265,7 @@ namespace nil { detail::ordered_exponent &b = (opt_q[1] < opt_q[2] ? opt_q[2] : opt_q[1]); - const std::size_t abits = boost::multiprecision::msb(a.r) + 1; + const std::size_t abits = a.r.msb() + 1; if (b.r.is_zero()) { // opt_result = opt_result + (a.r * g[a.idx]); @@ -276,7 +273,7 @@ namespace nil { break; } - const std::size_t bbits = boost::multiprecision::msb(b.r) + 1; + const std::size_t bbits = b.r.msb() + 1; const std::size_t limit = (abits - bbits >= 20 ? 20 : abits - bbits); if (bbits < 1ul << limit) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp index c06384b956..c6e2c7472d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp @@ -49,7 +49,7 @@ namespace nil { constexpr static const std::size_t integral_type_max_bits = curve_type::base_field_type::modulus_bits; - constexpr static const integral_type ate_loop_count = 0x19D797039BE763BA8_cppui_modular254; + constexpr static const integral_type ate_loop_count = 0x19D797039BE763BA8_bigui254; constexpr static const bool ate_is_loop_count_neg = false; using g2_field_type = typename curve_type::g2_type<>::params_type::field_type; @@ -57,14 +57,14 @@ namespace nil { // g2_type::params_type::twist.pow((p-1)/3), twist = (9, 1) constexpr static const typename g2_field_type::value_type TWIST_MUL_BY_Q_X = typename g2_field_type::value_type( - 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_cppui_modular254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_cppui_modular254); + 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui254); // g2_type::params_type::twist.pow((p-1)/2), twist = (9, 1) constexpr static const typename g2_field_type::value_type TWIST_MUL_BY_Q_Y = typename g2_field_type::value_type( - 0x63CF305489AF5DCDC5EC698B6E2F9B9DBAAE0EDA9C95998DC54014671A0135A_cppui_modular254, - 0x7C03CBCAC41049A0704B5A7EC796F2B21807DC98FA25BD282D37F632623B0E3_cppui_modular254); + 0x63CF305489AF5DCDC5EC698B6E2F9B9DBAAE0EDA9C95998DC54014671A0135A_bigui254, + 0x7C03CBCAC41049A0704B5A7EC796F2B21807DC98FA25BD282D37F632623B0E3_bigui254); /* python3: * # Signed bit representation. diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp index 555a7927b8..d87cab8b15 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp @@ -48,12 +48,12 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x8508C00000000001_cppui_modular64; + 0x8508C00000000001_bigui64; constexpr static const bool ate_is_loop_count_neg = false; constexpr static const integral_type final_exponent_z = - 0x8508C00000000001_cppui_modular64; + 0x8508C00000000001_bigui64; constexpr static const bool final_exponent_is_z_neg = false; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp index d4df2fde37..67602e3092 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp @@ -48,12 +48,12 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0xD201000000010000_cppui_modular64; + 0xD201000000010000_bigui64; constexpr static const bool ate_is_loop_count_neg = true; constexpr static const integral_type final_exponent_z = - 0xD201000000010000_cppui_modular64; + 0xD201000000010000_bigui64; constexpr static const bool final_exponent_is_z_neg = true; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp index 823197fc4d..aba06c9d69 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp @@ -48,11 +48,11 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_cppui_modular149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; constexpr static const bool ate_is_loop_count_neg = false; constexpr static const integral_type final_exponent_last_chunk_abs_of_w0 = - 0x1EEF5546609756BEC2A33F0DC9A1B671660001_cppui_modular149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660001_bigui149; constexpr static const bool final_exponent_last_chunk_is_w0_neg = false; constexpr static const integral_type final_exponent_last_chunk_w1 = integral_type(0x1); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp index 497fbb83b4..b8a4175bf7 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp @@ -48,11 +48,11 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_cppui_modular149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; constexpr static const bool ate_is_loop_count_neg = true; constexpr static const integral_type final_exponent_last_chunk_abs_of_w0 = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_cppui_modular149; // same as ate_loop_count? + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; // same as ate_loop_count? constexpr static const bool final_exponent_last_chunk_is_w0_neg = true; constexpr static const integral_type final_exponent_last_chunk_w1 = integral_type(0x1); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_double_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_double_miller_loop.hpp index bde1c27b71..7ad457aee7 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_double_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_double_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_DOUBLE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_DOUBLE_MILLER_LOOP_HPP -#include -#include - #include namespace nil { @@ -60,7 +57,7 @@ namespace nil { const typename policy_type::integral_type &loop_count = params_type::ate_loop_count; for (long i = params_type::integral_type_max_bits; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(loop_count, i); + const bool bit = loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ found_one |= bit; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_miller_loop.hpp index 4a8cdbab98..8baeb97e85 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_MILLER_LOOP_HPP -#include -#include - #include namespace nil { @@ -60,7 +57,7 @@ namespace nil { typename policy_type::ate_ell_coeffs c; for (long i = params_type::integral_type_max_bits; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(loop_count, i); + const bool bit = loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ found_one |= bit; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_precompute_g2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_precompute_g2.hpp index 4aa8568533..63e24c711d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_precompute_g2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0/ate_precompute_g2.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_PRECOMPUTE_G2_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_ATE_PRECOMPUTE_G2_HPP -#include -#include - #include namespace nil { @@ -124,7 +121,7 @@ namespace nil { typename policy_type::ate_ell_coeffs c; for (long i = params_type::integral_type_max_bits; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(loop_count, i); + const bool bit = loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ found_one |= bit; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_double_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_double_miller_loop.hpp index 97b9c06f44..7b7f850da0 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_double_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_double_miller_loop.hpp @@ -27,7 +27,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBIT_ATE_DOUBLE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBIT_ATE_DOUBLE_MILLER_LOOP_HPP -#include #include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_miller_loop.hpp index da13cebf4a..a88e975927 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_miller_loop.hpp @@ -27,7 +27,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBTI_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBTI_ATE_MILLER_LOOP_HPP -#include #include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_precompute_g2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_precompute_g2.hpp index e9f7d476b2..3d7ad2b6f3 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_precompute_g2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/jacobian_with_a4_0_sbit/ate_precompute_g2.hpp @@ -27,8 +27,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBIT_ATE_PRECOMPUTE_G2_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_JACOBIAN_WITH_A4_0_SBIT_ATE_PRECOMPUTE_G2_HPP -#include - #include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/projective/ate_precompute_g2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/projective/ate_precompute_g2.hpp index 10a892c4fd..375b51df7e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/projective/ate_precompute_g2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/forms/short_weierstrass/projective/ate_precompute_g2.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_PROJECTIVE_ATE_PRECOMPUTE_G2_HPP #define CRYPTO3_ALGEBRA_PAIRING_SHORT_WEIERSTRASS_PROJECTIVE_ATE_PRECOMPUTE_G2_HPP -#include -#include - #include namespace nil { @@ -135,7 +132,7 @@ namespace nil { bool found_one = false; for (long i = params_type::integral_type_max_bits - 1; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(params_type::ate_loop_count, i); + const bool bit = params_type::ate_loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ found_one |= bit; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/affine_ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/affine_ate_miller_loop.hpp index 111b3c0163..901a2fb58a 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/affine_ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/affine_ate_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT4_298_AFFINE_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT4_298_AFFINE_ATE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -58,7 +55,7 @@ namespace nil { bool found_nonzero = false; std::size_t idx = 0; - std::vector NAF = boost::multiprecision::find_wnaf(1, policy_type::ate_loop_count); + std::vector NAF = nil::crypto3::multiprecision::find_wnaf(1, policy_type::ate_loop_count); for (long i = NAF.size() - 1; i >= 0; --i) { if (!found_nonzero) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_double_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_double_miller_loop.hpp index ab82064908..8dc068d5f0 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_double_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_double_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT4_298_ATE_DOUBLE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT4_298_ATE_DOUBLE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -75,7 +72,7 @@ namespace nil { std::size_t add_idx = 0; for (long i = params_type::integral_type_max_bits - 1; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(params_type::ate_loop_count, i); + const bool bit = params_type::ate_loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_miller_loop.hpp index df5d2b6279..90107c8762 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt4/298/ate_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT4_298_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT4_298_ATE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -71,7 +68,7 @@ namespace nil { std::size_t add_idx = 0; for (long i = params_type::integral_type_max_bits - 1; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(params_type::ate_loop_count, i); + const bool bit = params_type::ate_loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/affine_ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/affine_ate_miller_loop.hpp index 98b50206f0..724fda1597 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/affine_ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/affine_ate_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT4_298_AFFINE_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT4_298_AFFINE_ATE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -59,7 +56,7 @@ namespace nil { bool found_nonzero = false; std::size_t idx = 0; - std::vector NAF = boost::multiprecision::find_wnaf(1, policy_type::ate_loop_count); + std::vector NAF = nil::crypto3::multiprecision::find_wnaf(1, policy_type::ate_loop_count); for (long i = NAF.size() - 1; i >= 0; --i) { if (!found_nonzero) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_double_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_double_miller_loop.hpp index 1d3b2239f8..941a5d3df1 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_double_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_double_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT6_298_ATE_DOUBLE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT6_298_ATE_DOUBLE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -77,7 +74,7 @@ namespace nil { std::size_t add_idx = 0; for (long i = params_type::integral_type_max_bits - 1; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(params_type::ate_loop_count, i); + const bool bit = params_type::ate_loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_miller_loop.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_miller_loop.hpp index 52b7f1accc..f06da02261 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_miller_loop.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/mnt6/298/ate_miller_loop.hpp @@ -26,9 +26,6 @@ #ifndef CRYPTO3_ALGEBRA_PAIRING_MNT6_298_ATE_MILLER_LOOP_HPP #define CRYPTO3_ALGEBRA_PAIRING_MNT6_298_ATE_MILLER_LOOP_HPP -#include -#include - #include #include #include @@ -80,7 +77,7 @@ namespace nil { std::size_t add_idx = 0; for (long i = params_type::integral_type_max_bits - 1; i >= 0; --i) { - const bool bit = boost::multiprecision::bit_test(params_type::ate_loop_count, i); + const bool bit = params_type::ate_loop_count.bit_test(i); if (!found_one) { /* this skips the MSB itself */ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp index 416e077381..79e3474bea 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp @@ -30,7 +30,9 @@ #include #include -#include +#include +#include + #include "random_element.hpp" namespace nil { @@ -41,26 +43,23 @@ namespace nil { Input: n the number to be factorized. Output: a factor of n. */ - template - boost::multiprecision::number - pollard_rho_factorization(const boost::multiprecision::number &n) { - using namespace boost::multiprecision; - + template + nil::crypto3::multiprecision::big_uint + pollard_rho_factorization(const nil::crypto3::multiprecision::big_uint &n) { if (!(n % 2)) { return 2; } - boost::random::independent_bits_engine> rng; - number>, ExpressionTemplates> divisor, + boost::random::independent_bits_engine> rng; + nil::crypto3::multiprecision::montgomery_big_mod_rt divisor(0u, n), c(rng(), n), x(rng(), n), nn(n, n), xx = x; do { x = x * x + c; xx = xx * xx + c; xx = xx * xx + c; - divisor = boost::multiprecision::gcd((x > xx) ? x - xx : xx - x, nn); + divisor = nil::crypto3::multiprecision::gcd((x > xx) ? x - xx : xx - x, nn); } while (static_cast(divisor) == 1); - return static_cast>(divisor); + return divisor.base(); } /* diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/random_element.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/random_element.hpp index 2270a070ab..19c8a6f093 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/random_element.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/random_element.hpp @@ -28,8 +28,6 @@ #include -#include - #include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/totient.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/totient.hpp index 663b84863c..8b00f758ed 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/totient.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/totient.hpp @@ -66,7 +66,7 @@ namespace nil { IntegerType one = 1; for (IntegerType i = 1; i < n; i++) { - if (boost::multiprecision::gcd(i, n) == one) + if (nil::crypto3::multiprecision::gcd(i, n) == one) result.push_back(i); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp index ed851b5cab..0eb4c2681a 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp @@ -25,19 +25,18 @@ #ifndef CRYPTO3_ALGEBRA_WNAF_HPP #define CRYPTO3_ALGEBRA_WNAF_HPP -#include - #include #include +#include + namespace nil { namespace crypto3 { namespace algebra { - template + template BaseValueType fixed_window_wnaf_exp(const std::size_t window_size, const BaseValueType &base, - const boost::multiprecision::number &scalar) { - std::vector naf = boost::multiprecision::find_wnaf(window_size, scalar); + const nil::crypto3::multiprecision::big_uint &scalar) { + std::vector naf = nil::crypto3::multiprecision::find_wnaf(window_size, scalar); std::vector table(1ul << (window_size - 1)); BaseValueType tmp = base; BaseValueType dbl = base; @@ -67,13 +66,12 @@ namespace nil { return res; } - template + template std::enable_if_t< is_curve_element::value, CurveGroupValueType> opt_window_wnaf_exp(const CurveGroupValueType &base, - const boost::multiprecision::number &scalar, + const nil::crypto3::multiprecision::big_uint &scalar, const std::size_t scalar_bits) { std::size_t best = 0; for (long i = diff --git a/crypto3/libs/algebra/test/CMakeLists.txt b/crypto3/libs/algebra/test/CMakeLists.txt index 22e215a7b2..1e82edd035 100644 --- a/crypto3/libs/algebra/test/CMakeLists.txt +++ b/crypto3/libs/algebra/test/CMakeLists.txt @@ -25,7 +25,7 @@ macro(define_runtime_algebra_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(${test_name} PROPERTIES CXX_STANDARD 17 + set_target_properties(${test_name} PROPERTIES CXX_STANDARD 20 CXX_STANDARD_REQUIRED TRUE) if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") @@ -46,7 +46,7 @@ macro(define_compile_time_algebra_test name) ${Boost_INCLUDE_DIRS}) - set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 17) + set_target_properties(algebra_${name}_compile_test PROPERTIES CXX_STANDARD 20) endmacro() set(RUNTIME_TESTS_NAMES diff --git a/crypto3/libs/algebra/test/curves.cpp b/crypto3/libs/algebra/test/curves.cpp index 05869075df..ddcbf9f035 100644 --- a/crypto3/libs/algebra/test/curves.cpp +++ b/crypto3/libs/algebra/test/curves.cpp @@ -58,7 +58,7 @@ #include #include -#include +#include using namespace nil::crypto3::algebra; @@ -215,7 +215,7 @@ void fp_curve_test_init(std::vector &points, for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); } if (p1_to_affine == p) { @@ -231,7 +231,7 @@ void fp_curve_test_init(std::vector &points, } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoul(constant.second.data())); + constants.emplace_back(std::stoul(constant.second.data().c_str())); } } @@ -250,7 +250,7 @@ void fp_curve_twisted_edwards_test_init( for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); } typename FpCurveGroup::value_type curve_element(coordinates[0], coordinates[1]); BOOST_CHECK_MESSAGE(curve_element.is_well_formed(), "point " << p << " is not well-formed"); @@ -259,7 +259,7 @@ void fp_curve_twisted_edwards_test_init( } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(integral_type(constant.second.data()))); + constants.emplace_back(scalar_value_type(integral_type(constant.second.data().c_str()))); } } @@ -282,7 +282,7 @@ void fp_extended_curve_twisted_edwards_test_init( for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); } typename group_affine_type::value_type curve_element_affine(coordinates[0], coordinates[1]); BOOST_CHECK_MESSAGE(curve_element_affine.is_well_formed(), "point " << p << " is not well-formed"); @@ -293,7 +293,7 @@ void fp_extended_curve_twisted_edwards_test_init( } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(integral_type(constant.second.data()))); + constants.emplace_back(scalar_value_type(integral_type(constant.second.data().c_str()))); } } @@ -314,7 +314,7 @@ void fp2_curve_test_init(std::vector &points auto i = 0; for (auto &coordinate_pairs : point.second) { for (auto &coordinate : coordinate_pairs.second) { - coordinates[i++] = integral_type(coordinate.second.data()); + coordinates[i++] = integral_type(coordinate.second.data().c_str()); } } typename Fp2CurveGroup::value_type curve_element( @@ -327,7 +327,7 @@ void fp2_curve_test_init(std::vector &points } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data()))); + constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data().c_str()))); } } @@ -348,7 +348,7 @@ void fp3_curve_test_init(std::vector &points auto i = 0; for (auto &coordinate_pairs : point.second) { for (auto &coordinate : coordinate_pairs.second) { - coordinates[i++] = integral_type(coordinate.second.data()); + coordinates[i++] = integral_type(coordinate.second.data().c_str()); } } typename Fp3CurveGroup::value_type curve_element( @@ -361,7 +361,7 @@ void fp3_curve_test_init(std::vector &points } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data()))); + constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data().c_str()))); } } @@ -427,50 +427,50 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_babyjubjub_g1) { typename policy_type::value_type P1( typename policy_type::field_type::value_type( - 0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_cppui_modular254), + 0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_bigui254), typename policy_type::field_type::value_type( - 0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_cppui_modular251)), + 0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_bigui251)), P2(typename policy_type::field_type::value_type( - 0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_cppui_modular254), + 0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_bigui254), typename policy_type::field_type::value_type( - 0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_cppui_modular254)), + 0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_bigui254)), P3(typename policy_type::field_type::value_type( - 0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_cppui_modular253), + 0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_bigui253), typename policy_type::field_type::value_type( - 0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_cppui_modular253)); + 0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_bigui253)); BOOST_CHECK_EQUAL(P1 + P2, P3); typename policy_type::value_type P4( typename policy_type::field_type::value_type( - 0xF3C160E26FC96C347DD9E705EB5A3E8D661502728609FF95B3B889296901AB5_cppui_modular252), + 0xF3C160E26FC96C347DD9E705EB5A3E8D661502728609FF95B3B889296901AB5_bigui), typename policy_type::field_type::value_type( - 0x9979273078B5C735585107619130E62E315C5CAFE683A064F79DFED17EB14E1_cppui_modular252)); + 0x9979273078B5C735585107619130E62E315C5CAFE683A064F79DFED17EB14E1_bigui)); P1.double_inplace(); BOOST_CHECK_EQUAL(P1, P4); typename policy_type::value_type P5( typename policy_type::field_type::value_type( - 0x274dbce8d15179969bc0d49fa725bddf9de555e0ba6a693c6adb52fc9ee7a82c_cppui_modular252), + 0x274dbce8d15179969bc0d49fa725bddf9de555e0ba6a693c6adb52fc9ee7a82c_bigui), typename policy_type::field_type::value_type( - 0x5ce98c61b05f47fe2eae9a542bd99f6b2e78246231640b54595febfd51eb853_cppui_modular252)), + 0x5ce98c61b05f47fe2eae9a542bd99f6b2e78246231640b54595febfd51eb853_bigui)), et_s1P5(typename policy_type::field_type::value_type( - 0x2ad46cbfb78773b6254adc1d80c6efa02f3bf948c37e5a2222136421d7bec942_cppui_modular252), + 0x2ad46cbfb78773b6254adc1d80c6efa02f3bf948c37e5a2222136421d7bec942_bigui), typename policy_type::field_type::value_type( - 0x14e9693f16d75f7065ce51e1f46ae6c60841ca1e0cf264eda26398e36ca2ed69_cppui_modular252)), + 0x14e9693f16d75f7065ce51e1f46ae6c60841ca1e0cf264eda26398e36ca2ed69_bigui)), et_s2P5(typename policy_type::field_type::value_type( - 0x031b924a83fbbdc206fb2d3bc85b7a724000714627f681a60b34885e4deca1d6_cppui_modular252), + 0x031b924a83fbbdc206fb2d3bc85b7a724000714627f681a60b34885e4deca1d6_bigui), typename policy_type::field_type::value_type( - 0x242e364702e64a6850c9aee7ece7ca79ba019ca7a63684e2df0873ca0d8f7e87_cppui_modular252)), + 0x242e364702e64a6850c9aee7ece7ca79ba019ca7a63684e2df0873ca0d8f7e87_bigui)), P6(typename policy_type::field_type::value_type( - 0xf3c160e26fc96c347dd9e705eb5a3e8d661502728609ff95b3b889296901ab5_cppui_modular252), + 0xf3c160e26fc96c347dd9e705eb5a3e8d661502728609ff95b3b889296901ab5_bigui), typename policy_type::field_type::value_type( - 0x9979273078b5c735585107619130e62e315c5cafe683a064f79dfed17eb14e1_cppui_modular252)), + 0x9979273078b5c735585107619130e62e315c5cafe683a064f79dfed17eb14e1_bigui)), et_s1P6(typename policy_type::field_type::value_type( - 0x2e6475817d356adbbfcec42b2f7b90500d6f74e8cd4ec1ac0b6effd00ba854d7_cppui_modular252), + 0x2e6475817d356adbbfcec42b2f7b90500d6f74e8cd4ec1ac0b6effd00ba854d7_bigui), typename policy_type::field_type::value_type( - 0x195a50f93ff3f3e68bd593be5781301c32962777dc8237b099c23d39c24ec76a_cppui_modular252)); + 0x195a50f93ff3f3e68bd593be5781301c32962777dc8237b099c23d39c24ec76a_bigui)); BOOST_CHECK_EQUAL(et_s1P5, scalar_value_type(integral_type(3u)) * P5); BOOST_CHECK_EQUAL(et_s2P5, scalar_value_type(integral_type( @@ -604,8 +604,8 @@ class bls12_377_orders_2_4_runner { o2_Y = 0u; // point of order 4 static constexpr curve_type::base_field_type::value_type - o4_X = 0x126f980765bb3d634f9d5cb49909db8af2e185fb13bdb7dc4aedcadf9d8dad86bba02eda906066c9153bdf72ddce76c_cppui_modular377, - o4_Y = 0x06e4b66bb23ef4bef715f597162d6662d8161cd062d6212d39392e17232444a0760b5dc479db98123ab3887aa3cb34e_cppui_modular377; + o4_X = 0x126f980765bb3d634f9d5cb49909db8af2e185fb13bdb7dc4aedcadf9d8dad86bba02eda906066c9153bdf72ddce76c_bigui377, + o4_Y = 0x06e4b66bb23ef4bef715f597162d6662d8161cd062d6212d39392e17232444a0760b5dc479db98123ab3887aa3cb34e_bigui377; public: bool static run() { @@ -646,13 +646,13 @@ BOOST_AUTO_TEST_CASE(twisted_edwards_extended_order_test) { /* Point of order 2 */ curve_type::base_field_type::value_type - o2_X = 0x0_cppui_modular255, + o2_X = 0x0_bigui255, o2_Y = curve_type::base_field_type::modulus - 1; /* Point of order 4 */ curve_type::base_field_type::value_type - o4_X = 0x547cdb7fb03e20f4d4b2ff66c2042858d0bce7f952d01b873b11e4d8b5f15f3d_cppui_modular255, - o4_Y = 0x0_cppui_modular255; + o4_X = 0x547cdb7fb03e20f4d4b2ff66c2042858d0bce7f952d01b873b11e4d8b5f15f3d_bigui255, + o4_Y = 0x0_bigui255; typename g1_type::value_type o4(o4_X, o4_Y), o2(o2_X, o2_Y), check; diff --git a/crypto3/libs/algebra/test/curves_static.cpp b/crypto3/libs/algebra/test/curves_static.cpp index 81eaa789c2..5af3afe48e 100644 --- a/crypto3/libs/algebra/test/curves_static.cpp +++ b/crypto3/libs/algebra/test/curves_static.cpp @@ -65,45 +65,45 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_bls12_381_g1) { using g_value_type_projective = typename curve_type::g1_type::value_type; constexpr g_value_type p1( - 0x19a8ce51e3507d9ed66343fc7abda65f24a02a5054c262ba82dd067f91de595469ba0029571b22007d3712a51a14b66b_cppui_modular381, - 0x151c956a92fe067a60533e2f9f4d90c75a460f9ca0a6d3beb2b0388fe2be7f1f21de58af7fd2c85ef13326856408a3a4_cppui_modular381, - 0x814f8119ab9939282414f63efe8421ea0893343f697dba821cc21abb4c0c72573c542becd25d84d3f97d76951cb44bd_cppui_modular381); + 0x19a8ce51e3507d9ed66343fc7abda65f24a02a5054c262ba82dd067f91de595469ba0029571b22007d3712a51a14b66b_bigui381, + 0x151c956a92fe067a60533e2f9f4d90c75a460f9ca0a6d3beb2b0388fe2be7f1f21de58af7fd2c85ef13326856408a3a4_bigui381, + 0x814f8119ab9939282414f63efe8421ea0893343f697dba821cc21abb4c0c72573c542becd25d84d3f97d76951cb44bd_bigui381); constexpr g_value_type p2( - 0xe5944419aae6b311708fdee3e7a3169ef47f7a509ec5e6781a918eb42294a0c3a3916df0f5c3bf75b1553ee7c66198a_cppui_modular381, - 0x80f8b87d65fa717f44c74f944e6f8b9c5493a87bfa0b48395c6326ad2c83e848280a7b7a81cfc3e44be18c2b721cf31_cppui_modular381, - 0x12dde0758a406a2d79166ade03f68799b359910c31d65ccb63090720eb6191393661cf26c3e83c922a804305027c2803_cppui_modular381); + 0xe5944419aae6b311708fdee3e7a3169ef47f7a509ec5e6781a918eb42294a0c3a3916df0f5c3bf75b1553ee7c66198a_bigui381, + 0x80f8b87d65fa717f44c74f944e6f8b9c5493a87bfa0b48395c6326ad2c83e848280a7b7a81cfc3e44be18c2b721cf31_bigui381, + 0x12dde0758a406a2d79166ade03f68799b359910c31d65ccb63090720eb6191393661cf26c3e83c922a804305027c2803_bigui381); constexpr g_value_type p_add( - 0x13034f3fbe9a557cc7daf9aaffbc1a4b3d1a4c88c11ba5fd4502aed63ed08f3f52e1bce1ba9a5ea70d862436cd8c0a53_cppui_modular381, - 0x2c731465ff3bd544bd350c9b6bb5fafca2cbfe31c0a3221566d1fc5547d463914b64e26b4107a78c0179a004c7642af_cppui_modular381, - 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_cppui_modular381); + 0x13034f3fbe9a557cc7daf9aaffbc1a4b3d1a4c88c11ba5fd4502aed63ed08f3f52e1bce1ba9a5ea70d862436cd8c0a53_bigui381, + 0x2c731465ff3bd544bd350c9b6bb5fafca2cbfe31c0a3221566d1fc5547d463914b64e26b4107a78c0179a004c7642af_bigui381, + 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_bigui381); constexpr g_value_type p_sub( - 0x8d3551b80950015b4dbaac4c60e7c48f1470c13ca93b203f1e3d38e874a4c19356b237b823ee551865afa5f7eefd487_cppui_modular381, - 0xfa74f3643c4fef7f88fb5d844652185d8343f5c2f2a4394c626d8f3c773bd9d60158f30158f1feefa7b6c12e07cf0ef_cppui_modular381, - 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_cppui_modular381); + 0x8d3551b80950015b4dbaac4c60e7c48f1470c13ca93b203f1e3d38e874a4c19356b237b823ee551865afa5f7eefd487_bigui381, + 0xfa74f3643c4fef7f88fb5d844652185d8343f5c2f2a4394c626d8f3c773bd9d60158f30158f1feefa7b6c12e07cf0ef_bigui381, + 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_bigui381); constexpr g_value_type p_mul_C( - 0x111152cbd1f7ff876f9f13ceacf6a535831ff5fbf59fe5f54ce37efef87b70ba89bc47d8d63c85565e29c4e1310cc8e9_cppui_modular381, - 0x16e86e2375254ce972334364277bc8ada71598631902013b23356752e653f6b51eeebf72cb72b446e8f32208ef27c58_cppui_modular381, - 0xe2b294ae8d8181dc4fd9c6edfe3d79215232abbacd879e339e9fb7ffc7d8158f292c1c408731d227507181e16708cbc_cppui_modular381); - constexpr auto C1 = 0x2b4bd538_cppui_modular381; + 0x111152cbd1f7ff876f9f13ceacf6a535831ff5fbf59fe5f54ce37efef87b70ba89bc47d8d63c85565e29c4e1310cc8e9_bigui381, + 0x16e86e2375254ce972334364277bc8ada71598631902013b23356752e653f6b51eeebf72cb72b446e8f32208ef27c58_bigui381, + 0xe2b294ae8d8181dc4fd9c6edfe3d79215232abbacd879e339e9fb7ffc7d8158f292c1c408731d227507181e16708cbc_bigui381); + constexpr auto C1 = 0x2b4bd538_bigui381; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x163c6586913d88ba0ca1f082e90f5dc6b97c9b8fc28e9f9f6140c357a8b97c20088da93e51089a3d870c9ac4cd7419ec_cppui_modular381, - 0x1987e74481a1bfa0ba3f38753c44af0cf77d64753812a22ed2c83f64990a5735ccb24aebc72b8ab559cab1a76e1fd20b_cppui_modular381, - 0xe65506b39c7874b40449480e82a0f94e09702038694504b36b90750c36b606c8691311677d524faa9d6d37ccd401880_cppui_modular381); - constexpr auto C2 = 0x33345b17_cppui_modular381; + 0x163c6586913d88ba0ca1f082e90f5dc6b97c9b8fc28e9f9f6140c357a8b97c20088da93e51089a3d870c9ac4cd7419ec_bigui381, + 0x1987e74481a1bfa0ba3f38753c44af0cf77d64753812a22ed2c83f64990a5735ccb24aebc72b8ab559cab1a76e1fd20b_bigui381, + 0xe65506b39c7874b40449480e82a0f94e09702038694504b36b90750c36b606c8691311677d524faa9d6d37ccd401880_bigui381); + constexpr auto C2 = 0x33345b17_bigui381; constexpr g_value_type_affine p_to_affine( - 0x97c062b9a9bee0bc02f762c7b7057a0cfa52f336f9bce0b130aaa2402bc7c820cc4f30f29ed69d87342c3137659af29_cppui_modular381, - 0x10eabcbf296774122daf3b60e289f0885485b66c4111d1a229bea7566aea5c9f87d1cbc8ae752e13288ec885d3f97eb6_cppui_modular381); + 0x97c062b9a9bee0bc02f762c7b7057a0cfa52f336f9bce0b130aaa2402bc7c820cc4f30f29ed69d87342c3137659af29_bigui381, + 0x10eabcbf296774122daf3b60e289f0885485b66c4111d1a229bea7566aea5c9f87d1cbc8ae752e13288ec885d3f97eb6_bigui381); constexpr g_value_type_projective p_to_projective( - 0xf2d335bf6370059219a693b1b50dfe9f966c371f052b36f70e426bf84750dcd4bb3da3beeef4e013c4532f4f78e06c1_cppui_modular381, - 0x54deeaa0db80987f8d81cfb4c716ae590c3b7641656f3fef45859a6446144c6eb191bbeb88929cbd90b2b9995574c90_cppui_modular381, - 0x1_cppui_modular381); + 0xf2d335bf6370059219a693b1b50dfe9f966c371f052b36f70e426bf84750dcd4bb3da3beeef4e013c4532f4f78e06c1_bigui381, + 0x54deeaa0db80987f8d81cfb4c716ae590c3b7641656f3fef45859a6446144c6eb191bbeb88929cbd90b2b9995574c90_bigui381, + 0x1_bigui381); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -121,112 +121,112 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_bls12_381_g2) { constexpr g_value_type p1( {{ - 0x12e7556630d7b731637d261c08fb26992098207486c56b152e902f7a287e4d7998c18fb3c21d3bc56b960f66e6b13d54_cppui_modular381, - 0x17eb1b09dfeadb08f3335511101067b74b03680f58b8d13797c3b0bf8359dd289fb18fc987ff0017520a98114028d89e_cppui_modular381, + 0x12e7556630d7b731637d261c08fb26992098207486c56b152e902f7a287e4d7998c18fb3c21d3bc56b960f66e6b13d54_bigui381, + 0x17eb1b09dfeadb08f3335511101067b74b03680f58b8d13797c3b0bf8359dd289fb18fc987ff0017520a98114028d89e_bigui381, }}, {{ - 0x18c01544aed3e8ff438c9aaebb5b905001cb03d5982733c85b71e036afead169b34d2c72d2417df44dca61d3dbbc9a9e_cppui_modular381, - 0x193ea114716be66883ceca4d5a162c308f09028fa0fce3dbcad49f7355a4e3a813013f6ea671dcb7f29464d8fcddeb8_cppui_modular381, + 0x18c01544aed3e8ff438c9aaebb5b905001cb03d5982733c85b71e036afead169b34d2c72d2417df44dca61d3dbbc9a9e_bigui381, + 0x193ea114716be66883ceca4d5a162c308f09028fa0fce3dbcad49f7355a4e3a813013f6ea671dcb7f29464d8fcddeb8_bigui381, }}, {{ - 0x48a155f876c814ebcf3efd02a99e9c0ddcdf2caba2c63929396fb02c8339817dcb2cdaf4dd0e3a353dbaafd84ee76c_cppui_modular381, - 0x3caf52cc8d881f00f7dd35510d9cc55cbf55bb7eddac1ca29799cb23bad7b76983e0820298d4c778ae46a5f546ad81a_cppui_modular381, + 0x48a155f876c814ebcf3efd02a99e9c0ddcdf2caba2c63929396fb02c8339817dcb2cdaf4dd0e3a353dbaafd84ee76c_bigui381, + 0x3caf52cc8d881f00f7dd35510d9cc55cbf55bb7eddac1ca29799cb23bad7b76983e0820298d4c778ae46a5f546ad81a_bigui381, }}); constexpr g_value_type p2( {{ - 0xeb2a45074d3e817643c8511c2965d5a2fe84dfed298b2254fc6ea54630120ddcc03538e587ef15cad6809dcb29b13f6_cppui_modular381, - 0x1499cb9c615d17534459e5177f38e0d94e36afeed3c0f8584dfa8e41151823fe341c197b1c619e6fc2e1032e7f644067_cppui_modular381, + 0xeb2a45074d3e817643c8511c2965d5a2fe84dfed298b2254fc6ea54630120ddcc03538e587ef15cad6809dcb29b13f6_bigui381, + 0x1499cb9c615d17534459e5177f38e0d94e36afeed3c0f8584dfa8e41151823fe341c197b1c619e6fc2e1032e7f644067_bigui381, }}, {{ - 0x113504af0d2a73c699c09f9beb32286b701c35cdda882d3386022f5a51b5f977ba32a7c3b94bf3a06bd29f913b39efa1_cppui_modular381, - 0x195488cb4697a6c61b4884e4cfa7e42c865e62e781d7cc23d3c7149ba40566933308e4286f809b87eca83eb644e46073_cppui_modular381, + 0x113504af0d2a73c699c09f9beb32286b701c35cdda882d3386022f5a51b5f977ba32a7c3b94bf3a06bd29f913b39efa1_bigui381, + 0x195488cb4697a6c61b4884e4cfa7e42c865e62e781d7cc23d3c7149ba40566933308e4286f809b87eca83eb644e46073_bigui381, }}, {{ - 0xfa6067c056fb379d03f389de881dc14502b372fe9693c4f03b1dfbcf33fe9c17426a2c2060be6ad3c5bb8cc1b368c93_cppui_modular381, - 0x843fcebd62ecaff9b157729414b13f87663f5ce79c9b74fca97cf5fac8b08683c04223aba8ac07b253e320275767d91_cppui_modular381, + 0xfa6067c056fb379d03f389de881dc14502b372fe9693c4f03b1dfbcf33fe9c17426a2c2060be6ad3c5bb8cc1b368c93_bigui381, + 0x843fcebd62ecaff9b157729414b13f87663f5ce79c9b74fca97cf5fac8b08683c04223aba8ac07b253e320275767d91_bigui381, }}); constexpr g_value_type p_add( {{ - 0x1532ee0d7b280f5a8f7acbd758d9c0ed87f4e88ad51c6365c14ba7f570f68935102025f2c211856a3b62b9118fcfe2fd_cppui_modular381, - 0xf6c5277a9ca80792503c833dea93b54da27da7973ec32e71398782ab2f6239ea1ee1d61443211002a80bb4b1223d76c_cppui_modular381, + 0x1532ee0d7b280f5a8f7acbd758d9c0ed87f4e88ad51c6365c14ba7f570f68935102025f2c211856a3b62b9118fcfe2fd_bigui381, + 0xf6c5277a9ca80792503c833dea93b54da27da7973ec32e71398782ab2f6239ea1ee1d61443211002a80bb4b1223d76c_bigui381, }}, {{ - 0x33782d06d4d3d0ef1a963065527a76fc9105933cc3bd393affb6f532be9fef9bc558e6dfba00d327a26ed081b016887_cppui_modular381, - 0x1086ce74c1086ce1b04ef9a556b8d00ef659b8eae55d664f9e18e877552577a8dc83f54dc28e01a30525180a8f9e775a_cppui_modular381, + 0x33782d06d4d3d0ef1a963065527a76fc9105933cc3bd393affb6f532be9fef9bc558e6dfba00d327a26ed081b016887_bigui381, + 0x1086ce74c1086ce1b04ef9a556b8d00ef659b8eae55d664f9e18e877552577a8dc83f54dc28e01a30525180a8f9e775a_bigui381, }}, {{ - 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_cppui_modular381, - 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_cppui_modular381, + 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_bigui381, + 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_bigui381, }}); constexpr g_value_type p_sub( {{ - 0xc79e43a21a88a71344251504208ddf45447bfc1010d4b3320978f47982b2d29021619f280409d202d019e470461555c_cppui_modular381, - 0x182de0d3384dac598c24d2a39159ef0e3d2b5576f52839d8d713a222cad156a12ea69e1c0b2ab919ebed0cf7f3fd2499_cppui_modular381, + 0xc79e43a21a88a71344251504208ddf45447bfc1010d4b3320978f47982b2d29021619f280409d202d019e470461555c_bigui381, + 0x182de0d3384dac598c24d2a39159ef0e3d2b5576f52839d8d713a222cad156a12ea69e1c0b2ab919ebed0cf7f3fd2499_bigui381, }}, {{ - 0xaf0123a190cb639abbbcc0e882e79fb1716dc84eccd53f69342b841b9ea8cdbf2381d11ff853fa7fa5643325f2a21c4_cppui_modular381, - 0xd9eb9c10f3b75bffacab71fc974cce60d4fe658dbaf0d7ce02180bc634ecbe1f7c4ba21b763b06dbcad61384742c096_cppui_modular381, + 0xaf0123a190cb639abbbcc0e882e79fb1716dc84eccd53f69342b841b9ea8cdbf2381d11ff853fa7fa5643325f2a21c4_bigui381, + 0xd9eb9c10f3b75bffacab71fc974cce60d4fe658dbaf0d7ce02180bc634ecbe1f7c4ba21b763b06dbcad61384742c096_bigui381, }}, {{ - 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_cppui_modular381, - 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_cppui_modular381, + 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_bigui381, + 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_bigui381, }}); constexpr g_value_type p_mul_C( {{ - 0x16d0bbd48a70913215c4e64eae9c1fb0ff5d52296dea38f4856ea7d516c57b4981867611b2ac8b8c8e42ee1ac6b38ee7_cppui_modular381, - 0x1184f39be53f1c7c868348c773499b23eb37fbc1a2eae5eaf995b6453d7429255dca5800802e9e73009af32442f35715_cppui_modular381, + 0x16d0bbd48a70913215c4e64eae9c1fb0ff5d52296dea38f4856ea7d516c57b4981867611b2ac8b8c8e42ee1ac6b38ee7_bigui381, + 0x1184f39be53f1c7c868348c773499b23eb37fbc1a2eae5eaf995b6453d7429255dca5800802e9e73009af32442f35715_bigui381, }}, {{ - 0x1677412fac92f535f4919c7602b2533df3dc3a0a9ed0499051accbe92d46b65efb17015e310e20a5b09e35d6756103c4_cppui_modular381, - 0xba41fb5dc2beb04a9a1fed616e96442b0dcbbcdee2a75a70c29d77ffa328c03a6e971fddf13d72f6168cadf66e0c8f0_cppui_modular381, + 0x1677412fac92f535f4919c7602b2533df3dc3a0a9ed0499051accbe92d46b65efb17015e310e20a5b09e35d6756103c4_bigui381, + 0xba41fb5dc2beb04a9a1fed616e96442b0dcbbcdee2a75a70c29d77ffa328c03a6e971fddf13d72f6168cadf66e0c8f0_bigui381, }}, {{ - 0xa7f8b42ac42d3dc8d4ca183b817de43aaea394536c137ad3cd642c3b9e941b82985b0fe5f8764240a8402ca16ecb001_cppui_modular381, - 0x146c9ff29e2173b7a25d802f2170e728d7991074b4886637ec9aa139106d99d9b9f59f2f805c9143f49fe69dd8191ca9_cppui_modular381, + 0xa7f8b42ac42d3dc8d4ca183b817de43aaea394536c137ad3cd642c3b9e941b82985b0fe5f8764240a8402ca16ecb001_bigui381, + 0x146c9ff29e2173b7a25d802f2170e728d7991074b4886637ec9aa139106d99d9b9f59f2f805c9143f49fe69dd8191ca9_bigui381, }}); - constexpr auto C1 = 0x3a93c528_cppui_modular381; + constexpr auto C1 = 0x3a93c528_bigui381; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0xdd60c2c749f1aad1923f4e57dad584ffa762a558a7fed5fe032945dc7b144643ad418f89f511cd3105256e2d0a0f1e8_cppui_modular381, - 0x8c654ca6993764d8a33dfd57d52ee5039a563733f202eb0b6237a5b95edc1a5fb00ea5f26ead584fe849cfe420b7c96_cppui_modular381, + 0xdd60c2c749f1aad1923f4e57dad584ffa762a558a7fed5fe032945dc7b144643ad418f89f511cd3105256e2d0a0f1e8_bigui381, + 0x8c654ca6993764d8a33dfd57d52ee5039a563733f202eb0b6237a5b95edc1a5fb00ea5f26ead584fe849cfe420b7c96_bigui381, }}, {{ - 0x9464e81873a2c2c0c57bd2e526633634d23e44e4db0dc9d46bf136e644ea5d8d5f9c1f5298a03f016af7bdebefb326f_cppui_modular381, - 0x111c60de7db040df6fe9ff6383148404b017232d276ed1a964ddd4378a4a53f07288c770501c8bd258a223a120296cdc_cppui_modular381, + 0x9464e81873a2c2c0c57bd2e526633634d23e44e4db0dc9d46bf136e644ea5d8d5f9c1f5298a03f016af7bdebefb326f_bigui381, + 0x111c60de7db040df6fe9ff6383148404b017232d276ed1a964ddd4378a4a53f07288c770501c8bd258a223a120296cdc_bigui381, }}, {{ - 0x15e055a4d7738d9df5d0cf000b08493f47d2285ee62a87df26b2e85056592d8bc2c34ef2e9db4008fcf29c1caaafd993_cppui_modular381, - 0x156fbc5a7201accb386051cc22d9d5fe1cf32088fb4db2eb9b07f8a32060f53e7d93b8ee64aa00b18d7a178d28810531_cppui_modular381, + 0x15e055a4d7738d9df5d0cf000b08493f47d2285ee62a87df26b2e85056592d8bc2c34ef2e9db4008fcf29c1caaafd993_bigui381, + 0x156fbc5a7201accb386051cc22d9d5fe1cf32088fb4db2eb9b07f8a32060f53e7d93b8ee64aa00b18d7a178d28810531_bigui381, }}); - constexpr auto C2 = 0x3b74e323_cppui_modular381; + constexpr auto C2 = 0x3b74e323_bigui381; constexpr g_value_type_affine p_to_affine( {{ - 0x916d8851e884d2c3f4e22e7fc54e09e9df98728073c9004c5a3b609a9687b0361fc2b0f5e35e55ff18c88670319398c_cppui_modular381, - 0x5f4813fb300f1c826001ef7398f9aea50c18c2780d8fae2046d8a8b40b151cfa7bf5a27f3cfbe1cfe683cd02475d4f2_cppui_modular381, + 0x916d8851e884d2c3f4e22e7fc54e09e9df98728073c9004c5a3b609a9687b0361fc2b0f5e35e55ff18c88670319398c_bigui381, + 0x5f4813fb300f1c826001ef7398f9aea50c18c2780d8fae2046d8a8b40b151cfa7bf5a27f3cfbe1cfe683cd02475d4f2_bigui381, }}, {{ - 0x14a402fe40ef20ae44599107bebd360a8ecabe2e080cb14eacdb31a521c70fc5d54e9215d02833bde8816c174cef5a2f_cppui_modular381, - 0xe86efa5c2fb9e319bf1fe2a2324b8d6c21c4d3233df0a4f963413ed1942108ab9b422f49f0670101ca60a088ee179b8_cppui_modular381, + 0x14a402fe40ef20ae44599107bebd360a8ecabe2e080cb14eacdb31a521c70fc5d54e9215d02833bde8816c174cef5a2f_bigui381, + 0xe86efa5c2fb9e319bf1fe2a2324b8d6c21c4d3233df0a4f963413ed1942108ab9b422f49f0670101ca60a088ee179b8_bigui381, }}); constexpr g_value_type_projective p_to_projective( {{ - 0x17f0b8a163b05e2419acb6e40155e79cea21b271929bb69c81f0742d621706130582b30f44970664a9d1f7755288567a_cppui_modular381, - 0x19bb8698b9f032816c6c77e8875a35fc4f4a5757e393d66a2ff1cd1bc2275cc851d96e04b60818e2e9f47a6741d62ea4_cppui_modular381, + 0x17f0b8a163b05e2419acb6e40155e79cea21b271929bb69c81f0742d621706130582b30f44970664a9d1f7755288567a_bigui381, + 0x19bb8698b9f032816c6c77e8875a35fc4f4a5757e393d66a2ff1cd1bc2275cc851d96e04b60818e2e9f47a6741d62ea4_bigui381, }}, {{ - 0xf690d5d0527fc74fca3531ef3277160694aa37b93e1cbc5453a87a5e35a42ebcb29c9a124c6e4a7094bee05735a3207_cppui_modular381, - 0xf3c46767aaf74e29aa885d086663893c80b96f71f9da914ac410a2e4e2d60aa9f41e736d9b04c7374dfa570f354042b_cppui_modular381, + 0xf690d5d0527fc74fca3531ef3277160694aa37b93e1cbc5453a87a5e35a42ebcb29c9a124c6e4a7094bee05735a3207_bigui381, + 0xf3c46767aaf74e29aa885d086663893c80b96f71f9da914ac410a2e4e2d60aa9f41e736d9b04c7374dfa570f354042b_bigui381, }}, {{ - 0x1_cppui_modular381, - 0x0_cppui_modular381, + 0x1_bigui381, + 0x0_bigui381, }}); static_assert(p1 + p2 == p_add, "add error"); @@ -244,40 +244,40 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt4_g1) { // projective coordinates are used by default constexpr g_value_type p1( - 0x172c9fb6da01e8d0f5a0ba556a5655f8c67a7d344a91e87096b75de7801ce70d5801b48d449_cppui_modular298, - 0x27762604113aaab90bf1e0c0007fd1ebae2659e13db4c00ffd068c1c1555a678eaf06e69451_cppui_modular298, - 0x6878c8d17a189b711b54eb88727c09afaa080bcb4806a18626f23645367ccaea53a867d68d_cppui_modular298); + 0x172c9fb6da01e8d0f5a0ba556a5655f8c67a7d344a91e87096b75de7801ce70d5801b48d449_bigui298, + 0x27762604113aaab90bf1e0c0007fd1ebae2659e13db4c00ffd068c1c1555a678eaf06e69451_bigui298, + 0x6878c8d17a189b711b54eb88727c09afaa080bcb4806a18626f23645367ccaea53a867d68d_bigui298); constexpr g_value_type p2( - 0x29db0d99a3e0776e0fa8c71ee592a279c9c9a4f4dd33e02eeb49a827033fdd4e900c67777a1_cppui_modular298, - 0x7ab574da4fa1419ba9e3358134f19db9effd1025c4381d0e84950e48fda00cd758244f2d1a_cppui_modular298, - 0x224bec0b2109f240bea93a11752f449a1cac2683a9fbe720268ae85a5447f925f13bfa421eb_cppui_modular298); + 0x29db0d99a3e0776e0fa8c71ee592a279c9c9a4f4dd33e02eeb49a827033fdd4e900c67777a1_bigui298, + 0x7ab574da4fa1419ba9e3358134f19db9effd1025c4381d0e84950e48fda00cd758244f2d1a_bigui298, + 0x224bec0b2109f240bea93a11752f449a1cac2683a9fbe720268ae85a5447f925f13bfa421eb_bigui298); constexpr g_value_type p_add( - 0x95989548c0041034a6dbfb9c9314e9ba4d144fee2841873bfdd1a4a286d9473bafa0fdb7b5_cppui_modular298, - 0x312ff49f1eafd934a7bb8544c8d7e216905d28811831ac4660927937f1c5c2a8aee2b2b16b6_cppui_modular298, - 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_cppui_modular298); + 0x95989548c0041034a6dbfb9c9314e9ba4d144fee2841873bfdd1a4a286d9473bafa0fdb7b5_bigui298, + 0x312ff49f1eafd934a7bb8544c8d7e216905d28811831ac4660927937f1c5c2a8aee2b2b16b6_bigui298, + 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_bigui298); constexpr g_value_type p_sub( - 0x5bd843770194e9b664fedeecd096d50e0fc954e4fdb63e105c92a7b355ec131e3ebfce5864_cppui_modular298, - 0x178ce9482c2cd67c9f04357d1f53109456fc5ebf1de15fb7bc4bdbe11bf14a5de1a8cbea79f_cppui_modular298, - 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_cppui_modular298); + 0x5bd843770194e9b664fedeecd096d50e0fc954e4fdb63e105c92a7b355ec131e3ebfce5864_bigui298, + 0x178ce9482c2cd67c9f04357d1f53109456fc5ebf1de15fb7bc4bdbe11bf14a5de1a8cbea79f_bigui298, + 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_bigui298); constexpr g_value_type p_mul_C( - 0x3d7e8f6940d2b4e0f14f67989d8d9e3b7496c6297134316edabadf69eeb2b6ca3cdda99f1_cppui_modular298, - 0x2d8c9f6174c64aa2f895ce780481fea10e9402de8129efef10634b105b3fd99dc17f090d3b9_cppui_modular298, - 0x15b67d3fc690050b6f02e41a5f368b7988ecbdaeb1bb3adf868af0592b65cb8e0fa34e0c6b5_cppui_modular298); - constexpr auto C1 = 0x1203b4c8_cppui_modular298; + 0x3d7e8f6940d2b4e0f14f67989d8d9e3b7496c6297134316edabadf69eeb2b6ca3cdda99f1_bigui298, + 0x2d8c9f6174c64aa2f895ce780481fea10e9402de8129efef10634b105b3fd99dc17f090d3b9_bigui298, + 0x15b67d3fc690050b6f02e41a5f368b7988ecbdaeb1bb3adf868af0592b65cb8e0fa34e0c6b5_bigui298); + constexpr auto C1 = 0x1203b4c8_bigui298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x1be974b419f4bd1b4fc026b3bb296b9cd671cb987be4c99bdc01fa2fe5112532ca90ca2916d_cppui_modular298, - 0x2664af306794bff602f9699325fc1d57b6b00ace13f58514ca7d5f962f92561c058bb1b263d_cppui_modular298, - 0x13af3d5a92282e8469d99c2f9c57650d51de7f36af8826bf0db8c7ee58a3f26db28d8c13296_cppui_modular298); - constexpr auto C2 = 0x3151bfb5_cppui_modular298; + 0x1be974b419f4bd1b4fc026b3bb296b9cd671cb987be4c99bdc01fa2fe5112532ca90ca2916d_bigui298, + 0x2664af306794bff602f9699325fc1d57b6b00ace13f58514ca7d5f962f92561c058bb1b263d_bigui298, + 0x13af3d5a92282e8469d99c2f9c57650d51de7f36af8826bf0db8c7ee58a3f26db28d8c13296_bigui298); + constexpr auto C2 = 0x3151bfb5_bigui298; constexpr g_value_type_affine p_to_affine( - 0xbb3d23412558d18845c24476f095447170df03a009809ef6f50f72039948bf7346494e7453_cppui_modular298, - 0x1d8c86a75caf489bc5f3fa2ea263e5f2e991d22d244e732c5689b45ec5401fbdf940c589b0a_cppui_modular298); + 0xbb3d23412558d18845c24476f095447170df03a009809ef6f50f72039948bf7346494e7453_bigui298, + 0x1d8c86a75caf489bc5f3fa2ea263e5f2e991d22d244e732c5689b45ec5401fbdf940c589b0a_bigui298); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -294,98 +294,98 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt4_g2) { constexpr g_value_type p1( {{ - 0x20a6d7541c1bd7b1ada94f55476236053e042b6c72cf77264a5c40c671b62ef5a46f84e45af_cppui_modular298, - 0x2f92e835fa005f56fd629fb6eb0725e63296435dc76e3450df0c8694f3bec2ba1f0eebbc21a_cppui_modular298, + 0x20a6d7541c1bd7b1ada94f55476236053e042b6c72cf77264a5c40c671b62ef5a46f84e45af_bigui298, + 0x2f92e835fa005f56fd629fb6eb0725e63296435dc76e3450df0c8694f3bec2ba1f0eebbc21a_bigui298, }}, {{ - 0xee24d19afc2b9015b72cf14281476114ccd6fafa4776c2d4a9ace68d6bbbce6125adf29189_cppui_modular298, - 0xefe5105762de13caaf1b1049000b01500041b8e2023c0020522f4621fe3d9e05c0a86abdc_cppui_modular298, + 0xee24d19afc2b9015b72cf14281476114ccd6fafa4776c2d4a9ace68d6bbbce6125adf29189_bigui298, + 0xefe5105762de13caaf1b1049000b01500041b8e2023c0020522f4621fe3d9e05c0a86abdc_bigui298, }}, {{ - 0xca53e4b6482c1396bbc7452fb661f71c44a79faaa9b5ba9dad563e35e21c26cdbfe1c8aa98_cppui_modular298, - 0x2ce8febdb8bad8f49db73ceede9683456d3be7e29ff8e70e8edb5792e78ccb8bbe36f6819d5_cppui_modular298, + 0xca53e4b6482c1396bbc7452fb661f71c44a79faaa9b5ba9dad563e35e21c26cdbfe1c8aa98_bigui298, + 0x2ce8febdb8bad8f49db73ceede9683456d3be7e29ff8e70e8edb5792e78ccb8bbe36f6819d5_bigui298, }}); constexpr g_value_type p2( {{ - 0x26c0c01f9c5ac08d1f67d8f7c140388f0e72baace84f8532cb58e60bd194772ad482dc2db24_cppui_modular298, - 0x259768e62ff04c824f5e617ffcdafa0628e975627cdf260eed99fa18220db8134742cfba1ca_cppui_modular298, + 0x26c0c01f9c5ac08d1f67d8f7c140388f0e72baace84f8532cb58e60bd194772ad482dc2db24_bigui298, + 0x259768e62ff04c824f5e617ffcdafa0628e975627cdf260eed99fa18220db8134742cfba1ca_bigui298, }}, {{ - 0x2cf2fe38bed35a4377a5aca9c9b90f328e1d9e4a301eadc8effd0f132a38e57434947f4630b_cppui_modular298, - 0x1941e41c7b859b816fcabd405fd22922be84f518e37434df4b8244a1bf235c6d8bebdedd0fd_cppui_modular298, + 0x2cf2fe38bed35a4377a5aca9c9b90f328e1d9e4a301eadc8effd0f132a38e57434947f4630b_bigui298, + 0x1941e41c7b859b816fcabd405fd22922be84f518e37434df4b8244a1bf235c6d8bebdedd0fd_bigui298, }}, {{ - 0x361a51963df89d966446b818735b9b50ad2b3c5641bfab0da37ef895f2a3504e584926cc721_cppui_modular298, - 0x2245c06b5b8e29b0e0ce6c57dc1a79210e135e438ed8da978572589fb8795809c2d38ef0dc0_cppui_modular298, + 0x361a51963df89d966446b818735b9b50ad2b3c5641bfab0da37ef895f2a3504e584926cc721_bigui298, + 0x2245c06b5b8e29b0e0ce6c57dc1a79210e135e438ed8da978572589fb8795809c2d38ef0dc0_bigui298, }}); constexpr g_value_type p_add( {{ - 0x12d011f779525b7b5d5f5f8a2dae1043fa2e5da9f1775a76dd36033011b6ad50e9de7d77f5c_cppui_modular298, - 0x47fe4ec44216e7c32408440a632a196965a24f8e035cc0151ec66e327505cfbb573bbfa5a8_cppui_modular298, + 0x12d011f779525b7b5d5f5f8a2dae1043fa2e5da9f1775a76dd36033011b6ad50e9de7d77f5c_bigui298, + 0x47fe4ec44216e7c32408440a632a196965a24f8e035cc0151ec66e327505cfbb573bbfa5a8_bigui298, }}, {{ - 0x3172399c37418fe2807f4169448475411f3f5c7ed5946715d379504f13a7bd27d7c0e70b337_cppui_modular298, - 0xf7453acf9dfbf0da70375e100205aa6e5a0a985636e78a517892ed7fe166dca29fd90a1e55_cppui_modular298, + 0x3172399c37418fe2807f4169448475411f3f5c7ed5946715d379504f13a7bd27d7c0e70b337_bigui298, + 0xf7453acf9dfbf0da70375e100205aa6e5a0a985636e78a517892ed7fe166dca29fd90a1e55_bigui298, }}, {{ - 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_cppui_modular298, - 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_cppui_modular298, + 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_bigui298, + 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_bigui298, }}); constexpr g_value_type p_sub( {{ - 0x27e2ec5fe6c03c75a49ece61e8d479b83ba7f5c194d1494ce4205b6f910d459c8ab602256ca_cppui_modular298, - 0x38c606b68b431dc9a0ca8e54e0d7cb40ca7ed388949cc571d9284747a80229d3d05dbd7f734_cppui_modular298, + 0x27e2ec5fe6c03c75a49ece61e8d479b83ba7f5c194d1494ce4205b6f910d459c8ab602256ca_bigui298, + 0x38c606b68b431dc9a0ca8e54e0d7cb40ca7ed388949cc571d9284747a80229d3d05dbd7f734_bigui298, }}, {{ - 0x2f0c28a9a31ca73a13ad70a808ae191ad926bf4259270874abb66fc34017708ea697fd5e893_cppui_modular298, - 0x31b8bdeac49e4cef23bcd02d23194a49a06d403d4bbd68dd8b5120b90da84ff71f5203d58f6_cppui_modular298, + 0x2f0c28a9a31ca73a13ad70a808ae191ad926bf4259270874abb66fc34017708ea697fd5e893_bigui298, + 0x31b8bdeac49e4cef23bcd02d23194a49a06d403d4bbd68dd8b5120b90da84ff71f5203d58f6_bigui298, }}, {{ - 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_cppui_modular298, - 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_cppui_modular298, + 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_bigui298, + 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_bigui298, }}); constexpr g_value_type p_mul_C( {{ - 0x231f54b94ab9818a9589dcbf3a9244ed341cfab7d684e77b1c2c13574fdc70964fbfea9bb03_cppui_modular298, - 0x2fb15e5d3c407d989b4d69106c06d8b27e605c34f12a8b9008e64565e87486e504882e0866f_cppui_modular298, + 0x231f54b94ab9818a9589dcbf3a9244ed341cfab7d684e77b1c2c13574fdc70964fbfea9bb03_bigui298, + 0x2fb15e5d3c407d989b4d69106c06d8b27e605c34f12a8b9008e64565e87486e504882e0866f_bigui298, }}, {{ - 0x39f2bc82039293559d08d75dc0e7ff024f6778bd1ca4a7e11bb7ac3e918a5732ee7627522fa_cppui_modular298, - 0x1557a37274e7367336455516935eaa561d36f2ec8894f5dda1868fe8d9cda169c8767d0055_cppui_modular298, + 0x39f2bc82039293559d08d75dc0e7ff024f6778bd1ca4a7e11bb7ac3e918a5732ee7627522fa_bigui298, + 0x1557a37274e7367336455516935eaa561d36f2ec8894f5dda1868fe8d9cda169c8767d0055_bigui298, }}, {{ - 0x26e5bd64e7b7495084ef219f02bb56996d06256b106a0bd493c0188c86047df5711eb57606e_cppui_modular298, - 0x368b1962424eb1f14bca10eed68b136effae88450d9e8b55d4d788eb0ace1355b3d55e9e55b_cppui_modular298, + 0x26e5bd64e7b7495084ef219f02bb56996d06256b106a0bd493c0188c86047df5711eb57606e_bigui298, + 0x368b1962424eb1f14bca10eed68b136effae88450d9e8b55d4d788eb0ace1355b3d55e9e55b_bigui298, }}); - constexpr auto C1 = 0x2bb7bc77_cppui_modular298; + constexpr auto C1 = 0x2bb7bc77_bigui298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0x26726650ed2b9bc0568fabbe68508cf634d5b6332b563757c301fea0c8677c74a301ed6d304_cppui_modular298, - 0x202a62fa559200cf31ff20c996046affee5985d0f38d49b655416866bcc8de540c7a05a4cee_cppui_modular298, + 0x26726650ed2b9bc0568fabbe68508cf634d5b6332b563757c301fea0c8677c74a301ed6d304_bigui298, + 0x202a62fa559200cf31ff20c996046affee5985d0f38d49b655416866bcc8de540c7a05a4cee_bigui298, }}, {{ - 0x307dfe6cc9e141f53ce57001ce51f492196f8f04104a2a99ee28eca549f79b1e603d388d05a_cppui_modular298, - 0x5ac431716e91aceff94567d15c3f7ae25c20bb401721cf654092805289c1fb709c7674f969_cppui_modular298, + 0x307dfe6cc9e141f53ce57001ce51f492196f8f04104a2a99ee28eca549f79b1e603d388d05a_bigui298, + 0x5ac431716e91aceff94567d15c3f7ae25c20bb401721cf654092805289c1fb709c7674f969_bigui298, }}, {{ - 0x365802a6f8000d9cecf2c026bdb8636a053ab3398b091e043ca7aacc4e3cff014ac7671784a_cppui_modular298, - 0x35c57d344509428b944c4517a26b2e71de6af80ffe81c2e582a3ef33adf4f89a830b409a30b_cppui_modular298, + 0x365802a6f8000d9cecf2c026bdb8636a053ab3398b091e043ca7aacc4e3cff014ac7671784a_bigui298, + 0x35c57d344509428b944c4517a26b2e71de6af80ffe81c2e582a3ef33adf4f89a830b409a30b_bigui298, }}); - constexpr auto C2 = 0x2bb63f0d_cppui_modular298; + constexpr auto C2 = 0x2bb63f0d_bigui298; constexpr g_value_type_affine p_to_affine( {{ - 0xe4a4a941c54a49e9864402e2802dd02995ae0ccb2dec69d313fbef300c8e12e3079230df5b_cppui_modular298, - 0x1d2264d6890ae100d330a744cfce4d652638d306d84f33e501157b715882ed6ea59a9e4179e_cppui_modular298, + 0xe4a4a941c54a49e9864402e2802dd02995ae0ccb2dec69d313fbef300c8e12e3079230df5b_bigui298, + 0x1d2264d6890ae100d330a744cfce4d652638d306d84f33e501157b715882ed6ea59a9e4179e_bigui298, }}, {{ - 0xaf6ca9a009902c1c61f6234578a3ac5443c4c3fc8284d3837d73d778e0b354fd0bc95d46d6_cppui_modular298, - 0x31a130fa72f42e8f7bdedaa05a9d69f08a9e5db44fbc0a4de8a5d50f9e9e48a880dca313091_cppui_modular298, + 0xaf6ca9a009902c1c61f6234578a3ac5443c4c3fc8284d3837d73d778e0b354fd0bc95d46d6_bigui298, + 0x31a130fa72f42e8f7bdedaa05a9d69f08a9e5db44fbc0a4de8a5d50f9e9e48a880dca313091_bigui298, }}); static_assert(p1 + p2 == p_add, "add error"); @@ -402,40 +402,40 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt6_g1) { using g_value_type_projective = typename curve_type::g1_type::value_type; constexpr g_value_type p1( - 0x1ddb2c8af8fe69693b8f13167e2a777fe09eb91d463353c0d2206985fb5cc9a3f298b755383_cppui_modular298, - 0xf9e00ccd15c34450589956a9ec92119be2357872a78eeab24b05b9c6049bf686722dfbc2da_cppui_modular298, - 0x34f61578569ea7545e32977222b0ad4fd111ffb00e48bfea530f9b28148d6c66ecc25638715_cppui_modular298); + 0x1ddb2c8af8fe69693b8f13167e2a777fe09eb91d463353c0d2206985fb5cc9a3f298b755383_bigui298, + 0xf9e00ccd15c34450589956a9ec92119be2357872a78eeab24b05b9c6049bf686722dfbc2da_bigui298, + 0x34f61578569ea7545e32977222b0ad4fd111ffb00e48bfea530f9b28148d6c66ecc25638715_bigui298); constexpr g_value_type p2( - 0x335b9af13de99ba9967d434405334d3ca682f227bdcb5cafcff26ee59d9549206db3224aba8_cppui_modular298, - 0x19df8867acc42990e842c680183e56f537fe67ed1b3a0b3b4e6a9a9d2f6b9c00728580f66bb_cppui_modular298, - 0xc312d28a4b8dd159a148ec47a53c6f428075ee610049bf97e041058ae289176a347eeaa449_cppui_modular298); + 0x335b9af13de99ba9967d434405334d3ca682f227bdcb5cafcff26ee59d9549206db3224aba8_bigui298, + 0x19df8867acc42990e842c680183e56f537fe67ed1b3a0b3b4e6a9a9d2f6b9c00728580f66bb_bigui298, + 0xc312d28a4b8dd159a148ec47a53c6f428075ee610049bf97e041058ae289176a347eeaa449_bigui298); constexpr g_value_type p_add( - 0x3ba7cdb059289e6c2c79ac99f3c0a171e8a74d0802ae7c1dd20fe153e8b38da5e0223f741a5_cppui_modular298, - 0x3aa9e50daf831fe1f92d2bec1d045b52201b72023b2846dd6c3013fe1f9649228dde3c437b9_cppui_modular298, - 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_cppui_modular298); + 0x3ba7cdb059289e6c2c79ac99f3c0a171e8a74d0802ae7c1dd20fe153e8b38da5e0223f741a5_bigui298, + 0x3aa9e50daf831fe1f92d2bec1d045b52201b72023b2846dd6c3013fe1f9649228dde3c437b9_bigui298, + 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_bigui298); constexpr g_value_type p_sub( - 0x1ad61843a56ef2f3bfcf5447640bd8d441d84ab68a9ca37c818c5c5aa49776d3b9c1bb34f23_cppui_modular298, - 0x354fc0efb6552ecb641058c423f42fff14d1655607159b5e4e4ad5f1500173bf6380b1a5449_cppui_modular298, - 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_cppui_modular298); + 0x1ad61843a56ef2f3bfcf5447640bd8d441d84ab68a9ca37c818c5c5aa49776d3b9c1bb34f23_bigui298, + 0x354fc0efb6552ecb641058c423f42fff14d1655607159b5e4e4ad5f1500173bf6380b1a5449_bigui298, + 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_bigui298); constexpr g_value_type p_mul_C( - 0xdc2e25c576e7198843f161324c3d4fc163ee93f0b42122993fa41737e16618f312651de2d4_cppui_modular298, - 0x32d35b5dd7359a5a6aa4aa7707366bd37ada05a185e416af60a9ded488ed08036d0e300cced_cppui_modular298, - 0x2c885e23b668ab74c3cf0362b10ed725d22e474e754d90cb05aee3ba174b3c6770d860dbc6d_cppui_modular298); - constexpr auto C1 = 0x182949bc_cppui_modular298; + 0xdc2e25c576e7198843f161324c3d4fc163ee93f0b42122993fa41737e16618f312651de2d4_bigui298, + 0x32d35b5dd7359a5a6aa4aa7707366bd37ada05a185e416af60a9ded488ed08036d0e300cced_bigui298, + 0x2c885e23b668ab74c3cf0362b10ed725d22e474e754d90cb05aee3ba174b3c6770d860dbc6d_bigui298); + constexpr auto C1 = 0x182949bc_bigui298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x27afd87c01419311766686d035c6ebc281c18f5401ad75eb54126c79d20fd1e1e01bcba427b_cppui_modular298, - 0x2c28ead8c2fa233ae647c9819df14cd657d4bc4e9d028bd9c22982601f0d91bfb23a56c1780_cppui_modular298, - 0x222429673e7acd3578db38480bc1c2720cbf6a96477c13a04354f47bda90893087d7c9c3371_cppui_modular298); - constexpr auto C2 = 0x3ea7e208_cppui_modular298; + 0x27afd87c01419311766686d035c6ebc281c18f5401ad75eb54126c79d20fd1e1e01bcba427b_bigui298, + 0x2c28ead8c2fa233ae647c9819df14cd657d4bc4e9d028bd9c22982601f0d91bfb23a56c1780_bigui298, + 0x222429673e7acd3578db38480bc1c2720cbf6a96477c13a04354f47bda90893087d7c9c3371_bigui298); + constexpr auto C2 = 0x3ea7e208_bigui298; constexpr g_value_type_affine p_to_affine( - 0x99180b367e81aac8adcd54fd1ebd085d434d43e57304127deb54287885c301fb6a907a970f_cppui_modular298, - 0x1358a1a7c7c7db2f60e48b38ee4845caa21958caa41743406eb5d689e666a369f82320f7aba_cppui_modular298); + 0x99180b367e81aac8adcd54fd1ebd085d434d43e57304127deb54287885c301fb6a907a970f_bigui298, + 0x1358a1a7c7c7db2f60e48b38ee4845caa21958caa41743406eb5d689e666a369f82320f7aba_bigui298); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -452,118 +452,118 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt6_g2) { constexpr g_value_type p1( {{ - 0x15da78bbd604999fc1125b0c59287a0d3510803774c39e0392604cfc128a6a3d93197271647_cppui_modular298, - 0x2f96c32ac6feb0c131182cb3f166f79d1d27da0acedef4886a0b1d5e23c54296b8ee7160139_cppui_modular298, - 0x1bd181a3093c60e4508e02b99a3dfb219b2a63994c0270f15e762598441352b7a8f66289ef2_cppui_modular298, + 0x15da78bbd604999fc1125b0c59287a0d3510803774c39e0392604cfc128a6a3d93197271647_bigui298, + 0x2f96c32ac6feb0c131182cb3f166f79d1d27da0acedef4886a0b1d5e23c54296b8ee7160139_bigui298, + 0x1bd181a3093c60e4508e02b99a3dfb219b2a63994c0270f15e762598441352b7a8f66289ef2_bigui298, }}, {{ - 0x501d8d37d0eb035530f4086aab196119e1c9f9e9d742f534c5463f3d80f51ead20a19aac11_cppui_modular298, - 0x8c6ae7d27359469281039a4ebf3d1e75427a019fb5b95c10f6e31ef3b7e638ad75129b9238_cppui_modular298, - 0x3a8eb00bd449fb1a82609ba3c9b580ab0e97903383a3be6e4cc61d019d6fbde331ffe6b926a_cppui_modular298, + 0x501d8d37d0eb035530f4086aab196119e1c9f9e9d742f534c5463f3d80f51ead20a19aac11_bigui298, + 0x8c6ae7d27359469281039a4ebf3d1e75427a019fb5b95c10f6e31ef3b7e638ad75129b9238_bigui298, + 0x3a8eb00bd449fb1a82609ba3c9b580ab0e97903383a3be6e4cc61d019d6fbde331ffe6b926a_bigui298, }}, {{ - 0x10529eb0e3ad62508adf0a72458c7094145ffb867707b40534b93dd23c515570bb19b827b3a_cppui_modular298, - 0xd52131aa267f5d09e19e1642771399602c1480f5d55390390ce7336be616d479f386c5ed3f_cppui_modular298, - 0x31e30206c05edc932b953d0729a2795d5194766d9fda3e0a9530b6ff5140cf267f1bc315460_cppui_modular298, + 0x10529eb0e3ad62508adf0a72458c7094145ffb867707b40534b93dd23c515570bb19b827b3a_bigui298, + 0xd52131aa267f5d09e19e1642771399602c1480f5d55390390ce7336be616d479f386c5ed3f_bigui298, + 0x31e30206c05edc932b953d0729a2795d5194766d9fda3e0a9530b6ff5140cf267f1bc315460_bigui298, }}); constexpr g_value_type p2( {{ - 0x1966aea3f8eac82f244bb7b74afef1933b24369aee766ffffa940312f0c7d3cbc1f7b842c1d_cppui_modular298, - 0x1ebcfc8c1f711c487edc9433a21369dd117f652107ad29761d69eb5e5ac7d3976089fc0d02d_cppui_modular298, - 0xb6254c4b28bd678a46d94fbf17ddd107997d39da61bffcb4d31de9832dbfcd456a9a635f62_cppui_modular298, + 0x1966aea3f8eac82f244bb7b74afef1933b24369aee766ffffa940312f0c7d3cbc1f7b842c1d_bigui298, + 0x1ebcfc8c1f711c487edc9433a21369dd117f652107ad29761d69eb5e5ac7d3976089fc0d02d_bigui298, + 0xb6254c4b28bd678a46d94fbf17ddd107997d39da61bffcb4d31de9832dbfcd456a9a635f62_bigui298, }}, {{ - 0x1740a4e6686c5c21cfc4531a11b058a876e1eb78c54ab9b713fb7424fabdbe3915db906ce64_cppui_modular298, - 0x35519cd02031c4f5f8169f77b77b01c338fd2c0dde7c1958fc6d646c15f7eb34a317283bf59_cppui_modular298, - 0x361d88a99c1a956a86ddbfb2ce582c0005d494e6e70a63d961483d926b29a3ab8f0018bbea5_cppui_modular298, + 0x1740a4e6686c5c21cfc4531a11b058a876e1eb78c54ab9b713fb7424fabdbe3915db906ce64_bigui298, + 0x35519cd02031c4f5f8169f77b77b01c338fd2c0dde7c1958fc6d646c15f7eb34a317283bf59_bigui298, + 0x361d88a99c1a956a86ddbfb2ce582c0005d494e6e70a63d961483d926b29a3ab8f0018bbea5_bigui298, }}, {{ - 0x1178a07e802d91293cc5d121a37da8740a44c2820fae8876b4dde89e69c3f605ec632d1a22a_cppui_modular298, - 0x13a043a487fd3c41f7f8719b7ec4d886a3a3a1a39e2e05fd88c41da757669d3f4305578023f_cppui_modular298, - 0x281a2130ee2326a191099e093bf8f731e43f0481e9a308e1630284ba284711a2b4f5833ebd9_cppui_modular298, + 0x1178a07e802d91293cc5d121a37da8740a44c2820fae8876b4dde89e69c3f605ec632d1a22a_bigui298, + 0x13a043a487fd3c41f7f8719b7ec4d886a3a3a1a39e2e05fd88c41da757669d3f4305578023f_bigui298, + 0x281a2130ee2326a191099e093bf8f731e43f0481e9a308e1630284ba284711a2b4f5833ebd9_bigui298, }}); constexpr g_value_type p_add( {{ - 0x286ea7e4330a358a8cefd0523a6faffd55edd2fc8a886ebac349189697d792ff68a83c06e5d_cppui_modular298, - 0x1591ca6dce1f85ca16fd330b9fc7c2238c905bdcf437248ace8e677f79393f4e4c9f2689e08_cppui_modular298, - 0x2d19aa4b6c3e770674d594f9f60a1df1ccb6a1efc523b1b223f5b360613c4900ee1fee068f0_cppui_modular298, + 0x286ea7e4330a358a8cefd0523a6faffd55edd2fc8a886ebac349189697d792ff68a83c06e5d_bigui298, + 0x1591ca6dce1f85ca16fd330b9fc7c2238c905bdcf437248ace8e677f79393f4e4c9f2689e08_bigui298, + 0x2d19aa4b6c3e770674d594f9f60a1df1ccb6a1efc523b1b223f5b360613c4900ee1fee068f0_bigui298, }}, {{ - 0xb5a0b62486b8397124c5d8f4b4badd19e6fa0242c8058a056082cd9f18425996c6f74b5f49_cppui_modular298, - 0x2aa0e105745810e02d21e15fd5c067b1f8ace341932b5dc665557aa297a4dbb898a6fd675e2_cppui_modular298, - 0x21c4869ad25d55e5ac63fe01832445f57f7db6f69d210280232da4a115be4bdb43737558c8c_cppui_modular298, + 0xb5a0b62486b8397124c5d8f4b4badd19e6fa0242c8058a056082cd9f18425996c6f74b5f49_bigui298, + 0x2aa0e105745810e02d21e15fd5c067b1f8ace341932b5dc665557aa297a4dbb898a6fd675e2_bigui298, + 0x21c4869ad25d55e5ac63fe01832445f57f7db6f69d210280232da4a115be4bdb43737558c8c_bigui298, }}, {{ - 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_cppui_modular298, - 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_cppui_modular298, - 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_cppui_modular298, + 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_bigui298, + 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_bigui298, + 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_bigui298, }}); constexpr g_value_type p_sub( {{ - 0x38b477f6d57a1749428955eb86c10a5013fd573e61492113420dce42e7c461fcece378e2721_cppui_modular298, - 0x2f0450a3baab9a36987082505ee28553c02745a6993d5fb46e83e4e5e2bcce3149cae39be6e_cppui_modular298, - 0x12828908e5f99ffcd5299790c297fe6acc039e0acc4b7caecb39f8afbc87e489f7a6dfe73ba_cppui_modular298, + 0x38b477f6d57a1749428955eb86c10a5013fd573e61492113420dce42e7c461fcece378e2721_bigui298, + 0x2f0450a3baab9a36987082505ee28553c02745a6993d5fb46e83e4e5e2bcce3149cae39be6e_bigui298, + 0x12828908e5f99ffcd5299790c297fe6acc039e0acc4b7caecb39f8afbc87e489f7a6dfe73ba_bigui298, }}, {{ - 0x1d2d1879f1e03503da2d50c5d6db772c7cf2562aafbf2f99b551c2e4a666a8885161baf0aa7_cppui_modular298, - 0x1ff619aa1c2d5e08872e53baccc57960d91845560646471e0ef1f68fd69f94c09fd0a0d7e0e_cppui_modular298, - 0xfa8387d06db82c0d7ad20295e59bec7e51bafeeabbf805489b7bcee2f43f8a9ccb7ee38018_cppui_modular298, + 0x1d2d1879f1e03503da2d50c5d6db772c7cf2562aafbf2f99b551c2e4a666a8885161baf0aa7_bigui298, + 0x1ff619aa1c2d5e08872e53baccc57960d91845560646471e0ef1f68fd69f94c09fd0a0d7e0e_bigui298, + 0xfa8387d06db82c0d7ad20295e59bec7e51bafeeabbf805489b7bcee2f43f8a9ccb7ee38018_bigui298, }}, {{ - 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_cppui_modular298, - 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_cppui_modular298, - 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_cppui_modular298, + 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_bigui298, + 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_bigui298, + 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_bigui298, }}); constexpr g_value_type p_mul_C( {{ - 0xf358e2e4f0a735ee8416253408fcb668c287608391763eea99567f2f28731e7627ea469ba7_cppui_modular298, - 0x257a8a922bd63ed32ecb88ad4880fd586d45ca1df7e10285da4f0a9dc4d1ff835659905c004_cppui_modular298, - 0x29c78c46f4fbaff26996deddbcf312bf8ce50adf52c32f425474afeb41760e323af03220437_cppui_modular298, + 0xf358e2e4f0a735ee8416253408fcb668c287608391763eea99567f2f28731e7627ea469ba7_bigui298, + 0x257a8a922bd63ed32ecb88ad4880fd586d45ca1df7e10285da4f0a9dc4d1ff835659905c004_bigui298, + 0x29c78c46f4fbaff26996deddbcf312bf8ce50adf52c32f425474afeb41760e323af03220437_bigui298, }}, {{ - 0xa95b7aaff44dc8ccbbf44e8aa76e6fdc3d7a7466ac8d0e0289cb3f883b98701f5566045f28_cppui_modular298, - 0x1cdf0db54b00251d016854892591e1036ca536da3654369fc62c4133f2f3276b2eb6f490c4f_cppui_modular298, - 0x33ac203454dd8b15577c697c2e19c1956c3f98c7543faf18b169775f0547a5011d319cc3292_cppui_modular298, + 0xa95b7aaff44dc8ccbbf44e8aa76e6fdc3d7a7466ac8d0e0289cb3f883b98701f5566045f28_bigui298, + 0x1cdf0db54b00251d016854892591e1036ca536da3654369fc62c4133f2f3276b2eb6f490c4f_bigui298, + 0x33ac203454dd8b15577c697c2e19c1956c3f98c7543faf18b169775f0547a5011d319cc3292_bigui298, }}, {{ - 0x373f09a0e36bd458c32091f03411ceeae30beef128d0a7fd15986701b5b4488dd04a0c38094_cppui_modular298, - 0x24cd0a32c86fe5fe77085773d22a622d804c3829ea08141597e97eb00d7c665237d81ebc10d_cppui_modular298, - 0x38d7bdb40b6cb4cd1ae9c939658fbb62618dd1346e643dca4513ad8ff2514284f1292596ed2_cppui_modular298, + 0x373f09a0e36bd458c32091f03411ceeae30beef128d0a7fd15986701b5b4488dd04a0c38094_bigui298, + 0x24cd0a32c86fe5fe77085773d22a622d804c3829ea08141597e97eb00d7c665237d81ebc10d_bigui298, + 0x38d7bdb40b6cb4cd1ae9c939658fbb62618dd1346e643dca4513ad8ff2514284f1292596ed2_bigui298, }}); - constexpr auto C1 = 0x3da94465_cppui_modular298; + constexpr auto C1 = 0x3da94465_bigui298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0x26524ae056ee5ae0dd807f0e575d1383aef2d271c5aa47516a1bcdd7314933fa0b45cbaa8e9_cppui_modular298, - 0x34a13d100b8a245841d4b7f093fae3c2b1bb339bf4774d234456492b6a54668a62d19e74c9_cppui_modular298, - 0x228ef624a105d545e386a4033134790ca1658f228d4adf2891c7e6703dc517abbb2790892e1_cppui_modular298, + 0x26524ae056ee5ae0dd807f0e575d1383aef2d271c5aa47516a1bcdd7314933fa0b45cbaa8e9_bigui298, + 0x34a13d100b8a245841d4b7f093fae3c2b1bb339bf4774d234456492b6a54668a62d19e74c9_bigui298, + 0x228ef624a105d545e386a4033134790ca1658f228d4adf2891c7e6703dc517abbb2790892e1_bigui298, }}, {{ - 0xd7744722859fefca11bcb06c615d1ae83883bb14556ec92d67bc1a83ff53caaf469d33b395_cppui_modular298, - 0x27df7ef0c9216ab59e9e576cd3ed2610f2fa2f739953f8fb77bd7e5e437919a29d558dad720_cppui_modular298, - 0x194c561af60a2b6b81ac48048f7aef84c1a98c731cd95365cf61d949945600af9b6e57f94af_cppui_modular298, + 0xd7744722859fefca11bcb06c615d1ae83883bb14556ec92d67bc1a83ff53caaf469d33b395_bigui298, + 0x27df7ef0c9216ab59e9e576cd3ed2610f2fa2f739953f8fb77bd7e5e437919a29d558dad720_bigui298, + 0x194c561af60a2b6b81ac48048f7aef84c1a98c731cd95365cf61d949945600af9b6e57f94af_bigui298, }}, {{ - 0x241ab5965aa82b4f7ddcfbdf46406629a191cd1bd3b7e4de5d995649c137016db8201d68753_cppui_modular298, - 0x2f72bc5310bd70c64445a639196240948d9bbfecd474608f68882d57e5f8e1b0bf92d684463_cppui_modular298, - 0x3395ab796861b1a13545042bdc6e55f59a10e56cc88b1cb529eafdbf018ea0caf4533dae5d_cppui_modular298, + 0x241ab5965aa82b4f7ddcfbdf46406629a191cd1bd3b7e4de5d995649c137016db8201d68753_bigui298, + 0x2f72bc5310bd70c64445a639196240948d9bbfecd474608f68882d57e5f8e1b0bf92d684463_bigui298, + 0x3395ab796861b1a13545042bdc6e55f59a10e56cc88b1cb529eafdbf018ea0caf4533dae5d_bigui298, }}); - constexpr auto C2 = 0x33c96283_cppui_modular298; + constexpr auto C2 = 0x33c96283_bigui298; constexpr g_value_type_affine p_to_affine( {{ - 0x362c5501b25d0063dfa31dcf27b9862b51a8b89782424bfbfe688b2d042141e204e916aced4_cppui_modular298, - 0x2b8f4aa9f2d7bf206f240bc12dfa029fd5c6474c7965ab5e9a764baf122ca38f10b8ed2e9aa_cppui_modular298, - 0x39649249c1fbbf2fdf4479318167d1f7884fbc94f2644c18b40d8ca1c636d5b1afaac2808cd_cppui_modular298, + 0x362c5501b25d0063dfa31dcf27b9862b51a8b89782424bfbfe688b2d042141e204e916aced4_bigui298, + 0x2b8f4aa9f2d7bf206f240bc12dfa029fd5c6474c7965ab5e9a764baf122ca38f10b8ed2e9aa_bigui298, + 0x39649249c1fbbf2fdf4479318167d1f7884fbc94f2644c18b40d8ca1c636d5b1afaac2808cd_bigui298, }}, {{ - 0x46538ec45b82981bdf3aa73189f15304f421bb90d6762a956238a18bfe6baee0dd4d475463_cppui_modular298, - 0x15ea8ac9b9323ebf7869211d0781fa8d04ee39f936ef38910528dab82c1b9dfa99b6d558f10_cppui_modular298, - 0x5f297a07039e20469dd49c2b13ea266e419f1b189b7eda9d9a44787765894b9392500c9d98_cppui_modular298, + 0x46538ec45b82981bdf3aa73189f15304f421bb90d6762a956238a18bfe6baee0dd4d475463_bigui298, + 0x15ea8ac9b9323ebf7869211d0781fa8d04ee39f936ef38910528dab82c1b9dfa99b6d558f10_bigui298, + 0x5f297a07039e20469dd49c2b13ea266e419f1b189b7eda9d9a44787765894b9392500c9d98_bigui298, }}); static_assert(p1 + p2 == p_add, "add error"); diff --git a/crypto3/libs/algebra/test/fields.cpp b/crypto3/libs/algebra/test/fields.cpp index 01bf777df4..ce3659c068 100644 --- a/crypto3/libs/algebra/test/fields.cpp +++ b/crypto3/libs/algebra/test/fields.cpp @@ -122,7 +122,7 @@ struct field_element_init> { template static inline element_type process(const ElementData &element_data) { - return element_type(typename element_type::integral_type(element_data.second.data())); + return element_type(typename element_type::integral_type(element_data.second.data().c_str())); } }; @@ -315,7 +315,7 @@ void field_test_init(std::vector &elements, } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoll(constant.second.data())); + constants.emplace_back(std::stoll(constant.second.data().c_str())); } } diff --git a/crypto3/libs/algebra/test/fields_static.cpp b/crypto3/libs/algebra/test/fields_static.cpp index 4eb30c17d1..2c4a6b016d 100644 --- a/crypto3/libs/algebra/test/fields_static.cpp +++ b/crypto3/libs/algebra/test/fields_static.cpp @@ -129,17 +129,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fr) { // This is correct, bls12_fr<381> has 255-bit elements. static constexpr test_set_t elements1 = { - 0x209a9bf596288853d71eb5a070164b2d81fe36e956f8f70376712767fabb15d9_cppui_modular255, - 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae7_cppui_modular255, - 0x12c7c99db99e16869ecf06cbaf6683a5cd8af516e1f31d869fe85acb87b770bf_cppui_modular255, - 0x2e6d6e4d72b2fa210f6e647530c612b5367178bbcbfed0804cf9f4046dbebaf3_cppui_modular255, - 0x65915fd6511eb3afcf0648a4b4b1c3f298433ecaee3cdd97254aa3ce8a67303d_cppui_modular255, - 0x413537eb2c5110a7ae3d6b40e02c965b03fc6dd2adf1ee06ece24ecff5762bb2_cppui_modular255, - 0x01c40f7a911c57190db5382d3fc2d96473780452b78e60474add8fb7f1eddda6_cppui_modular255, - 0x49757b377fe2a1de10c484db929a74ae02fdfae3aaab6098ea2ab8accfe613f0_cppui_modular255, - 0x363f979f222c9970dc4291b62bc3e8d77c31c1b2caa88afeb414f3584b952000_cppui_modular255, - 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae8_cppui_modular255, - 0x53530b5d9374f4f45c1b2267998b8cd7d1bf6d19a90564fb898ed8970544ea28_cppui_modular255 + 0x209a9bf596288853d71eb5a070164b2d81fe36e956f8f70376712767fabb15d9_bigui255, + 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae7_bigui255, + 0x12c7c99db99e16869ecf06cbaf6683a5cd8af516e1f31d869fe85acb87b770bf_bigui255, + 0x2e6d6e4d72b2fa210f6e647530c612b5367178bbcbfed0804cf9f4046dbebaf3_bigui255, + 0x65915fd6511eb3afcf0648a4b4b1c3f298433ecaee3cdd97254aa3ce8a67303d_bigui255, + 0x413537eb2c5110a7ae3d6b40e02c965b03fc6dd2adf1ee06ece24ecff5762bb2_bigui255, + 0x01c40f7a911c57190db5382d3fc2d96473780452b78e60474add8fb7f1eddda6_bigui255, + 0x49757b377fe2a1de10c484db929a74ae02fdfae3aaab6098ea2ab8accfe613f0_bigui255, + 0x363f979f222c9970dc4291b62bc3e8d77c31c1b2caa88afeb414f3584b952000_bigui255, + 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae8_bigui255, + 0x53530b5d9374f4f45c1b2267998b8cd7d1bf6d19a90564fb898ed8970544ea28_bigui255 }; static constexpr const_set_t constants1 = {811706348}; check_field_operations_static(); @@ -152,22 +152,22 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x3d9cb62ebac9d6c7b94245d2d6144d500f218bb90a16a1e4f70d98fd44b4b9ee274de15a0a3d231dac1eaa449d31404_cppui_modular381, - 0x15c88779fc8a30cca95ec4bbf71aa4c302bccf7dc571e6e45fbf1ed24989ec23dff741ca00597f4ab1fc628304e8761b_cppui_modular381, - 0x19a252dce836ce3924f2e919247be99803aee83956135102af2ff8621dd537c2c26c1fdfa0fd517c8cbe4d274ebb8a1f_cppui_modular381, - 0x81255d328a2533a1d51075779924ce962ac94c2beb495f956e28d5e8172559f21299c4a519e52e6e2c4882144ea4894_cppui_modular381, - 0x4e02d210a60d52212c21056e050b7f7b6aa45c2fb85e692b1fef9e3e6fb43b2bf8103105f43daca458e4dccc9f5236c_cppui_modular381, - 0x7b396c5d7593ad8f72848ba5ac289aa01e431772142d43c9ee1b31fa896973dc4e9bc2b4147a463b583d54893a62808_cppui_modular381, - 0x68241cb698160ee94897ec6600bc997de3fed563dfc36a758334c71dc76a2473571cfbc0f674038ee748add41e4277a_cppui_modular381, - 0xbb4588b98237fefeba65f928e69da9106c690e02c70361947b39d0f5a6d462096431d375d4b66ae7e4daef9f2400a09_cppui_modular381, - 0x2e7ebd9b39f65a9485b32b52269baa84b2d33a80c8747c994b1e58c0caa09b4acf7685583898549db1029a1de657d8a_cppui_modular381, - 0x4388a703cf5b5cda1bce2fa4c31081461ba7c072e132bdb0771b3cead270a003eb4be34b0fa80b508029d7cfb173490_cppui_modular381, - 0x162746874dd3492dcf87835915ea6802638532c962e3a8a117bff9112265aa853c3721e910b02dcddf3d155bb62c96a7_cppui_modular381}; + 0x3d9cb62ebac9d6c7b94245d2d6144d500f218bb90a16a1e4f70d98fd44b4b9ee274de15a0a3d231dac1eaa449d31404_bigui381, + 0x15c88779fc8a30cca95ec4bbf71aa4c302bccf7dc571e6e45fbf1ed24989ec23dff741ca00597f4ab1fc628304e8761b_bigui381, + 0x19a252dce836ce3924f2e919247be99803aee83956135102af2ff8621dd537c2c26c1fdfa0fd517c8cbe4d274ebb8a1f_bigui381, + 0x81255d328a2533a1d51075779924ce962ac94c2beb495f956e28d5e8172559f21299c4a519e52e6e2c4882144ea4894_bigui381, + 0x4e02d210a60d52212c21056e050b7f7b6aa45c2fb85e692b1fef9e3e6fb43b2bf8103105f43daca458e4dccc9f5236c_bigui381, + 0x7b396c5d7593ad8f72848ba5ac289aa01e431772142d43c9ee1b31fa896973dc4e9bc2b4147a463b583d54893a62808_bigui381, + 0x68241cb698160ee94897ec6600bc997de3fed563dfc36a758334c71dc76a2473571cfbc0f674038ee748add41e4277a_bigui381, + 0xbb4588b98237fefeba65f928e69da9106c690e02c70361947b39d0f5a6d462096431d375d4b66ae7e4daef9f2400a09_bigui381, + 0x2e7ebd9b39f65a9485b32b52269baa84b2d33a80c8747c994b1e58c0caa09b4acf7685583898549db1029a1de657d8a_bigui381, + 0x4388a703cf5b5cda1bce2fa4c31081461ba7c072e132bdb0771b3cead270a003eb4be34b0fa80b508029d7cfb173490_bigui381, + 0x162746874dd3492dcf87835915ea6802638532c962e3a8a117bff9112265aa853c3721e910b02dcddf3d155bb62c96a7_bigui381}; static constexpr const_set_t constants1 = {865433380}; check_field_operations_static(); constexpr value_type not_square1 = { - 0x122ca301fc65d4c9fd02b7d919e691c448b3209081835c99fab65c12c0e60a25f7eabe1b506e494b45175b95a4a9ebfe_cppui_modular381, + 0x122ca301fc65d4c9fd02b7d919e691c448b3209081835c99fab65c12c0e60a25f7eabe1b506e494b45175b95a4a9ebfe_bigui381, }; static_assert(not_square1.is_square() == false, "not square error"); static_assert(not_square1.pow(2).is_square() == true, "square error"); @@ -181,55 +181,55 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq2) { static constexpr test_set_t elements1 = { {{ - 0x5aa9d5160c21229d4c73871dab039631da3722131b00713055854b2e6ff4f8abe4430358fc70ba351fda87dc9abdbb2_cppui_modular381, - 0x2ccc1503d823ead782507cf3eb7c6b03ec4503bf8bb725111abe86ce8809f9c52ed32fa7178cdeb057f8ddb351b2de4_cppui_modular381, + 0x5aa9d5160c21229d4c73871dab039631da3722131b00713055854b2e6ff4f8abe4430358fc70ba351fda87dc9abdbb2_bigui381, + 0x2ccc1503d823ead782507cf3eb7c6b03ec4503bf8bb725111abe86ce8809f9c52ed32fa7178cdeb057f8ddb351b2de4_bigui381, }, { - 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_cppui_modular381, - 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_cppui_modular381, + 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_bigui381, + 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_bigui381, }, { - 0x143ae02ecca5b64e58fa08cdba44639e93186c4b2c6c1df04ca34e6931e9ccf92519ee4144ccb520b90e0582270a2eef_cppui_modular381, - 0xa6a45c3e8dcb337fb46adc8d595a51cf967475fb8bb418eb81c2e29fab05afff20bd847cd4095c7cf4e575e81819d1b_cppui_modular381, + 0x143ae02ecca5b64e58fa08cdba44639e93186c4b2c6c1df04ca34e6931e9ccf92519ee4144ccb520b90e0582270a2eef_bigui381, + 0xa6a45c3e8dcb337fb46adc8d595a51cf967475fb8bb418eb81c2e29fab05afff20bd847cd4095c7cf4e575e81819d1b_bigui381, }, { - 0x111b6c5e2e5e549f9bb00fcc3e67bbff0ca5c37c2a7902f5253e2d9d92c5c840761a72288c156225a4ec4b796c4d3320_cppui_modular381, - 0x15304ec6cba7b0bd401f098beb25951ae898a49d2c40b5d2d26c7550cd01da5cd27a8dabc705060df5afc457e8b46958_cppui_modular381, + 0x111b6c5e2e5e549f9bb00fcc3e67bbff0ca5c37c2a7902f5253e2d9d92c5c840761a72288c156225a4ec4b796c4d3320_bigui381, + 0x15304ec6cba7b0bd401f098beb25951ae898a49d2c40b5d2d26c7550cd01da5cd27a8dabc705060df5afc457e8b46958_bigui381, }, { - 0x16c00305e0c73e7c87eff62ffcadc3b54e06d73bc6ba13bf64a6e12881b3be9a8bd441e174fa59bb75287609946ad160_cppui_modular381, - 0x121e6a16e0b5a24b03bbb18ffb108c934781f5ecde689729b47c69a575592c4f6e3cf19d34140428cbf71a48dfef8bcb_cppui_modular381, + 0x16c00305e0c73e7c87eff62ffcadc3b54e06d73bc6ba13bf64a6e12881b3be9a8bd441e174fa59bb75287609946ad160_bigui381, + 0x121e6a16e0b5a24b03bbb18ffb108c934781f5ecde689729b47c69a575592c4f6e3cf19d34140428cbf71a48dfef8bcb_bigui381, }, { - 0xb553aa2c1842453a98e70e3b56072c63b46e44263600e260ab0a965cdfe9f157c88606b1f8e1746a3fb50fb9357b764_cppui_modular381, - 0x59982a07b047d5af04a0f9e7d6f8d607d88a077f176e4a22357d0d9d1013f38a5da65f4e2f19bd60aff1bb66a365bc8_cppui_modular381, + 0xb553aa2c1842453a98e70e3b56072c63b46e44263600e260ab0a965cdfe9f157c88606b1f8e1746a3fb50fb9357b764_bigui381, + 0x59982a07b047d5af04a0f9e7d6f8d607d88a077f176e4a22357d0d9d1013f38a5da65f4e2f19bd60aff1bb66a365bc8_bigui381, }, { - 0x1004f42fded04e85fa8e21b945dc955abd3b349e52494a628d102e1240123038bdadd47f92750bdb8355b798d119a030_cppui_modular381, - 0xe7eeef4fb0a1d7470dad9548096233fcf664d7178e62b8c8d716197b84e31d7da79bbf5be757d63519b997c81d5c95e_cppui_modular381, + 0x1004f42fded04e85fa8e21b945dc955abd3b349e52494a628d102e1240123038bdadd47f92750bdb8355b798d119a030_bigui381, + 0xe7eeef4fb0a1d7470dad9548096233fcf664d7178e62b8c8d716197b84e31d7da79bbf5be757d63519b997c81d5c95e_bigui381, }, { - 0xef716581f3a2e7e2bf0f2850ea9bd3bbccf4933d4f4dcf616b181e1a894eb07e194b611cf5a2d532637b6ae800e33b6_cppui_modular381, - 0x2054d1d319feb67161dcd0ba4ab91a498197d89f44158513b8ddee4e46a8b50b6752621e17a61e0952d6daf2e0d9e8a_cppui_modular381, + 0xef716581f3a2e7e2bf0f2850ea9bd3bbccf4933d4f4dcf616b181e1a894eb07e194b611cf5a2d532637b6ae800e33b6_bigui381, + 0x2054d1d319feb67161dcd0ba4ab91a498197d89f44158513b8ddee4e46a8b50b6752621e17a61e0952d6daf2e0d9e8a_bigui381, }, { - 0x9f218e6d8b2f410874af5f7a8290dfa6ba23f059630fc7afe87138081863aed2730b5b19c3945c3bf5a03780d276861_cppui_modular381, - 0x120c0b9fea1fdde517eee773dc43ba6c0f14b8594a7fd86e93b40a71e7ae9b118444713de4606eedc4391acfab10218a_cppui_modular381, + 0x9f218e6d8b2f410874af5f7a8290dfa6ba23f059630fc7afe87138081863aed2730b5b19c3945c3bf5a03780d276861_bigui381, + 0x120c0b9fea1fdde517eee773dc43ba6c0f14b8594a7fd86e93b40a71e7ae9b118444713de4606eedc4391acfab10218a_bigui381, }, { - 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_cppui_modular381, - 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_cppui_modular381, + 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_bigui381, + 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_bigui381, }, { - 0x14567498d8bdd47076546f44689b737446d3d963c1d50bac61d87dee0fb1a6996067cfc9218cf45c680157823653cef9_cppui_modular381, - 0x17345099fbfda7ecd2f69fe70493e62725b2fb48fac9a06e5584ea340e305687cbbecd043fdb3214b47f7224cae47cc7_cppui_modular381, + 0x14567498d8bdd47076546f44689b737446d3d963c1d50bac61d87dee0fb1a6996067cfc9218cf45c680157823653cef9_bigui381, + 0x17345099fbfda7ecd2f69fe70493e62725b2fb48fac9a06e5584ea340e305687cbbecd043fdb3214b47f7224cae47cc7_bigui381, }}}; static constexpr const_set_t constants1 = {928943650}; check_field_operations_static(); constexpr value_type not_square1 = { - 0x72076a0fb063f674c504b550525707cbea30259021a274bc9dcba7a9fdaf9e36011466eea87f70870c4b91a400d3395_cppui_modular381, - 0x1127508c363a11a7b6f6572124fe882786e91ad0a2ce25e139949d37b8a3d6f6392920c23b07e3896dd4e8f743c2567f_cppui_modular381, + 0x72076a0fb063f674c504b550525707cbea30259021a274bc9dcba7a9fdaf9e36011466eea87f70870c4b91a400d3395_bigui381, + 0x1127508c363a11a7b6f6572124fe882786e91ad0a2ce25e139949d37b8a3d6f6392920c23b07e3896dd4e8f743c2567f_bigui381, }; static_assert(not_square1.is_square() == false, "not square error"); static_assert(not_square1.pow(2).is_square() == true, "square error"); @@ -242,129 +242,129 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq6) { using const_set_t = std::array; constexpr value_type element1( - {{0xe35bdcd1e6bea40fb5a65a36a415ef84cb2260e7c7a21b479352a56a257128bbd2f6b8e5d96dca7917292801387ca3f_cppui_modular381, - 0x842c6e159819c8c3119def19ef737ef9d412ac4f720e96f807739f66f612fc3efa0ddefa8948bb897af24c57ffb0847_cppui_modular381}}, - {{0x530d34cbd121e5d4889dc058b70e8c4d1113cb8fda0d324ca7c04e86b39f93a569946fb5896e04494e99aab3af56417_cppui_modular381, - 0x66c9141b489a64a63108c7b1f019e760e4475a1c3deb8ca5805758a8d3bc99bba1e9cac8f610e9bc7b8ef295527957d_cppui_modular381}}, - {{0x191648b522c815d6b754d0ae9811b8009faa26fad2fa9ebe1ec57d29575c5667cbf0cae8e048167f55b9f5f107de315_cppui_modular381, - 0x18874ddc2384d2512f6b9c61dc1650f8c3f013e86e260af76dd326c6505041962b4c652db429eb9751788d323a9fe14d_cppui_modular381}}); + {{0xe35bdcd1e6bea40fb5a65a36a415ef84cb2260e7c7a21b479352a56a257128bbd2f6b8e5d96dca7917292801387ca3f_bigui381, + 0x842c6e159819c8c3119def19ef737ef9d412ac4f720e96f807739f66f612fc3efa0ddefa8948bb897af24c57ffb0847_bigui381}}, + {{0x530d34cbd121e5d4889dc058b70e8c4d1113cb8fda0d324ca7c04e86b39f93a569946fb5896e04494e99aab3af56417_bigui381, + 0x66c9141b489a64a63108c7b1f019e760e4475a1c3deb8ca5805758a8d3bc99bba1e9cac8f610e9bc7b8ef295527957d_bigui381}}, + {{0x191648b522c815d6b754d0ae9811b8009faa26fad2fa9ebe1ec57d29575c5667cbf0cae8e048167f55b9f5f107de315_bigui381, + 0x18874ddc2384d2512f6b9c61dc1650f8c3f013e86e260af76dd326c6505041962b4c652db429eb9751788d323a9fe14d_bigui381}}); constexpr value_type element2( {{ - 0x12c6da93e6f1749bb5b55d45be19c3447ac88cefa858ff5ed5eccb5e8cb36ccf8923ed675278d5ed0b21f04d3770e191_cppui_modular381, - 0x298353679126c9fad35a3ea30ab0a3307a256877ca8689641bc43d1689c801d215110906ed9ef31c0f03df8e1a1bbac_cppui_modular381, + 0x12c6da93e6f1749bb5b55d45be19c3447ac88cefa858ff5ed5eccb5e8cb36ccf8923ed675278d5ed0b21f04d3770e191_bigui381, + 0x298353679126c9fad35a3ea30ab0a3307a256877ca8689641bc43d1689c801d215110906ed9ef31c0f03df8e1a1bbac_bigui381, }}, {{ - 0x19af88a6400fc27b35efde0bfd718cb83f7cf34abc1a66ae709a889084847930a94b1b706a3e0d8859f77c6cbdfb005c_cppui_modular381, - 0x11d0d2e8f588862f71072a1131d2a680183e37687d73ea2271c50233e63be12dd7e3ced525de82aefde44d9c7dc4548d_cppui_modular381, + 0x19af88a6400fc27b35efde0bfd718cb83f7cf34abc1a66ae709a889084847930a94b1b706a3e0d8859f77c6cbdfb005c_bigui381, + 0x11d0d2e8f588862f71072a1131d2a680183e37687d73ea2271c50233e63be12dd7e3ced525de82aefde44d9c7dc4548d_bigui381, }}, {{ - 0x3953b4d910cbcf606bd2e1cff60d71686058fe97df3f565e38c5eb62919e761123f27da473b7d74ab1b2c263acf8a67_cppui_modular381, - 0xa5b6acd4357f48cdb0d890dc2f1dd294ca52aa4a63423b4208fa9b3865f6e6f663b02505b64d3383423ab07f155b0e0_cppui_modular381, + 0x3953b4d910cbcf606bd2e1cff60d71686058fe97df3f565e38c5eb62919e761123f27da473b7d74ab1b2c263acf8a67_bigui381, + 0xa5b6acd4357f48cdb0d890dc2f1dd294ca52aa4a63423b4208fa9b3865f6e6f663b02505b64d3383423ab07f155b0e0_bigui381, }}); constexpr value_type element_add( {{ - 0x6fb8676cbdd784265f41b32e50f756563036779314e0e53e7f123143859893727a758f6febbb294e29582cd4af90125_cppui_modular381, - 0xadafc17d294092bde4f82dbcfa24222a4e3814c73c95205c2337dc7d7fdafe110f1ee80176e7aea589f62be619cc3f3_cppui_modular381, + 0x6fb8676cbdd784265f41b32e50f756563036779314e0e53e7f123143859893727a758f6febbb294e29582cd4af90125_bigui381, + 0xadafc17d294092bde4f82dbcfa24222a4e3814c73c95205c2337dc7d7fdafe110f1ee80176e7aea589f62be619cc3f3_bigui381, }}, {{ - 0x4df4a08c3a1fa3e335e125b4596c8a5ac16e47ec6362713d3e5bad7f90d7c46e138626d1180edcd34e21717f8f0b9c8_cppui_modular381, - 0x183d642aaa122c79d417b68c50d444f62682ad0a4152a2ecc9ca77be7377aac992026b81b53f914ac59d3cc5d2ebea0a_cppui_modular381, + 0x4df4a08c3a1fa3e335e125b4596c8a5ac16e47ec6362713d3e5bad7f90d7c46e138626d1180edcd34e21717f8f0b9c8_bigui381, + 0x183d642aaa122c79d417b68c50d444f62682ad0a4152a2ecc9ca77be7377aac992026b81b53f914ac59d3cc5d2ebea0a_bigui381, }}, {{ - 0x5269fd8e3393e5372327b27e8e1f296900032592b239f51c578b688be8facc78efe3488d53ffedca076cb854b4d6d7c_cppui_modular381, - 0x8e1a6bf2d5ce043bf5d7db95bbc814aac1df30820d51bec2731fdd8dffeb9e172db677f5e3abecfcb9d383a2bf5e782_cppui_modular381, + 0x5269fd8e3393e5372327b27e8e1f296900032592b239f51c578b688be8facc78efe3488d53ffedca076cb854b4d6d7c_bigui381, + 0x8e1a6bf2d5ce043bf5d7db95bbc814aac1df30820d51bec2731fdd8dffeb9e172db677f5e3abecfcb9d383a2bf5e782_bigui381, }}); constexpr value_type element_sub( {{ - 0x156ff52370fa5c3f90c0b013ef73488b3660e4a3c7a635150a7931990c549be052b77e25bc7206ba404fa232dc169359_cppui_modular381, - 0x5aa91aae06f2fec83e43b076e4c2dbc959ed43d7a7880d93ebaf62506c4afa6ce4fcd5f39ba9c86d6bee6cc9e594c9b_cppui_modular381, + 0x156ff52370fa5c3f90c0b013ef73488b3660e4a3c7a635150a7931990c549be052b77e25bc7206ba404fa232dc169359_bigui381, + 0x5aa91aae06f2fec83e43b076e4c2dbc959ed43d7a7880d93ebaf62506c4afa6ce4fcd5f39ba9c86d6bee6cc9e594c9b_bigui381, }}, {{ - 0x5825c90b682427c5db5a5afd14b08e3f60b94f3350b7f35c1124ef8dd66762dcbfa2b899facd2bbf4f11e3e7cfa0e66_cppui_modular381, - 0xe9cd042f88106b53d250a20307aa4cd5a7d89be39efe1674d7145f79db0de9200e6cdd61ad68bec83d3a18cd762eb9b_cppui_modular381, + 0x5825c90b682427c5db5a5afd14b08e3f60b94f3350b7f35c1124ef8dd66762dcbfa2b899facd2bbf4f11e3e7cfa0e66_bigui381, + 0xe9cd042f88106b53d250a20307aa4cd5a7d89be39efe1674d7145f79db0de9200e6cdd61ad68bec83d3a18cd762eb9b_bigui381, }}, {{ - 0x17fd3b27fa9fab01afd3c6a42d6bf140e86c5e0b22c0c7456590cbbd630cd429892be4d2f81d03f3043f7338d5ae0359_cppui_modular381, - 0xe2be30ee02cddc4545e1354192473cf774ae943c7f1e7434d437d12c9f0d326c51162dd58c5185f1d54e22a494a306d_cppui_modular381, + 0x17fd3b27fa9fab01afd3c6a42d6bf140e86c5e0b22c0c7456590cbbd630cd429892be4d2f81d03f3043f7338d5ae0359_bigui381, + 0xe2be30ee02cddc4545e1354192473cf774ae943c7f1e7434d437d12c9f0d326c51162dd58c5185f1d54e22a494a306d_bigui381, }}); constexpr value_type element_mul( {{ - 0xee860564acc5f0b9735eeb963c12b5f13e7185ee07cc64faa29f7625722ab4f22c5de62ba7bfbb2f4b89271e1c08cf5_cppui_modular381, - 0x15da2707b1131595a4c8f52d21033bf4effa6f8bb329b87ff145c246996a06e5658f600cf48194d3de04de2b12440b05_cppui_modular381, + 0xee860564acc5f0b9735eeb963c12b5f13e7185ee07cc64faa29f7625722ab4f22c5de62ba7bfbb2f4b89271e1c08cf5_bigui381, + 0x15da2707b1131595a4c8f52d21033bf4effa6f8bb329b87ff145c246996a06e5658f600cf48194d3de04de2b12440b05_bigui381, }}, {{ - 0x7d5becd415aa1ab429792cd7886c38f099b8822fe2addde4be8a4d6474b942ca3e1748e05f554399c4b91cd3b3f16a8_cppui_modular381, - 0xa76f981e0a2529242f4ff7aed73d90f0edbbf42fb6eeafe7c2c1b00a06410cffd8aeb068642fd6acdc620d34b112d4c_cppui_modular381, + 0x7d5becd415aa1ab429792cd7886c38f099b8822fe2addde4be8a4d6474b942ca3e1748e05f554399c4b91cd3b3f16a8_bigui381, + 0xa76f981e0a2529242f4ff7aed73d90f0edbbf42fb6eeafe7c2c1b00a06410cffd8aeb068642fd6acdc620d34b112d4c_bigui381, }}, {{ - 0x13cf641327fca9e6e6f030760e3c15db66560f38f9e3c0b01c145a618cabeff77a4eecb05ce3dd6fbcbacefd30be8d06_cppui_modular381, - 0xc6d2165eb733e306f8cb4fa077fbcf150ddca205f82ed83018a9f25df5356029d6cebbcd949869db0d1fde551fbe5fb_cppui_modular381, + 0x13cf641327fca9e6e6f030760e3c15db66560f38f9e3c0b01c145a618cabeff77a4eecb05ce3dd6fbcbacefd30be8d06_bigui381, + 0xc6d2165eb733e306f8cb4fa077fbcf150ddca205f82ed83018a9f25df5356029d6cebbcd949869db0d1fde551fbe5fb_bigui381, }}); constexpr value_type element_dbl( {{ - 0x26a69b00357ede7ab9923909137111934ed0098056f30a98b39820c4dfd2ef35bb2d71e09d9b94f68e62500270fe9d3_cppui_modular381, - 0x10858dc2b30339186233bde33dee6fdf3a825589ee41d2df00ee73ecdec25f87df41bbdf512917712f5e498afff6108e_cppui_modular381, + 0x26a69b00357ede7ab9923909137111934ed0098056f30a98b39820c4dfd2ef35bb2d71e09d9b94f68e62500270fe9d3_bigui381, + 0x10858dc2b30339186233bde33dee6fdf3a825589ee41d2df00ee73ecdec25f87df41bbdf512917712f5e498afff6108e_bigui381, }}, {{ - 0xa61a6997a243cba9113b80b16e1d189a2227971fb41a64994f809d0d673f274ad328df6b12dc08929d3355675eac82e_cppui_modular381, - 0xcd9228369134c94c62118f63e033cec1c88eb4387bd7194b00aeb151a779337743d39591ec21d378f71de52aa4f2afa_cppui_modular381, + 0xa61a6997a243cba9113b80b16e1d189a2227971fb41a64994f809d0d673f274ad328df6b12dc08929d3355675eac82e_bigui381, + 0xcd9228369134c94c62118f63e033cec1c88eb4387bd7194b00aeb151a779337743d39591ec21d378f71de52aa4f2afa_bigui381, }}, {{ - 0x322c916a45902bad6ea9a15d302370013f544df5a5f53d7c3d8afa52aeb8accf97e195d1c0902cfeab73ebe20fbc62a_cppui_modular381, - 0x170d89ce0d89be0813bb910d74e0f51a2368dc4be8c7032f74757aeba9ef8d0837ecca5cb6ffd72ee8f21a64754017ef_cppui_modular381, + 0x322c916a45902bad6ea9a15d302370013f544df5a5f53d7c3d8afa52aeb8accf97e195d1c0902cfeab73ebe20fbc62a_bigui381, + 0x170d89ce0d89be0813bb910d74e0f51a2368dc4be8c7032f74757aeba9ef8d0837ecca5cb6ffd72ee8f21a64754017ef_bigui381, }}); constexpr value_type element_inv( {{ - 0x12ee7ea5e0d228be7def0065aadeb7da8095517cb58fc1db216d0b7b2d744534757ae10609732ec72999898bdbbdf399_cppui_modular381, - 0x6626a59529d1a4a5639122be3bf0c9840f0c47e083a6d2d7fd8fb11400d19efe488e987e3fcf90ae89d098fae2adb15_cppui_modular381, + 0x12ee7ea5e0d228be7def0065aadeb7da8095517cb58fc1db216d0b7b2d744534757ae10609732ec72999898bdbbdf399_bigui381, + 0x6626a59529d1a4a5639122be3bf0c9840f0c47e083a6d2d7fd8fb11400d19efe488e987e3fcf90ae89d098fae2adb15_bigui381, }}, {{ - 0x987d5a6a07024d1728020ddc12fe8359aaa166216145d3830e01f8c397aa1b5b0df5b42f4c82b8481f8b327b20fc8b7_cppui_modular381, - 0xd4566bba6b0d25880bb0c3be74ae401b0988116914166df91f1a61af5af32a7aec7967d12e040e528629136a3c8c9bc_cppui_modular381, + 0x987d5a6a07024d1728020ddc12fe8359aaa166216145d3830e01f8c397aa1b5b0df5b42f4c82b8481f8b327b20fc8b7_bigui381, + 0xd4566bba6b0d25880bb0c3be74ae401b0988116914166df91f1a61af5af32a7aec7967d12e040e528629136a3c8c9bc_bigui381, }}, {{ - 0xd7a5de8dc422548facb0cd895f0fb045dbbf0872d5c257a91720916fc59552d14879c0a1954661e452606be48cf7bc6_cppui_modular381, - 0x41669d95d4700d9d78b96f4292bfa008b60170188c8f6737157800c6cb8bd8887afa3411ff6e700f89f480ba8b889a3_cppui_modular381, + 0xd7a5de8dc422548facb0cd895f0fb045dbbf0872d5c257a91720916fc59552d14879c0a1954661e452606be48cf7bc6_bigui381, + 0x41669d95d4700d9d78b96f4292bfa008b60170188c8f6737157800c6cb8bd8887afa3411ff6e700f89f480ba8b889a3_bigui381, }}); constexpr value_type element_pow_C( {{ - 0x289ab5220ebbed9d65e184825cc39c3ad9288269839db599ddc54fed213cb8dc29f668ef33a28352cb76133d3003f3b_cppui_modular381, - 0x1924a52997eef1bd7ae41fb0ec3983e4cf1c6c2da62ad149e6f4d4bdbad63f701c5cff340d29d23516d058aea2deb5b4_cppui_modular381, + 0x289ab5220ebbed9d65e184825cc39c3ad9288269839db599ddc54fed213cb8dc29f668ef33a28352cb76133d3003f3b_bigui381, + 0x1924a52997eef1bd7ae41fb0ec3983e4cf1c6c2da62ad149e6f4d4bdbad63f701c5cff340d29d23516d058aea2deb5b4_bigui381, }}, {{ - 0xcd023da96a2033fd26952aecdaad57c57f62ba9ce4864486d81991f8fcd8075b736cf799ee243d8d9291c20285dfc5d_cppui_modular381, - 0x146f298a42cf556357a296833b14967329b954633f3b0dff55fbd269317c79d1d67ae65c6626032261fda641f7121f1_cppui_modular381, + 0xcd023da96a2033fd26952aecdaad57c57f62ba9ce4864486d81991f8fcd8075b736cf799ee243d8d9291c20285dfc5d_bigui381, + 0x146f298a42cf556357a296833b14967329b954633f3b0dff55fbd269317c79d1d67ae65c6626032261fda641f7121f1_bigui381, }}, {{ - 0x18da863345461ccc88fa8918d151de5fa527839e59ece3575c73ab805a78f66e712974f2e27e641e18731934dd72c484_cppui_modular381, - 0x7e8b156d32a43b79e904543ff5e79949488e5993c6a86c976b07826ec0b48957b4de5287333bd3452cfb34aabc63db8_cppui_modular381, + 0x18da863345461ccc88fa8918d151de5fa527839e59ece3575c73ab805a78f66e712974f2e27e641e18731934dd72c484_bigui381, + 0x7e8b156d32a43b79e904543ff5e79949488e5993c6a86c976b07826ec0b48957b4de5287333bd3452cfb34aabc63db8_bigui381, }}); constexpr int C1 = 980386333; constexpr value_type element_pow_2( {{ - 0xd021823530aa495ad91e8ef633c8b36a6c6d5e5812fdb235aa35082f610dd3e5417f3f9b5476a5715bad9a03f41f531_cppui_modular381, - 0x2ea43195614413f4c50621a1113ebc172ebb7d6233f741e4cc6c668d11937364a33df9bd3aec396eebc57c37d51cd19_cppui_modular381, + 0xd021823530aa495ad91e8ef633c8b36a6c6d5e5812fdb235aa35082f610dd3e5417f3f9b5476a5715bad9a03f41f531_bigui381, + 0x2ea43195614413f4c50621a1113ebc172ebb7d6233f741e4cc6c668d11937364a33df9bd3aec396eebc57c37d51cd19_bigui381, }}, {{ - 0xe28656d2e81bf9db44a2ed61847fcf8d1413b99a8e4f056cb8d33cc72953745cb3d9142ff9c1270741cf8e91ee7017a_cppui_modular381, - 0x101cb4244b677c1f85235503d9215dd97521158b008bf22fcea5700a1bd7b9e83ecaa5c371e4259727b6984781409022_cppui_modular381, + 0xe28656d2e81bf9db44a2ed61847fcf8d1413b99a8e4f056cb8d33cc72953745cb3d9142ff9c1270741cf8e91ee7017a_bigui381, + 0x101cb4244b677c1f85235503d9215dd97521158b008bf22fcea5700a1bd7b9e83ecaa5c371e4259727b6984781409022_bigui381, }}, {{ - 0x96d2835c975421e540a1d70cdbbcf1f90ea98c39d5b894ab7185ae631efd6e4d0aa3896dca1cd280031806546151d9d_cppui_modular381, - 0x194d9e3edf767e4c871506bf5d9b026f0998d835e46f1dd4717ba13922b78fec335ca5d9d1305420269bf7a423540b84_cppui_modular381, + 0x96d2835c975421e540a1d70cdbbcf1f90ea98c39d5b894ab7185ae631efd6e4d0aa3896dca1cd280031806546151d9d_bigui381, + 0x194d9e3edf767e4c871506bf5d9b026f0998d835e46f1dd4717ba13922b78fec335ca5d9d1305420269bf7a423540b84_bigui381, }}); constexpr value_type minus_element( {{ - 0xbcb541d1b13fc594fc14212d90a4ddf17c52576770af10aedfba84a5459e398617c947053bd2358288c6d7fec77e06c_cppui_modular381, - 0x11be4b08dffe4a0e1a01c8c4a45474e7c73620bffc64294fe6b998aa874fc6602f0b220f08bf7447224fdb3a8004a264_cppui_modular381, + 0xbcb541d1b13fc594fc14212d90a4ddf17c52576770af10aedfba84a5459e398617c947053bd2358288c6d7fec77e06c_bigui381, + 0x11be4b08dffe4a0e1a01c8c4a45474e7c73620bffc64294fe6b998aa874fc6602f0b220f08bf7447224fdb3a8004a264_bigui381, }}, {{ - 0x14d03e9d7c6dc83d0291cbb0b7dac41293660ecbf5e43f9a9cb4cdb88b76fce9c812b90358bd1fbb25156554c50a4694_cppui_modular381, - 0x139480a884f6404fe80b1b3b244a0e615632d5e32fa659f50f2b5d1669752c88648d635221f2f163f24610d6aad8152e_cppui_modular381, + 0x14d03e9d7c6dc83d0291cbb0b7dac41293660ecbf5e43f9a9cb4cdb88b76fce9c812b90358bd1fbb25156554c50a4694_bigui381, + 0x139480a884f6404fe80b1b3b244a0e615632d5e32fa659f50f2b5d1669752c88648d635221f2f163f24610d6aad8152e_bigui381, }}, {{ - 0x186fad5ee753653cdfa65aab59ca91575a7ca915465568d385447ace613b30bda1ecf350234f7e97c4a360a0ef81c796_cppui_modular381, - 0x179c40e15fb14491bb00b5467355bdea087379c855f07c7f95dabdaa660b48df35f9ad0fd2a1468688672cdc55fc95e_cppui_modular381, + 0x186fad5ee753653cdfa65aab59ca91575a7ca915465568d385447ace613b30bda1ecf350234f7e97c4a360a0ef81c796_bigui381, + 0x179c40e15fb14491bb00b5467355bdea087379c855f07c7f95dabdaa660b48df35f9ad0fd2a1468688672cdc55fc95e_bigui381, }}); static constexpr test_set_t elements1 = { @@ -391,17 +391,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x1a1f0b89abd62c63c669a0cafeaa872558eeb1dffedc21f8ded61768d6ae02a0b973de3139b_cppui_modular298, - 0x13557b8d70144c7c1a18ce98b3f9f52fbadbcda323d5cb293304f09f24b8ce2cf00cce7a2e9_cppui_modular298, - 0x2d7487171bea78dfe0826f63b2a47c5513ca7f8322b1ed2211db0807fb66d0cda980acab684_cppui_modular298, - 0x6c98ffc3bc1dfe7ac50d2324ab091f59e12e43cdb0656cfabd126c9b1f53473c9670fb70b2_cppui_modular298, - 0x1a2fe564e8a33991ffa2e6ae2b09192db6f041ebc2019591666e27112edf80a4b1ca21f8721_cppui_modular298, - 0x343e171357ac58c78cd34195fd550e4ab1dd63bffdb843f1bdac2ed1ad5c054172e7bc62736_cppui_modular298, - 0x33d2be79b5b111967f10c7e3873bdf19f47ca81c5eee3601cbe0514fbde6a5f756a0e47b663_cppui_modular298, - 0x70c2a23f094063c8a1f7cad92abfa0e8988973db14a1d71dcd1e2706fdbd57204f00e60df5_cppui_modular298, - 0xc5b94b8804b94b443d9fd27dd32200114bccb9ffa650ad2ef53048c53ad1c8723e31f1ba90_cppui_modular298, - 0x287a003fd725d9e62fc1ac6c94f2b9bcdb5a038feace4f7502e02161bc73c2a0759a47e5d18_cppui_modular298, - 0x21b070439b63f9fe8370da3a4a4227c73d471f530fc7f8a5570efa980a7e8e2cac33382ec66_cppui_modular298}; + 0x1a1f0b89abd62c63c669a0cafeaa872558eeb1dffedc21f8ded61768d6ae02a0b973de3139b_bigui298, + 0x13557b8d70144c7c1a18ce98b3f9f52fbadbcda323d5cb293304f09f24b8ce2cf00cce7a2e9_bigui298, + 0x2d7487171bea78dfe0826f63b2a47c5513ca7f8322b1ed2211db0807fb66d0cda980acab684_bigui298, + 0x6c98ffc3bc1dfe7ac50d2324ab091f59e12e43cdb0656cfabd126c9b1f53473c9670fb70b2_bigui298, + 0x1a2fe564e8a33991ffa2e6ae2b09192db6f041ebc2019591666e27112edf80a4b1ca21f8721_bigui298, + 0x343e171357ac58c78cd34195fd550e4ab1dd63bffdb843f1bdac2ed1ad5c054172e7bc62736_bigui298, + 0x33d2be79b5b111967f10c7e3873bdf19f47ca81c5eee3601cbe0514fbde6a5f756a0e47b663_bigui298, + 0x70c2a23f094063c8a1f7cad92abfa0e8988973db14a1d71dcd1e2706fdbd57204f00e60df5_bigui298, + 0xc5b94b8804b94b443d9fd27dd32200114bccb9ffa650ad2ef53048c53ad1c8723e31f1ba90_bigui298, + 0x287a003fd725d9e62fc1ac6c94f2b9bcdb5a038feace4f7502e02161bc73c2a0759a47e5d18_bigui298, + 0x21b070439b63f9fe8370da3a4a4227c73d471f530fc7f8a5570efa980a7e8e2cac33382ec66_bigui298}; static constexpr const_set_t constants1 = {72022261}; check_field_operations_static(); } @@ -414,48 +414,48 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq2) { static constexpr test_set_t elements1 = { {{ - 0x1151c6efca2088ebb32162cb5d04bd8f95a6c5e45cb9e83551692a0073e7315ee195036fcc9_cppui_modular298, - 0x2e2ba3c821f4d8efe6fc374a478954a2ea9081032d6e63cdc1398d234f189e0c31547552516_cppui_modular298, + 0x1151c6efca2088ebb32162cb5d04bd8f95a6c5e45cb9e83551692a0073e7315ee195036fcc9_bigui298, + 0x2e2ba3c821f4d8efe6fc374a478954a2ea9081032d6e63cdc1398d234f189e0c31547552516_bigui298, }, { - 0x19c25638d56bdfd7ac08d72ec325d17ec5c1fa835f75669818f1012dce65a3e1c09fde080b5_cppui_modular298, - 0x886a482d7d20161b9a9952def31f16025a1e9063d38dab6594e964ec56de38fd93a7b47994_cppui_modular298, + 0x19c25638d56bdfd7ac08d72ec325d17ec5c1fa835f75669818f1012dce65a3e1c09fde080b5_bigui298, + 0x886a482d7d20161b9a9952def31f16025a1e9063d38dab6594e964ec56de38fd93a7b47994_bigui298, }, { - 0x2b141d289f8c68c35f2a39fa202a8f0e5b68c067bc2f4ecd6a5a2b2e424cd540a234e177d7e_cppui_modular298, - 0x36b2484af9c6da51a0a5cc7836bb460310326a096aa73e841a8823721486819c0a8ef099eaa_cppui_modular298, + 0x2b141d289f8c68c35f2a39fa202a8f0e5b68c067bc2f4ecd6a5a2b2e424cd540a234e177d7e_bigui298, + 0x36b2484af9c6da51a0a5cc7836bb460310326a096aa73e841a8823721486819c0a8ef099eaa_bigui298, }, { - 0x335eec843beecf7650f306a1e2cb9afd661a9c940be89c3b6e5d3ad386ae1e4a869c3bc7c15_cppui_modular298, - 0x25a4ff454a22d78e2d52a21c58576342c4ee97fcf035891767eaf6d489aaba7c5819fa0ab82_cppui_modular298, + 0x335eec843beecf7650f306a1e2cb9afd661a9c940be89c3b6e5d3ad386ae1e4a869c3bc7c15_bigui298, + 0x25a4ff454a22d78e2d52a21c58576342c4ee97fcf035891767eaf6d489aaba7c5819fa0ab82_bigui298, }, { - 0x231b2db64e90b460eb4b5eebcc66ac09a7546b0d1fff02b81dc61c82a840d32680117a98e79_cppui_modular298, - 0x21c4451e3efba1d3deee73d089740ff6fc2e4318ab8a5d8cb68ec9235f5262809110ce05bbd_cppui_modular298, + 0x231b2db64e90b460eb4b5eebcc66ac09a7546b0d1fff02b81dc61c82a840d32680117a98e79_bigui298, + 0x21c4451e3efba1d3deee73d089740ff6fc2e4318ab8a5d8cb68ec9235f5262809110ce05bbd_bigui298, }, { - 0x22a38ddf944111d76642c596ba097b1f2b4d8bc8b973d06aa2d25400e7ce62bdc32a06df992_cppui_modular298, - 0x2087cbc2fcaf8b7d841df38f4625fa593eeb30d34c38acfd4c8e0845bd04ab4afd01d444a2b_cppui_modular298, + 0x22a38ddf944111d76642c596ba097b1f2b4d8bc8b973d06aa2d25400e7ce62bdc32a06df992_bigui298, + 0x2087cbc2fcaf8b7d841df38f4625fa593eeb30d34c38acfd4c8e0845bd04ab4afd01d444a2b_bigui298, }, { - 0x33eb8e3c5c5cf4e81905e973afc4b1809df27c74f41cd41228f5b807e25d30948a673525aff_cppui_modular298, - 0x3666450712d00c28ce3b6c17d7be4d41cc15882ff7813140ff4985b80c69eabafdc9e702da2_cppui_modular298, + 0x33eb8e3c5c5cf4e81905e973afc4b1809df27c74f41cd41228f5b807e25d30948a673525aff_bigui298, + 0x3666450712d00c28ce3b6c17d7be4d41cc15882ff7813140ff4985b80c69eabafdc9e702da2_bigui298, }, { - 0x3b00f0f648ec6defbc68d6135d08331e58d16f9928496abfe6933dc4d0bece2ff435b3f1045_cppui_modular298, - 0x1dfb4d888d1b137534826bc566536e54c0c3df69ba26f2173577bad45d7709d18fe89a2b3b5_cppui_modular298, + 0x3b00f0f648ec6defbc68d6135d08331e58d16f9928496abfe6933dc4d0bece2ff435b3f1045_bigui298, + 0x1dfb4d888d1b137534826bc566536e54c0c3df69ba26f2173577bad45d7709d18fe89a2b3b5_bigui298, }, { - 0x31226162b0ed7eb00b3bd868ac9850f8d652056121a55e3f6d639877f5697a940aca9d5634c_cppui_modular298, - 0x26a24e91b8347e0ca08efef5b20a5f1636c1270de7be1c5f378bb2628f17e6ca36ff6f203c2_cppui_modular298, + 0x31226162b0ed7eb00b3bd868ac9850f8d652056121a55e3f6d639877f5697a940aca9d5634c_bigui298, + 0x26a24e91b8347e0ca08efef5b20a5f1636c1270de7be1c5f378bb2628f17e6ca36ff6f203c2_bigui298, }, { - 0x220d259471ce468a9dd1a3d685c6dd6dd073d6afaf2eb4061cf410d312c6eceba5073857f4c_cppui_modular298, - 0x3348d74a6f6825009030e5d759babd8c7093e82cd16b3fe7dc967bb21bbead3d8c6c9b1866d_cppui_modular298, + 0x220d259471ce468a9dd1a3d685c6dd6dd073d6afaf2eb4061cf410d312c6eceba5073857f4c_bigui298, + 0x3348d74a6f6825009030e5d759babd8c7093e82cd16b3fe7dc967bb21bbead3d8c6c9b1866d_bigui298, }, { - 0x2a7db4dd7d199d7696b91839ebe7f15d008f0b4eb1ea3268e47be8006d455f6e841212f0338_cppui_modular298, - 0xda3d80525454d7262de43bb01635a49aba5502fe135b6d074ab84dd9213f2c13452a10daeb_cppui_modular298, + 0x2a7db4dd7d199d7696b91839ebe7f15d008f0b4eb1ea3268e47be8006d455f6e841212f0338_bigui298, + 0xda3d80525454d7262de43bb01635a49aba5502fe135b6d074ab84dd9213f2c13452a10daeb_bigui298, }}}; static constexpr const_set_t constants1 = {11963068}; check_field_operations_static(); @@ -469,94 +469,94 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq4) { constexpr value_type element1( {{ - 0x2ec8702bfdda6a3cf3155e0b0fed1a45bdaeab2a50aeb383af86516091fdffb1dd929f408d4_cppui_modular298, - 0x2db7a9802c314b194556ba1937cdf0e8fc38ecf09133815788dc03758c2a744cc0621330a85_cppui_modular298, + 0x2ec8702bfdda6a3cf3155e0b0fed1a45bdaeab2a50aeb383af86516091fdffb1dd929f408d4_bigui298, + 0x2db7a9802c314b194556ba1937cdf0e8fc38ecf09133815788dc03758c2a744cc0621330a85_bigui298, }}, {{ - 0x110b67194f3169301ef71fce5c6bd9734f5d59c83f311b79d1e90e3554a824092e83ee3d1aa_cppui_modular298, - 0x4d71748423267212fc9b71f2851f906b7caff8a8a371f4948e2f4cea3fbca99854b384f062_cppui_modular298, + 0x110b67194f3169301ef71fce5c6bd9734f5d59c83f311b79d1e90e3554a824092e83ee3d1aa_bigui298, + 0x4d71748423267212fc9b71f2851f906b7caff8a8a371f4948e2f4cea3fbca99854b384f062_bigui298, }}); constexpr value_type element2( {{ - 0x309f7b7995abfbc6b15f27b8e54d5179a473af5a22277fcad58416ff58c91d2ea14c618323a_cppui_modular298, - 0x260b66c38ced3023011d2588d0f6b91bc73ed3df10dbafcaec7b8554e2957183759796ff89d_cppui_modular298, + 0x309f7b7995abfbc6b15f27b8e54d5179a473af5a22277fcad58416ff58c91d2ea14c618323a_bigui298, + 0x260b66c38ced3023011d2588d0f6b91bc73ed3df10dbafcaec7b8554e2957183759796ff89d_bigui298, }}, {{ - 0x277a801ef759c8fad30f16f3bb49ccbd22668b1dd1bc56f48be064b357f5f2248a6d4852d3e_cppui_modular298, - 0x220b88fccb81a6ccaacfe031ad6c5d909e3d6415428afbe548f6111593e3310455b7ef1c6be_cppui_modular298, + 0x277a801ef759c8fad30f16f3bb49ccbd22668b1dd1bc56f48be064b357f5f2248a6d4852d3e_bigui298, + 0x220b88fccb81a6ccaacfe031ad6c5d909e3d6415428afbe548f6111593e3310455b7ef1c6be_bigui298, }}); constexpr value_type element_add( {{ - 0x23986fd84c4c3fa15a9a0abeac4dbcd2cbec8951643218b04f25565f099a8c131937ea63b0d_cppui_modular298, - 0x17f3947671e454d9fc99649cbfd7fb182d41ef9c936b16843f7276c98d935502d05293d0321_cppui_modular298, + 0x23986fd84c4c3fa15a9a0abeac4dbcd2cbec8951643218b04f25565f099a8c131937ea63b0d_bigui298, + 0x17f3947671e454d9fc99649cbfd7fb182d41ef9c936b16843f7276c98d935502d05293d0321_bigui298, }}, {{ - 0x3885e738468b322af20636c217b5a63071c3e4e610ed726e5dc972e8ac9e162db8f1368fee8_cppui_modular298, - 0x26e2a0450db40dedda999750d5be56975608639fccc21b2e91d905e437defb9ddb03276b720_cppui_modular298, + 0x3885e738468b322af20636c217b5a63071c3e4e610ed726e5dc972e8ac9e162db8f1368fee8_bigui298, + 0x26e2a0450db40dedda999750d5be56975608639fccc21b2e91d905e437defb9ddb03276b720_bigui298, }}); constexpr value_type element_sub( {{ - 0x39f8707faf6894d88b90b157738c77b8af70cd033d2b4e570fe74c621a617350a1ed541d69b_cppui_modular298, - 0x7ac42bc9f441af64439949066d737cd34fa19118057d18c9c607e20a99502c94aca7c311e8_cppui_modular298, + 0x39f8707faf6894d88b90b157738c77b8af70cd033d2b4e570fe74c621a617350a1ed541d69b_bigui298, + 0x7ac42bc9f441af64439949066d737cd34fa19118057d18c9c607e20a99502c94aca7c311e8_bigui298, }}, {{ - 0x256062c79f11c69795c283dfea0ebba2c32c9fdd7c18df237bedbb82dddec2b209bdbc4a46d_cppui_modular298, - 0x1e9b0a18bdeae6b6ced451f2c3d24a62afc36ca856503e0235d1f5b9f1452a62953a5f929a5_cppui_modular298, + 0x256062c79f11c69795c283dfea0ebba2c32c9fdd7c18df237bedbb82dddec2b209bdbc4a46d_bigui298, + 0x1e9b0a18bdeae6b6ced451f2c3d24a62afc36ca856503e0235d1f5b9f1452a62953a5f929a5_bigui298, }}); constexpr value_type element_mul( {{ - 0x27adde109a6630689fafb4c98b4acafbbdf160d0149621253a6f216a963151d9d0b52cb9cd2_cppui_modular298, - 0x37b128ce2442b354ea55c96ee99bb1d01eb2e51d999143d26348f5294c1568a824de5201c65_cppui_modular298, + 0x27adde109a6630689fafb4c98b4acafbbdf160d0149621253a6f216a963151d9d0b52cb9cd2_bigui298, + 0x37b128ce2442b354ea55c96ee99bb1d01eb2e51d999143d26348f5294c1568a824de5201c65_bigui298, }}, {{ - 0x2df4acf1f2669edc372a8fe2aa867cb43c6474034226815dcb27208b3795f66be5983574224_cppui_modular298, - 0x2bad83d2b5ea04a48f2378550261b0ff190d4844c01791a81e46cf172891e4fdeebdc9aab90_cppui_modular298, + 0x2df4acf1f2669edc372a8fe2aa867cb43c6474034226815dcb27208b3795f66be5983574224_bigui298, + 0x2bad83d2b5ea04a48f2378550261b0ff190d4844c01791a81e46cf172891e4fdeebdc9aab90_bigui298, }}); constexpr value_type element_dbl( {{ - 0x21c1648ab47aae179c504110d6ed859ee527852192b94c69292790c042cf6e96557e28211a7_cppui_modular298, - 0x1f9fd73311286fd040d2f92d26af32e5623c08ae13c2e810dbd2f4ea372857cc1b1d1001509_cppui_modular298, + 0x21c1648ab47aae179c504110d6ed859ee527852192b94c69292790c042cf6e96557e28211a7_bigui298, + 0x1f9fd73311286fd040d2f92d26af32e5623c08ae13c2e810dbd2f4ea372857cc1b1d1001509_bigui298, }}, {{ - 0x2216ce329e62d2603dee3f9cb8d7b2e69ebab3907e6236f3a3d21c6aa95048125d07dc7a354_cppui_modular298, - 0x9ae2e908464ce425f936e3e50a3f20d6f95ff15146e3e9291c5e99d47f795330a96709e0c4_cppui_modular298, + 0x2216ce329e62d2603dee3f9cb8d7b2e69ebab3907e6236f3a3d21c6aa95048125d07dc7a354_bigui298, + 0x9ae2e908464ce425f936e3e50a3f20d6f95ff15146e3e9291c5e99d47f795330a96709e0c4_bigui298, }}); constexpr value_type element_inv( {{ - 0x275fe52589436c84119e92e612e306bb38a2bc6b0d2285f569de5c172b58ceb759043300dd_cppui_modular298, - 0x9f87ebb8f67b631cbdf45085d4d658b850f08be02e1fcb059cbc390b52fe0b2cdfffc694a1_cppui_modular298, + 0x275fe52589436c84119e92e612e306bb38a2bc6b0d2285f569de5c172b58ceb759043300dd_bigui298, + 0x9f87ebb8f67b631cbdf45085d4d658b850f08be02e1fcb059cbc390b52fe0b2cdfffc694a1_bigui298, }}, {{ - 0x931764a541aedb5a54fd67d1de71b0d5060c4aa4f7616208caa1eca6f5d946556a9986d631_cppui_modular298, - 0x38bf08f1554cbfd41d3973d1c82cc9c4bfada40c384601ab53394165e86b32cebcb8b2c8397_cppui_modular298, + 0x931764a541aedb5a54fd67d1de71b0d5060c4aa4f7616208caa1eca6f5d946556a9986d631_bigui298, + 0x38bf08f1554cbfd41d3973d1c82cc9c4bfada40c384601ab53394165e86b32cebcb8b2c8397_bigui298, }}); constexpr value_type element_pow_C( {{ - 0x1f856985ef90234acadd1a697214747a04c1dd270cdf98ca6a5c11ad800aa1d250b42457e0e_cppui_modular298, - 0x2490e9fb909e98c51289b5effd25cdbdd6a996406ab808dd4d12f76105de85c739bf750909e_cppui_modular298, + 0x1f856985ef90234acadd1a697214747a04c1dd270cdf98ca6a5c11ad800aa1d250b42457e0e_bigui298, + 0x2490e9fb909e98c51289b5effd25cdbdd6a996406ab808dd4d12f76105de85c739bf750909e_bigui298, }}, {{ - 0x243e7c0206aae33c5a4d9354486eeef1a784906a8217630c568edc3e0334ad03e8fb1831bd_cppui_modular298, - 0x92a71ad08691b8a9daeb9be8c7419443a5fe4bf5fb6fb91ce362b376f54aabd065fc0c02e5_cppui_modular298, + 0x243e7c0206aae33c5a4d9354486eeef1a784906a8217630c568edc3e0334ad03e8fb1831bd_bigui298, + 0x92a71ad08691b8a9daeb9be8c7419443a5fe4bf5fb6fb91ce362b376f54aabd065fc0c02e5_bigui298, }}); constexpr int C1 = 702385922; constexpr value_type element_pow_2( {{ - 0x3181739b8b5fcd6cc2bc6512bf1611ccac5b7018a0c63fa9841d6fb052ff6482a8721e4ca5f_cppui_modular298, - 0x25bd4e0f0f15467cee761e28f8f9e2a693a50472d21744e08e254d14f75dff1fe16bacc266d_cppui_modular298, + 0x3181739b8b5fcd6cc2bc6512bf1611ccac5b7018a0c63fa9841d6fb052ff6482a8721e4ca5f_bigui298, + 0x25bd4e0f0f15467cee761e28f8f9e2a693a50472d21744e08e254d14f75dff1fe16bacc266d_bigui298, }}, {{ - 0x1ac6a8f976369568d460f31c1df537a605c50fc6b1de558ff243d66b3d1f1ba4180eb981961_cppui_modular298, - 0x1c017b5dfeadd6387bb4798bf3630eca6dcc3c8a4be79fc9b834c698dc1b7a3bc927eb6ce1_cppui_modular298, + 0x1ac6a8f976369568d460f31c1df537a605c50fc6b1de558ff243d66b3d1f1ba4180eb981961_bigui298, + 0x1c017b5dfeadd6387bb4798bf3630eca6dcc3c8a4be79fc9b834c698dc1b7a3bc927eb6ce1_bigui298, }}); constexpr value_type minus_element( {{ - 0xd070ba1495fbc2556c51cfa38ff94a6d8872608bdf5671a865ec0a04f2e911b8814771f72d_cppui_modular298, - 0xe17d24d1b08db490483c0ec111ebe0399fce4427d709946ad090e8b55021c80a545032f57c_cppui_modular298, + 0xd070ba1495fbc2556c51cfa38ff94a6d8872608bdf5671a865ec0a04f2e911b8814771f72d_bigui298, + 0xe17d24d1b08db490483c0ec111ebe0399fce4427d709946ad090e8b55021c80a545032f57c_bigui298, }}, {{ - 0x2ac414b3f808bd322ae35b36ec80d57946d8776acf72ff2463fc03cb8c846cc437232822e57_cppui_modular298, - 0x36f864850507bf411a10c3e6209ab5e5de6ad1a8846cfb54ed021d323d30c633e05bde10f9f_cppui_modular298, + 0x2ac414b3f808bd322ae35b36ec80d57946d8776acf72ff2463fc03cb8c846cc437232822e57_bigui298, + 0x36f864850507bf411a10c3e6209ab5e5de6ad1a8846cfb54ed021d323d30c633e05bde10f9f_bigui298, }}); static constexpr test_set_t elements1 = { @@ -583,17 +583,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x13e0a5422b598aaf0c031434995b02459b127b91c1d19c61a0b7e6305b367e9d6c4ecef24ca_cppui_modular298, - 0x3a2ee65237145a6fec8c095b3acfa5e6e969214f2b1dfb4f47fd258dd1eeadf4a606892870e_cppui_modular298, - 0x12400fc71b33bebcaeb4a28a8b3df93fee45cd9cd39fe31c283be5e77fe9785ec815581abd7_cppui_modular298, - 0x15813abd3b7f56a1695185dea7780b4b47df2986b00355a71933e679368384dc108845c9dbd_cppui_modular298, - 0xdfd40332fa67aaf44e1616dbed9461cc900b87a694ef5531100271a1a620c361c6b0944a2e_cppui_modular298, - 0x27c14a8456b3155e1806286932b6048b3624f72383a338c3416fcc60b66cfd3ad89d9de4994_cppui_modular298, - 0x27f311284963f256e9c61f2f413960b1baebdfe7052158a992b9239586173c5ef5d48021c0b_cppui_modular298, - 0x3191fd7720fb4dbf2833ec75eeda111fa486fa664a30355b5328ade83a1901b876542cd1c4c_cppui_modular298, - 0x2a5232860338c9a2e55e313e9ccd6f738b5e09d156f002f151295a73f188f688a5228623423_cppui_modular298, - 0x1a0957b1025cbf25d4e71aa0e1d0905acccadf4ee31b945787c0048db4d063ea43976d78f3_cppui_modular298, - 0x27eed68b1be09bb33dd766d0af91aca6fb2353b2577e18331fc13fa652053595ddf1310db37_cppui_modular298}; + 0x13e0a5422b598aaf0c031434995b02459b127b91c1d19c61a0b7e6305b367e9d6c4ecef24ca_bigui298, + 0x3a2ee65237145a6fec8c095b3acfa5e6e969214f2b1dfb4f47fd258dd1eeadf4a606892870e_bigui298, + 0x12400fc71b33bebcaeb4a28a8b3df93fee45cd9cd39fe31c283be5e77fe9785ec815581abd7_bigui298, + 0x15813abd3b7f56a1695185dea7780b4b47df2986b00355a71933e679368384dc108845c9dbd_bigui298, + 0xdfd40332fa67aaf44e1616dbed9461cc900b87a694ef5531100271a1a620c361c6b0944a2e_bigui298, + 0x27c14a8456b3155e1806286932b6048b3624f72383a338c3416fcc60b66cfd3ad89d9de4994_bigui298, + 0x27f311284963f256e9c61f2f413960b1baebdfe7052158a992b9239586173c5ef5d48021c0b_bigui298, + 0x3191fd7720fb4dbf2833ec75eeda111fa486fa664a30355b5328ade83a1901b876542cd1c4c_bigui298, + 0x2a5232860338c9a2e55e313e9ccd6f738b5e09d156f002f151295a73f188f688a5228623423_bigui298, + 0x1a0957b1025cbf25d4e71aa0e1d0905acccadf4ee31b945787c0048db4d063ea43976d78f3_bigui298, + 0x27eed68b1be09bb33dd766d0af91aca6fb2353b2577e18331fc13fa652053595ddf1310db37_bigui298}; static constexpr const_set_t constants1 = {332771434}; check_field_operations_static(); } @@ -606,59 +606,59 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq3) { static constexpr test_set_t elements1 = { {{ - 0x2ca04ab44858078455357ce7027f603b2e60169f6e2728089c31d43de94857de0f8cf4fecff_cppui_modular298, - 0x17fe793178a3dc42295619e37d3c39c9ae5dc0a738d046d9744e9bdf8058661f0c3c82295af_cppui_modular298, - 0x1806278fd83496047a6ff4572fe4dabe56820a6b4d73c0b06771d763a8f37d1f4c1745525be_cppui_modular298, + 0x2ca04ab44858078455357ce7027f603b2e60169f6e2728089c31d43de94857de0f8cf4fecff_bigui298, + 0x17fe793178a3dc42295619e37d3c39c9ae5dc0a738d046d9744e9bdf8058661f0c3c82295af_bigui298, + 0x1806278fd83496047a6ff4572fe4dabe56820a6b4d73c0b06771d763a8f37d1f4c1745525be_bigui298, }, { - 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_cppui_modular298, - 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_cppui_modular298, - 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_cppui_modular298, + 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_bigui298, + 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_bigui298, + 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_bigui298, }, { - 0x2a7c8a1ffe7bb9ad23d8cb33b017e75f5be62193e017b4297b3dcfd7afd66b98eb86c2ef3d3_cppui_modular298, - 0x1169b081a6a026f87f4f3ebd8cecec1423941e36c5d3036f1a5cf84509793756315332b800_cppui_modular298, - 0xf020ae6c0f21689b073d73d09502503d863a64b7379cd130bb6659bc4e967d1c15bd68a974_cppui_modular298, + 0x2a7c8a1ffe7bb9ad23d8cb33b017e75f5be62193e017b4297b3dcfd7afd66b98eb86c2ef3d3_bigui298, + 0x1169b081a6a026f87f4f3ebd8cecec1423941e36c5d3036f1a5cf84509793756315332b800_bigui298, + 0xf020ae6c0f21689b073d73d09502503d863a64b7379cd130bb6659bc4e967d1c15bd68a974_bigui298, }, { - 0x2ec40b489234555b86922e9a54e6d91700da0baafc369be7bd25d8a422ba44233393270e62b_cppui_modular298, - 0x2ee6575ad6ddb614cab73fdb21a9a4d21a823f6b05435d7bf6f7683ab01938c8b563d12735e_cppui_modular298, - 0x210a4438ef77157f446c117156799078d4a06e8b276db44dc32d492b8cfd926cd6d2b41a208_cppui_modular298, + 0x2ec40b489234555b86922e9a54e6d91700da0baafc369be7bd25d8a422ba44233393270e62b_bigui298, + 0x2ee6575ad6ddb614cab73fdb21a9a4d21a823f6b05435d7bf6f7683ab01938c8b563d12735e_bigui298, + 0x210a4438ef77157f446c117156799078d4a06e8b276db44dc32d492b8cfd926cd6d2b41a208_bigui298, }, { - 0x7e14908ff393a62f5c6e25db37271be6f44b06b1dfef0a4d359c6e98d2ad9eca128616b7ce_cppui_modular298, - 0x307fb33edfa7981503d8f8236f9139d1e850e720d0c2a3ac956fc1882504ba72d3cf8056c88_cppui_modular298, - 0x2c214a535d65c86b01d87d7a1609595037ccc97565bb242a93ff057a679728315267d4d3035_cppui_modular298, + 0x7e14908ff393a62f5c6e25db37271be6f44b06b1dfef0a4d359c6e98d2ad9eca128616b7ce_bigui298, + 0x307fb33edfa7981503d8f8236f9139d1e850e720d0c2a3ac956fc1882504ba72d3cf8056c88_bigui298, + 0x2c214a535d65c86b01d87d7a1609595037ccc97565bb242a93ff057a679728315267d4d3035_bigui298, }, { - 0x1d71199b4975e8a660907ec8bc121189c68a5dfac2fe9b7c77ea82a52554fb88d4d9e9fd9fd_cppui_modular298, - 0x2ffcf262f147b88452ac33c6fa7873935cbb814e71a08db2e89d37bf00b0cc3e18790452b5e_cppui_modular298, - 0x300c4f1fb0692c08f4dfe8ae5fc9b57cad0414d69ae78160cee3aec751e6fa3e982e8aa4b7c_cppui_modular298, + 0x1d71199b4975e8a660907ec8bc121189c68a5dfac2fe9b7c77ea82a52554fb88d4d9e9fd9fd_bigui298, + 0x2ffcf262f147b88452ac33c6fa7873935cbb814e71a08db2e89d37bf00b0cc3e18790452b5e_bigui298, + 0x300c4f1fb0692c08f4dfe8ae5fc9b57cad0414d69ae78160cee3aec751e6fa3e982e8aa4b7c_bigui298, }, { - 0x24daec3d446e4157ea7d86931c7cab59005910419fa7bcca958bdef9bb0484751421c7be9a7_cppui_modular298, - 0x1fc4de5a19d41e618210e55a07a542061d6a32b4617b18cd144f71d805f68911378d08697a_cppui_modular298, - 0x2064daaf7ff56ed4460a7689139a2313270bdb5f204a03ad6d2f7aff766941f06e27e9a119e_cppui_modular298, + 0x24daec3d446e4157ea7d86931c7cab59005910419fa7bcca958bdef9bb0484751421c7be9a7_bigui298, + 0x1fc4de5a19d41e618210e55a07a542061d6a32b4617b18cd144f71d805f68911378d08697a_bigui298, + 0x2064daaf7ff56ed4460a7689139a2313270bdb5f204a03ad6d2f7aff766941f06e27e9a119e_bigui298, }, { - 0x296448823914574c22b9cd9ccdc259206663d2d968fa3a4a017656de00a9da52417bf8c2b52_cppui_modular298, - 0x3b3681274845f285af891a0d1d1ff27fcb167d902cb65b3a9bdccfab33b150d02eb20282f1b_cppui_modular298, - 0x29a3f16f714a6894390659a393bef1c31bf8cad70868ef2e5cb7b2383159f6de9c938ae7d82_cppui_modular298, + 0x296448823914574c22b9cd9ccdc259206663d2d968fa3a4a017656de00a9da52417bf8c2b52_bigui298, + 0x3b3681274845f285af891a0d1d1ff27fcb167d902cb65b3a9bdccfab33b150d02eb20282f1b_bigui298, + 0x29a3f16f714a6894390659a393bef1c31bf8cad70868ef2e5cb7b2383159f6de9c938ae7d82_bigui298, }, { - 0x1177e716e67def7292e404a289d4d931d353ca156b80072db8dbd2dbad9cf7b6259d8e5cf5_cppui_modular298, - 0x2f7454d98c65041a40025a34485c4878a29e8c0065a72eefb9b5919d23906ef61261c14cb8_cppui_modular298, - 0x1a53d2ba023b90bbaf5941b79dcd7d131bc9eba69c5cc78f00a0deedd904745cc00d2ff6bef_cppui_modular298, + 0x1177e716e67def7292e404a289d4d931d353ca156b80072db8dbd2dbad9cf7b6259d8e5cf5_bigui298, + 0x2f7454d98c65041a40025a34485c4878a29e8c0065a72eefb9b5919d23906ef61261c14cb8_bigui298, + 0x1a53d2ba023b90bbaf5941b79dcd7d131bc9eba69c5cc78f00a0deedd904745cc00d2ff6bef_bigui298, }, { - 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_cppui_modular298, - 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_cppui_modular298, - 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_cppui_modular298, + 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_bigui298, + 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_bigui298, + 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_bigui298, }, { - 0xf2f3118fee21eddf4a4fe1e466d4eb167d5b8a4ab288c8c24475198c3f35c553ab30b01302_cppui_modular298, - 0x23d1029bce964a2020846121cbb07522e7d80e9ce07f6dbb4c2a89f72ce34e143e037dd6a52_cppui_modular298, - 0x23c9543d6f05905dcf6a86ae1907d42e3fb3c4d8cbdbf3e459074e7304483713fe28baada43_cppui_modular298, + 0xf2f3118fee21eddf4a4fe1e466d4eb167d5b8a4ab288c8c24475198c3f35c553ab30b01302_bigui298, + 0x23d1029bce964a2020846121cbb07522e7d80e9ce07f6dbb4c2a89f72ce34e143e037dd6a52_bigui298, + 0x23c9543d6f05905dcf6a86ae1907d42e3fb3c4d8cbdbf3e459074e7304483713fe28baada43_bigui298, }}}; static constexpr const_set_t constants1 = {1042617086}; @@ -673,114 +673,114 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq6) { constexpr value_type element1( {{ - 0x2b254b9c632ab1cb93e575c1b0c5d890eb0a7ee656612c7c37d1c5f03fd346cbd4f9ceae2e1_cppui_modular298, - 0x7370368322d2e40fa97c49d1b9cdc00cc6005a779b8e377dff6108bc7416b71c8f0bfa9938_cppui_modular298, - 0x25b755a137f30bc5da6b21b28357a20669667eb5f6cbb6b821d8939d1370a2886334e7f90b7_cppui_modular298, + 0x2b254b9c632ab1cb93e575c1b0c5d890eb0a7ee656612c7c37d1c5f03fd346cbd4f9ceae2e1_bigui298, + 0x7370368322d2e40fa97c49d1b9cdc00cc6005a779b8e377dff6108bc7416b71c8f0bfa9938_bigui298, + 0x25b755a137f30bc5da6b21b28357a20669667eb5f6cbb6b821d8939d1370a2886334e7f90b7_bigui298, }}, {{ - 0x37020ec205dfd50d6629d194bb28e0231094f047902048bed7db660cadd135b05cc5b187c39_cppui_modular298, - 0x30dfac7da797127d24d3bd5b66895c5139146b253e894bcc68a9a9229849079d46ab1821c95_cppui_modular298, - 0xc5e81aaf1ed4f51ffad6ff70fa2c46d9eda55721079f37f4a9899c394719d0280aabfbf094_cppui_modular298, + 0x37020ec205dfd50d6629d194bb28e0231094f047902048bed7db660cadd135b05cc5b187c39_bigui298, + 0x30dfac7da797127d24d3bd5b66895c5139146b253e894bcc68a9a9229849079d46ab1821c95_bigui298, + 0xc5e81aaf1ed4f51ffad6ff70fa2c46d9eda55721079f37f4a9899c394719d0280aabfbf094_bigui298, }}); constexpr value_type element2( {{ - 0x938d85408f45627918f1ccebb48acf97d3fad71ebbcb368dcbb1fa32d17a05bd452164ab02_cppui_modular298, - 0x2c475110a74073f1b9e81bb00fd5eb59e4c7fbcdb4fe4c9eeaa820074d058fd59d61376e916_cppui_modular298, - 0x195d2d3dabdbbbdcfaceba4f7aba9aa58b45a3f06df7344cff6afe5df3a4806deaee9b50a6_cppui_modular298, + 0x938d85408f45627918f1ccebb48acf97d3fad71ebbcb368dcbb1fa32d17a05bd452164ab02_bigui298, + 0x2c475110a74073f1b9e81bb00fd5eb59e4c7fbcdb4fe4c9eeaa820074d058fd59d61376e916_bigui298, + 0x195d2d3dabdbbbdcfaceba4f7aba9aa58b45a3f06df7344cff6afe5df3a4806deaee9b50a6_bigui298, }}, {{ - 0x2a7aec578f966ff93df221571efd5cb4f8a6d250f90a68f0f74b0ee56321df789c4611cfa1f_cppui_modular298, - 0x21464c1876b0a316b6b927c9aa93cff327a0e4ea1e24cbce279ccbdd62eaa00d723ebe70606_cppui_modular298, - 0xea64135530377ac3298f41053bab4e9de742ae37453aed2f1bbfedbed5f970d529f08c6a42_cppui_modular298, + 0x2a7aec578f966ff93df221571efd5cb4f8a6d250f90a68f0f74b0ee56321df789c4611cfa1f_bigui298, + 0x21464c1876b0a316b6b927c9aa93cff327a0e4ea1e24cbce279ccbdd62eaa00d723ebe70606_bigui298, + 0xea64135530377ac3298f41053bab4e9de742ae37453aed2f1bbfedbed5f970d529f08c6a42_bigui298, }}); constexpr value_type element_add( {{ - 0x345e23f06c1f07f3257492906c0e858a684a2c58421ddfe5148ce5936ceae727a94be4f8de3_cppui_modular298, - 0x337e5478d96da232b47fe04d2b72c75ab12801752eb73016ca9e30931446fb476651f71824e_cppui_modular298, - 0x274d287512b0c783aa180d577b034bb0c21ad8f4fdab29fcf1cf4382f2aaea8f41e3d1ae15d_cppui_modular298, + 0x345e23f06c1f07f3257492906c0e858a684a2c58421ddfe5148ce5936ceae727a94be4f8de3_bigui298, + 0x337e5478d96da232b47fe04d2b72c75ab12801752eb73016ca9e30931446fb476651f71824e_bigui298, + 0x274d287512b0c783aa180d577b034bb0c21ad8f4fdab29fcf1cf4382f2aaea8f41e3d1ae15d_bigui298, }}, {{ - 0x25ad7f4c4e3c1ea45a4177e691398deb7305f3546fdafd1b0ead4f1b63b760f5aecbc357657_cppui_modular298, - 0x16567cc8d70d8f3191b26a1fc8307d57ca7f80cb435e6305cfcd4f294df7f3776ea9d69229a_cppui_modular298, - 0x1b04c2e044f0c6fe32466407635d79577d4e805584cda2523c54989f81d1340fd349c885ad6_cppui_modular298, + 0x25ad7f4c4e3c1ea45a4177e691398deb7305f3546fdafd1b0ead4f1b63b760f5aecbc357657_bigui298, + 0x16567cc8d70d8f3191b26a1fc8307d57ca7f80cb435e6305cfcd4f294df7f3776ea9d69229a_bigui298, + 0x1b04c2e044f0c6fe32466407635d79577d4e805584cda2523c54989f81d1340fd349c885ad6_bigui298, }}); constexpr value_type element_sub( {{ - 0x21ec73485a365ba4025658f2f57d2b976dcad1746aa479135b16a64d12bba67000a7b8637df_cppui_modular298, - 0x16bf2e24d226e0b18a8a23f254b39f937dcdd91dde0a4b6db5c7165b27778fcf75cf883b023_cppui_modular298, - 0x242182cd5d3550080abe360d8babf85c10b22476efec437351e1e3b734365a818485fe44011_cppui_modular298, + 0x21ec73485a365ba4025658f2f57d2b976dcad1746aa479135b16a64d12bba67000a7b8637df_bigui298, + 0x16bf2e24d226e0b18a8a23f254b39f937dcdd91dde0a4b6db5c7165b27778fcf75cf883b023_bigui298, + 0x242182cd5d3550080abe360d8babf85c10b22476efec437351e1e3b734365a818485fe44011_bigui298, }}, {{ - 0xc87226a764965142837b03d9c2b836e17ee1df69715dfcde09057274aaf5637c07f9fb821a_cppui_modular298, - 0xf99606530e66f666e1a9591bbf58c5e1173863b20647ffe410cdd45355e678fd46c59b168f_cppui_modular298, - 0x3987bc42e623fe0816eef6ec04d4be70569bf9d2b575f9411955c0be544dba28784bb6f8653_cppui_modular298, + 0xc87226a764965142837b03d9c2b836e17ee1df69715dfcde09057274aaf5637c07f9fb821a_bigui298, + 0xf99606530e66f666e1a9591bbf58c5e1173863b20647ffe410cdd45355e678fd46c59b168f_bigui298, + 0x3987bc42e623fe0816eef6ec04d4be70569bf9d2b575f9411955c0be544dba28784bb6f8653_bigui298, }}); constexpr value_type element_mul( {{ - 0x8d3a722d66e3deb9e3e23a817a672e4a7777b7227633de0cdbe83f3de0db084860ed6e05f5_cppui_modular298, - 0x1d9da0ee2873cbddc6cbea8bd130b642a58252233a9517d821b23105867d1cc8f8e3762096c_cppui_modular298, - 0x1ca200fb84e152e8e4cece1be0dc2c892996064d5127bea290c50cb5538c2d9a4d93a8e545e_cppui_modular298, + 0x8d3a722d66e3deb9e3e23a817a672e4a7777b7227633de0cdbe83f3de0db084860ed6e05f5_bigui298, + 0x1d9da0ee2873cbddc6cbea8bd130b642a58252233a9517d821b23105867d1cc8f8e3762096c_bigui298, + 0x1ca200fb84e152e8e4cece1be0dc2c892996064d5127bea290c50cb5538c2d9a4d93a8e545e_bigui298, }}, {{ - 0x32d226e51e190838ce9857905d0baf2fe1893f23139523b467ac924adec99c81b0337d98e08_cppui_modular298, - 0x279a3e076479ed256f9165dcff1c51903cd36e7d043177fa8eac4015d4b16dfcefe18db1392_cppui_modular298, - 0x37b12fff7cb9a2602ab0a1e6ad39cbf4e2e16ae51507528e836e837fda74e19d3964c6518d0_cppui_modular298, + 0x32d226e51e190838ce9857905d0baf2fe1893f23139523b467ac924adec99c81b0337d98e08_bigui298, + 0x279a3e076479ed256f9165dcff1c51903cd36e7d043177fa8eac4015d4b16dfcefe18db1392_bigui298, + 0x37b12fff7cb9a2602ab0a1e6ad39cbf4e2e16ae51507528e836e837fda74e19d3964c6518d0_bigui298, }}); constexpr value_type element_dbl( {{ - 0x1a7b1b6b7f1b3d34ddf0707e189f02353fdf2e889372a463af2a6609d26ad9645fb39d5c5c1_cppui_modular298, - 0xe6e06d0645a5c81f52f893a3739b80198c00b4ef371c6efbfec21178e82d6e391e17f53270_cppui_modular298, - 0xf9f2f7528abf1296afbc85fbdc295203c972e27d447b8db8338016379a590dd7c29cff216d_cppui_modular298, + 0x1a7b1b6b7f1b3d34ddf0707e189f02353fdf2e889372a463af2a6609d26ad9645fb39d5c5c1_bigui298, + 0xe6e06d0645a5c81f52f893a3739b80198c00b4ef371c6efbfec21178e82d6e391e17f53270_bigui298, + 0xf9f2f7528abf1296afbc85fbdc295203c972e27d447b8db8338016379a590dd7c29cff216d_bigui298, }}, {{ - 0x3234a1b6c48583b8827928242d6511598af4114b06f0dce8ef3da642ae66b72d6f4b630f871_cppui_modular298, - 0x25efdd2e07f3fe97ffccffb1842609b5dbf3070663c2e30410da2c6e83565b0743163043929_cppui_modular298, - 0x18bd0355e3da9ea3ff5adfee1f4588db3db4aae420f3e6fe9531338728e33a0501557f7e128_cppui_modular298, + 0x3234a1b6c48583b8827928242d6511598af4114b06f0dce8ef3da642ae66b72d6f4b630f871_bigui298, + 0x25efdd2e07f3fe97ffccffb1842609b5dbf3070663c2e30410da2c6e83565b0743163043929_bigui298, + 0x18bd0355e3da9ea3ff5adfee1f4588db3db4aae420f3e6fe9531338728e33a0501557f7e128_bigui298, }}); constexpr value_type element_inv( {{ - 0x2229740213208804b7a307caecd43fae547ce1d4a393980be860a3ca420037a6fb3fedecdc8_cppui_modular298, - 0x2c21a740569cfb57d5c15e6743b60af44fccd06ed1088ee0b126af8e26ef78d1513759ce38e_cppui_modular298, - 0x2f372d4fb01505ba001564145f042ce04d94cc88f008922a6cd8ed6d8357afa68e18b0da09a_cppui_modular298, + 0x2229740213208804b7a307caecd43fae547ce1d4a393980be860a3ca420037a6fb3fedecdc8_bigui298, + 0x2c21a740569cfb57d5c15e6743b60af44fccd06ed1088ee0b126af8e26ef78d1513759ce38e_bigui298, + 0x2f372d4fb01505ba001564145f042ce04d94cc88f008922a6cd8ed6d8357afa68e18b0da09a_bigui298, }}, {{ - 0xbe1724a204fce65a1de9f1f6f5145dc012216eb836a0026d202fa913aee26166c271bb609_cppui_modular298, - 0x22b82b44d7d1b00961e24fd93e35729ef571a5bbfcd087f8b8cbf8898719d9ebc972555655e_cppui_modular298, - 0x1cd0fd8863f24b2bce803c67a11f46a07c5d9458d5377def93cd8eda67a76280f9135e447d4_cppui_modular298, + 0xbe1724a204fce65a1de9f1f6f5145dc012216eb836a0026d202fa913aee26166c271bb609_bigui298, + 0x22b82b44d7d1b00961e24fd93e35729ef571a5bbfcd087f8b8cbf8898719d9ebc972555655e_bigui298, + 0x1cd0fd8863f24b2bce803c67a11f46a07c5d9458d5377def93cd8eda67a76280f9135e447d4_bigui298, }}); constexpr value_type element_pow_C( {{ - 0x13f6912825e1f33c39c955863e222227e40b01a5d609dbf9823754cc371fb75459ba0e4832e_cppui_modular298, - 0x27bcef7ccb3cedd9fc14b02f2e5f72f9df9375c9ce236eea4a4938f2559ea68dd6745dd114a_cppui_modular298, - 0x26b25efbe6119e9ffe0ef0930f9f6e676c9d2a0363cd26e428ced3a5c6b5e45f9171c4ed025_cppui_modular298, + 0x13f6912825e1f33c39c955863e222227e40b01a5d609dbf9823754cc371fb75459ba0e4832e_bigui298, + 0x27bcef7ccb3cedd9fc14b02f2e5f72f9df9375c9ce236eea4a4938f2559ea68dd6745dd114a_bigui298, + 0x26b25efbe6119e9ffe0ef0930f9f6e676c9d2a0363cd26e428ced3a5c6b5e45f9171c4ed025_bigui298, }}, {{ - 0x3a216edce558c508d70fa737a2165214e1040f52bdcb7bd982fb2ed3473b81ca0ab3d6224f8_cppui_modular298, - 0x11fb3ef9eb611f7b499ab1a4966b50aee43d130ef1bd2dab0dd4d157e09c4f3522d32327bc_cppui_modular298, - 0x2cb3c29d951cdc7e154524cb358680f48cfe823a4fa4bba794003b2682fb49efe7d7e13ce69_cppui_modular298, + 0x3a216edce558c508d70fa737a2165214e1040f52bdcb7bd982fb2ed3473b81ca0ab3d6224f8_bigui298, + 0x11fb3ef9eb611f7b499ab1a4966b50aee43d130ef1bd2dab0dd4d157e09c4f3522d32327bc_bigui298, + 0x2cb3c29d951cdc7e154524cb358680f48cfe823a4fa4bba794003b2682fb49efe7d7e13ce69_bigui298, }}); constexpr int C1 = 671190979; constexpr value_type element_pow_2( {{ - 0x39a90e53a451db4bd16cd928809d27b64dd89e69bf8d7550aaaf5ecb166527806f909b06272_cppui_modular298, - 0x1f854c19c9a4e19b7fa4c05f119f0b01a8678c0b8f94244d07e56872f27569bde500d542cff_cppui_modular298, - 0x369cd4cb21ddf49cbd57a11f7d59331dc46c98bd6e35eda00ce9d3a31501e5b72d3614f74a0_cppui_modular298, + 0x39a90e53a451db4bd16cd928809d27b64dd89e69bf8d7550aaaf5ecb166527806f909b06272_bigui298, + 0x1f854c19c9a4e19b7fa4c05f119f0b01a8678c0b8f94244d07e56872f27569bde500d542cff_bigui298, + 0x369cd4cb21ddf49cbd57a11f7d59331dc46c98bd6e35eda00ce9d3a31501e5b72d3614f74a0_bigui298, }}, {{ - 0x373b855899523e4c57836379670894e20c69c49864dec3a935b3953332f9909e021755b5b37_cppui_modular298, - 0x1f7ba018368f998f5361fc232c07fac7a3a34d90b53492ab9f7d0c1f34b4935b17bc242fda0_cppui_modular298, - 0x1cbab6642ca9a2c1111552f87aeb3d87dfc6fd9a89e77add4a829d3321af7916982bd42cde6_cppui_modular298, + 0x373b855899523e4c57836379670894e20c69c49864dec3a935b3953332f9909e021755b5b37_bigui298, + 0x1f7ba018368f998f5361fc232c07fac7a3a34d90b53492ab9f7d0c1f34b4935b17bc242fda0_bigui298, + 0x1cbab6642ca9a2c1111552f87aeb3d87dfc6fd9a89e77add4a829d3321af7916982bd42cde6_bigui298, }}); constexpr value_type minus_element( {{ - 0x10aa3030e40f7496b5f505439826d65bab2b505dc2ee881888a75fe66d686d6775463151d20_cppui_modular298, - 0x34987865150cf8214f42b6682d4fd2ebc9d5c99c9f96d11ce083154ae5fa48c1814f40566c9_cppui_modular298, - 0x1618262c0f471a9c6f6f5952c5950ce62ccf508e2283fddc9ea0923999cb11aae70b1806f4a_cppui_modular298, + 0x10aa3030e40f7496b5f505439826d65bab2b505dc2ee881888a75fe66d686d6775463151d20_bigui298, + 0x34987865150cf8214f42b6682d4fd2ebc9d5c99c9f96d11ce083154ae5fa48c1814f40566c9_bigui298, + 0x1618262c0f471a9c6f6f5952c5950ce62ccf508e2283fddc9ea0923999cb11aae70b1806f4a_bigui298, }}, {{ - 0x4cd6d0b415a5154e3b0a9708dc3cec985a0defc892f6bd5e89dbfc9ff6a7e82ed7a4e783c8_cppui_modular298, - 0xaefcf4f9fa313e52506bda9e263529b5d21641edac668c857cf7cb414f2ac960394e7de36c_cppui_modular298, - 0x2f70fa22554cd7104a2d0b0e3949ea7ef75b79d208d5c11575e08c1318ca1730c9954040f6d_cppui_modular298, + 0x4cd6d0b415a5154e3b0a9708dc3cec985a0defc892f6bd5e89dbfc9ff6a7e82ed7a4e783c8_bigui298, + 0xaefcf4f9fa313e52506bda9e263529b5d21641edac668c857cf7cb414f2ac960394e7de36c_bigui298, + 0x2f70fa22554cd7104a2d0b0e3949ea7ef75b79d208d5c11575e08c1318ca1730c9954040f6d_bigui298, }}); static constexpr test_set_t elements1 = { @@ -803,7 +803,7 @@ BOOST_AUTO_TEST_CASE(test_goldilocks) { using field_type = nil::crypto3::algebra::fields::goldilocks64; using value_type = field_type::value_type; constexpr value_type val = 0xdef0; - static_assert(val.data == 0xdef0u, "goldilocks initialization error"); + static_assert(val.data.base() == 0xdef0u, "goldilocks initialization error"); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/algebra/test/pairing.cpp b/crypto3/libs/algebra/test/pairing.cpp index 622e2b08c0..07eb3d1af1 100644 --- a/crypto3/libs/algebra/test/pairing.cpp +++ b/crypto3/libs/algebra/test/pairing.cpp @@ -38,8 +38,6 @@ #include #include -#include - #include #include #include @@ -59,7 +57,6 @@ using namespace nil::crypto3::algebra::pairing; using namespace nil::crypto3::algebra; -using namespace boost::multiprecision; namespace boost { namespace test_tools { @@ -174,7 +171,7 @@ void check_pairing_operations(std::vector const& Fr_elements, std::cout << " * Reduced pairing tests with pow started..." << std::endl; BOOST_CHECK_EQUAL( *pair_reduced(Fr_elements[VKx_poly] * G1_elements[A1], G2_elements[B1]), - pair_reduced(G1_elements[A1], G2_elements[B1])->pow(Fr_elements[VKx_poly].data)); + pair_reduced(G1_elements[A1], G2_elements[B1])->pow(Fr_elements[VKx_poly].data.base())); std::cout << " * Reduced pairing tests with pow finished." << std::endl << std::endl; std::cout << " * Miller loop tests started..." << std::endl; @@ -201,7 +198,7 @@ struct field_element_init> { template static inline element_type process(const ElementData &element_data) { - return element_type(typename element_type::integral_type(element_data.second.data())); + return element_type(typename element_type::integral_type(element_data.second.data().c_str())); } }; diff --git a/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp b/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp index 6792e95fc0..f898c463e1 100644 --- a/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp +++ b/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp @@ -41,8 +41,6 @@ #include -#include - using namespace nil::crypto3::algebra; @@ -107,13 +105,13 @@ void fp_curve_test_init(std::vector &points, for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); } points.emplace_back(typename FpCurveGroup::value_type(coordinates[0], coordinates[1], coordinates[2])); } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoul(constant.second.data())); + constants.emplace_back(std::stoul(constant.second.data().c_str())); } } diff --git a/crypto3/libs/algebra/test/type_traits.cpp b/crypto3/libs/algebra/test/type_traits.cpp index 0dff7d8553..6df54b7f8b 100644 --- a/crypto3/libs/algebra/test/type_traits.cpp +++ b/crypto3/libs/algebra/test/type_traits.cpp @@ -51,8 +51,6 @@ #include -#include - #include using namespace nil::crypto3::algebra; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp b/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp index bff1d15277..2fafebe937 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp @@ -32,7 +32,6 @@ #include #include -#include #include namespace nil { @@ -51,8 +50,7 @@ namespace nil { constexpr static const std::uint32_t ratio = 4; // 66,66,66,66 bits using non_native_field_type = typename crypto3::algebra::curves::ed25519::base_field_type; using native_field_type = typename crypto3::algebra::curves::pallas::base_field_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * native_field_type::policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * native_field_type::policy_type::modulus_bits>; using var = crypto3::zk::snark::plonk_variable; @@ -124,8 +122,7 @@ namespace nil { constexpr static const std::uint32_t ratio = 2; // 254, 1 bits using non_native_field_type = typename crypto3::algebra::curves::pallas::scalar_field_type; using native_field_type = typename crypto3::algebra::curves::pallas::base_field_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * native_field_type::policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * native_field_type::policy_type::modulus_bits>; using var = crypto3::zk::snark::plonk_variable; typedef std::array non_native_var_type; @@ -137,8 +134,8 @@ namespace nil { static native_field_type::value_type get_i_th_chunk(non_native_field_type::value_type input, std::size_t i_th) { assert(i_th < ratio && "non-native type does not have that much chunks!"); - extended_integral_type result = extended_integral_type::backend_type( - input.data.backend().base_data()); + extended_integral_type result = extended_integral_type( + input.data); native_field_type::integral_type base = 1; native_field_type::integral_type mask = (base << chunk_sizes[i_th]) - 1; std::size_t shift = 0; @@ -274,16 +271,13 @@ namespace nil { */ template struct basic_non_native_policy_field_type>> { + nil::crypto3::multiprecision::big_uint<256>> { constexpr static const std::uint32_t ratio = 2; // 128, 128 bits // not actually a field, but we preserve the interface - using non_native_field_type = typename boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<256>>; + using non_native_field_type = typename nil::crypto3::multiprecision::big_uint<256>; using native_field_type = typename crypto3::algebra::curves::pallas::base_field_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * native_field_type::policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * native_field_type::policy_type::modulus_bits>; using var = crypto3::zk::snark::plonk_variable; typedef std::array non_native_var_type; @@ -292,11 +286,11 @@ namespace nil { constexpr static const std::array chunk_sizes = {128, 128}; - static native_field_type::value_type get_i_th_chunk(non_native_field_type::value_type input, + static native_field_type::value_type get_i_th_chunk(non_native_field_type input, std::size_t i_th) { assert(i_th < ratio && "non-native type does not have that much chunks!"); - extended_integral_type result = extended_integral_type::backend_type( - input.backend()); + extended_integral_type result = extended_integral_type( + input); native_field_type::integral_type base = 1; native_field_type::integral_type mask = (base << chunk_sizes[i_th]) - 1; @@ -309,7 +303,7 @@ namespace nil { } - static chopped_value_type chop_non_native(non_native_field_type::value_type input) { + static chopped_value_type chop_non_native(non_native_field_type input) { chopped_value_type result; for (std::size_t i = 0; i < ratio; i++) { result[i] = get_i_th_chunk(input, i); @@ -317,111 +311,15 @@ namespace nil { return result; } - static non_native_field_type::value_type glue_non_native(chopped_value_type input) { - non_native_field_type::value_type result; - result = non_native_field_type::value_type(native_field_type::integral_type(input[0].data)); + static non_native_field_type glue_non_native(chopped_value_type input) { + non_native_field_type result; + result = non_native_field_type(native_field_type::integral_type(input[0].data)); for (std::size_t i = 1; i < ratio; i++) { std::size_t shift = 0; for (std::size_t j = 0; j < i; j++) { shift += chunk_sizes[j]; } - result += non_native_field_type::value_type(native_field_type::integral_type(input[i].data) << shift); - } - return result; - } - }; - - /* - * Small and big signed numbers. This one is different from the others, it accepts - * boost::multiprecision::cpp_int_backend, which is not supposed to be used in algebra, so - * conversions need to happen before it can be used. - */ - template - struct basic_non_native_policy_field_type>> { - - constexpr static const std::uint32_t ratio = BitsAmount < 256 ? 2 : 3; // sign and all other bits - static constexpr std::array chunk_sizes_init() { - if constexpr (BitsAmount < 256) { - return {1, BitsAmount - 1}; - } else { - return {1, 127, 128}; - } - } - - // not actually a field, but we preserve the interface - using non_native_field_type = typename boost::multiprecision::number< - boost::multiprecision::cpp_int_backend>; - - using non_native_unsigned_integral_type = typename boost::multiprecision::number< - boost::multiprecision::cpp_int_backend>; - - using native_field_type = typename crypto3::algebra::curves::pallas::base_field_type; - using native_integral_type = typename native_field_type::integral_type; - using native_backend_type = typename native_integral_type::backend_type; - using var = crypto3::zk::snark::plonk_variable; - - typedef std::array non_native_var_type; - typedef std::array chopped_value_type; - - constexpr static const std::array chunk_sizes = chunk_sizes_init(); - - static native_field_type::value_type get_i_th_chunk(typename non_native_field_type::value_type input, - std::size_t i_th) { - assert(i_th < ratio && "non-native type does not have that much chunks!"); - - if constexpr (BitsAmount < 256) { - if (i_th == 0) { - return input.sign() == 0 ? 1 : -1; - } else { - return native_field_type::value_type(input.sign() == 0 ? 1 : -1) * - native_integral_type(native_backend_type( - non_native_unsigned_integral_type(input).data.backend())); - } - } else { - static const non_native_field_type top_mask = ((non_native_field_type(1) << 128) - 1) << 128; - static const non_native_field_type bottom_mask = (non_native_field_type(1) << 128) - 1; - - if (i_th == 0) { - return input.sign() == 0 ? 1 : -1; - } else if (i_th == 1) { - return native_integral_type(native_backend_type( - non_native_unsigned_integral_type(top_mask & input).data.backend())); - } else { - return native_integral_type(native_backend_type( - non_native_unsigned_integral_type(bottom_mask & input).data.backend())); - } - } - } - - - static chopped_value_type chop_non_native(typename non_native_field_type::value_type input) { - chopped_value_type result; - for (std::size_t i = 0; i < ratio; i++) { - result[i] = get_i_th_chunk(input, i); - } - return result; - } - - static typename non_native_field_type::value_type glue_non_native(chopped_value_type input) { - typename non_native_field_type::value_type result; - if constexpr (BitsAmount < 256) { - result = - (non_native_field_type::value_type(native_field_type::integral_type(input[0].data)) == 0 ? 1 : -1) * non_native_field_type::value_type(native_field_type::integral_type(input[1].data)); - } else { - static const non_native_field_type two_128 = - boost::multiprecision::pow(non_native_field_type(2), 128); - result = - (non_native_field_type::value_type(native_field_type::integral_type(input[0].data)) == 0 ? 1 : -1) * - (non_native_field_type::value_type(native_field_type::integral_type(input[1].data) * two_128 + - non_native_field_type::value_type(input[2].data))); + result += non_native_field_type(native_field_type::integral_type(input[i].data) << shift); } return result; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp index e30e4604c7..0c11d000e6 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp @@ -64,12 +64,12 @@ namespace nil { constexpr static const typename FieldType::value_type two_16 = 65536; constexpr static const typename FieldType::value_type two_32 = 4294967296; constexpr static const typename FieldType::value_type two_48 = 281474976710656; - constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two_80 = 0x100000000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two_96 = 0x1000000000000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two112 = 0x10000000000000000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const typename FieldType::value_type two_80 = 0x100000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two_96 = 0x1000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two112 = 0x10000000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp index 9fbeaf5f26..176d5ebab2 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp @@ -604,7 +604,7 @@ namespace nil { typename Ed25519Type::base_field_type::integral_type d = typename Ed25519Type::base_field_type::integral_type( - 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_cppui_modular256); + 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_bigui256); assignment.constant(component.C(0), row + 4) = d & mask; assignment.constant(component.C(0), row + 5) = (d >> 66) & mask; assignment.constant(component.C(0), row + 6) = (d >> 132) & mask; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp index 7e882268ce..bc1b83f2ea 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp @@ -116,10 +116,10 @@ namespace nil { typename Ed25519Type::scalar_field_type::integral_type base = 1; typename Ed25519Type::scalar_field_type::integral_type mask = (base << 66) - 1; - typename Ed25519Type::base_field_type::integral_type a_coef_val = typename Ed25519Type::base_field_type::integral_type(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec_cppui_modular255); + typename Ed25519Type::base_field_type::integral_type a_coef_val = typename Ed25519Type::base_field_type::integral_type(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec_bigui255); std::array a_coef = {a_coef_val & mask, (a_coef_val >>66) & mask, (a_coef_val >>132) & mask, (a_coef_val >>198) & mask}; - typename Ed25519Type::base_field_type::integral_type d_coef_val = typename Ed25519Type::base_field_type::integral_type(0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_cppui_modular255); + typename Ed25519Type::base_field_type::integral_type d_coef_val = typename Ed25519Type::base_field_type::integral_type(0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_bigui255); std::array d_coef = {d_coef_val & mask, (d_coef_val >>66) & mask, (d_coef_val >>132) & mask, (d_coef_val >>198) & mask}; for (int i = 0; i < 4; i++) { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp index 3599481438..0220c60f69 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp @@ -65,9 +65,9 @@ namespace nil { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_cppui_modular255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; }; template<> @@ -76,9 +76,9 @@ namespace nil { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_cppui_modular255; + 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_bigui255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_cppui_modular255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; }; template diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp index fb3a397473..0ab344643d 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp @@ -85,18 +85,18 @@ namespace nil { struct variable_base_scalar_mul_shifted_consts { using FieldType = nil::crypto3::algebra::fields::pallas_base_field; - constexpr static const typename FieldType::value_type shifted_minus_one = 0x224698fc0994a8dd8c46eb2100000000_cppui_modular255; - constexpr static const typename FieldType::value_type shifted_zero = 0x200000000000000000000000000000003369e57a0e5efd4c526a60b180000001_cppui_modular255; - constexpr static const typename FieldType::value_type shifted_one = 0x224698fc0994a8dd8c46eb2100000001_cppui_modular255; + constexpr static const typename FieldType::value_type shifted_minus_one = 0x224698fc0994a8dd8c46eb2100000000_bigui255; + constexpr static const typename FieldType::value_type shifted_zero = 0x200000000000000000000000000000003369e57a0e5efd4c526a60b180000001_bigui255; + constexpr static const typename FieldType::value_type shifted_one = 0x224698fc0994a8dd8c46eb2100000001_bigui255; }; template<> struct variable_base_scalar_mul_shifted_consts { using FieldType = nil::crypto3::algebra::fields::vesta_base_field; - constexpr static const typename FieldType::value_type shifted_minus_one = 0x448d31f81299f237325a61da00000001_cppui_modular255; - constexpr static const typename FieldType::value_type shifted_zero = 0x448d31f81299f237325a61da00000002_cppui_modular255; - constexpr static const typename FieldType::value_type shifted_one = 0x448d31f81299f237325a61da00000003_cppui_modular255; + constexpr static const typename FieldType::value_type shifted_minus_one = 0x448d31f81299f237325a61da00000001_bigui255; + constexpr static const typename FieldType::value_type shifted_zero = 0x448d31f81299f237325a61da00000002_bigui255; + constexpr static const typename FieldType::value_type shifted_one = 0x448d31f81299f237325a61da00000003_bigui255; }; //////////////////////////////// @@ -156,8 +156,8 @@ namespace nil { constexpr static const typename BlueprintFieldType::value_type shifted_zero = variable_base_scalar_mul_shifted_consts::shifted_zero; constexpr static const typename BlueprintFieldType::value_type shifted_one = variable_base_scalar_mul_shifted_consts::shifted_one; - constexpr static const typename BlueprintFieldType::value_type t_q = 0x224698fc0994a8dd8c46eb2100000001_cppui_modular255; // q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_cppui_modular255 = 2**254 + t_q - constexpr static const typename BlueprintFieldType::value_type t_p = 0x224698fc094cf91b992d30ed00000001_cppui_modular255; // p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_cppui_modular255 = 2**254 + t_p (q > p) + constexpr static const typename BlueprintFieldType::value_type t_q = 0x224698fc0994a8dd8c46eb2100000001_bigui255; // q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255 = 2**254 + t_q + constexpr static const typename BlueprintFieldType::value_type t_p = 0x224698fc094cf91b992d30ed00000001_bigui255; // p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255 = 2**254 + t_p (q > p) constexpr static const typename BlueprintFieldType::value_type two = 2; struct input_type { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/exponentiation.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/exponentiation.hpp index 35584b4997..2b90222e28 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/exponentiation.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/exponentiation.hpp @@ -212,7 +212,7 @@ namespace nil { std::vector bits(component.padded_exponent_size, false); { std::vector bbb; - auto data = exponent.data; + auto data = exponent.data.base(); while (data != 0u) { bbb.push_back((data - (data >> 1u << 1u)) != 0u); data = data >> 1u; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp index 0f06591487..4eb9fe8727 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp @@ -162,14 +162,14 @@ namespace nil { typename ArithmetizationType::field_type::integral_type( var_value(assignment, instance_input.k[7]).data)}; - auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular512; - auto k = 0x00_cppui_modular512; - auto shft = 0x01_cppui_modular512; + auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; + auto k = 0x00_bigui512; + auto shft = 0x01_bigui512; for (std::size_t i = 0; i < 8; i++) { assignment.witness(component.W(i), row + 3) = data[i]; k = k + data[i] * (shft % L); - shft *= 0x10000000000000000_cppui_modular512; + shft *= 0x10000000000000000_bigui512; } auto r = k % L; @@ -256,23 +256,23 @@ namespace nil { using var = typename plonk_reduction::var; - auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular512; + auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; auto constraint_1 = - var(component.W(0), +1) * 0x01_cppui_modular512 + var(component.W(1), +1) * 0x10000000000000000_cppui_modular512 + - var(component.W(2), +1) * 0x100000000000000000000000000000000_cppui_modular512 + - var(component.W(3), +1) * 0x1000000000000000000000000000000000000000000000000_cppui_modular512 + + var(component.W(0), +1) * 0x01_bigui512 + var(component.W(1), +1) * 0x10000000000000000_bigui512 + + var(component.W(2), +1) * 0x100000000000000000000000000000000_bigui512 + + var(component.W(3), +1) * 0x1000000000000000000000000000000000000000000000000_bigui512 + var(component.W(4), +1) * - 0xffffffffffffffffffffffffffffffec6ef5bf4737dcf70d6ec31748d98951d_cppui_modular512 + + 0xffffffffffffffffffffffffffffffec6ef5bf4737dcf70d6ec31748d98951d_bigui512 + var(component.W(5), +1) * - 0xffffffffffffffeb2106215d086329a93b8c838d39a5e065812631a5cf5d3ed_cppui_modular512 + + 0xffffffffffffffeb2106215d086329a93b8c838d39a5e065812631a5cf5d3ed_bigui512 + var(component.W(6), +1) * - 0x2106215d086329a7ed9ce5a30a2c131b64a7f435e4fdd9539822129a02a6271_cppui_modular512 + + 0x2106215d086329a7ed9ce5a30a2c131b64a7f435e4fdd9539822129a02a6271_bigui512 + var(component.W(7), +1) * - 0xed9ce5a30a2c131b399411b7c309a3de24babbe38d1d7a979daf520a00acb65_cppui_modular512 - + 0xed9ce5a30a2c131b399411b7c309a3de24babbe38d1d7a979daf520a00acb65_bigui512 - var(component.W(4), -1) - - (var(component.W(0), 0) * 0x800000000000_cppui_modular512 + var(component.W(1), 0) * 0x8000000_cppui_modular512 + - var(component.W(2), 0) * 0x80_cppui_modular512 + var(component.W(3), 0)) * + (var(component.W(0), 0) * 0x800000000000_bigui512 + var(component.W(1), 0) * 0x8000000_bigui512 + + var(component.W(2), 0) * 0x80_bigui512 + var(component.W(3), 0)) * L; auto s_r = var(component.W(0), -1) + var(component.W(1), -1) + var(component.W(2), -1) + @@ -283,18 +283,18 @@ namespace nil { auto constraint_2 = var(component.W(4), 0) - - (var(component.W(3), 0) + var(component.W(2), 0) * 0x2000_cppui_modular255 + - var(component.W(1), 0) * 0x200000000_cppui_modular255 + - var(component.W(0), 0) * 0x20000000000000_cppui_modular255 + - var(component.W(8), -1) * 0x2000000000000000000_cppui_modular255 + - var(component.W(7), -1) * 0x200000000000000000000000_cppui_modular255 + - var(component.W(6), -1) * 0x20000000000000000000000000000_cppui_modular255 + - var(component.W(5), -1) * 0x2000000000000000000000000000000000_cppui_modular255 + - var(component.W(4), -1) * 0x200000000000000000000000000000000000000_cppui_modular255 + - var(component.W(3), -1) * 0x20000000000000000000000000000000000000000000_cppui_modular255 + - var(component.W(2), -1) * 0x2000000000000000000000000000000000000000000000000_cppui_modular255 + - var(component.W(1), -1) * 0x200000000000000000000000000000000000000000000000000000_cppui_modular255 + - var(component.W(0), -1) * 0x20000000000000000000000000000000000000000000000000000000000_cppui_modular255); + (var(component.W(3), 0) + var(component.W(2), 0) * 0x2000_bigui255 + + var(component.W(1), 0) * 0x200000000_bigui255 + + var(component.W(0), 0) * 0x20000000000000_bigui255 + + var(component.W(8), -1) * 0x2000000000000000000_bigui255 + + var(component.W(7), -1) * 0x200000000000000000000000_bigui255 + + var(component.W(6), -1) * 0x20000000000000000000000000000_bigui255 + + var(component.W(5), -1) * 0x2000000000000000000000000000000000_bigui255 + + var(component.W(4), -1) * 0x200000000000000000000000000000000000000_bigui255 + + var(component.W(3), -1) * 0x20000000000000000000000000000000000000000000_bigui255 + + var(component.W(2), -1) * 0x2000000000000000000000000000000000000000000000000_bigui255 + + var(component.W(1), -1) * 0x200000000000000000000000000000000000000000000000000000_bigui255 + + var(component.W(0), -1) * 0x20000000000000000000000000000000000000000000000000000000000_bigui255); auto constraint_3 = (s_r) * ((s_r)*var(component.W(5), 0) - 1); @@ -311,8 +311,8 @@ namespace nil { var(component.W(5), +1) * (m[2] & ((one << 73) - 1)) + var(component.W(6), +1) * (m[3] & ((one << 73) - 1)) + var(component.W(7), +1) * (m[4] & ((one << 73) - 1)) + - (var(component.W(0), 0) * 0x800000000000_cppui_modular512 + var(component.W(1), 0) * 0x8000000_cppui_modular512 + - var(component.W(2), 0) * 0x80_cppui_modular512 + var(component.W(3), 0)) * + (var(component.W(0), 0) * 0x800000000000_bigui512 + var(component.W(1), 0) * 0x8000000_bigui512 + + var(component.W(2), 0) * 0x80_bigui512 + var(component.W(3), 0)) * ((one << 73) - (crypto3::algebra::curves::ed25519::scalar_field_type::extended_integral_type(L) % (one << 73))) - (var(component.W(3), -1) + var(component.W(2), -1) * (one << 13) + var(component.W(1), -1) * (one << 33) + var(component.W(0), -1) * (one << 53)) - diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp index 4c2cc72aa3..e65d5f7088 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp @@ -240,7 +240,7 @@ namespace nil { const std::size_t gates_amount = get_gates_amount(this->witness_amount(), xor_with_mes, last_round_call, limit_permutation_column); - const value_type sparse_3 = 0x6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB_cppui_modular256; + const value_type sparse_3 = 0x6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB_bigui256; const integral_type sparse_x80 = calculate_sparse(integral_type(0x8000000000000000)); const integral_type sparse_x7f = calculate_sparse(integral_type(0x8000000000000000 - 1)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp index 75fc71c27a..6162fa975f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp @@ -50,8 +50,8 @@ namespace nil { nil::crypto3::algebra::fields::field<256>::integral_type n(d); std::pair hash_value; - hash_value.first = (n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_cppui_modular257) >> 128; - hash_value.second = n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular257; + hash_value.first = (n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_bigui257) >> 128; + hash_value.second = n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257; return hash_value; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp index b3efcc39ae..d1c3073eea 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp @@ -49,185 +49,185 @@ namespace nil { constexpr static const std::array, state_size> mds = {{ - {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_cppui_modular253, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_cppui_modular253, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_cppui_modular253}}, - {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_cppui_modular253, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_cppui_modular253, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_cppui_modular253}}, - {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_cppui_modular253, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_cppui_modular253, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_cppui_modular253}}, + {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui253, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui253, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui253}}, + {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui253, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui253, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui253}}, + {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui253, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui253, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui253}}, }}; constexpr static const std::array, rounds_amount> round_constant = {{ - {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_cppui_modular253, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_cppui_modular253, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_cppui_modular253}}, - {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_cppui_modular253, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_cppui_modular253, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_cppui_modular253}}, - {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_cppui_modular253, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_cppui_modular253, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_cppui_modular253}}, - {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_cppui_modular253, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_cppui_modular253, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_cppui_modular253}}, - {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_cppui_modular253, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_cppui_modular253, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_cppui_modular253}}, - {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_cppui_modular253, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_cppui_modular253, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_cppui_modular253}}, - {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_cppui_modular253, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_cppui_modular253, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_cppui_modular253}}, - {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_cppui_modular253, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_cppui_modular253, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_cppui_modular253}}, - {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_cppui_modular253, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_cppui_modular253, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_cppui_modular253}}, - {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_cppui_modular253, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_cppui_modular253, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_cppui_modular253}}, - {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_cppui_modular253, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_cppui_modular253, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_cppui_modular253}}, - {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_cppui_modular253, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_cppui_modular253, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_cppui_modular253}}, - {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_cppui_modular253, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_cppui_modular253, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_cppui_modular253}}, - {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_cppui_modular253, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_cppui_modular253, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_cppui_modular253}}, - {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_cppui_modular253, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_cppui_modular253, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_cppui_modular253}}, - {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_cppui_modular253, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_cppui_modular253, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_cppui_modular253}}, - {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_cppui_modular253, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_cppui_modular253, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_cppui_modular253}}, - {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_cppui_modular253, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_cppui_modular253, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_cppui_modular253}}, - {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_cppui_modular253, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_cppui_modular253, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_cppui_modular253}}, - {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_cppui_modular253, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_cppui_modular253, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_cppui_modular253}}, - {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_cppui_modular253, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_cppui_modular253, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_cppui_modular253}}, - {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_cppui_modular253, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_cppui_modular253, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_cppui_modular253}}, - {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_cppui_modular253, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_cppui_modular253, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_cppui_modular253}}, - {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_cppui_modular253, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_cppui_modular253, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_cppui_modular253}}, - {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_cppui_modular253, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_cppui_modular253, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_cppui_modular253}}, - {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_cppui_modular253, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_cppui_modular253, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_cppui_modular253}}, - {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_cppui_modular253, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_cppui_modular253, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_cppui_modular253}}, - {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_cppui_modular253, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_cppui_modular253, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_cppui_modular253}}, - {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_cppui_modular253, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_cppui_modular253, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_cppui_modular253}}, - {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_cppui_modular253, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_cppui_modular253, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_cppui_modular253}}, - {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_cppui_modular253, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_cppui_modular253, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_cppui_modular253}}, - {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_cppui_modular253, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_cppui_modular253, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_cppui_modular253}}, - {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_cppui_modular253, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_cppui_modular253, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_cppui_modular253}}, - {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_cppui_modular253, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_cppui_modular253, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_cppui_modular253}}, - {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_cppui_modular253, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_cppui_modular253, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_cppui_modular253}}, - {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_cppui_modular253, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_cppui_modular253, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_cppui_modular253}}, - {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_cppui_modular253, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_cppui_modular253, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_cppui_modular253}}, - {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_cppui_modular253, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_cppui_modular253, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_cppui_modular253}}, - {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_cppui_modular253, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_cppui_modular253, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_cppui_modular253}}, - {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_cppui_modular253, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_cppui_modular253, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_cppui_modular253}}, - {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_cppui_modular253, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_cppui_modular253, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_cppui_modular253}}, - {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_cppui_modular253, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_cppui_modular253, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_cppui_modular253}}, - {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_cppui_modular253, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_cppui_modular253, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_cppui_modular253}}, - {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_cppui_modular253, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_cppui_modular253, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_cppui_modular253}}, - {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_cppui_modular253, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_cppui_modular253, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_cppui_modular253}}, - {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_cppui_modular253, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_cppui_modular253, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_cppui_modular253}}, - {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_cppui_modular253, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_cppui_modular253, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_cppui_modular253}}, - {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_cppui_modular253, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_cppui_modular253, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_cppui_modular253}}, - {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_cppui_modular253, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_cppui_modular253, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_cppui_modular253}}, - {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_cppui_modular253, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_cppui_modular253, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_cppui_modular253}}, - {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_cppui_modular253, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_cppui_modular253, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_cppui_modular253}}, - {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_cppui_modular253, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_cppui_modular253, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_cppui_modular253}}, - {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_cppui_modular253, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_cppui_modular253, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_cppui_modular253}}, - {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_cppui_modular253, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_cppui_modular253, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_cppui_modular253}}, - {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_cppui_modular253, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_cppui_modular253, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_cppui_modular253}}, + {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui253, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui253, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui253}}, + {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui253, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui253, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui253}}, + {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui253, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui253, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui253}}, + {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui253, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui253, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui253}}, + {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui253, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui253, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui253}}, + {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui253, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui253, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui253}}, + {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui253, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui253, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui253}}, + {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui253, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui253, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui253}}, + {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui253, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui253, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui253}}, + {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui253, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui253, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui253}}, + {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui253, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui253, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui253}}, + {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui253, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui253, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui253}}, + {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui253, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui253, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui253}}, + {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui253, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui253, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui253}}, + {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui253, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui253, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui253}}, + {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui253, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui253, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui253}}, + {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui253, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui253, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui253}}, + {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui253, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui253, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui253}}, + {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui253, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui253, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui253}}, + {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui253, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui253, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui253}}, + {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui253, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui253, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui253}}, + {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui253, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui253, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui253}}, + {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui253, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui253, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui253}}, + {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui253, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui253, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui253}}, + {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui253, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui253, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui253}}, + {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui253, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui253, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui253}}, + {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui253, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui253, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui253}}, + {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui253, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui253, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui253}}, + {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui253, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui253, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui253}}, + {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui253, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui253, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui253}}, + {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui253, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui253, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui253}}, + {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui253, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui253, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui253}}, + {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui253, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui253, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui253}}, + {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui253, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui253, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui253}}, + {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui253, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui253, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui253}}, + {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui253, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui253, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui253}}, + {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui253, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui253, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui253}}, + {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui253, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui253, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui253}}, + {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui253, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui253, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui253}}, + {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui253, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui253, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui253}}, + {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui253, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui253, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui253}}, + {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui253, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui253, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui253}}, + {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui253, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui253, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui253}}, + {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui253, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui253, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui253}}, + {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui253, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui253, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui253}}, + {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui253, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui253, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui253}}, + {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui253, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui253, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui253}}, + {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui253, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui253, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui253}}, + {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui253, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui253, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui253}}, + {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui253, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui253, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui253}}, + {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui253, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui253, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui253}}, + {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui253, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui253, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui253}}, + {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui253, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui253, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui253}}, + {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui253, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui253, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui253}}, + {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui253, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui253, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui253}}, }}; }; @@ -241,19 +241,19 @@ namespace nil { state_size> mds = {{ {{ - 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_cppui_modular255, - 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_cppui_modular255, - 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_cppui_modular255, + 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_bigui255, + 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_bigui255, + 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_bigui255, }}, {{ - 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_cppui_modular255, - 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_cppui_modular255, - 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_cppui_modular255, + 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_bigui255, + 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_bigui255, + 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_bigui255, }}, {{ - 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_cppui_modular255, - 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_cppui_modular255, - 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_cppui_modular255, + 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_bigui255, + 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_bigui255, + 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_bigui255, }}, }}; @@ -261,279 +261,279 @@ namespace nil { rounds_amount> round_constant = {{ {{ - 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_cppui_modular255, - 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_cppui_modular255, - 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_cppui_modular255, + 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_bigui255, + 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_bigui255, + 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_bigui255, }}, {{ - 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_cppui_modular255, - 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_cppui_modular255, - 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_cppui_modular255, + 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_bigui255, + 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_bigui255, + 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_bigui255, }}, {{ - 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_cppui_modular255, - 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_cppui_modular255, - 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_cppui_modular255, + 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_bigui255, + 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_bigui255, + 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_bigui255, }}, {{ - 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_cppui_modular255, - 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_cppui_modular255, - 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_cppui_modular255, + 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_bigui255, + 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_bigui255, + 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_bigui255, }}, {{ - 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_cppui_modular255, - 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_cppui_modular255, - 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_cppui_modular255, + 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_bigui255, + 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_bigui255, + 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_bigui255, }}, {{ - 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_cppui_modular255, - 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_cppui_modular255, - 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_cppui_modular255, + 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_bigui255, + 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_bigui255, + 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_bigui255, }}, {{ - 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_cppui_modular255, - 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_cppui_modular255, - 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_cppui_modular255, + 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_bigui255, + 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_bigui255, + 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_bigui255, }}, {{ - 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_cppui_modular255, - 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_cppui_modular255, - 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_cppui_modular255, + 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_bigui255, + 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_bigui255, + 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_bigui255, }}, {{ - 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_cppui_modular255, - 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_cppui_modular255, - 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_cppui_modular255, + 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_bigui255, + 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_bigui255, + 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_bigui255, }}, {{ - 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_cppui_modular255, - 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_cppui_modular255, - 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_cppui_modular255, + 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_bigui255, + 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_bigui255, + 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_bigui255, }}, {{ - 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_cppui_modular255, - 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_cppui_modular255, - 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_cppui_modular255, + 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_bigui255, + 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_bigui255, + 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_bigui255, }}, {{ - 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_cppui_modular255, - 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_cppui_modular255, - 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_cppui_modular255, + 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_bigui255, + 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_bigui255, + 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_bigui255, }}, {{ - 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_cppui_modular255, - 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_cppui_modular255, - 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_cppui_modular255, + 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_bigui255, + 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_bigui255, + 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_bigui255, }}, {{ - 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_cppui_modular255, - 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_cppui_modular255, - 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_cppui_modular255, + 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_bigui255, + 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_bigui255, + 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_bigui255, }}, {{ - 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_cppui_modular255, - 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_cppui_modular255, - 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_cppui_modular255, + 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_bigui255, + 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_bigui255, + 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_bigui255, }}, {{ - 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_cppui_modular255, - 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_cppui_modular255, - 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_cppui_modular255, + 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_bigui255, + 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_bigui255, + 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_bigui255, }}, {{ - 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_cppui_modular255, - 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_cppui_modular255, - 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_cppui_modular255, + 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_bigui255, + 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_bigui255, + 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_bigui255, }}, {{ - 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_cppui_modular255, - 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_cppui_modular255, - 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_cppui_modular255, + 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_bigui255, + 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_bigui255, + 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_bigui255, }}, {{ - 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_cppui_modular255, - 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_cppui_modular255, - 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_cppui_modular255, + 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_bigui255, + 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_bigui255, + 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_bigui255, }}, {{ - 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_cppui_modular255, - 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_cppui_modular255, - 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_cppui_modular255, + 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_bigui255, + 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_bigui255, + 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_bigui255, }}, {{ - 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_cppui_modular255, - 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_cppui_modular255, - 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_cppui_modular255, + 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_bigui255, + 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_bigui255, + 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_bigui255, }}, {{ - 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_cppui_modular255, - 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_cppui_modular255, - 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_cppui_modular255, + 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_bigui255, + 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_bigui255, + 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_bigui255, }}, {{ - 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_cppui_modular255, - 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_cppui_modular255, - 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_cppui_modular255, + 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_bigui255, + 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_bigui255, + 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_bigui255, }}, {{ - 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_cppui_modular255, - 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_cppui_modular255, - 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_cppui_modular255, + 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_bigui255, + 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_bigui255, + 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_bigui255, }}, {{ - 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_cppui_modular255, - 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_cppui_modular255, - 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_cppui_modular255, + 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_bigui255, + 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_bigui255, + 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_bigui255, }}, {{ - 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_cppui_modular255, - 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_cppui_modular255, - 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_cppui_modular255, + 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_bigui255, + 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_bigui255, + 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_bigui255, }}, {{ - 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_cppui_modular255, - 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_cppui_modular255, - 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_cppui_modular255, + 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_bigui255, + 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_bigui255, + 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_bigui255, }}, {{ - 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_cppui_modular255, - 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_cppui_modular255, - 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_cppui_modular255, + 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_bigui255, + 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_bigui255, + 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_bigui255, }}, {{ - 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_cppui_modular255, - 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_cppui_modular255, - 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_cppui_modular255, + 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_bigui255, + 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_bigui255, + 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_bigui255, }}, {{ - 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_cppui_modular255, - 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_cppui_modular255, - 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_cppui_modular255, + 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_bigui255, + 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_bigui255, + 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_bigui255, }}, {{ - 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_cppui_modular255, - 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_cppui_modular255, - 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_cppui_modular255, + 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_bigui255, + 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_bigui255, + 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_bigui255, }}, {{ - 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_cppui_modular255, - 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_cppui_modular255, - 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_cppui_modular255, + 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_bigui255, + 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_bigui255, + 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_bigui255, }}, {{ - 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_cppui_modular255, - 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_cppui_modular255, - 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_cppui_modular255, + 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_bigui255, + 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_bigui255, + 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_bigui255, }}, {{ - 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_cppui_modular255, - 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_cppui_modular255, - 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_cppui_modular255, + 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_bigui255, + 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_bigui255, + 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_bigui255, }}, {{ - 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_cppui_modular255, - 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_cppui_modular255, - 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_cppui_modular255, + 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_bigui255, + 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_bigui255, + 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_bigui255, }}, {{ - 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_cppui_modular255, - 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_cppui_modular255, - 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_cppui_modular255, + 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_bigui255, + 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_bigui255, + 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_bigui255, }}, {{ - 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_cppui_modular255, - 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_cppui_modular255, - 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_cppui_modular255, + 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_bigui255, + 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_bigui255, + 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_bigui255, }}, {{ - 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_cppui_modular255, - 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_cppui_modular255, - 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_cppui_modular255, + 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_bigui255, + 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_bigui255, + 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_bigui255, }}, {{ - 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_cppui_modular255, - 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_cppui_modular255, - 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_cppui_modular255, + 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_bigui255, + 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_bigui255, + 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_bigui255, }}, {{ - 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_cppui_modular255, - 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_cppui_modular255, - 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_cppui_modular255, + 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_bigui255, + 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_bigui255, + 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_bigui255, }}, {{ - 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_cppui_modular255, - 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_cppui_modular255, - 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_cppui_modular255, + 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_bigui255, + 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_bigui255, + 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_bigui255, }}, {{ - 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_cppui_modular255, - 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_cppui_modular255, - 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_cppui_modular255, + 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_bigui255, + 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_bigui255, + 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_bigui255, }}, {{ - 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_cppui_modular255, - 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_cppui_modular255, - 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_cppui_modular255, + 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_bigui255, + 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_bigui255, + 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_bigui255, }}, {{ - 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_cppui_modular255, - 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_cppui_modular255, - 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_cppui_modular255, + 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_bigui255, + 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_bigui255, + 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_bigui255, }}, {{ - 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_cppui_modular255, - 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_cppui_modular255, - 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_cppui_modular255, + 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_bigui255, + 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_bigui255, + 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_bigui255, }}, {{ - 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_cppui_modular255, - 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_cppui_modular255, - 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_cppui_modular255, + 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_bigui255, + 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_bigui255, + 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_bigui255, }}, {{ - 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_cppui_modular255, - 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_cppui_modular255, - 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_cppui_modular255, + 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_bigui255, + 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_bigui255, + 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_bigui255, }}, {{ - 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_cppui_modular255, - 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_cppui_modular255, - 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_cppui_modular255, + 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_bigui255, + 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_bigui255, + 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_bigui255, }}, {{ - 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_cppui_modular255, - 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_cppui_modular255, - 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_cppui_modular255, + 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_bigui255, + 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_bigui255, + 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_bigui255, }}, {{ - 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_cppui_modular255, - 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_cppui_modular255, - 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_cppui_modular255, + 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_bigui255, + 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_bigui255, + 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_bigui255, }}, {{ - 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_cppui_modular255, - 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_cppui_modular255, - 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_cppui_modular255, + 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_bigui255, + 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_bigui255, + 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_bigui255, }}, {{ - 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_cppui_modular255, - 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_cppui_modular255, - 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_cppui_modular255, + 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_bigui255, + 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_bigui255, + 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_bigui255, }}, {{ - 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_cppui_modular255, - 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_cppui_modular255, - 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_cppui_modular255, + 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_bigui255, + 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_bigui255, + 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_bigui255, }}, {{ - 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_cppui_modular255, - 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_cppui_modular255, - 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_cppui_modular255, + 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_bigui255, + 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_bigui255, + 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_bigui255, }}, {{ - 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_cppui_modular255, - 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_cppui_modular255, - 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_cppui_modular255, + 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_bigui255, + 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_bigui255, + 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_bigui255, }}, }}; }; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp index d2e0636db4..7427871e1c 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp @@ -255,13 +255,13 @@ namespace nil { using var = typename plonk_native_decomposition::var; auto constraint_1 = - var(component.W(8), -1) - (var(component.W(3), 0) + var(component.W(2), 0) * 0x100000000_cppui_modular255 + - var(component.W(1), 0) * 0x10000000000000000_cppui_modular255 + - var(component.W(0), 0) * 0x1000000000000000000000000_cppui_modular255); + var(component.W(8), -1) - (var(component.W(3), 0) + var(component.W(2), 0) * 0x100000000_bigui255 + + var(component.W(1), 0) * 0x10000000000000000_bigui255 + + var(component.W(0), 0) * 0x1000000000000000000000000_bigui255); auto constraint_2 = - var(component.W(8), 1) - (var(component.W(7), 0) + var(component.W(6), 0) * 0x100000000_cppui_modular255 + - var(component.W(5), 0) * 0x10000000000000000_cppui_modular255 + - var(component.W(4), 0) * 0x1000000000000000000000000_cppui_modular255); + var(component.W(8), 1) - (var(component.W(7), 0) + var(component.W(6), 0) * 0x100000000_bigui255 + + var(component.W(5), 0) * 0x10000000000000000_bigui255 + + var(component.W(4), 0) * 0x1000000000000000000000000_bigui255); auto constraint_3 = var(component.W(3), 0) - (var(component.W(0), -1) + var(component.W(1), -1) * (65536)); auto constraint_4 = var(component.W(2), 0) - diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/sha_table_generators.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/sha_table_generators.hpp index 8c398a0c85..43b478dc6a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/sha_table_generators.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/sha_table_generators.hpp @@ -34,8 +34,6 @@ #include -#include - #include #include #include @@ -118,7 +116,7 @@ namespace nil { std::vector value(table_size); for (std::size_t j = 0; j < table_size; j++) { - value[table_size - j - 1] = boost::multiprecision::bit_test(i, j); + value[table_size - j - 1] = i.bit_test(j); } // s0 const std::array, 2> a_chunks = @@ -258,7 +256,7 @@ namespace nil { std::vector value(table_size); for (std::size_t j = 0; j < table_size; j++) { - value[table_size - j - 1] = boost::multiprecision::bit_test(i, j); + value[table_size - j - 1] = i.bit_test(j); } std::array, 2> e_chunks = diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp index 3d9f83c3e9..2ccb96418c 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp @@ -36,6 +36,8 @@ #include #include +#include + namespace nil { namespace blueprint { namespace components { @@ -99,7 +101,7 @@ namespace nil { res[1][i] = 0; for (int j = sizes[i] - 1; j > -1; j--) { const integral_type k_pow = cached_pow(base, k); - divide_qr(tmp, k_pow, r, tmp); + nil::crypto3::multiprecision::divide_qr(tmp, k_pow, r, tmp); res[0][i] = res[0][i] * 2 + (r&1); res[1][i] = res[1][i] * sparse_base + r; k--; @@ -130,7 +132,7 @@ namespace nil { res[1][i] = 0; for (int j = sizes[i] - 1; j > -1; j--) { const integral_type k_pow = cached_pow(base, k); - divide_qr(tmp, k_pow, r, tmp); + nil::crypto3::multiprecision::divide_qr(tmp, k_pow, r, tmp); res[0][i] = res[0][i] * 2 + r_values[std::size_t(r)]; res[1][i] = res[1][i] * sparse_base + r; k--; @@ -161,7 +163,7 @@ namespace nil { res[1][i] = 0; for (int j = sizes[i] - 1; j > -1; j--) { const integral_type k_pow = cached_pow(base, k); - divide_qr(tmp, k_pow, r, tmp); + nil::crypto3::multiprecision::divide_qr(tmp, k_pow, r, tmp); res[0][i] = res[0][i] * 2 + r_values[std::size_t(r)]; res[1][i] = res[1][i] * sparse_base + r; k--; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp index 3f12426760..d5aff35443 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp @@ -89,26 +89,26 @@ namespace nil { constexpr static const std::array round_constant = { - 0x428a2f98d728ae22_cppui_modular64, 0x7137449123ef65cd_cppui_modular64, 0xb5c0fbcfec4d3b2f_cppui_modular64, 0xe9b5dba58189dbbc_cppui_modular64, - 0x3956c25bf348b538_cppui_modular64, 0x59f111f1b605d019_cppui_modular64, 0x923f82a4af194f9b_cppui_modular64, 0xab1c5ed5da6d8118_cppui_modular64, - 0xd807aa98a3030242_cppui_modular64, 0x12835b0145706fbe_cppui_modular64, 0x243185be4ee4b28c_cppui_modular64, 0x550c7dc3d5ffb4e2_cppui_modular64, - 0x72be5d74f27b896f_cppui_modular64, 0x80deb1fe3b1696b1_cppui_modular64, 0x9bdc06a725c71235_cppui_modular64, 0xc19bf174cf692694_cppui_modular64, - 0xe49b69c19ef14ad2_cppui_modular64, 0xefbe4786384f25e3_cppui_modular64, 0x0fc19dc68b8cd5b5_cppui_modular64, 0x240ca1cc77ac9c65_cppui_modular64, - 0x2de92c6f592b0275_cppui_modular64, 0x4a7484aa6ea6e483_cppui_modular64, 0x5cb0a9dcbd41fbd4_cppui_modular64, 0x76f988da831153b5_cppui_modular64, - 0x983e5152ee66dfab_cppui_modular64, 0xa831c66d2db43210_cppui_modular64, 0xb00327c898fb213f_cppui_modular64, 0xbf597fc7beef0ee4_cppui_modular64, - 0xc6e00bf33da88fc2_cppui_modular64, 0xd5a79147930aa725_cppui_modular64, 0x06ca6351e003826f_cppui_modular64, 0x142929670a0e6e70_cppui_modular64, - 0x27b70a8546d22ffc_cppui_modular64, 0x2e1b21385c26c926_cppui_modular64, 0x4d2c6dfc5ac42aed_cppui_modular64, 0x53380d139d95b3df_cppui_modular64, - 0x650a73548baf63de_cppui_modular64, 0x766a0abb3c77b2a8_cppui_modular64, 0x81c2c92e47edaee6_cppui_modular64, 0x92722c851482353b_cppui_modular64, - 0xa2bfe8a14cf10364_cppui_modular64, 0xa81a664bbc423001_cppui_modular64, 0xc24b8b70d0f89791_cppui_modular64, 0xc76c51a30654be30_cppui_modular64, - 0xd192e819d6ef5218_cppui_modular64, 0xd69906245565a910_cppui_modular64, 0xf40e35855771202a_cppui_modular64, 0x106aa07032bbd1b8_cppui_modular64, - 0x19a4c116b8d2d0c8_cppui_modular64, 0x1e376c085141ab53_cppui_modular64, 0x2748774cdf8eeb99_cppui_modular64, 0x34b0bcb5e19b48a8_cppui_modular64, - 0x391c0cb3c5c95a63_cppui_modular64, 0x4ed8aa4ae3418acb_cppui_modular64, 0x5b9cca4f7763e373_cppui_modular64, 0x682e6ff3d6b2b8a3_cppui_modular64, - 0x748f82ee5defb2fc_cppui_modular64, 0x78a5636f43172f60_cppui_modular64, 0x84c87814a1f0ab72_cppui_modular64, 0x8cc702081a6439ec_cppui_modular64, - 0x90befffa23631e28_cppui_modular64, 0xa4506cebde82bde9_cppui_modular64, 0xbef9a3f7b2c67915_cppui_modular64, 0xc67178f2e372532b_cppui_modular64, - 0xca273eceea26619c_cppui_modular64, 0xd186b8c721c0c207_cppui_modular64, 0xeada7dd6cde0eb1e_cppui_modular64, 0xf57d4f7fee6ed178_cppui_modular64, - 0x06f067aa72176fba_cppui_modular64, 0x0a637dc5a2c898a6_cppui_modular64, 0x113f9804bef90dae_cppui_modular64, 0x1b710b35131c471b_cppui_modular64, - 0x28db77f523047d84_cppui_modular64, 0x32caab7b40c72493_cppui_modular64, 0x3c9ebe0a15c9bebc_cppui_modular64, 0x431d67c49c100d4c_cppui_modular64, - 0x4cc5d4becb3e42b6_cppui_modular64, 0x597f299cfc657e2a_cppui_modular64, 0x5fcb6fab3ad6faec_cppui_modular64, 0x6c44198c4a475817_cppui_modular64}; + 0x428a2f98d728ae22_bigui64, 0x7137449123ef65cd_bigui64, 0xb5c0fbcfec4d3b2f_bigui64, 0xe9b5dba58189dbbc_bigui64, + 0x3956c25bf348b538_bigui64, 0x59f111f1b605d019_bigui64, 0x923f82a4af194f9b_bigui64, 0xab1c5ed5da6d8118_bigui64, + 0xd807aa98a3030242_bigui64, 0x12835b0145706fbe_bigui64, 0x243185be4ee4b28c_bigui64, 0x550c7dc3d5ffb4e2_bigui64, + 0x72be5d74f27b896f_bigui64, 0x80deb1fe3b1696b1_bigui64, 0x9bdc06a725c71235_bigui64, 0xc19bf174cf692694_bigui64, + 0xe49b69c19ef14ad2_bigui64, 0xefbe4786384f25e3_bigui64, 0x0fc19dc68b8cd5b5_bigui64, 0x240ca1cc77ac9c65_bigui64, + 0x2de92c6f592b0275_bigui64, 0x4a7484aa6ea6e483_bigui64, 0x5cb0a9dcbd41fbd4_bigui64, 0x76f988da831153b5_bigui64, + 0x983e5152ee66dfab_bigui64, 0xa831c66d2db43210_bigui64, 0xb00327c898fb213f_bigui64, 0xbf597fc7beef0ee4_bigui64, + 0xc6e00bf33da88fc2_bigui64, 0xd5a79147930aa725_bigui64, 0x06ca6351e003826f_bigui64, 0x142929670a0e6e70_bigui64, + 0x27b70a8546d22ffc_bigui64, 0x2e1b21385c26c926_bigui64, 0x4d2c6dfc5ac42aed_bigui64, 0x53380d139d95b3df_bigui64, + 0x650a73548baf63de_bigui64, 0x766a0abb3c77b2a8_bigui64, 0x81c2c92e47edaee6_bigui64, 0x92722c851482353b_bigui64, + 0xa2bfe8a14cf10364_bigui64, 0xa81a664bbc423001_bigui64, 0xc24b8b70d0f89791_bigui64, 0xc76c51a30654be30_bigui64, + 0xd192e819d6ef5218_bigui64, 0xd69906245565a910_bigui64, 0xf40e35855771202a_bigui64, 0x106aa07032bbd1b8_bigui64, + 0x19a4c116b8d2d0c8_bigui64, 0x1e376c085141ab53_bigui64, 0x2748774cdf8eeb99_bigui64, 0x34b0bcb5e19b48a8_bigui64, + 0x391c0cb3c5c95a63_bigui64, 0x4ed8aa4ae3418acb_bigui64, 0x5b9cca4f7763e373_bigui64, 0x682e6ff3d6b2b8a3_bigui64, + 0x748f82ee5defb2fc_bigui64, 0x78a5636f43172f60_bigui64, 0x84c87814a1f0ab72_bigui64, 0x8cc702081a6439ec_bigui64, + 0x90befffa23631e28_bigui64, 0xa4506cebde82bde9_bigui64, 0xbef9a3f7b2c67915_bigui64, 0xc67178f2e372532b_bigui64, + 0xca273eceea26619c_bigui64, 0xd186b8c721c0c207_bigui64, 0xeada7dd6cde0eb1e_bigui64, 0xf57d4f7fee6ed178_bigui64, + 0x06f067aa72176fba_bigui64, 0x0a637dc5a2c898a6_bigui64, 0x113f9804bef90dae_bigui64, 0x1b710b35131c471b_bigui64, + 0x28db77f523047d84_bigui64, 0x32caab7b40c72493_bigui64, 0x3c9ebe0a15c9bebc_bigui64, 0x431d67c49c100d4c_bigui64, + 0x4cc5d4becb3e42b6_bigui64, 0x597f299cfc657e2a_bigui64, 0x5fcb6fab3ad6faec_bigui64, 0x6c44198c4a475817_bigui64}; const std::size_t rows_amount = get_rows_amount(this->witness_amount()); constexpr static const std::size_t gates_amount = 10; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/mock/mocked_components.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/mock/mocked_components.hpp index ad305010a4..1142bd37a6 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/mock/mocked_components.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/mock/mocked_components.hpp @@ -132,8 +132,7 @@ namespace nil { using var = crypto3::zk::snark::plonk_variable; using non_native_policy_type = nil::blueprint::detail::basic_non_native_policy_field_type>>; + nil::crypto3::multiprecision::big_uint<256>>; typename non_native_policy_type::non_native_var_type value; pair_var_type(var first, var second) : value({first, second}) {} @@ -153,8 +152,7 @@ namespace nil { using var = crypto3::zk::snark::plonk_variable; using non_native_policy_type = nil::blueprint::detail::basic_non_native_policy_field_type>>; + nil::crypto3::multiprecision::big_uint<256>>; typename non_native_policy_type::non_native_var_type a, b; two_pair_var_type(var a_first, var a_second, var b_first, var b_second) @@ -277,8 +275,8 @@ namespace nil { const input_type &instance_input) const override { \ \ /*TODO(martun): on the next line we are converting 255-bit number to 8/32/64 bit numbers, probably losing some bits*/\ - uint_type a = static_cast(var_value(assignment, instance_input.a).data.backend().base_data()), \ - b = static_cast(var_value(assignment, instance_input.b).data.backend().base_data()); \ + uint_type a = static_cast(var_value(assignment, instance_input.a).data.base()), \ + b = static_cast(var_value(assignment, instance_input.b).data.base()); \ return {value_type(OP(a, b))}; \ } \ \ @@ -332,7 +330,7 @@ namespace nil { /*On the following line we need to convert from signed to unsigned boost::cpp_int, then to our cpp_int_modular, then change the size, then to value_type.*/\ return {value_type(result.sign() >= 0 ? 0 : 1), \ value_type(typename BlueprintFieldType::integral_type(typename modular_uint_type::backend_type( \ - uint_type(boost::multiprecision::abs(result)).backend())))}; \ + uint_type(boost::multiprecision::abs(result)))))}; \ } \ \ result_type result_builder(const std::size_t start_row_index) const override { \ @@ -527,8 +525,8 @@ namespace nil { int_type result = OP(a, b); \ int_type result_top = (top_mask & result) >> 128; \ int_type result_bottom = bottom_mask & result; \ - modular_uint_type result_top_modular = typename modular_uint_type::backend_type(uint_type(result_top).backend()); \ - modular_uint_type result_bottom_modular = typename modular_uint_type::backend_type(uint_type(result_bottom).backend()); \ + modular_uint_type result_top_modular = typename modular_uint_type::backend_type(uint_type(result_top)); \ + modular_uint_type result_bottom_modular = typename modular_uint_type::backend_type(uint_type(result_bottom)); \ return {value_type(result.sign() >= 0 ? 0 : 1), \ value_type(result_top_modular), value_type(result_bottom_modular)}; \ } \ @@ -603,8 +601,7 @@ namespace nil { detail::signed_pair_var_type, detail::signed_pair_var_type>; - typedef boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<256>> int_type; + typedef nil::crypto3::multiprecision::big_uint<256> int_type; BOILERPLATING(signed_abs_component_big) diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp index b956a30ee4..4afbfbe1cc 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp @@ -454,7 +454,7 @@ namespace nil { std::size_t row = start_row_index; typename BlueprintFieldType::value_type endo_factor = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; std::size_t endo_num_bits = 128; var zero = var(0, start_row_index, false, var::column_type::constant); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp index e2ab6aaded..5031e931d2 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp @@ -371,8 +371,8 @@ namespace nil { std::size_t row = component_start_row; typename BlueprintFieldType::value_type base = 2; assignment.constant(0)[row] = - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_cppui_modular255 - - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_cppui_modular255; + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255 - + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; row++; assignment.constant(0)[row] = base.pow(87); row++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/limbs.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/limbs.hpp index a0a0c57ceb..d01b7a3cbf 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/limbs.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/limbs.hpp @@ -381,7 +381,7 @@ namespace nil { std::size_t row = start_row_index; typename BlueprintFieldType::value_type value = var_value(assignment, instance_input.param); - auto value_data = value.data; + auto value_data = value.data.base(); auto shifted_data = value_data >> 64 << 64; assignment.witness(component.W(0), row) = value_data; assignment.witness(component.W(1), row) = value_data - shifted_data; @@ -394,8 +394,7 @@ namespace nil { value_data = value_data >> 64; assignment.witness(component.W(4), row) = value_data; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * BlueprintFieldType::policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * BlueprintFieldType::policy_type::modulus_bits>; extended_integral_type modulus_p = BlueprintFieldType::modulus; extended_integral_type one = 1; @@ -479,8 +478,7 @@ namespace nil { using var = typename plonk_to_limbs::var; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<2 * BlueprintFieldType::policy_type::modulus_bits>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<2 * BlueprintFieldType::policy_type::modulus_bits>; typename BlueprintFieldType::value_type scalar = 2; extended_integral_type modulus_p = BlueprintFieldType::modulus; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp index 32657610d9..3c154956e7 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp @@ -591,25 +591,25 @@ namespace nil { if (std::is_same::value) { - u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular255; - fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_cppui_modular255; + u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255; + fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_bigui255; inv_three_u_squared_val = - 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5B88A612661E209E00000001_cppui_modular255; + 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5B88A612661E209E00000001_bigui255; sqrt_neg_three_u_squared_val = - 0x25999506959B74E25955ABB8AF5563603A3F17A46F5A62923B5ABD7BFBFC9573_cppui_modular255; + 0x25999506959B74E25955ABB8AF5563603A3F17A46F5A62923B5ABD7BFBFC9573_bigui255; sqrt_neg_three_u_squared_minus_u_over_2_val = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular255; - b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_cppui_modular255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; + b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_bigui255; } else { // vesta - u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular255; - fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_cppui_modular255; + u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255; + fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_bigui255; inv_three_u_squared_val = - 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5BB87093B2D9F21600000001_cppui_modular255; + 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5BB87093B2D9F21600000001_bigui255; sqrt_neg_three_u_squared_val = - 0x0D0334B0507CA51CA23B69B039EE1EB41FDA8CFA8F80675E5553A5C0A1541C9F_cppui_modular255; + 0x0D0334B0507CA51CA23B69B039EE1EB41FDA8CFA8F80675E5553A5C0A1541C9F_bigui255; sqrt_neg_three_u_squared_minus_u_over_2_val = - 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_cppui_modular255; - b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_cppui_modular255; + 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_bigui255; + b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_bigui255; } // var u; assignment.constant(0)[row] = u_val; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp index f1ed3a9890..4c590233e6 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp @@ -480,7 +480,7 @@ namespace nil { std::size_t row = start_row_index; typename BlueprintFieldType::value_type endo_factor = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; std::size_t num_bits = 128; var fq_digest = params.fq_output.fq_digest; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/lookup_library.hpp b/crypto3/libs/blueprint/include/nil/blueprint/lookup_library.hpp index f1ed7427f8..d69c1258d8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/lookup_library.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/lookup_library.hpp @@ -233,7 +233,7 @@ namespace nil { ) { std::vector value(14); for (std::size_t j = 0; j < 14; j++) { - value[14 - j - 1] = boost::multiprecision::bit_test(i, j); + value[14 - j - 1] = i.bit_test(j); } std::array, 2> value_chunks = components::detail::split_and_sparse(value, value_sizes, 4); @@ -281,7 +281,7 @@ namespace nil { i++) { std::vector value(14); for (std::size_t j = 0; j < 14; j++) { - value[14 - j - 1] = boost::multiprecision::bit_test(i, j); + value[14 - j - 1] = i.bit_test(j); } std::array, 2> value_chunks = components::detail::split_and_sparse(value, value_sizes, 7); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp index 30b128498e..2ab25cf6b8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; zkevm_addmod_operation(){ this->stack_input = 3; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp index 1e16c6e79c..5d593338a8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp index 596719f775..038bcddaa2 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp index 632a46db09..678b7aaf3b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp index d2c28be26b..b16f915451 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp @@ -50,9 +50,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { @@ -216,10 +216,9 @@ namespace nil { zkevm_stack &stack = machine.stack; word_type a = stack.pop(); word_type b = stack.pop(); - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type result_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - word_type result = word_type::backend_type(result_integral.backend()); + word_type result = word_type::backend_type(result_integral); word_type q = b != 0u ? a % b : a; const std::vector a_chunks = zkevm_word_to_field_element(a); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp index 21e7ee013d..84d6aa0edd 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp @@ -61,9 +61,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp index d72869c0b5..095825763c 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp @@ -61,9 +61,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; // Table layout Row # // +------------------+-+----------------+---+--------------+ diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp index 45c54e21d8..f64cff2090 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, @@ -106,9 +106,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp index 696da265be..006e4e5c7a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp @@ -58,9 +58,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp index 3e485af9a6..7cdc788613 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; zkevm_mulmod_operation(){ this->stack_input = 3; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp index 4d16dc334d..f9bca92f6e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp @@ -55,9 +55,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp index 67c3963dba..0c6338367c 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp index 8cc28d8b5b..5ee32ae9ee 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp index 4943a5fe64..13d4127eaf 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; zkevm_sar_operation(){ this->stack_input = 2; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp index 7bcda616c7..5b3d682166 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp @@ -60,9 +60,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp index 473431e56d..7906772db5 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp index 56ec27ed25..167a809752 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp index afcacd6f15..d0d21240a2 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, @@ -109,9 +109,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp index 3b409e441c..bef856b259 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp @@ -270,7 +270,7 @@ namespace nil { typename BlueprintFieldType::integral_type mask = (1 << component_type::OP_SELECTORS_AMOUNT); for( std::size_t j = 0; j < component_type::OP_SELECTORS_AMOUNT; j++){ mask >>= 1; - assignment.witness(component.W(component_type::OP_SELECTORS[j]), start_row_index + i) = (((rw_trace[i].op & mask) == 0) ? 0 : 1); + assignment.witness(component.W(component_type::OP_SELECTORS[j]), start_row_index + i) = (((static_cast(rw_trace[i].op) & mask) == 0) ? 0 : 1); } // Fill chunks. diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp index 6403cc4e57..897551c625 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp @@ -222,7 +222,7 @@ namespace nil { break; case zkevm_opcode::NOT:{ word_type a = stack_pop(); - word_type not_a = word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular257) - a; + word_type not_a = word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257) - a; stack.push(not_a); pc++; gas -= 3; break; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp index 43ac6bae75..e3f880026b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp @@ -24,7 +24,7 @@ #pragma once -#include +#include #include #include @@ -36,27 +36,12 @@ namespace nil { namespace blueprint { - constexpr inline boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>> zkevm_modulus = - 0x10000000000000000000000000000000000000000000000000000000000000000_cppui_modular257; + constexpr inline auto zkevm_modulus = + 0x10000000000000000000000000000000000000000000000000000000000000000_bigui257; - constexpr inline boost::multiprecision::backends::modular_params< - boost::multiprecision::backends::cpp_int_modular_backend<257>> - zkevm_modular_params = zkevm_modulus.backend(); + using zkevm_word_type = nil::crypto3::multiprecision::auto_big_mod; - using zkevm_word_type = boost::multiprecision::number< - boost::multiprecision::backends::modular_adaptor< - boost::multiprecision::backends::cpp_int_modular_backend<257>, - boost::multiprecision::backends::modular_params_ct< - boost::multiprecision::backends::cpp_int_modular_backend<257>, - zkevm_modular_params>>>; - - using zkevm_word_integral_type = boost::multiprecision::number>; - - template - constexpr zkevm_word_type zwordc(const T &value) { - return zkevm_word_type::backend_type(value.backend()); - } + using zkevm_word_integral_type = nil::crypto3::multiprecision::big_uint<257>; template std::vector zkevm_word_to_field_element(const zkevm_word_type &word) { @@ -64,8 +49,7 @@ namespace nil { std::vector chunks; constexpr const std::size_t chunk_size = 16; constexpr const std::size_t num_chunks = 256 / chunk_size; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; constexpr const integral_type mask = integral_type((zkevm_word_type(1) << chunk_size) - 1); integral_type word_copy = integral_type(word); @@ -123,7 +107,7 @@ namespace nil { typename BlueprintFieldType::value_type w_hi(const zkevm_word_type &val){ using integral_type = boost::multiprecision::number>; - integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_cppui_modular257; + integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_bigui257; return (integral_type(val) & mask) >> 128; } @@ -131,7 +115,7 @@ namespace nil { typename BlueprintFieldType::value_type w_lo(const zkevm_word_type &val){ using integral_type = boost::multiprecision::number>; - integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular257; + integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257; return integral_type(val) & mask; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp index d49bb52f56..7802c9421d 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp @@ -424,7 +424,7 @@ namespace nil { zkevm_word_type a = stack.back(); stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, a)); - zkevm_word_type result = zkevm_word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular257) - a;; + zkevm_word_type result = zkevm_word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257) - a;; _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp index 0352cb63a8..29c889381e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp index cae345fcb3..efc33a99fe 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp index 127a1098f4..b98b8a5f96 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp @@ -49,9 +49,9 @@ namespace nil { using typename generic_component::TYPE; using integral_type = zkevm_word_integral_type; - constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_cppui_modular257; - constexpr static const typename FieldType::value_type two_128 = 0x100000000000000000000000000000000_cppui_modular254; - constexpr static const typename FieldType::value_type two_192 = 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_bigui257; + constexpr static const typename FieldType::value_type two_128 = 0x100000000000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two_192 = 0x1000000000000000000000000000000000000000000000000_bigui254; TYPE chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { BOOST_ASSERT(chunk_idx < 4); @@ -140,9 +140,9 @@ namespace nil { TYPE hi_carries = hi_carryless_construct(A_64, B_64, R_64); integral_type c_first_i = typename FieldType::integral_type(lo_carries.data) >> 128; - auto c_first = w_to_16(zwordc(c_first_i)); + auto c_first = w_to_16(c_first_i); integral_type c_second_i = (typename FieldType::integral_type(hi_carries.data) + c_first_i) >> 128; - auto c_second = w_to_16(zwordc(c_second_i)); + auto c_second = w_to_16(c_second_i); C3[3] = c_first[15]; C3[2] = c_first[14]; C3[1] = c_first[13]; C3[0] = c_first[12]; C2 = c_first[11]; C1[3] = c_second[15]; C1[2] = c_second[14]; C1[1] = c_second[13]; C1[0] = c_second[12]; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp index afa559505c..af1f58d1b4 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; @@ -142,8 +142,7 @@ namespace nil { bool make_links = true) : generic_component(context_object), res(chunk_amount) { using integral_type = zkevm_word_integral_type; - using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<512>>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<512>; // The central relation is a * b = s = Nr + q, q < N. std::vector v_chunks(chunk_amount); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp index 5d99f91876..0912922659 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp index dc10db49a7..71fce64b3a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; @@ -136,8 +136,7 @@ namespace nil { bool is_div) : generic_component(context_object, false), res(chunk_amount) { - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; std::vector c_1_chunks(4); TYPE c_2; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp index 3309aad156..d00ef4e3b9 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp index 11f200e056..af163aee28 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp index 1d81d979b3..195babc501 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_cppui_modular254; + constexpr static const value_type two_64 = 0x10000000000000000_bigui254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_cppui_modular254; + 0x100000000000000000000000000000000_bigui254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_cppui_modular254; + 0x1000000000000000000000000000000000000000000000000_bigui254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp index 7d1a489ad4..a3c01d2e3f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp @@ -141,7 +141,7 @@ namespace nil { integral_type mask = (1 << op_bits_amount); for( std::size_t j = 0; j < op_bits_amount; j++){ mask >>= 1; - op_bits[i][j] = (((rw_trace[i].op & mask) == 0) ? 0 : 1); + op_bits[i][j] = (((static_cast(rw_trace[i].op) & mask) == 0) ? 0 : 1); } std::size_t cur_chunk = 0; // id diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp index 4b0e0ad0fa..ef82de6d3f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp @@ -73,10 +73,10 @@ namespace nil { } zkevm_word_type exp_by_squaring(zkevm_word_type a, zkevm_word_type n) { - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; - if (n == zwordc(0x00_cppui_modular257)) return 1; - if (n == zwordc(0x01_cppui_modular257)) return a; + if (n == 0x00_bigui257) return 1; + if (n == 0x01_bigui257) return a; zkevm_word_type exp = exp_by_squaring(a, zkevm_word_type(integral_type(n) >> 1)); zkevm_word_type exp2 = exp * exp; @@ -87,7 +87,7 @@ namespace nil { } std::size_t log256(zkevm_word_type d){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; std::size_t result = 0; while(d > 0){ diff --git a/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp b/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp index e99c7b4f06..cfb423ef51 100644 --- a/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp +++ b/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp @@ -56,9 +56,9 @@ struct endo_scalar_params { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_cppui_modular255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; }; template<> @@ -67,9 +67,9 @@ struct endo_scalar_params { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_cppui_modular255; + 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_bigui255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_cppui_modular255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; }; template @@ -179,14 +179,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_vesta) { using curve_type = nil::crypto3::algebra::curves::vesta; using BlueprintFieldType = typename curve_type::scalar_field_type; - typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_cppui_modular255; - typename BlueprintFieldType::value_type result = 0x004638173549A4C55A118327904B54E5F6F6314225C8C862F5AFA2506C77AC65_cppui_modular255; + typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui255; + typename BlueprintFieldType::value_type result = 0x004638173549A4C55A118327904B54E5F6F6314225C8C862F5AFA2506C77AC65_bigui255; test_endo_scalar({challenge}, result); test_endo_scalar({1}, calculate_endo_scalar(1)); test_endo_scalar({0}, calculate_endo_scalar(0)); - test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255}, - calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255)); + test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255}, + calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255)); nil::crypto3::random::algebraic_engine generate_random; boost::random::mt19937 seed_seq; @@ -195,7 +195,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_vesta) { for (std::size_t i = 0; i < random_tests_amount; i++){ typename curve_type::scalar_field_type::value_type input = generate_random(); typename curve_type::scalar_field_type::integral_type input_integral = typename curve_type::scalar_field_type::integral_type(input.data); - input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255; + input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255; typename curve_type::scalar_field_type::value_type input_scalar = input_integral; test_endo_scalar({input_scalar}, calculate_endo_scalar(input_scalar)); } @@ -205,13 +205,13 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_pallas) { using curve_type = nil::crypto3::algebra::curves::pallas; using BlueprintFieldType = typename curve_type::scalar_field_type; - typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_cppui_modular255; + typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui255; test_endo_scalar({challenge}, calculate_endo_scalar(challenge)); test_endo_scalar({1}, calculate_endo_scalar(1)); test_endo_scalar({0}, calculate_endo_scalar(0)); - test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255}, - calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255)); + test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255}, + calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255)); nil::crypto3::random::algebraic_engine generate_random; boost::random::mt19937 seed_seq; @@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_pallas) { for (std::size_t i = 0; i < random_tests_amount; i++){ typename curve_type::scalar_field_type::value_type input = generate_random(); typename curve_type::scalar_field_type::integral_type input_integral = typename curve_type::scalar_field_type::integral_type(input.data); - input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular255; + input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255; typename curve_type::scalar_field_type::value_type input_scalar = input_integral; test_endo_scalar({input_scalar}, calculate_endo_scalar(input_scalar)); } diff --git a/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp b/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp index 1d6e52634c..7778ae3098 100644 --- a/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp +++ b/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_base_endo_scalar_mul) { std::vector public_input = {T.X, T.Y, b_scalar}; constexpr static const typename BlueprintFieldType::value_type endo = component_type::endo; - typename BlueprintFieldType::value_type endo_scalar = 0x244630A7EE5033DA383B3677B4C5CA94A3EBE4156FC4FA4E08B35974929CA2C5_cppui_modular255; + typename BlueprintFieldType::value_type endo_scalar = 0x244630A7EE5033DA383B3677B4C5CA94A3EBE4156FC4FA4E08B35974929CA2C5_bigui255; typename curve_type::template g1_type::value_type testResult = endo_scalar * T; std::cout<<"Expected result for endo_scalar * T: "<(random_point(), two + two.pow(255) + 1); @@ -248,9 +248,9 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_variable_base_scalar_mul_random_scalar_pall random_scalar.seed(pallas_seed_seq); typename pallas_curve_type::scalar_field_type::value_type pallas_two = 2; - typename pallas_curve_type::scalar_field_type::value_type pallas_threefff = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular255; + typename pallas_curve_type::scalar_field_type::value_type pallas_threefff = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui255; typename pallas_curve_type::scalar_field_type::value_type pallas_unshifted_threefff = 2*pallas_threefff + pallas_two.pow(255) + 1; - typename pallas_curve_type::scalar_field_type::value_type pallas_p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_cppui_modular255; + typename pallas_curve_type::scalar_field_type::value_type pallas_p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; test_vbsm(pallas_random_point(), pallas_two + pallas_two.pow(255) + 1); test_vbsm(pallas_random_point(), pallas_two - pallas_two + pallas_two.pow(255) + 1); diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp index 1abd443b50..b9d6530111 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp @@ -183,8 +183,8 @@ void test_field_mul_all_cases() { } test_field_mul_useable( - glue_non_native({0, 0, 0x3ffffffffffffffff_cppui_modular255, 0}), - glue_non_native({0, 0, 0x3ffffffffffffffff_cppui_modular255, 0})); + glue_non_native({0, 0, 0x3ffffffffffffffff_bigui255, 0}), + glue_non_native({0, 0, 0x3ffffffffffffffff_bigui255, 0})); test_field_mul_useable(0, 0); test_field_mul_useable(1, 1); @@ -203,16 +203,16 @@ void test_field_mul_all_cases() { glue_non_native({1, 0, 0, 0})); test_field_mul_useable( - glue_non_native({0x2BCA8C5A0FDF3D53E_cppui_modular253, 0x39840DDF4C421B2D5_cppui_modular253, - 0x24FCE5728D26931CA_cppui_modular253, 0xFBD6153B4CE63_cppui_modular253}), - glue_non_native({0x3CD7BA9506A76AA1C_cppui_modular253, 0x15C58810F101DDB2F_cppui_modular253, - 0x1AA5750251F6DA658_cppui_modular253, 0x1323F61B67242F_cppui_modular253})); + glue_non_native({0x2BCA8C5A0FDF3D53E_bigui253, 0x39840DDF4C421B2D5_bigui253, + 0x24FCE5728D26931CA_bigui253, 0xFBD6153B4CE63_bigui253}), + glue_non_native({0x3CD7BA9506A76AA1C_bigui253, 0x15C58810F101DDB2F_bigui253, + 0x1AA5750251F6DA658_bigui253, 0x1323F61B67242F_bigui253})); test_field_mul_useable( glue_non_native( - {0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255}), + {0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255}), glue_non_native( - {0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255, 0xc801afd_cppui_modular255})); + {0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255})); for (std::size_t i = 0; i < 10; i++) { test_field_mul_useable(rand(), rand()); } diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp index 37fdf2d320..23f04a6fdb 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp @@ -130,11 +130,11 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_range_test0) { BOOST_AUTO_TEST_CASE(blueprint_non_native_range_test_must_fail) { test_field_range( //ed25519 modulus - {0x3ffffffffffffffed_cppui_modular255, 0x3ffffffffffffffff_cppui_modular255, 0x3ffffffffffffffff_cppui_modular255, 0x1ffffffffffffff_cppui_modular255}, false + {0x3ffffffffffffffed_bigui255, 0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x1ffffffffffffff_bigui255}, false ); test_field_range( - {0x3ffffffffffffffff_cppui_modular255, 0x3ffffffffffffffff_cppui_modular255, 0x3ffffffffffffffff_cppui_modular255, 0x1ffffffffffffff_cppui_modular255}, false + {0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x1ffffffffffffff_bigui255}, false ); } diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp index 319ab9eed8..f0782b4a91 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp @@ -90,11 +90,10 @@ void test_reduction(std::vector public_ component_instance, desc, public_input, result_check, instance_input); } -using extended_integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<513> >; +using extended_integral_type = nil::crypto3::multiprecision::big_uint<513>; constexpr static const extended_integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular512; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; constexpr static const extended_integral_type one = 1; constexpr static const extended_integral_type max512 = (one << 512) - 1; @@ -102,7 +101,7 @@ template std::vector vector_from_extended_integral(extended_integral_type input) { std::vector pub_inp; for (std::size_t i = 0; i < 8; i++) { - extended_integral_type mask = 0xffffffffffffffff_cppui_modular512; + extended_integral_type mask = 0xffffffffffffffff_bigui512; typename FieldType::value_type current = typename FieldType::value_type((input >> (64*i)) & mask); pub_inp.push_back(current); } @@ -125,7 +124,7 @@ BOOST_AUTO_TEST_CASE(blueprint_variable_base_decomposition_edward25519) { test_reduction_input_expended_integral_calculate_expected(max512); test_reduction_input_expended_integral_calculate_expected(0); test_reduction_input_expended_integral_calculate_expected(1); - test_reduction_input_expended_integral_calculate_expected(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular512); + test_reduction_input_expended_integral_calculate_expected(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui512); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus * 2); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus + 1); @@ -133,7 +132,7 @@ BOOST_AUTO_TEST_CASE(blueprint_variable_base_decomposition_edward25519) { test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus << 256); test_reduction_input_expended_integral_calculate_expected( max512 - extended_integral_type( - 0x399411b7c309a3dceec73d217f5be65d00e1ba768859347a40611e3449c0f00_cppui_modular512)); + 0x399411b7c309a3dceec73d217f5be65d00e1ba768859347a40611e3449c0f00_bigui512)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp index 5ff6e8cdfa..f970e6a11b 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp @@ -170,8 +170,8 @@ void test_field_sub_all_cases(){ glue_non_native({1,0,0,0})); test_field_sub_useable( - glue_non_native({0x2BCA8C5A0FDF3D53E_cppui_modular253, 0x39840DDF4C421B2D5_cppui_modular253, 0x24FCE5728D26931CA_cppui_modular253, 0xFBD6153B4CE63_cppui_modular253}), - glue_non_native({0x3CD7BA9506A76AA1C_cppui_modular253, 0x15C58810F101DDB2F_cppui_modular253, 0x1AA5750251F6DA658_cppui_modular253, 0x1323F61B67242F_cppui_modular253})); + glue_non_native({0x2BCA8C5A0FDF3D53E_bigui253, 0x39840DDF4C421B2D5_bigui253, 0x24FCE5728D26931CA_bigui253, 0xFBD6153B4CE63_bigui253}), + glue_non_native({0x3CD7BA9506A76AA1C_bigui253, 0x15C58810F101DDB2F_bigui253, 0x1AA5750251F6DA658_bigui253, 0x1323F61B67242F_bigui253})); for (std::size_t i = 0; i < 10; i++) { test_field_sub_useable(rand(), rand()); diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp index 09fc4c636e..72d957d0eb 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp @@ -143,7 +143,7 @@ void test_range_check_specific_inputs() { test_range_check(-1); test_range_check(value_type(2).pow(R)); test_range_check( - 0x4000000000000000000000000000000000000000000000000000000000000000_cppui_modular256 + 0x4000000000000000000000000000000000000000000000000000000000000000_bigui256 ); } diff --git a/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp b/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp index 0165747fbc..fd818be015 100644 --- a/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp +++ b/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp @@ -102,15 +102,15 @@ word_type random_word_type(nil::crypto3::random::algebraic_engine &g) integral_type hi = integral_type(g().data) % base128; integral_type lo = integral_type(g().data) % base128; - word_type w_hi = zwordc(hi); - word_type w_lo = zwordc(lo); - word_type result = w_hi * zwordc(base128) + w_lo; + word_type w_hi = hi; + word_type w_lo = lo; + word_type result = w_hi * base128 + w_lo; return result; } word_type exp_by_squaring(word_type a, word_type n) { - if (n == zwordc(0x00_cppui_modular257)) return 1; - if (n == zwordc(0x01_cppui_modular257)) return a; + if (n == 0x00_bigui257) return 1; + if (n == 0x01_bigui257) return a; word_type exp = exp_by_squaring(a, n >> 1); word_type exp2 = exp * exp; @@ -129,14 +129,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_exp_wrapper_test) { std::vector> inputs; word_type a1 = - zwordc(0xa00e9bd49962d7b217963a3daed6f4591c2bdbd41562d5f1446dc932ac9e1975_cppui_modular257); + 0xa00e9bd49962d7b217963a3daed6f4591c2bdbd41562d5f1446dc932ac9e1975_bigui257; word_type d1 = - zwordc(0xacab9c07aa7d08b7652965f01307cf5a3ed09cbf08325c10af9d2029e918ac7d_cppui_modular257); + 0xacab9c07aa7d08b7652965f01307cf5a3ed09cbf08325c10af9d2029e918ac7d_bigui257; word_type A1 = - zwordc(0x22fcc8f007a53fb4d231a691075afd85980214380e16a5994ff90de783c28b85_cppui_modular257); - word_type a2 = zwordc(0x2_cppui_modular257); - word_type d2 = zwordc(0x100_cppui_modular257); - word_type A2 = zwordc(0x0_cppui_modular257); + 0x22fcc8f007a53fb4d231a691075afd85980214380e16a5994ff90de783c28b85_bigui257; + word_type a2 = 0x2_bigui257; + word_type d2 = 0x100_bigui257; + word_type A2 = 0x0_bigui257; inputs.push_back({a1, d1, A1}); inputs.push_back({a2, d2, A2}); diff --git a/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp b/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp index 536530c783..bcd4c422c4 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp @@ -135,8 +135,8 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_test0) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; test_decomposition( - {0x8d741211e928fdd4d33a13970d0ce7f3_cppui_modular255, 0x92f209334030f9ec8fa8a025e987a5dd_cppui_modular255}, - calculate_decomposition({0x8d741211e928fdd4d33a13970d0ce7f3_cppui_modular255, 0x92f209334030f9ec8fa8a025e987a5dd_cppui_modular255}), + {0x8d741211e928fdd4d33a13970d0ce7f3_bigui255, 0x92f209334030f9ec8fa8a025e987a5dd_bigui255}, + calculate_decomposition({0x8d741211e928fdd4d33a13970d0ce7f3_bigui255, 0x92f209334030f9ec8fa8a025e987a5dd_bigui255}), true); test_decomposition( @@ -145,15 +145,15 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_test0) { true); test_decomposition( - {0xffffffffffffffffffffffffffffffff_cppui_modular255, 0xffffffffffffffffffffffffffffffff_cppui_modular255}, - calculate_decomposition({0xffffffffffffffffffffffffffffffff_cppui_modular255, 0xffffffffffffffffffffffffffffffff_cppui_modular255}), + {0xffffffffffffffffffffffffffffffff_bigui255, 0xffffffffffffffffffffffffffffffff_bigui255}, + calculate_decomposition({0xffffffffffffffffffffffffffffffff_bigui255, 0xffffffffffffffffffffffffffffffff_bigui255}), true); } BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_must_fail) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; - typename field_type::value_type bad = 0x100000000000000000000000000000000_cppui_modular255; + typename field_type::value_type bad = 0x100000000000000000000000000000000_bigui255; test_decomposition( {0u, bad}, @@ -165,7 +165,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_must_fail) { calculate_decomposition({bad, 0u}), false); - bad = 0x4000000000000000000000000000000000000000000000000000000000000000_cppui_modular255; + bad = 0x4000000000000000000000000000000000000000000000000000000000000000_bigui255; test_decomposition( {0u, bad}, diff --git a/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp b/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp index 78f3cbda71..98554a43fb 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp @@ -126,7 +126,7 @@ void test_poseidon_specfic_data(){ input = {-1,-1,-1}; test_poseidon(input, calculate_expected_poseidon(input)); - typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular256; + typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui256; input = {threeFFF, threeFFF, threeFFF}; test_poseidon(input, calculate_expected_poseidon(input)); } diff --git a/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp b/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp index 15eb48423f..48ed2af6ab 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp @@ -161,35 +161,35 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha256_test0) { test_sha256_with_stretching( {s, s + 1, s + 2, s + 3}, - {0xf5790a69d0a3f69cb85d0b5a233405fb_cppui_modular255, 0xa47050b703fce590fd6585dd02b175f8_cppui_modular255}); + {0xf5790a69d0a3f69cb85d0b5a233405fb_bigui255, 0xa47050b703fce590fd6585dd02b175f8_bigui255}); test_sha256_with_stretching({ - 0xf5a5fd42d16a20302798ef6ed309979b_cppui_modular255, 0x43003d2320d9f0e8ea9831a92759fb4b_cppui_modular255, - 0xdb56114e00fdd4c1f85c892bf35ac9a8_cppui_modular255, 0x9289aaecb1ebd0a96cde606a748b5d71_cppui_modular255}, - {0x42b052541dce45557d83d34634a45a56_cppui_modular255, 0xd216d4375e5a9584f6445ce4e63324af_cppui_modular255}); + 0xf5a5fd42d16a20302798ef6ed309979b_bigui255, 0x43003d2320d9f0e8ea9831a92759fb4b_bigui255, + 0xdb56114e00fdd4c1f85c892bf35ac9a8_bigui255, 0x9289aaecb1ebd0a96cde606a748b5d71_bigui255}, + {0x42b052541dce45557d83d34634a45a56_bigui255, 0xd216d4375e5a9584f6445ce4e63324af_bigui255}); test_sha256_with_stretching({ - 0xc78009fdf07fc56a11f122370658a353_cppui_modular255, 0xaaa542ed63e44c4bc15ff4cd105ab33c_cppui_modular255, - 0x536d98837f2dd165a55d5eeae9148595_cppui_modular255, 0x4472d56f246df256bf3cae19352a123c_cppui_modular255}, - {0x69113382140943e8205d01244f562096_cppui_modular255, 0x4d5b92a1cb78bf9fe35ab0bbd2f1f8c2_cppui_modular255}); + 0xc78009fdf07fc56a11f122370658a353_bigui255, 0xaaa542ed63e44c4bc15ff4cd105ab33c_bigui255, + 0x536d98837f2dd165a55d5eeae9148595_bigui255, 0x4472d56f246df256bf3cae19352a123c_bigui255}, + {0x69113382140943e8205d01244f562096_bigui255, 0x4d5b92a1cb78bf9fe35ab0bbd2f1f8c2_bigui255}); test_sha256_with_stretching({ - 0x9efde052aa15429fae05bad4d0b1d7c6_cppui_modular255, 0x4da64d03d7a1854a588c2cb8430c0d30_cppui_modular255, - 0xd88ddfeed400a8755596b21942c1497e_cppui_modular255, 0x114c302e6118290f91e6772976041fa1_cppui_modular255}, - {0x60a7f836b0b42a41d74143c1ae465c25_cppui_modular255, 0xed04376190677ef7d589bd69bc4d79c8_cppui_modular255}); + 0x9efde052aa15429fae05bad4d0b1d7c6_bigui255, 0x4da64d03d7a1854a588c2cb8430c0d30_bigui255, + 0xd88ddfeed400a8755596b21942c1497e_bigui255, 0x114c302e6118290f91e6772976041fa1_bigui255}, + {0x60a7f836b0b42a41d74143c1ae465c25_bigui255, 0xed04376190677ef7d589bd69bc4d79c8_bigui255}); test_sha256_with_stretching({ - 0x87eb0ddba57e35f6d286673802a4af59_cppui_modular255, 0x75e22506c7cf4c64bb6be5ee11527f2c_cppui_modular255, - 0x26846476fd5fc54a5d43385167c95144_cppui_modular255, 0xf2643f533cc85bb9d16b782f8d7db193_cppui_modular255}, - {0x841510f2de07868d707940400d618c9e_cppui_modular255, 0xeeb91d1bd77177f196a238e272cb9bc3_cppui_modular255}); + 0x87eb0ddba57e35f6d286673802a4af59_bigui255, 0x75e22506c7cf4c64bb6be5ee11527f2c_bigui255, + 0x26846476fd5fc54a5d43385167c95144_bigui255, 0xf2643f533cc85bb9d16b782f8d7db193_bigui255}, + {0x841510f2de07868d707940400d618c9e_bigui255, 0xeeb91d1bd77177f196a238e272cb9bc3_bigui255}); test_sha256_with_stretching({ - 0x506d86582d252405b840018792cad2bf_cppui_modular255, 0x1259f1ef5aa5f887e13cb2f0094f51e1_cppui_modular255, - 0xffff0ad7e659772f9534c195c815efc4_cppui_modular255, 0x14ef1e1daed4404c06385d11192e92b_cppui_modular255}, - {0x88b8aa87277a142cbe3d58e7a85ced04_cppui_modular255, 0x4fec5eb57f1828caf06b5fae9c8c67fd_cppui_modular255}); + 0x506d86582d252405b840018792cad2bf_bigui255, 0x1259f1ef5aa5f887e13cb2f0094f51e1_bigui255, + 0xffff0ad7e659772f9534c195c815efc4_bigui255, 0x14ef1e1daed4404c06385d11192e92b_bigui255}, + {0x88b8aa87277a142cbe3d58e7a85ced04_bigui255, 0x4fec5eb57f1828caf06b5fae9c8c67fd_bigui255}); test_sha256_with_stretching( - {0xffffffffffffffff_cppui_modular64, 0xffffffffffffffff_cppui_modular64, 0xffffffffffffffff_cppui_modular64, 0xffffffffffffffff_cppui_modular64}, - {0xf58ac0f0665e3f1886f2eae35542987b_cppui_modular255, 0x9d61cc98e5d3ed2a5a9d8e3b9b7d9f2f_cppui_modular255}); + {0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64}, + {0xf58ac0f0665e3f1886f2eae35542987b_bigui255, 0x9d61cc98e5d3ed2a5a9d8e3b9b7d9f2f_bigui255}); test_sha256_with_stretching( {1, 1, 1, 1}, - {0x8e1caeb2418a07d7d88f710dccd882d5_cppui_modular255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_cppui_modular255}); + {0x8e1caeb2418a07d7d88f710dccd882d5_bigui255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_bigui255}); } @@ -198,6 +198,6 @@ BOOST_AUTO_TEST_CASE(sha256_test1) { test_and_print( {1, 1, 1, 1}, - {0x8e1caeb2418a07d7d88f710dccd882d5_cppui_modular255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_cppui_modular255}); + {0x8e1caeb2418a07d7d88f710dccd882d5_bigui255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_bigui255}); } BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file diff --git a/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp b/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp index 0e8e423a03..b6fc726f3b 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp @@ -64,14 +64,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha512_process) { using component_type = blueprint::components::sha512_process; typename BlueprintFieldType::value_type s = typename BlueprintFieldType::value_type(2).pow(59); - std::array public_input = {0x6a09e667f3bcc908_cppui_modular64, - 0xbb67ae8584caa73b_cppui_modular64, - 0x3c6ef372fe94f82b_cppui_modular64, - 0xa54ff53a5f1d36f1_cppui_modular64, - 0x510e527fade682d1_cppui_modular64, - 0x9b05688c2b3e6c1f_cppui_modular64, - 0x1f83d9abfb41bd6b_cppui_modular64, - 0x5be0cd19137e2179_cppui_modular64, + std::array public_input = {0x6a09e667f3bcc908_bigui64, + 0xbb67ae8584caa73b_bigui64, + 0x3c6ef372fe94f82b_bigui64, + 0xa54ff53a5f1d36f1_bigui64, + 0x510e527fade682d1_bigui64, + 0x9b05688c2b3e6c1f_bigui64, + 0x1f83d9abfb41bd6b_bigui64, + 0x5be0cd19137e2179_bigui64, s - 5, s + 5, s - 6, @@ -95,26 +95,26 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha512_process) { var(0, 6, false, var::column_type::public_input), var(0, 7, false, var::column_type::public_input)}; std::array round_constant = { - 0x428a2f98d728ae22_cppui_modular64, 0x7137449123ef65cd_cppui_modular64, 0xb5c0fbcfec4d3b2f_cppui_modular64, 0xe9b5dba58189dbbc_cppui_modular64, - 0x3956c25bf348b538_cppui_modular64, 0x59f111f1b605d019_cppui_modular64, 0x923f82a4af194f9b_cppui_modular64, 0xab1c5ed5da6d8118_cppui_modular64, - 0xd807aa98a3030242_cppui_modular64, 0x12835b0145706fbe_cppui_modular64, 0x243185be4ee4b28c_cppui_modular64, 0x550c7dc3d5ffb4e2_cppui_modular64, - 0x72be5d74f27b896f_cppui_modular64, 0x80deb1fe3b1696b1_cppui_modular64, 0x9bdc06a725c71235_cppui_modular64, 0xc19bf174cf692694_cppui_modular64, - 0xe49b69c19ef14ad2_cppui_modular64, 0xefbe4786384f25e3_cppui_modular64, 0x0fc19dc68b8cd5b5_cppui_modular64, 0x240ca1cc77ac9c65_cppui_modular64, - 0x2de92c6f592b0275_cppui_modular64, 0x4a7484aa6ea6e483_cppui_modular64, 0x5cb0a9dcbd41fbd4_cppui_modular64, 0x76f988da831153b5_cppui_modular64, - 0x983e5152ee66dfab_cppui_modular64, 0xa831c66d2db43210_cppui_modular64, 0xb00327c898fb213f_cppui_modular64, 0xbf597fc7beef0ee4_cppui_modular64, - 0xc6e00bf33da88fc2_cppui_modular64, 0xd5a79147930aa725_cppui_modular64, 0x06ca6351e003826f_cppui_modular64, 0x142929670a0e6e70_cppui_modular64, - 0x27b70a8546d22ffc_cppui_modular64, 0x2e1b21385c26c926_cppui_modular64, 0x4d2c6dfc5ac42aed_cppui_modular64, 0x53380d139d95b3df_cppui_modular64, - 0x650a73548baf63de_cppui_modular64, 0x766a0abb3c77b2a8_cppui_modular64, 0x81c2c92e47edaee6_cppui_modular64, 0x92722c851482353b_cppui_modular64, - 0xa2bfe8a14cf10364_cppui_modular64, 0xa81a664bbc423001_cppui_modular64, 0xc24b8b70d0f89791_cppui_modular64, 0xc76c51a30654be30_cppui_modular64, - 0xd192e819d6ef5218_cppui_modular64, 0xd69906245565a910_cppui_modular64, 0xf40e35855771202a_cppui_modular64, 0x106aa07032bbd1b8_cppui_modular64, - 0x19a4c116b8d2d0c8_cppui_modular64, 0x1e376c085141ab53_cppui_modular64, 0x2748774cdf8eeb99_cppui_modular64, 0x34b0bcb5e19b48a8_cppui_modular64, - 0x391c0cb3c5c95a63_cppui_modular64, 0x4ed8aa4ae3418acb_cppui_modular64, 0x5b9cca4f7763e373_cppui_modular64, 0x682e6ff3d6b2b8a3_cppui_modular64, - 0x748f82ee5defb2fc_cppui_modular64, 0x78a5636f43172f60_cppui_modular64, 0x84c87814a1f0ab72_cppui_modular64, 0x8cc702081a6439ec_cppui_modular64, - 0x90befffa23631e28_cppui_modular64, 0xa4506cebde82bde9_cppui_modular64, 0xbef9a3f7b2c67915_cppui_modular64, 0xc67178f2e372532b_cppui_modular64, - 0xca273eceea26619c_cppui_modular64, 0xd186b8c721c0c207_cppui_modular64, 0xeada7dd6cde0eb1e_cppui_modular64, 0xf57d4f7fee6ed178_cppui_modular64, - 0x06f067aa72176fba_cppui_modular64, 0x0a637dc5a2c898a6_cppui_modular64, 0x113f9804bef90dae_cppui_modular64, 0x1b710b35131c471b_cppui_modular64, - 0x28db77f523047d84_cppui_modular64, 0x32caab7b40c72493_cppui_modular64, 0x3c9ebe0a15c9bebc_cppui_modular64, 0x431d67c49c100d4c_cppui_modular64, - 0x4cc5d4becb3e42b6_cppui_modular64, 0x597f299cfc657e2a_cppui_modular64, 0x5fcb6fab3ad6faec_cppui_modular64, 0x6c44198c4a475817_cppui_modular64}; + 0x428a2f98d728ae22_bigui64, 0x7137449123ef65cd_bigui64, 0xb5c0fbcfec4d3b2f_bigui64, 0xe9b5dba58189dbbc_bigui64, + 0x3956c25bf348b538_bigui64, 0x59f111f1b605d019_bigui64, 0x923f82a4af194f9b_bigui64, 0xab1c5ed5da6d8118_bigui64, + 0xd807aa98a3030242_bigui64, 0x12835b0145706fbe_bigui64, 0x243185be4ee4b28c_bigui64, 0x550c7dc3d5ffb4e2_bigui64, + 0x72be5d74f27b896f_bigui64, 0x80deb1fe3b1696b1_bigui64, 0x9bdc06a725c71235_bigui64, 0xc19bf174cf692694_bigui64, + 0xe49b69c19ef14ad2_bigui64, 0xefbe4786384f25e3_bigui64, 0x0fc19dc68b8cd5b5_bigui64, 0x240ca1cc77ac9c65_bigui64, + 0x2de92c6f592b0275_bigui64, 0x4a7484aa6ea6e483_bigui64, 0x5cb0a9dcbd41fbd4_bigui64, 0x76f988da831153b5_bigui64, + 0x983e5152ee66dfab_bigui64, 0xa831c66d2db43210_bigui64, 0xb00327c898fb213f_bigui64, 0xbf597fc7beef0ee4_bigui64, + 0xc6e00bf33da88fc2_bigui64, 0xd5a79147930aa725_bigui64, 0x06ca6351e003826f_bigui64, 0x142929670a0e6e70_bigui64, + 0x27b70a8546d22ffc_bigui64, 0x2e1b21385c26c926_bigui64, 0x4d2c6dfc5ac42aed_bigui64, 0x53380d139d95b3df_bigui64, + 0x650a73548baf63de_bigui64, 0x766a0abb3c77b2a8_bigui64, 0x81c2c92e47edaee6_bigui64, 0x92722c851482353b_bigui64, + 0xa2bfe8a14cf10364_bigui64, 0xa81a664bbc423001_bigui64, 0xc24b8b70d0f89791_bigui64, 0xc76c51a30654be30_bigui64, + 0xd192e819d6ef5218_bigui64, 0xd69906245565a910_bigui64, 0xf40e35855771202a_bigui64, 0x106aa07032bbd1b8_bigui64, + 0x19a4c116b8d2d0c8_bigui64, 0x1e376c085141ab53_bigui64, 0x2748774cdf8eeb99_bigui64, 0x34b0bcb5e19b48a8_bigui64, + 0x391c0cb3c5c95a63_bigui64, 0x4ed8aa4ae3418acb_bigui64, 0x5b9cca4f7763e373_bigui64, 0x682e6ff3d6b2b8a3_bigui64, + 0x748f82ee5defb2fc_bigui64, 0x78a5636f43172f60_bigui64, 0x84c87814a1f0ab72_bigui64, 0x8cc702081a6439ec_bigui64, + 0x90befffa23631e28_bigui64, 0xa4506cebde82bde9_bigui64, 0xbef9a3f7b2c67915_bigui64, 0xc67178f2e372532b_bigui64, + 0xca273eceea26619c_bigui64, 0xd186b8c721c0c207_bigui64, 0xeada7dd6cde0eb1e_bigui64, 0xf57d4f7fee6ed178_bigui64, + 0x06f067aa72176fba_bigui64, 0x0a637dc5a2c898a6_bigui64, 0x113f9804bef90dae_bigui64, 0x1b710b35131c471b_bigui64, + 0x28db77f523047d84_bigui64, 0x32caab7b40c72493_bigui64, 0x3c9ebe0a15c9bebc_bigui64, 0x431d67c49c100d4c_bigui64, + 0x4cc5d4becb3e42b6_bigui64, 0x597f299cfc657e2a_bigui64, 0x5fcb6fab3ad6faec_bigui64, 0x6c44198c4a475817_bigui64}; std::array input_words_var; for (int i = 0; i < 16; i++) { diff --git a/crypto3/libs/blueprint/test/mock/mocked_components.cpp b/crypto3/libs/blueprint/test/mock/mocked_components.cpp index 9433761060..3493bb64d9 100644 --- a/crypto3/libs/blueprint/test/mock/mocked_components.cpp +++ b/crypto3/libs/blueprint/test/mock/mocked_components.cpp @@ -197,10 +197,10 @@ BOOST_AUTO_TEST_SUITE(blueprint_plonk_mock_test_suite) for (std::size_t i = 0; i < 4 * random_tests_amount; i++) { \ cpp_int_type a = dist(seed_seq) * (sign_dist(seed_seq) ? 1 : -1); \ cpp_int_type b = dist(seed_seq) * (sign_dist(seed_seq) ? 1 : -1); \ - uint_type a_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(a)).backend()); \ - uint_type b_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(b)).backend()); \ + uint_type a_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(a))); \ + uint_type b_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(b))); \ cpp_int_type result = OP(a, b); \ - uint_type result_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(result)).backend()); \ + uint_type result_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(result))); \ TEST_NAME( \ a >= 0 ? 0 : 1, a_modular, \ b >= 0 ? 0 : 1, b_modular, \ @@ -278,7 +278,7 @@ void test_small_signed_absolute() { boost::random::uniform_int_distribution sign_dist(0, 1); for (std::size_t i = 0; i < 4 * random_tests_amount; i++) { cpp_int_type a = dist(seed_seq) * (sign_dist(seed_seq) ? 1 : -1); - uint_type a_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(a)).backend()); + uint_type a_modular = typename uint_type::backend_type(cpp_uint_type(boost::multiprecision::abs(a))); test_small_signed_abs( a >= 0 ? 0 : 1, a_modular, 0, a_modular); @@ -330,8 +330,7 @@ void test_big_signed_absolute() { 256u, 256u, boost::multiprecision::signed_magnitude, boost::multiprecision::unchecked>>; using cpp_uint_type = boost::multiprecision::number>; - using uint_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<256u>>; + using uint_type = nil::crypto3::multiprecision::big_uint<256u>; boost::random::mt19937 seed_seq; boost::random::uniform_int_distribution @@ -343,8 +342,8 @@ void test_big_signed_absolute() { cpp_int_type a = dist(seed_seq) * (sign_dist(seed_seq) ? 1 : -1); cpp_int_type a_first = (a & top_mask) >> 128, a_second = a & bottom_mask; - uint_type a_first_modular = typename uint_type::backend_type(cpp_uint_type(a_first).backend()); - uint_type a_second_modular = typename uint_type::backend_type(cpp_uint_type(a_second).backend()); + uint_type a_first_modular = typename uint_type::backend_type(cpp_uint_type(a_first)); + uint_type a_second_modular = typename uint_type::backend_type(cpp_uint_type(a_second)); test_big_signed_abs( a >= 0 ? 0 : 1, a_first_modular, a_second_modular, 0, a_first_modular, a_second_modular); @@ -623,12 +622,12 @@ OP_UNSIGNED_BIG_BOOL_TEST_FUNC_GEN(test_big_unsigned_greater_than_eq, test_big_u cpp_int_type b_top = (b & top_mask) >> 128; \ cpp_int_type b_bottom = b & bottom_mask; \ \ - uint_type expected_first_modular = typename uint_type::backend_type(cpp_uint_type(expected_first).backend()); \ - uint_type expected_second_modular = typename uint_type::backend_type(cpp_uint_type(expected_second).backend()); \ - uint_type a_top_modular = typename uint_type::backend_type(cpp_uint_type(a_top).backend()); \ - uint_type a_bottom_modular = typename uint_type::backend_type(cpp_uint_type(a_bottom).backend()); \ - uint_type b_top_modular = typename uint_type::backend_type(cpp_uint_type(b_top).backend()); \ - uint_type b_bottom_modular = typename uint_type::backend_type(cpp_uint_type(b_bottom).backend()); \ + uint_type expected_first_modular = typename uint_type::backend_type(cpp_uint_type(expected_first)); \ + uint_type expected_second_modular = typename uint_type::backend_type(cpp_uint_type(expected_second)); \ + uint_type a_top_modular = typename uint_type::backend_type(cpp_uint_type(a_top)); \ + uint_type a_bottom_modular = typename uint_type::backend_type(cpp_uint_type(a_bottom)); \ + uint_type b_top_modular = typename uint_type::backend_type(cpp_uint_type(b_top)); \ + uint_type b_bottom_modular = typename uint_type::backend_type(cpp_uint_type(b_bottom)); \ \ TEST_NAME(a.sign() >= 0 ? 0 : 1, a_top_modular, a_bottom_modular, \ b.sign() >= 0 ? 0 : 1, b_top_modular, b_bottom_modular, \ diff --git a/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp b/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp index 8b7c5f1e93..1ac456aed7 100644 --- a/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp +++ b/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp @@ -439,7 +439,7 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_mul_1) { typename CurveType::base_field_type::integral_type scal_integral; typename CurveType::base_field_type::value_type scal_rand; typename CurveType::base_field_type::value_type scal_max = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular256; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui256; typename CurveType::base_field_type::value_type scal_zero = 0; typename Ed25519Type::template g1_type diff --git a/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp b/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp index 9ec1de162f..ebb3c2d33f 100644 --- a/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp +++ b/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp @@ -96,8 +96,8 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_scalar_range_test1) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; typename field_type::integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular255; - typename field_type::value_type ones = 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular255; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui255; + typename field_type::value_type ones = 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui255; test_scalar_non_native_range({typename field_type::value_type(ed25519_scalar_modulus - 1)}, true); @@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_scalar_range_test_must_fail) { rand.seed(seed_seq); typename field_type::integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_cppui_modular255; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui255; typename field_type::extended_integral_type pow_bits = 1u; pow_bits <<= field_type::modulus_bits; typename field_type::integral_type ed25519_scalar_overage = pow_bits - field_type::extended_integral_type( diff --git a/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp b/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp index 8b45ddd102..c8c3c9c886 100644 --- a/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp +++ b/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp @@ -277,22 +277,22 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_dfri_linear_check_test_pallas_m_13_k_3) { constexpr std::size_t m = 13; constexpr std::size_t k = 3; constexpr std::size_t n = 7; - value_type theta = 0x17f3269be06ff6c76417c00b03b877502ec58a8292c09a689aad0de2e3e6a209_cppui_modular255; - value_type x = 0x1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a11794627_cppui_modular255; + value_type theta = 0x17f3269be06ff6c76417c00b03b877502ec58a8292c09a689aad0de2e3e6a209_bigui255; + value_type x = 0x1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a11794627_bigui255; std::array y = { - 0x109c08b6434fdac4656b1b3b9c169ea0bb3763c54a0f226544f2e7cbb07699d3_cppui_modular255, - 0x29807c67ad0e77f1cb7df52eaacda8c8aeb7323998949e1e6dc96ace49d7ffdb_cppui_modular255, - 0x1e3b7cc212edf2735ccafdfe4ed9cb66692b11ad423a6980084a7fc3fd3c174c_cppui_modular255, - 0x2597470a24d0a2cbbbc6d526352a994e8238fc24baeb88e8101812c861ac984b_cppui_modular255, - 0x1ce5a2c4753bad5ebe0a964361f32d6407d1b2b3424371d7202059510025a368_cppui_modular255, - 0x171f218f4a75c541784cc7754b0ce73200eeb37529f6d49df003e453ca9243b4_cppui_modular255, - 0xbd0de19ad7279aef43773c595c3d8b8cfd9c7469e3192e86f1f9abf3adb3ad2_cppui_modular255 + 0x109c08b6434fdac4656b1b3b9c169ea0bb3763c54a0f226544f2e7cbb07699d3_bigui255, + 0x29807c67ad0e77f1cb7df52eaacda8c8aeb7323998949e1e6dc96ace49d7ffdb_bigui255, + 0x1e3b7cc212edf2735ccafdfe4ed9cb66692b11ad423a6980084a7fc3fd3c174c_bigui255, + 0x2597470a24d0a2cbbbc6d526352a994e8238fc24baeb88e8101812c861ac984b_bigui255, + 0x1ce5a2c4753bad5ebe0a964361f32d6407d1b2b3424371d7202059510025a368_bigui255, + 0x171f218f4a75c541784cc7754b0ce73200eeb37529f6d49df003e453ca9243b4_bigui255, + 0xbd0de19ad7279aef43773c595c3d8b8cfd9c7469e3192e86f1f9abf3adb3ad2_bigui255 }; std::array xi = { - 0x3c4b5c29d2934183497c35596d868ddb8e0005397f67d2f26c91188ada9bd1c3_cppui_modular255, - 0x21ec40745cf822c5d422dc11f80a07845c4cb6ba727804c56a340f52bcfc6ace_cppui_modular255, - 0x15f359e7d0a1a4b1eff1de3a593890a472f721a83b8d7145bd1a4e830bc72298_cppui_modular255 + 0x3c4b5c29d2934183497c35596d868ddb8e0005397f67d2f26c91188ada9bd1c3_bigui255, + 0x21ec40745cf822c5d422dc11f80a07845c4cb6ba727804c56a340f52bcfc6ace_bigui255, + 0x15f359e7d0a1a4b1eff1de3a593890a472f721a83b8d7145bd1a4e830bc72298_bigui255 }; @@ -315,19 +315,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_dfri_linear_check_test_pallas_m_13_k_3) { std::vector> z(n, std::vector()); std::array, n> z_ij; - z_ij[0][0] = 0x20d25fb8470fd8fabc58145cb26ad8742c475753ae5ca5d8f3c1b44684ce4f0_cppui_modular255; - z_ij[1][0] = 0x33c5922b908b7477233c66f1794147c57e3efd2bb2521669380e8178fac300c1_cppui_modular255; - z_ij[2][0] = 0xd4c90ee14439e9196e9d185b8ca15dda515922c05ca40df31cf7f770e6aa49d_cppui_modular255; - z_ij[3][0] = 0x228cee3a770a9e2f04a8fa727b31864730a2183747a1ef6d6a2b6b0946d099a4_cppui_modular255; - z_ij[3][1] = 0x1784c045ae5ab50022bc3f598811196d5c195a66ec67b8d0aa43c45d321288bb_cppui_modular255; - z_ij[3][2] = 0x23df4e8277cb5df68d32d783b1887bfb179f15717571db08c5579894e8c0ea42_cppui_modular255; - z_ij[4][0] = 0x3806fca6f22cd78d49d22c125e67d81f6fd336faed8e8d16303309e4f9165b90_cppui_modular255; - z_ij[4][1] = 0x3e5190c6669cce05fb6b3d63156f59f100cea0ff9730894e6133407213b8fc4b_cppui_modular255; - z_ij[4][2] = 0x175df5a226a4870b5b45d0b050471dee42c433c8ecc42cab79829156528711bf_cppui_modular255; - z_ij[5][0] = 0x2e8f89d9ffb7318286019c2ff4b8eba03fa812c97243a3e636b158c25e858c70_cppui_modular255; - z_ij[5][2] = 0x29c647fa69040c8b336a6bd63fc97477441b147f4c98e6d9632ba3290f434b8d_cppui_modular255; - z_ij[6][0] = 0x2a6a12ac90b00570b8b7dcb18540363ee0d7069aab9ab74bc30e92b8c3534cf1_cppui_modular255; - z_ij[6][2] = 0xf244b829bb26edce0aed5a36c70c09c43e6e612cd9b328bbc6518f427fe5988_cppui_modular255; + z_ij[0][0] = 0x20d25fb8470fd8fabc58145cb26ad8742c475753ae5ca5d8f3c1b44684ce4f0_bigui255; + z_ij[1][0] = 0x33c5922b908b7477233c66f1794147c57e3efd2bb2521669380e8178fac300c1_bigui255; + z_ij[2][0] = 0xd4c90ee14439e9196e9d185b8ca15dda515922c05ca40df31cf7f770e6aa49d_bigui255; + z_ij[3][0] = 0x228cee3a770a9e2f04a8fa727b31864730a2183747a1ef6d6a2b6b0946d099a4_bigui255; + z_ij[3][1] = 0x1784c045ae5ab50022bc3f598811196d5c195a66ec67b8d0aa43c45d321288bb_bigui255; + z_ij[3][2] = 0x23df4e8277cb5df68d32d783b1887bfb179f15717571db08c5579894e8c0ea42_bigui255; + z_ij[4][0] = 0x3806fca6f22cd78d49d22c125e67d81f6fd336faed8e8d16303309e4f9165b90_bigui255; + z_ij[4][1] = 0x3e5190c6669cce05fb6b3d63156f59f100cea0ff9730894e6133407213b8fc4b_bigui255; + z_ij[4][2] = 0x175df5a226a4870b5b45d0b050471dee42c433c8ecc42cab79829156528711bf_bigui255; + z_ij[5][0] = 0x2e8f89d9ffb7318286019c2ff4b8eba03fa812c97243a3e636b158c25e858c70_bigui255; + z_ij[5][2] = 0x29c647fa69040c8b336a6bd63fc97477441b147f4c98e6d9632ba3290f434b8d_bigui255; + z_ij[6][0] = 0x2a6a12ac90b00570b8b7dcb18540363ee0d7069aab9ab74bc30e92b8c3534cf1_bigui255; + z_ij[6][2] = 0xf244b829bb26edce0aed5a36c70c09c43e6e612cd9b328bbc6518f427fe5988_bigui255; for(std::size_t i=0; i(public_inputs, expected_res, m, eval_map); test_dfri_linear_check(public_inputs, expected_res, m, eval_map); diff --git a/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp b/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp index 93ec69f038..381fec532c 100644 --- a/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp +++ b/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp @@ -120,7 +120,7 @@ void test_poseidon_specfic_data(){ input = {-1,-1,-1}; test_poseidon(input, calculate_expected_poseidon(input)); - typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_cppui_modular256; + typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui256; input = {threeFFF, threeFFF, threeFFF}; test_poseidon(input, calculate_expected_poseidon(input)); } diff --git a/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp b/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp index 39e6b9819f..1d26aa11d8 100644 --- a/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp +++ b/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp @@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_oracles_test) { zk::snark::pickles_proof kimchi_proof = test_proof(); typename BlueprintFieldType::value_type zeta_val = - 0x0000000000000000000000000000000062F9AE3696EA8F0A85043221DE133E32_cppui_modular256; + 0x0000000000000000000000000000000062F9AE3696EA8F0A85043221DE133E32_bigui256; zk::components::kimchi_proof_scalar proof; diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp index d0771e5598..f78f15db89 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp @@ -105,18 +105,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_cppui_modular255, // gamma - 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_cppui_modular255, // beta - 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_cppui_modular255, - 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_cppui_modular255, - 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_cppui_modular255, - 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_cppui_modular255, - 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_cppui_modular255, - 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_cppui_modular255, + 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_bigui255, // gamma + 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_bigui255, // beta + 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_bigui255, + 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_bigui255, + 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_bigui255, + 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_bigui255, + 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_bigui255, + 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_bigui255, }; typename BlueprintFieldType::value_type expected_res = - 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_cppui_modular255; + 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -132,25 +132,25 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_cppui_modular255, // gamma - 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_cppui_modular255, // beta - 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_cppui_modular255, - 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_cppui_modular255, - 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_cppui_modular255, - 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_cppui_modular255, - 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_cppui_modular255, - 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_cppui_modular255, - 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_cppui_modular255, - 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_cppui_modular255, - 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_cppui_modular255, - 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_cppui_modular255, - 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_cppui_modular255, - 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_cppui_modular255, - 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_cppui_modular255, - 0x39354121b4b606762eb088e4fed35a3aedd44feecfaebd6aecb0e508da13f0f3_cppui_modular255}; + 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_bigui255, // gamma + 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_bigui255, // beta + 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_bigui255, + 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_bigui255, + 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_bigui255, + 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_bigui255, + 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_bigui255, + 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_bigui255, + 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_bigui255, + 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_bigui255, + 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_bigui255, + 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_bigui255, + 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_bigui255, + 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_bigui255, + 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_bigui255, + 0x39354121b4b606762eb088e4fed35a3aedd44feecfaebd6aecb0e508da13f0f3_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x10fdfb2f515ec48c32c7b31b7e3039739bb22cd7bee475b5a74327ccd0dd0f6d_cppui_modular255; + 0x10fdfb2f515ec48c32c7b31b7e3039739bb22cd7bee475b5a74327ccd0dd0f6d_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -164,25 +164,25 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test2) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_cppui_modular255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_cppui_modular255, - 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_cppui_modular255, - 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_cppui_modular255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_cppui_modular255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_cppui_modular255, - 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_cppui_modular255, - 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, - 0x0_cppui_modular255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_cppui_modular255, - 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_cppui_modular255, - 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_cppui_modular255, - 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_cppui_modular255, - 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_cppui_modular255, - 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, - 0x0_cppui_modular255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, + 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_bigui255, + 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_bigui255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255, + 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_bigui255, + 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x0_bigui255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_bigui255, + 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_bigui255, + 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_bigui255, + 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_bigui255, + 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_bigui255, + 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x0_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x1fe0cedb4028c10c6fbb7984040bacd33a3644a3df6c157a7d253af03168ee8b_cppui_modular255; + 0x1fe0cedb4028c10c6fbb7984040bacd33a3644a3df6c157a7d253af03168ee8b_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -196,14 +196,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test3) { std::vector public_input = { /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_cppui_modular255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_cppui_modular255, - 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_cppui_modular255, - 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_cppui_modular255}; + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, + 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_bigui255, + 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x3df91b519c56c1661226abe86c59cd26f3a63c2dbaac2cdeecb286d4735dcbf2_cppui_modular255; + 0x3df91b519c56c1661226abe86c59cd26f3a63c2dbaac2cdeecb286d4735dcbf2_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -217,16 +217,16 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test4) { std::vector public_input = { /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_cppui_modular255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_cppui_modular255, - 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_cppui_modular255, - 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_cppui_modular255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_cppui_modular255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_cppui_modular255}; + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, + 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_bigui255, + 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_bigui255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x3368f12ac6c75aceaed6f7f2e9af9926674370ddb3d12c00c83c225cc6b88380_cppui_modular255; + 0x3368f12ac6c75aceaed6f7f2e9af9926674370ddb3d12c00c83c225cc6b88380_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -241,18 +241,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test5) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_cppui_modular255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_cppui_modular255, - 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_cppui_modular255, - 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_cppui_modular255, - 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_cppui_modular255, - 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_cppui_modular255, - 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_cppui_modular255, - 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_cppui_modular255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, + 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_bigui255, + 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_bigui255, + 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_bigui255, + 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_bigui255, + 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_bigui255, + 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x37b68c62a05782ebfe610897109adc5e0c343a4468372c305e050b4a133860d5_cppui_modular255; + 0x37b68c62a05782ebfe610897109adc5e0c343a4468372c305e050b4a133860d5_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -267,24 +267,24 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test6) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_cppui_modular255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_cppui_modular255, - 0x3a7580268e270952e70bf455392b34d33608d4291f37c778edf18a1df79b3d02_cppui_modular255, - 0x12cc7a905f5ba0f349772eccf0a4f893255895eab99b4654971beb32c3d18e4c_cppui_modular255, - 0x233de57bb49faf3747f8065836f6e150326ffbcec7f5ff84ab3ed517dff9f782_cppui_modular255, - 0x46ac9a0a0a61d85811114d1b5a59055a1476d224220100ea28aef3ff5057b36_cppui_modular255, - 0x19527a8b49c446bf75b243da6ac78d7c48e4b60c1071a4e5d369c3b46ab184d8_cppui_modular255, - 0xbfdd514782dd17a99538aab6f7c447bb39607098ff684d907d05c4ee6b47364_cppui_modular255, - 0x3cfd22f42d7f4bb00884f12035ac3b507bb19e482dd2e7787754e5cf67dd72a1_cppui_modular255, - 0x1e0fb613aca0c659711bd4c889a691aa78953f8738d6005673123c2667c3cd50_cppui_modular255, - 0x218014cf84950736b0d9c62ccb68ee90f755fc6dd0ed60a208d09da39e64bfd2_cppui_modular255, - 0x237428f92e0be38a22c6220ea2cf7b010a2eae8670f062647bebcab8506fdddc_cppui_modular255, - 0xc0af31fd4848be3dd24df1eb1681e13cb4de4395df9a3c1c8835270e4ae1699_cppui_modular255, - 0x2708b8c59416e906abec12349b0aa4bd8e4e22dfc216b1a78f82daf83aa219df_cppui_modular255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, + 0x3a7580268e270952e70bf455392b34d33608d4291f37c778edf18a1df79b3d02_bigui255, + 0x12cc7a905f5ba0f349772eccf0a4f893255895eab99b4654971beb32c3d18e4c_bigui255, + 0x233de57bb49faf3747f8065836f6e150326ffbcec7f5ff84ab3ed517dff9f782_bigui255, + 0x46ac9a0a0a61d85811114d1b5a59055a1476d224220100ea28aef3ff5057b36_bigui255, + 0x19527a8b49c446bf75b243da6ac78d7c48e4b60c1071a4e5d369c3b46ab184d8_bigui255, + 0xbfdd514782dd17a99538aab6f7c447bb39607098ff684d907d05c4ee6b47364_bigui255, + 0x3cfd22f42d7f4bb00884f12035ac3b507bb19e482dd2e7787754e5cf67dd72a1_bigui255, + 0x1e0fb613aca0c659711bd4c889a691aa78953f8738d6005673123c2667c3cd50_bigui255, + 0x218014cf84950736b0d9c62ccb68ee90f755fc6dd0ed60a208d09da39e64bfd2_bigui255, + 0x237428f92e0be38a22c6220ea2cf7b010a2eae8670f062647bebcab8506fdddc_bigui255, + 0xc0af31fd4848be3dd24df1eb1681e13cb4de4395df9a3c1c8835270e4ae1699_bigui255, + 0x2708b8c59416e906abec12349b0aa4bd8e4e22dfc216b1a78f82daf83aa219df_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x3a204699d97747058b03b75350f8969b7022230a7b6a46bb764050759b6a7363_cppui_modular255; + 0x3a204699d97747058b03b75350f8969b7022230a7b6a46bb764050759b6a7363_bigui255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp index 5ec0601eab..f038d299fc 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp @@ -106,18 +106,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_cppui_modular255, - 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_cppui_modular255, - 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_cppui_modular255, - 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_cppui_modular255, - 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_cppui_modular255, - 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_cppui_modular255, - 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_cppui_modular255, - 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_cppui_modular255, - 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_cppui_modular255}; + 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_bigui255, + 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_bigui255, + 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_bigui255, + 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_bigui255, + 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_bigui255, + 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_bigui255, + 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_bigui255, + 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_bigui255, + 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x10f04580466164e2155d833e6489f63f259071438925993668473cf36d4e3826_cppui_modular255; + 0x10f04580466164e2155d833e6489f63f259071438925993668473cf36d4e3826_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -130,24 +130,24 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_cppui_modular255, - 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_cppui_modular255, - 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_cppui_modular255, - 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_cppui_modular255, - 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_cppui_modular255, - 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_cppui_modular255, - 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_cppui_modular255, - 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_cppui_modular255, - 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_cppui_modular255, - 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_cppui_modular255, - 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_cppui_modular255, - 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_cppui_modular255, - 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_cppui_modular255, - 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_cppui_modular255, - 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_cppui_modular255}; + 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_bigui255, + 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_bigui255, + 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_bigui255, + 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_bigui255, + 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_bigui255, + 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_bigui255, + 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_bigui255, + 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_bigui255, + 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_bigui255, + 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_bigui255, + 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_bigui255, + 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_bigui255, + 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_bigui255, + 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_bigui255, + 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x3627e4bec2ef12578906bbc3d1820ad3e351949cbff1a8cf4783e82caaa4a225_cppui_modular255; + 0x3627e4bec2ef12578906bbc3d1820ad3e351949cbff1a8cf4783e82caaa4a225_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -160,27 +160,27 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_cppui_modular255, - 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_cppui_modular255, - 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_cppui_modular255, - 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_cppui_modular255, - 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_cppui_modular255, - 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_cppui_modular255, - 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_cppui_modular255, - 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_cppui_modular255, - 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_cppui_modular255, - 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_cppui_modular255, - 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_cppui_modular255, - 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_cppui_modular255, - 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_cppui_modular255, - 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_cppui_modular255, - 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_cppui_modular255, - 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_cppui_modular255, - 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_cppui_modular255, - 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_cppui_modular255}; + 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_bigui255, + 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_bigui255, + 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_bigui255, + 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_bigui255, + 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_bigui255, + 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_bigui255, + 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_bigui255, + 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_bigui255, + 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_bigui255, + 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_bigui255, + 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_bigui255, + 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_bigui255, + 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_bigui255, + 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_bigui255, + 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_bigui255, + 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_bigui255, + 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_bigui255, + 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_bigui255}; typename BlueprintFieldType::value_type expected_res = - 0x2cc334d4e4f1ba642074f6700758d854b5ae4862b5a9cb4b8f8e1fb814b767df_cppui_modular255; + 0x2cc334d4e4f1ba642074f6700758d854b5ae4862b5a9cb4b8f8e1fb814b767df_bigui255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp index 0d2c301cb9..95b6e82d21 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp @@ -135,8 +135,8 @@ void field_operations_test() { test_fri_cosets({46744073709551615}, 3, 2); test_fri_cosets({46744073709551615}, 5, 2); // more realistic data - test_fri_cosets({0xa53a16c34fb833b5_cppui_modular255}, 4, - 0x1ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd_cppui_modular255 + test_fri_cosets({0xa53a16c34fb833b5_bigui255}, 4, + 0x1ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd_bigui255 ); } diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp index c8fee7131a..0bd6b2c7d0 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp @@ -105,12 +105,12 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3c670eabac71e05f3e29255748e080b2ec288a774fdf4c3b6b7685183f2186c0_cppui_modular255, // theta - 0x6e152a2ee7cd62e55993e72b0c32aeb48241c792f48d789cbe35606a72f3c45_cppui_modular255, // C_1_0 - 0x30457a793c861dd0044f6f5bcfb8775b99dd2313c7686f120f1f334997fcbea0_cppui_modular255}; // q_2 + 0x3c670eabac71e05f3e29255748e080b2ec288a774fdf4c3b6b7685183f2186c0_bigui255, // theta + 0x6e152a2ee7cd62e55993e72b0c32aeb48241c792f48d789cbe35606a72f3c45_bigui255, // C_1_0 + 0x30457a793c861dd0044f6f5bcfb8775b99dd2313c7686f120f1f334997fcbea0_bigui255}; // q_2 typename BlueprintFieldType::value_type expected_res = - 0x274f55a187ab99ed7946f85953dc499dee73941bbfeefe80a74c0fe42d254fb4_cppui_modular255; // F + 0x274f55a187ab99ed7946f85953dc499dee73941bbfeefe80a74c0fe42d254fb4_bigui255; // F test(public_input, expected_res, {1}); test(public_input, expected_res, {1}); @@ -122,14 +122,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3b68a611d0a4896cf54a3130a166367ce9e3c02584842d117ceca4e7e5100e00_cppui_modular255, // theta - 0x775559d0e51d93ff23e78cfb5b51b797225769e058e37729fb8ed291234d62_cppui_modular255, // C_1_0 - 0x1c454f840f62d7deb28c1161f420930ccc521572e68af58150fe9fdd42246b7c_cppui_modular255, // q_1 - 0x3713eddbd6e7723d5ec49d4865af9a764ba0877d4d54659b1ad2ee3ae0efe344_cppui_modular255, // C_2_0 - 0x1e251c5521af2a481096841a65deb34bfac8a09a05096b6f83db060bbf823217_cppui_modular255}; // q_2 + 0x3b68a611d0a4896cf54a3130a166367ce9e3c02584842d117ceca4e7e5100e00_bigui255, // theta + 0x775559d0e51d93ff23e78cfb5b51b797225769e058e37729fb8ed291234d62_bigui255, // C_1_0 + 0x1c454f840f62d7deb28c1161f420930ccc521572e68af58150fe9fdd42246b7c_bigui255, // q_1 + 0x3713eddbd6e7723d5ec49d4865af9a764ba0877d4d54659b1ad2ee3ae0efe344_bigui255, // C_2_0 + 0x1e251c5521af2a481096841a65deb34bfac8a09a05096b6f83db060bbf823217_bigui255}; // q_2 typename BlueprintFieldType::value_type expected_res = - 0x1196613de39bdeef57744700e540ba900d8be069a0dc963bce25ae3b550c2a37_cppui_modular255; // F + 0x1196613de39bdeef57744700e540ba900d8be069a0dc963bce25ae3b550c2a37_bigui255; // F test(public_input, expected_res, {1, 1}); test(public_input, expected_res, {1, 1}); @@ -141,19 +141,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_cppui_modular255, // theta - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_cppui_modular255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_cppui_modular255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_cppui_modular255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_cppui_modular255, // q_3 - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_cppui_modular255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_cppui_modular255, // q_1 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_cppui_modular255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_cppui_modular255 // q_2 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255, // q_3 + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255 // q_2 }; typename BlueprintFieldType::value_type expected_res = - 0x33ceac2f8ef925e1f95a6d60334a8e4e3a9c5a925ecd73d6f8a676a5e56efc6c_cppui_modular255; // F + 0x33ceac2f8ef925e1f95a6d60334a8e4e3a9c5a925ecd73d6f8a676a5e56efc6c_bigui255; // F test(public_input, expected_res, {3, 1, 1}); test(public_input, expected_res, {3, 1, 1}); @@ -165,19 +165,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_cppui_modular255, // theta - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_cppui_modular255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_cppui_modular255, // q_1 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_cppui_modular255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_cppui_modular255, // q_2 - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_cppui_modular255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_cppui_modular255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_cppui_modular255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_cppui_modular255 // q_3 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255, // q_2 + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255 // q_3 }; typename BlueprintFieldType::value_type expected_res = - 0x1c347e1b881df3bce20b36de4249336d1e650ec283955b9d5ec16c0ab319e51a_cppui_modular255; // F + 0x1c347e1b881df3bce20b36de4249336d1e650ec283955b9d5ec16c0ab319e51a_bigui255; // F test(public_input, expected_res, {1, 1, 3}); test(public_input, expected_res, {1, 1, 3}); @@ -189,19 +189,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test3) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_cppui_modular255, // theta - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_cppui_modular255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_cppui_modular255, // q_1 - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_cppui_modular255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_cppui_modular255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_cppui_modular255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_cppui_modular255, // q_3 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_cppui_modular255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_cppui_modular255 // q_2 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255, // q_3 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255 // q_2 }; typename BlueprintFieldType::value_type expected_res = - 0x160e3212397bc43fab22922a46f77280c614ab11fc9567c4659b035d46c29827_cppui_modular255; // F + 0x160e3212397bc43fab22922a46f77280c614ab11fc9567c4659b035d46c29827_bigui255; // F test(public_input, expected_res, {1, 3, 1}); test(public_input, expected_res, {1, 3, 1}); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp index 85acc301da..3adec47976 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp @@ -102,13 +102,13 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_cppui_modular255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_cppui_modular255, // c1 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_cppui_modular255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q typename BlueprintFieldType::value_type expected_res = - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_cppui_modular255; + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -120,14 +120,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_cppui_modular255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_cppui_modular255, // c1 - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_cppui_modular255, // c2 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_cppui_modular255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255, // c2 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q typename BlueprintFieldType::value_type expected_res = - 0x1ab9e0ab4db80e2649fe1c44791b231a165329cb8e1cb3186fd42311dfb96ba7_cppui_modular255; + 0x1ab9e0ab4db80e2649fe1c44791b231a165329cb8e1cb3186fd42311dfb96ba7_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -141,15 +141,15 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test3) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_cppui_modular255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_cppui_modular255, // c1 - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_cppui_modular255, // c2 - 0x42d09cbf0dbb3ec8e566f3835b8c70cdc6ffb4ee160b7e974174cb84b656c94_cppui_modular255, // c3 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_cppui_modular255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255, // c2 + 0x42d09cbf0dbb3ec8e566f3835b8c70cdc6ffb4ee160b7e974174cb84b656c94_bigui255, // c3 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q typename BlueprintFieldType::value_type expected_res = - 0x1d8aaff35b7c1a8afe535c508bda43c907bc059ced7720df45cb83fcce35d632_cppui_modular255; + 0x1d8aaff35b7c1a8afe535c508bda43c907bc059ced7720df45cb83fcce35d632_bigui255; test(public_input, expected_res); test(public_input, expected_res); @@ -163,19 +163,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test4) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_cppui_modular255, // theta + 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_bigui255, // theta 1, // c0 - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_cppui_modular255, // c1 - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_cppui_modular255, // c2 - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_cppui_modular255, // c3 - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_cppui_modular255, // c4 - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_cppui_modular255, // c5 - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_cppui_modular255, // c6 - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_cppui_modular255, // c7 - 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_cppui_modular255}; // q + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, // c1 + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, // c2 + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, // c3 + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, // c4 + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, // c5 + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, // c6 + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, // c7 + 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_bigui255}; // q typename BlueprintFieldType::value_type expected_res = - 0xa98684e2e2f94ea94934ca0cf06778ccda845b247f2eb226eff63171181a160_cppui_modular255; + 0xa98684e2e2f94ea94934ca0cf06778ccda845b247f2eb226eff63171181a160_bigui255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp index 6625952b45..2ac5cbd108 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp @@ -199,111 +199,111 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test) { std::vector public_input = { /*theta: */ - 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_cppui_modular255, + 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_bigui255, /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_cppui_modular255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_cppui_modular255, + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, /*alpha: */ - 0x12c35108408002e011a77b1385fafa519b0c049dda69edeec76a5582aefdf679_cppui_modular255, - 0x3c43857ea745aebffbf5b5a15c1f19f6c544fc6f4c058200e8c1fcfc94be97a2_cppui_modular255, - 0xed5489c9d40c4d8a7214f245430ca28651cf789957e34a192e5a25bbe99a36f_cppui_modular255, - 0x24a490b07a66d4d3c7889869f50b54b7d45e049c959d2c7b3908127cc0166736_cppui_modular255, - 0x20082215dffd067489b93a647a77e2d063a0a020b1d1c833fac1d38127789a52_cppui_modular255, - 0x2535b195a0c7d604ab78762b644abe5eb3ce5bb9bf637954b073753c08b913ed_cppui_modular255, - 0xb4959a45c71c0be90a8a6df21b547679746452337f85337087f18498e96b39f_cppui_modular255, - 0x1009604828f0b005c222820f19d2586ce28ff73d888558ea1bae36dc10923fe4_cppui_modular255, + 0x12c35108408002e011a77b1385fafa519b0c049dda69edeec76a5582aefdf679_bigui255, + 0x3c43857ea745aebffbf5b5a15c1f19f6c544fc6f4c058200e8c1fcfc94be97a2_bigui255, + 0xed5489c9d40c4d8a7214f245430ca28651cf789957e34a192e5a25bbe99a36f_bigui255, + 0x24a490b07a66d4d3c7889869f50b54b7d45e049c959d2c7b3908127cc0166736_bigui255, + 0x20082215dffd067489b93a647a77e2d063a0a020b1d1c833fac1d38127789a52_bigui255, + 0x2535b195a0c7d604ab78762b644abe5eb3ce5bb9bf637954b073753c08b913ed_bigui255, + 0xb4959a45c71c0be90a8a6df21b547679746452337f85337087f18498e96b39f_bigui255, + 0x1009604828f0b005c222820f19d2586ce28ff73d888558ea1bae36dc10923fe4_bigui255, /*V_L: */ - 0x2f067360ee454281ed80c4bfd37b9e0140071ed383651858abb37d0d868238a2_cppui_modular255, - 0xd079c9f0f66462d4dcf74077bcf5d4e1fb62214198a22d789637d6651d840de_cppui_modular255, + 0x2f067360ee454281ed80c4bfd37b9e0140071ed383651858abb37d0d868238a2_bigui255, + 0xd079c9f0f66462d4dcf74077bcf5d4e1fb62214198a22d789637d6651d840de_bigui255, /*q_last_0: */ - 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_cppui_modular255, - 0x36041a6ee4c9d83ca3b8f282a8212e5ecd3a1304f01aeb6fc81dd055c30a115d_cppui_modular255, + 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_bigui255, + 0x36041a6ee4c9d83ca3b8f282a8212e5ecd3a1304f01aeb6fc81dd055c30a115d_bigui255, /*q_blind_0: */ - 0x143ef00c6cd28361b04c9c9e3782c1cb5e4543f1faea52c9b22a93803bed7f9d_cppui_modular255, - 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_cppui_modular255, + 0x143ef00c6cd28361b04c9c9e3782c1cb5e4543f1faea52c9b22a93803bed7f9d_bigui255, + 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_bigui255, /*L_0: */ - 0x3c8519a916c0ddd81a0992eeb1fc91bc33674d02900ba9977478c89af7e5fd37_cppui_modular255, + 0x3c8519a916c0ddd81a0992eeb1fc91bc33674d02900ba9977478c89af7e5fd37_bigui255, /*gate selectors: */ - 0x31269dc016cbeeb0720063dcd5494f9eb9348c5dd1d03c98a7ea90340c6cf4e3_cppui_modular255, - 0x3bd9fc4c03b61b7c9cdcd6636b4762f5b17dab51807d76c85fce52fc31299c1d_cppui_modular255, - 0x3f54e2a2ecf53da482d34374b94ad139a05cf74af9bec64c8482bb4e39439ee7_cppui_modular255, + 0x31269dc016cbeeb0720063dcd5494f9eb9348c5dd1d03c98a7ea90340c6cf4e3_bigui255, + 0x3bd9fc4c03b61b7c9cdcd6636b4762f5b17dab51807d76c85fce52fc31299c1d_bigui255, + 0x3f54e2a2ecf53da482d34374b94ad139a05cf74af9bec64c8482bb4e39439ee7_bigui255, /*table_ids: */ 1, 2, 3, /*lookup gate constraint lookup inputs: */ - 0x124971c6cce767192245d6688a4af4482b1c5e935bbdec7825da26763c93e6fc_cppui_modular255, - 0x3a57f30b24c9aec7984dd8bed4f52cf9497665344886c51d9bb9821309c4623b_cppui_modular255, - 0x3ebc055241d36e5d1c8afb9ef7466f8e5d01ac3d16ce2c707d78a92820e61a1c_cppui_modular255, - 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_cppui_modular255, - 0x186be39596fdb9314fbb1f081dcd7056eefe8beec42a1cf745a42863028325c2_cppui_modular255, - 0x9ea111bf6543ac23f0cb51d9ec6a57265709bf3d294df922d7b6841348c255c_cppui_modular255, - 0x2d93a78ddc155e05f452fbf35778c89283dc93503bed266bda527150a440a17b_cppui_modular255, - 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_cppui_modular255, - 0x10e3d915ddd49ca40f1011a754ef3e1e3fa146fed50413be1d8b0c2c9b1a6484_cppui_modular255, - 0x2fddfd79e3de586bd5a03b21b6592cae2ef255e993a07c77dd51d26a6afbfaa8_cppui_modular255, + 0x124971c6cce767192245d6688a4af4482b1c5e935bbdec7825da26763c93e6fc_bigui255, + 0x3a57f30b24c9aec7984dd8bed4f52cf9497665344886c51d9bb9821309c4623b_bigui255, + 0x3ebc055241d36e5d1c8afb9ef7466f8e5d01ac3d16ce2c707d78a92820e61a1c_bigui255, + 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_bigui255, + 0x186be39596fdb9314fbb1f081dcd7056eefe8beec42a1cf745a42863028325c2_bigui255, + 0x9ea111bf6543ac23f0cb51d9ec6a57265709bf3d294df922d7b6841348c255c_bigui255, + 0x2d93a78ddc155e05f452fbf35778c89283dc93503bed266bda527150a440a17b_bigui255, + 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_bigui255, + 0x10e3d915ddd49ca40f1011a754ef3e1e3fa146fed50413be1d8b0c2c9b1a6484_bigui255, + 0x2fddfd79e3de586bd5a03b21b6592cae2ef255e993a07c77dd51d26a6afbfaa8_bigui255, /*lookup tables selcetors: */ - 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_cppui_modular255, - 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_cppui_modular255, - 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_cppui_modular255, + 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_bigui255, + 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_bigui255, + 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_bigui255, /* lookup tables lookup option: */ - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_cppui_modular255, - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_cppui_modular255, - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_cppui_modular255, - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_cppui_modular255, - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_cppui_modular255, - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_cppui_modular255, - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_cppui_modular255, - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_cppui_modular255, - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_cppui_modular255, - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_cppui_modular255, - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_cppui_modular255, - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_cppui_modular255, - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_cppui_modular255, - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_cppui_modular255, + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, /*lookup tables shifted selcetors: */ - 0xb9481d2c72ffdac988d67079b8eeb9a17a0883db91507b650af1fb2992cdd7d_cppui_modular255, - 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_cppui_modular255, - 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_cppui_modular255, + 0xb9481d2c72ffdac988d67079b8eeb9a17a0883db91507b650af1fb2992cdd7d_bigui255, + 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_bigui255, + 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_bigui255, /* lookup tables shifted lookup option: */ - 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_cppui_modular255, - 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_cppui_modular255, - 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_cppui_modular255, - 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_cppui_modular255, - 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_cppui_modular255, - 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_cppui_modular255, - 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_cppui_modular255, - 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_cppui_modular255, - 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_cppui_modular255, - 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_cppui_modular255, - 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_cppui_modular255, - 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_cppui_modular255, - 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_cppui_modular255, - 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_cppui_modular255, + 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_bigui255, + 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_bigui255, + 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_bigui255, + 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_bigui255, + 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_bigui255, + 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_bigui255, + 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_bigui255, + 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_bigui255, + 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_bigui255, + 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_bigui255, + 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_bigui255, + 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_bigui255, + 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_bigui255, + 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_bigui255, /* sorted :*/ - 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_cppui_modular255, - 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_cppui_modular255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_cppui_modular255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_cppui_modular255, - 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_cppui_modular255, - 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, - 0x0_cppui_modular255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_cppui_modular255, - 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_cppui_modular255, - 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_cppui_modular255, - 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_cppui_modular255, - 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_cppui_modular255, - 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, - 0x0_cppui_modular255, 0x2187d355d7ebd8be30402d16877e181cca486f51fad291095b33096277e13e_cppui_modular255, - 0x1ef8272e914c2ccd659341031794f603a21dcf3ac35d2e0a9c26bf8881c1ea18_cppui_modular255, - 0x36954d713e9209b0975b87b6b3d51d89ddf76338178177a0b5a503dad5bebd9c_cppui_modular255, - 0x169244a31230525091fa126d82a977e8a7c65705d7aacf73cc28732ed1447f71_cppui_modular255, - 0x28395c6c442a250e83922de639e4296d8925f96f2f0ac1fcd6c129391c76b423_cppui_modular255, - 0x189d2fbb6f71ef06571eeed614cbd374257fb5205ca63b28a5414d3997c1ae4e_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255}; + 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_bigui255, + 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_bigui255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255, + 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_bigui255, + 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x0_bigui255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_bigui255, + 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_bigui255, + 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_bigui255, + 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_bigui255, + 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_bigui255, + 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x0_bigui255, 0x2187d355d7ebd8be30402d16877e181cca486f51fad291095b33096277e13e_bigui255, + 0x1ef8272e914c2ccd659341031794f603a21dcf3ac35d2e0a9c26bf8881c1ea18_bigui255, + 0x36954d713e9209b0975b87b6b3d51d89ddf76338178177a0b5a503dad5bebd9c_bigui255, + 0x169244a31230525091fa126d82a977e8a7c65705d7aacf73cc28732ed1447f71_bigui255, + 0x28395c6c442a250e83922de639e4296d8925f96f2f0ac1fcd6c129391c76b423_bigui255, + 0x189d2fbb6f71ef06571eeed614cbd374257fb5205ca63b28a5414d3997c1ae4e_bigui255, 0x0_bigui255, 0x0_bigui255}; std::array expected_res = { - 0x3fb663ded7ac8eb4b399cf60ec20e4a5e51e1d2fe3fc28759f012f13fac238a7_cppui_modular255, - 0x5f511600d82c0f86b86133984c868d32994819f499e0403b5eb708129de72ae_cppui_modular255, - 0x19278da4bf5d19e98a445ebadc0910733d4ad48527b3417af89b9571a7b886c4_cppui_modular255, - 0x20faeea92ea55a96f57dea87d5ce112778185cb59ef6a1252242d571d1a3f3aa_cppui_modular255}; // F + 0x3fb663ded7ac8eb4b399cf60ec20e4a5e51e1d2fe3fc28759f012f13fac238a7_bigui255, + 0x5f511600d82c0f86b86133984c868d32994819f499e0403b5eb708129de72ae_bigui255, + 0x19278da4bf5d19e98a445ebadc0910733d4ad48527b3417af89b9571a7b886c4_bigui255, + 0x20faeea92ea55a96f57dea87d5ce112778185cb59ef6a1252242d571d1a3f3aa_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -332,81 +332,81 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test1) { std::vector public_input = { /*theta: */ - 0x1bfbff1c2f23e10837c97d97f72c907607f1bcfd3b4700ee2b6781dfc732fbca_cppui_modular255, + 0x1bfbff1c2f23e10837c97d97f72c907607f1bcfd3b4700ee2b6781dfc732fbca_bigui255, /*beta: */ - 0x314d7748efea79faaa93c1b943ce278d30e412a8a293df7f21674ac0da207ddf_cppui_modular255, + 0x314d7748efea79faaa93c1b943ce278d30e412a8a293df7f21674ac0da207ddf_bigui255, /*gamma: */ - 0xc4b0a8e57586aeb49fa3282f7d4584da1b8c127ae316a599a37654c83577aac_cppui_modular255, + 0xc4b0a8e57586aeb49fa3282f7d4584da1b8c127ae316a599a37654c83577aac_bigui255, /*alpha: */ - 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_cppui_modular255, - 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_cppui_modular255, - 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_cppui_modular255, - 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_cppui_modular255, - 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_cppui_modular255, - 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_cppui_modular255, + 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_bigui255, + 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_bigui255, + 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_bigui255, + 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_bigui255, + 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_bigui255, + 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_bigui255, /*V_L: */ - 0x2f9124776b548d7c11e42c640a80bac1629a259098c027712ac5c8d03861f9a1_cppui_modular255, - 0x26e20a54731d9020cd3a49f4f93647a9fc6c4220c04c12252381b38822bde8ff_cppui_modular255, + 0x2f9124776b548d7c11e42c640a80bac1629a259098c027712ac5c8d03861f9a1_bigui255, + 0x26e20a54731d9020cd3a49f4f93647a9fc6c4220c04c12252381b38822bde8ff_bigui255, /*q_last_0: */ - 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_cppui_modular255, - 0x55b0e97fa86bdb951a6f982ebb8e625911af5d675ae321772de8859ef16759_cppui_modular255, + 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_bigui255, + 0x55b0e97fa86bdb951a6f982ebb8e625911af5d675ae321772de8859ef16759_bigui255, /*q_blind_0: */ - 0x15cb10dc31dd9dd99205932dc89d5f4cc9d516dd93c82c005e49eb276a565fc3_cppui_modular255, - 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_cppui_modular255, + 0x15cb10dc31dd9dd99205932dc89d5f4cc9d516dd93c82c005e49eb276a565fc3_bigui255, + 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_bigui255, /*L_0: */ - 0x3e480b88f7e13e682fbd0e71b75ae9b7e779f1e5513868152c6cacece130159_cppui_modular255, + 0x3e480b88f7e13e682fbd0e71b75ae9b7e779f1e5513868152c6cacece130159_bigui255, /*gate selectors: */ - 0x265031146d81d8f888bd86840686b200aad9dd7480f5400d51e1cbe59bf34a51_cppui_modular255, - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_cppui_modular255, + 0x265031146d81d8f888bd86840686b200aad9dd7480f5400d51e1cbe59bf34a51_bigui255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, /*table_ids: */ 1, 2, 2, /*lookup gate constraint lookup inputs: */ - 0x38cf0677a1def0c0aebaa6d9df9a338e213824e22eaae2279d8e824189bcc666_cppui_modular255, - 0x1bc6cc84db93e32cdcb39fcf0b737ce973ec99e2139941a1eaf10e1f4358f9bb_cppui_modular255, - 0x277581609fba694550ec7d87c8d3c92fdaf392f7303ff5e4d26ad9e187c2a4af_cppui_modular255, + 0x38cf0677a1def0c0aebaa6d9df9a338e213824e22eaae2279d8e824189bcc666_bigui255, + 0x1bc6cc84db93e32cdcb39fcf0b737ce973ec99e2139941a1eaf10e1f4358f9bb_bigui255, + 0x277581609fba694550ec7d87c8d3c92fdaf392f7303ff5e4d26ad9e187c2a4af_bigui255, /*lookup tables selcetors: */ - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_cppui_modular255, - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_cppui_modular255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, /* lookup tables lookup option: */ - 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_cppui_modular255, - 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_cppui_modular255, - 0x3fcbb4a2a370463d52277fd6f5ed1ad2b814a3c19bad97c660a2c1d638c348ec_cppui_modular255, - 0x1d0c444e682d3cd84514835b04cc28bd46f35621d6c6dbea5e34e783a6836b9a_cppui_modular255, + 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_bigui255, + 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_bigui255, + 0x3fcbb4a2a370463d52277fd6f5ed1ad2b814a3c19bad97c660a2c1d638c348ec_bigui255, + 0x1d0c444e682d3cd84514835b04cc28bd46f35621d6c6dbea5e34e783a6836b9a_bigui255, /*lookup tables shifted selcetors: */ - 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_cppui_modular255, - 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_cppui_modular255, + 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_bigui255, + 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_bigui255, /* lookup tables shifted lookup option: */ - 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_cppui_modular255, - 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_cppui_modular255, - 0x39729f1872018851ef8eb0a3706b37dc0aa16a8f3988602e73d9376435d7c326_cppui_modular255, - 0x7be020326311d5b6ba5130e1d85ab6ae573fa30f2218b4d10325204dc16a399_cppui_modular255, + 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_bigui255, + 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_bigui255, + 0x39729f1872018851ef8eb0a3706b37dc0aa16a8f3988602e73d9376435d7c326_bigui255, + 0x7be020326311d5b6ba5130e1d85ab6ae573fa30f2218b4d10325204dc16a399_bigui255, /* sorted :*/ - 0x144cf6b94befcde04ca399aa28f7c19b9c7abe4516b149d51c979578c26132aa_cppui_modular255, - 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_cppui_modular255, - 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_cppui_modular255, - 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_cppui_modular255, - 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_cppui_modular255, - 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_cppui_modular255, - 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_cppui_modular255, - 0x2be0a5cb81a428769c7a00a5c286d190daa41649ce8cc80dd48da8ddb6541ff4_cppui_modular255, - 0x37822189c5f080b02ce93fd126be0cd976149faf2c698a05f8e67716c95fff2c_cppui_modular255, - 0x3c107fd152981cf471acbcec2bc52731776ee7572a0358668751955be7ebe5e3_cppui_modular255, - 0x20a347ef86111d08804823c1e81f6c7bffa4c768533e19f86bbd4dacb9539fb5_cppui_modular255, - 0x22e3fb00764626ac8e7f5765869236b03c60e073c00bfd01e63a662ab7a66199_cppui_modular255, - 0x3f4bda0c68abd98d7b543381553ac4523dc3510eb347a1072a08246a7a454491_cppui_modular255, - 0x44ac8e5824fe8aa17842a4a4fe23aadcbbc09f07b02c60df78e22fcb4bcec46_cppui_modular255, - 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_cppui_modular255, - 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_cppui_modular255, - 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_cppui_modular255, - 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_cppui_modular255, - 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_cppui_modular255, - 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_cppui_modular255}; + 0x144cf6b94befcde04ca399aa28f7c19b9c7abe4516b149d51c979578c26132aa_bigui255, + 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_bigui255, + 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_bigui255, + 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_bigui255, + 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_bigui255, + 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_bigui255, + 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_bigui255, + 0x2be0a5cb81a428769c7a00a5c286d190daa41649ce8cc80dd48da8ddb6541ff4_bigui255, + 0x37822189c5f080b02ce93fd126be0cd976149faf2c698a05f8e67716c95fff2c_bigui255, + 0x3c107fd152981cf471acbcec2bc52731776ee7572a0358668751955be7ebe5e3_bigui255, + 0x20a347ef86111d08804823c1e81f6c7bffa4c768533e19f86bbd4dacb9539fb5_bigui255, + 0x22e3fb00764626ac8e7f5765869236b03c60e073c00bfd01e63a662ab7a66199_bigui255, + 0x3f4bda0c68abd98d7b543381553ac4523dc3510eb347a1072a08246a7a454491_bigui255, + 0x44ac8e5824fe8aa17842a4a4fe23aadcbbc09f07b02c60df78e22fcb4bcec46_bigui255, + 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_bigui255, + 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_bigui255, + 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_bigui255, + 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_bigui255, + 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_bigui255, + 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_bigui255}; std::array expected_res = { - 0x35e69c5ddd12ba21112c825dbece7df98c7e250b0c4e4517a8aa79f0925499b0_cppui_modular255, - 0x246009173489a2c898257f798838fbbf15099b5e311b765e0114cbb017472baa_cppui_modular255, - 0x1f4800182b9b832ceaca69367a60809745976e7793157079f305358ecc0d1034_cppui_modular255, - 0x3784c3bbe15ea3db50780f6d73698cd40e98f82aafdc6dfd62f7d3f29aa4f1ff_cppui_modular255}; // F + 0x35e69c5ddd12ba21112c825dbece7df98c7e250b0c4e4517a8aa79f0925499b0_bigui255, + 0x246009173489a2c898257f798838fbbf15099b5e311b765e0114cbb017472baa_bigui255, + 0x1f4800182b9b832ceaca69367a60809745976e7793157079f305358ecc0d1034_bigui255, + 0x3784c3bbe15ea3db50780f6d73698cd40e98f82aafdc6dfd62f7d3f29aa4f1ff_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -435,54 +435,54 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test2) { std::vector public_input = { /*theta: */ - 0x1d7f68089e58314bd0fd09de62903aa5ec3268b574f97bf7cad8e1af15952f05_cppui_modular255, + 0x1d7f68089e58314bd0fd09de62903aa5ec3268b574f97bf7cad8e1af15952f05_bigui255, /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_cppui_modular255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_cppui_modular255, + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, /*alpha: */ - 0xc5f37c144b3d9a3727c15cb2860927aa1852b09741fa40473fc9eb1787dc89e_cppui_modular255, + 0xc5f37c144b3d9a3727c15cb2860927aa1852b09741fa40473fc9eb1787dc89e_bigui255, /*V_L: */ - 0x3d71d8822355d24ec28a4689490af52a0edec77b1a1e1a336b00136ca5b2aa55_cppui_modular255, - 0x39bfbccba576b46aadd07a1269e2167a8af30ee2f5b63d18da633976f8d39b90_cppui_modular255, + 0x3d71d8822355d24ec28a4689490af52a0edec77b1a1e1a336b00136ca5b2aa55_bigui255, + 0x39bfbccba576b46aadd07a1269e2167a8af30ee2f5b63d18da633976f8d39b90_bigui255, /*q_last_0: */ - 0x289716269efe8d211ed1c4b73cf3a1a8a92c4f35b60c88610e2a2274a9462e4d_cppui_modular255, - 0x3938ee6f665648111b1fb38692685fc58d13dd96eb282fa132df606fc13c24ff_cppui_modular255, + 0x289716269efe8d211ed1c4b73cf3a1a8a92c4f35b60c88610e2a2274a9462e4d_bigui255, + 0x3938ee6f665648111b1fb38692685fc58d13dd96eb282fa132df606fc13c24ff_bigui255, /*q_blind_0: */ - 0x2ce4873d86986fd9fd9f80e3d17f77086d77fa3600ffcc14a5b151735026659_cppui_modular255, - 0x1d9d793626a197fb1ca1b02a9283241f3de2f6291d8e3009ef5c5a2f90ccb87b_cppui_modular255, + 0x2ce4873d86986fd9fd9f80e3d17f77086d77fa3600ffcc14a5b151735026659_bigui255, + 0x1d9d793626a197fb1ca1b02a9283241f3de2f6291d8e3009ef5c5a2f90ccb87b_bigui255, /*L_0: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_cppui_modular255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, /*gate selectors: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_cppui_modular255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, 0x0_bigui255, 0x0_bigui255, /*lookup tables selcetors: */ - 0x1835a3d6c64d2cbc4854ed08838c5cb178c38be251bc63a735bc4624ef775382_cppui_modular255, + 0x1835a3d6c64d2cbc4854ed08838c5cb178c38be251bc63a735bc4624ef775382_bigui255, /* lookup tables lookup option: */ - 0x3d3c325d1c415801ca4b9f57fe82a5e5ee1dd4f0cd544d2bac86cf6507d1411b_cppui_modular255, - 0x1af97179aa0bd4ba7e094db08509b6cbacec4fed8db50f972262a7ace7a61268_cppui_modular255, - 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_cppui_modular255, + 0x3d3c325d1c415801ca4b9f57fe82a5e5ee1dd4f0cd544d2bac86cf6507d1411b_bigui255, + 0x1af97179aa0bd4ba7e094db08509b6cbacec4fed8db50f972262a7ace7a61268_bigui255, + 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_bigui255, /*lookup tables shifted selcetors: */ - 0x1b61b2f62241a3d026348fb3f38c07218775858811553d73a6f5c9de607b465e_cppui_modular255, + 0x1b61b2f62241a3d026348fb3f38c07218775858811553d73a6f5c9de607b465e_bigui255, /* lookup tables shifted lookup option: */ - 0x175e6f086c5693df7708a3e28771c101266b8e2e2f291fe92d4e5ae919e62a42_cppui_modular255, - 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_cppui_modular255, - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_cppui_modular255, + 0x175e6f086c5693df7708a3e28771c101266b8e2e2f291fe92d4e5ae919e62a42_bigui255, + 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_bigui255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, /* sorted :*/ - 0xaae87d4c1a9c5f67fd8d128e52c19df71cae8ae988616ccdf64469b1f622167_cppui_modular255, - 0x88ac88639b105ff6b4c74b858b9a6956b54ec13dc00aa5db193d934078a6744_cppui_modular255, - 0x22cf6baa70e28b08de79a41bffe3ba33dff26ef9269dee9488688f53652a3f6c_cppui_modular255, - 0x3ad0b47143a7797996a7583b7b976d1d65dd0dfb82c24e3095d5ad597451ebd8_cppui_modular255, - 0x2882c884e7588cb74da62fb359b02d5143f2eff9d3e475112caee5f237f5265c_cppui_modular255}; + 0xaae87d4c1a9c5f67fd8d128e52c19df71cae8ae988616ccdf64469b1f622167_bigui255, + 0x88ac88639b105ff6b4c74b858b9a6956b54ec13dc00aa5db193d934078a6744_bigui255, + 0x22cf6baa70e28b08de79a41bffe3ba33dff26ef9269dee9488688f53652a3f6c_bigui255, + 0x3ad0b47143a7797996a7583b7b976d1d65dd0dfb82c24e3095d5ad597451ebd8_bigui255, + 0x2882c884e7588cb74da62fb359b02d5143f2eff9d3e475112caee5f237f5265c_bigui255}; std::array expected_res = { - 0x1d38affafcaea87529bfbd1eecfb8bdfec63c8477ef34d81ed7524a4b3dfd0ee_cppui_modular255, - 0x1517c78abe81de6b6ab6cea789d87b139ae198de67059be4da160d4eef47a120_cppui_modular255, - 0x1c6d84769c65a19b6291825efc7e31c970629504b4c88816a90e7d339ebe2252_cppui_modular255, - 0x3c74bf9104f97f4019d75b317c1df2629f1f421002b7abc02344d53707b21de2_cppui_modular255}; // F + 0x1d38affafcaea87529bfbd1eecfb8bdfec63c8477ef34d81ed7524a4b3dfd0ee_bigui255, + 0x1517c78abe81de6b6ab6cea789d87b139ae198de67059be4da160d4eef47a120_bigui255, + 0x1c6d84769c65a19b6291825efc7e31c970629504b4c88816a90e7d339ebe2252_bigui255, + 0x3c74bf9104f97f4019d75b317c1df2629f1f421002b7abc02344d53707b21de2_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -511,54 +511,54 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test3) { std::vector public_input = { /*theta: */ - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, /*beta: */ - 0x234beb2f67e10c0b52a8162be56be6d0b441bfb15b18ea41167ff3eb6f07160e_cppui_modular255, + 0x234beb2f67e10c0b52a8162be56be6d0b441bfb15b18ea41167ff3eb6f07160e_bigui255, /*gamma: */ - 0x1855e317848ad8aa18904176c2af32d853dfc7698d97dc19b608992e6bdaa052_cppui_modular255, + 0x1855e317848ad8aa18904176c2af32d853dfc7698d97dc19b608992e6bdaa052_bigui255, /*alpha: */ - 0x17f36241082dc5dc4e12968736300a389c2cbab471ace605aa7eb8d1cc91016f_cppui_modular255, + 0x17f36241082dc5dc4e12968736300a389c2cbab471ace605aa7eb8d1cc91016f_bigui255, /*V_L: */ - 0x2aad0ea7357d6d6bc3e696cb9f53a669b36ef1888fd3daefda299547d5222873_cppui_modular255, - 0x20d25dca706ce16e69797886802260ca4dbfbde1dbc488d97c44af1b752dc2cb_cppui_modular255, + 0x2aad0ea7357d6d6bc3e696cb9f53a669b36ef1888fd3daefda299547d5222873_bigui255, + 0x20d25dca706ce16e69797886802260ca4dbfbde1dbc488d97c44af1b752dc2cb_bigui255, /*q_last_0: */ - 0x30895ee54f09f37d02e99a406c6c8af394e4dd638575bb48bb97498bea211940_cppui_modular255, - 0x2afc6ee2bd64a76ce5d5a2345bed6c99dd4452d7d1712321e497c67b3906a86c_cppui_modular255, + 0x30895ee54f09f37d02e99a406c6c8af394e4dd638575bb48bb97498bea211940_bigui255, + 0x2afc6ee2bd64a76ce5d5a2345bed6c99dd4452d7d1712321e497c67b3906a86c_bigui255, /*q_blind_0: */ - 0x31849db7e2ccf46d25b15a478e4da18972e88efdeccd4525110e636f945a2b3c_cppui_modular255, - 0x16c598e3d182c4be8e8c706fd77a79e03918b7cd335d74768864041a54a195eb_cppui_modular255, + 0x31849db7e2ccf46d25b15a478e4da18972e88efdeccd4525110e636f945a2b3c_bigui255, + 0x16c598e3d182c4be8e8c706fd77a79e03918b7cd335d74768864041a54a195eb_bigui255, /*L_0: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_cppui_modular255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, /*gate selectors: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_cppui_modular255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_cppui_modular255, 0x0_cppui_modular255, 0x0_cppui_modular255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, 0x0_bigui255, 0x0_bigui255, /*lookup tables selcetors: */ - 0x3aafabf9cb4dee6fcf3597fa74684696bc5c1e6e64ebc113875c558ab7822c55_cppui_modular255, + 0x3aafabf9cb4dee6fcf3597fa74684696bc5c1e6e64ebc113875c558ab7822c55_bigui255, /* lookup tables lookup option: */ - 0x334125c610355fc7c5f126ca247e9a5233590241e3050c6a97c4f3c942db3c7a_cppui_modular255, - 0x76e8633bb188ea8094471304fe9ac4489031c2c81e6b4a8ef9761c174a6efdb_cppui_modular255, - 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_cppui_modular255, + 0x334125c610355fc7c5f126ca247e9a5233590241e3050c6a97c4f3c942db3c7a_bigui255, + 0x76e8633bb188ea8094471304fe9ac4489031c2c81e6b4a8ef9761c174a6efdb_bigui255, + 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_bigui255, /*lookup tables shifted selcetors: */ - 0x32f5948010c470a8f18f6943a95866e981c20bbad832c7c31a4a1f50487e131c_cppui_modular255, + 0x32f5948010c470a8f18f6943a95866e981c20bbad832c7c31a4a1f50487e131c_bigui255, /* lookup tables shifted lookup option: */ - 0x2ab0dd9cbdf3b84e1173e4ade0c739312bad5c50c69ede7a671cf2023ea97f0e_cppui_modular255, - 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_cppui_modular255, - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_cppui_modular255, + 0x2ab0dd9cbdf3b84e1173e4ade0c739312bad5c50c69ede7a671cf2023ea97f0e_bigui255, + 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_bigui255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, /* sorted :*/ - 0x309c3f5b27a9decbc857a77c4de0dcf924ab52beef5f1fe1478b4d5f0cdea83d_cppui_modular255, - 0x2f84548fee17235fa8b337133a77b4325accc997229273a513d7eeb2c26d8c72_cppui_modular255, - 0x3c3a027f046e121eb28f3f3a8c595f722b5711aca301ac25563a0bc13f600a8c_cppui_modular255, - 0x3aa7d1881a22a4408949c2b9e4ad31bba1329e386882f6454c8070c3673f2783_cppui_modular255, - 0xf47f8092f969b60daabd4cb1ef68b595a76c42fdc9e217912e4ced2f7dcad3a_cppui_modular255}; + 0x309c3f5b27a9decbc857a77c4de0dcf924ab52beef5f1fe1478b4d5f0cdea83d_bigui255, + 0x2f84548fee17235fa8b337133a77b4325accc997229273a513d7eeb2c26d8c72_bigui255, + 0x3c3a027f046e121eb28f3f3a8c595f722b5711aca301ac25563a0bc13f600a8c_bigui255, + 0x3aa7d1881a22a4408949c2b9e4ad31bba1329e386882f6454c8070c3673f2783_bigui255, + 0xf47f8092f969b60daabd4cb1ef68b595a76c42fdc9e217912e4ced2f7dcad3a_bigui255}; std::array expected_res = { - 0xed0fd5a4c7353bbe05c6b605c83fbec891cdf62c9e137b630aea8fc23eba213_cppui_modular255, - 0x2730aed0d40e486fefa62d17dceffdd430ddd4e1129876f1be75b0440887f59a_cppui_modular255, - 0x509b68f48912d1abc42fead48c7aae0adc49dfc05aafcabbcd1b4a84a81822b_cppui_modular255, - 0x126cb3995ab0d911bb988e50df2ece7ba3d22d3fd272421c29579d7c091bbea4_cppui_modular255}; // F + 0xed0fd5a4c7353bbe05c6b605c83fbec891cdf62c9e137b630aea8fc23eba213_bigui255, + 0x2730aed0d40e486fefa62d17dceffdd430ddd4e1129876f1be75b0440887f59a_bigui255, + 0x509b68f48912d1abc42fead48c7aae0adc49dfc05aafcabbcd1b4a84a81822b_bigui255, + 0x126cb3995ab0d911bb988e50df2ece7ba3d22d3fd272421c29579d7c091bbea4_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -587,56 +587,56 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test4) { std::vector public_input = { /*theta: */ - 0x3570e3894c1215e257f32b60a2506ab1bb838dd71e5bdd070aeea75eef5c04e1_cppui_modular255, + 0x3570e3894c1215e257f32b60a2506ab1bb838dd71e5bdd070aeea75eef5c04e1_bigui255, /*beta: */ - 0x4110a75d7bb3b6119d90555bef2ef98a5cc6d02b863d166a8478e7db7d097b7_cppui_modular255, + 0x4110a75d7bb3b6119d90555bef2ef98a5cc6d02b863d166a8478e7db7d097b7_bigui255, /*gamma: */ - 0xd8c6a785dd97b0298dec35c05b9a644434fb8ffb8fd571b0efa28269166320f_cppui_modular255, + 0xd8c6a785dd97b0298dec35c05b9a644434fb8ffb8fd571b0efa28269166320f_bigui255, /*alpha: */ - 0x22c705f52e10b6f5c581348c05068b813972db6286d46fe377bc0e5cd43b6986_cppui_modular255, + 0x22c705f52e10b6f5c581348c05068b813972db6286d46fe377bc0e5cd43b6986_bigui255, /*V_L: */ - 0xfed12cbd566c5b8f2643428652eb43c7bc927475b69c7a4e24deacb830e18b2_cppui_modular255, - 0x19e5f35744d2e897dc93a79eb0ad4840205abcb9f75a7bbc25c82c09d7d12b86_cppui_modular255, + 0xfed12cbd566c5b8f2643428652eb43c7bc927475b69c7a4e24deacb830e18b2_bigui255, + 0x19e5f35744d2e897dc93a79eb0ad4840205abcb9f75a7bbc25c82c09d7d12b86_bigui255, /*q_last_0: */ - 0x25f7509bea7b2d56c9ff4f491e4414772c978dca237a1fae98d9f51bf31ae22d_cppui_modular255, - 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_cppui_modular255, + 0x25f7509bea7b2d56c9ff4f491e4414772c978dca237a1fae98d9f51bf31ae22d_bigui255, + 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_bigui255, /*q_blind_0: */ - 0x23b533ff1c373758f4acbd22122f1c0262a368e2b7fe16da8407f08650e476b3_cppui_modular255, - 0x36b42752f807b80ecc9b48c46f7af88581f8a1d01062d7b6599c88e22cfde5d1_cppui_modular255, + 0x23b533ff1c373758f4acbd22122f1c0262a368e2b7fe16da8407f08650e476b3_bigui255, + 0x36b42752f807b80ecc9b48c46f7af88581f8a1d01062d7b6599c88e22cfde5d1_bigui255, /*L_0: */ - 0x3b34f6cecb7a7e839ae09301afc44b95407a20905b8a14be97abd9f4d8d9173e_cppui_modular255, + 0x3b34f6cecb7a7e839ae09301afc44b95407a20905b8a14be97abd9f4d8d9173e_bigui255, /*gate selectors: */ - 0x2b041988e0bcf922cb877fb2c7b9c78f089b71c49697abfb91c120c7c2eba5a3_cppui_modular255, + 0x2b041988e0bcf922cb877fb2c7b9c78f089b71c49697abfb91c120c7c2eba5a3_bigui255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x216a008a9b4cb540a650f5b8ce4ffa32ed13b0b36d772aa4b44c34e7089b30ec_cppui_modular255, - 0xf34378a7a7d68ec55dc448195fe4d8230e3e586f8d33e253fa06b55c9bb2c81_cppui_modular255, - 0x3f89dc06cbc9ed36f7c9eb31a5ba50c08c81b20e3cc6df6392088d3e70560457_cppui_modular255, + 0x216a008a9b4cb540a650f5b8ce4ffa32ed13b0b36d772aa4b44c34e7089b30ec_bigui255, + 0xf34378a7a7d68ec55dc448195fe4d8230e3e586f8d33e253fa06b55c9bb2c81_bigui255, + 0x3f89dc06cbc9ed36f7c9eb31a5ba50c08c81b20e3cc6df6392088d3e70560457_bigui255, /*lookup tables selcetors: */ - 0x3b1e84962dd31ccca67360931fc883f1971eb3b6e4e4a00b16f9d32fe3278fe6_cppui_modular255, + 0x3b1e84962dd31ccca67360931fc883f1971eb3b6e4e4a00b16f9d32fe3278fe6_bigui255, /* lookup tables lookup option: */ - 0x2270b42c8a18543699ab4604e78e1fa874b8bbd2921a33b51ec991ce9917dc3c_cppui_modular255, - 0x3feea6bec6d7e5cfec0942e3cd3ad1b016583f8dae822d4928482006c3edc444_cppui_modular255, - 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_cppui_modular255, + 0x2270b42c8a18543699ab4604e78e1fa874b8bbd2921a33b51ec991ce9917dc3c_bigui255, + 0x3feea6bec6d7e5cfec0942e3cd3ad1b016583f8dae822d4928482006c3edc444_bigui255, + 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_bigui255, /*lookup tables shifted selcetors: */ - 0x1b436824b0657adcb1724930a2505ce4bb0c54429299e1770e7b7a0f127e45f_cppui_modular255, + 0x1b436824b0657adcb1724930a2505ce4bb0c54429299e1770e7b7a0f127e45f_bigui255, /* lookup tables shifted lookup option: */ - 0x3920d125f461b2c1993aeae529f95de7da14a84e2df91eec971d5994c7541af9_cppui_modular255, - 0x3b2fddd766fb36fcba6a1daf528db241a30d0d253faf6bdd87dee4161f39cba3_cppui_modular255, - 0x2dd16f49dbd11094236e7703222655f02d5ddec78d6f0f3a1365fe24ce3f1979_cppui_modular255, + 0x3920d125f461b2c1993aeae529f95de7da14a84e2df91eec971d5994c7541af9_bigui255, + 0x3b2fddd766fb36fcba6a1daf528db241a30d0d253faf6bdd87dee4161f39cba3_bigui255, + 0x2dd16f49dbd11094236e7703222655f02d5ddec78d6f0f3a1365fe24ce3f1979_bigui255, /* sorted :*/ - 0x29caaf2bb1ed8d76799585de1615640b5e860512b975eddc1ccc07f3c98b7020_cppui_modular255, - 0x3dec9024d47503f3c555ecc92ff68f5341be354cfb6f996d3891259b01f9b447_cppui_modular255, - 0x2f5a6a904d8e435c78790bc85d1451d353480bbca304a67878b4d130098d7faa_cppui_modular255, - 0x3a5fb8b401914e92a328bc1f72fb8671d39432059ed0b4b17e457899ae244e47_cppui_modular255, - 0x561e67687c658bf77f8a1bac00def678dcd280cd0e94cb52cb4870589541c9e_cppui_modular255}; + 0x29caaf2bb1ed8d76799585de1615640b5e860512b975eddc1ccc07f3c98b7020_bigui255, + 0x3dec9024d47503f3c555ecc92ff68f5341be354cfb6f996d3891259b01f9b447_bigui255, + 0x2f5a6a904d8e435c78790bc85d1451d353480bbca304a67878b4d130098d7faa_bigui255, + 0x3a5fb8b401914e92a328bc1f72fb8671d39432059ed0b4b17e457899ae244e47_bigui255, + 0x561e67687c658bf77f8a1bac00def678dcd280cd0e94cb52cb4870589541c9e_bigui255}; std::array expected_res = { - 0x304cec1d36435a3e6b2b0d8a03d7ca470fe20f1e0664b0a87b330020abeb7790_cppui_modular255, - 0xc87379013fea37f144c3272f082dd7687a98f7531d6ecd8030e58ebe38bb21d_cppui_modular255, - 0x2db7784e371e44e5a2c8bd73f52edf1a0e24801444f312c67a41054f4367cfe4_cppui_modular255, - 0x1300ba94cabf85c2f178f39aa3322edf9db9fb27e284fd75f03fdc0f5ba3711a_cppui_modular255}; // F + 0x304cec1d36435a3e6b2b0d8a03d7ca470fe20f1e0664b0a87b330020abeb7790_bigui255, + 0xc87379013fea37f144c3272f082dd7687a98f7531d6ecd8030e58ebe38bb21d_bigui255, + 0x2db7784e371e44e5a2c8bd73f52edf1a0e24801444f312c67a41054f4367cfe4_bigui255, + 0x1300ba94cabf85c2f178f39aa3322edf9db9fb27e284fd75f03fdc0f5ba3711a_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -665,56 +665,56 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test5) { std::vector public_input = { /*theta: */ - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, /*beta: */ - 0x3e13fbff8a3e86fd9f2008fad7038a4cd7f131714459e26db3dcd6d4ade21176_cppui_modular255, + 0x3e13fbff8a3e86fd9f2008fad7038a4cd7f131714459e26db3dcd6d4ade21176_bigui255, /*gamma: */ - 0x3812204b2d8a8231ea5b286ba560cb5f81d79413f41da18e1e46864c4b4f8d91_cppui_modular255, + 0x3812204b2d8a8231ea5b286ba560cb5f81d79413f41da18e1e46864c4b4f8d91_bigui255, /*alpha: */ - 0x248372a47839f741d202d4c85de0073259242acc0d885a2d6bde0962fa8a6a10_cppui_modular255, + 0x248372a47839f741d202d4c85de0073259242acc0d885a2d6bde0962fa8a6a10_bigui255, /*V_L: */ - 0x4e37933c31782d66c0562d7d9cb454160e1978332bd5bd21e5ea353b5683e17_cppui_modular255, - 0xe6354934aa089780f37b58f2a1e06d3e86abe87b914e9fd570874bb50b7d824_cppui_modular255, + 0x4e37933c31782d66c0562d7d9cb454160e1978332bd5bd21e5ea353b5683e17_bigui255, + 0xe6354934aa089780f37b58f2a1e06d3e86abe87b914e9fd570874bb50b7d824_bigui255, /*q_last_0: */ - 0x27e2f5b264645452ea918502e707d6bfbd367964a9941a43c60b4c3a1cf07a6d_cppui_modular255, - 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_cppui_modular255, + 0x27e2f5b264645452ea918502e707d6bfbd367964a9941a43c60b4c3a1cf07a6d_bigui255, + 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_bigui255, /*q_blind_0: */ - 0x207dc1c6703c47f4d2677a9d22b5067a0286f863e7d111d36141ab7c2c47cf95_cppui_modular255, - 0x640e57a8467b4ac8c5f28df2de4c22e9bfe4ebe2a38d9463c88af718fe8eff9_cppui_modular255, + 0x207dc1c6703c47f4d2677a9d22b5067a0286f863e7d111d36141ab7c2c47cf95_bigui255, + 0x640e57a8467b4ac8c5f28df2de4c22e9bfe4ebe2a38d9463c88af718fe8eff9_bigui255, /*L_0: */ - 0x216c498e3d3ac1475457bdf32d60392f8c5ba174e750103cdecad98748c8f76f_cppui_modular255, + 0x216c498e3d3ac1475457bdf32d60392f8c5ba174e750103cdecad98748c8f76f_bigui255, /*gate selectors: */ - 0x1be57e68b61a28070b21d2c655643b1ba0f3ac40f1b420dae429069f370284f4_cppui_modular255, + 0x1be57e68b61a28070b21d2c655643b1ba0f3ac40f1b420dae429069f370284f4_bigui255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x286d7641832338fb96156dc92b252e9373ebf6467885af29d34af6eeaa3f4d0f_cppui_modular255, - 0x172b41321a52e33fbc0dc04bafc25ddd93b28d1dafa4769e9a2c3e17bddbf593_cppui_modular255, - 0x66e1ce661dd815a11bad6d33497ff7c90a77ab56c90fc777203287884102451_cppui_modular255, + 0x286d7641832338fb96156dc92b252e9373ebf6467885af29d34af6eeaa3f4d0f_bigui255, + 0x172b41321a52e33fbc0dc04bafc25ddd93b28d1dafa4769e9a2c3e17bddbf593_bigui255, + 0x66e1ce661dd815a11bad6d33497ff7c90a77ab56c90fc777203287884102451_bigui255, /*lookup tables selcetors: */ - 0x1632fef8ee24a270eeaf426cc8e2e996f8741eba99e4b5e32c42909c6dfebe92_cppui_modular255, + 0x1632fef8ee24a270eeaf426cc8e2e996f8741eba99e4b5e32c42909c6dfebe92_bigui255, /* lookup tables lookup option: */ - 0x3827f3dafcadebcc13addd89f6e1fb57f23d5371cc843d18dfea03bde8f33af5_cppui_modular255, - 0x3419c210464e9866e7b872d501983124cc47c214608a54038b7f9b7b066a477b_cppui_modular255, - 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_cppui_modular255, + 0x3827f3dafcadebcc13addd89f6e1fb57f23d5371cc843d18dfea03bde8f33af5_bigui255, + 0x3419c210464e9866e7b872d501983124cc47c214608a54038b7f9b7b066a477b_bigui255, + 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_bigui255, /*lookup tables shifted selcetors: */ - 0x1f3f50955a5607029333bb249589d94c9c641209b02b1761a672322d30229f93_cppui_modular255, + 0x1f3f50955a5607029333bb249589d94c9c641209b02b1761a672322d30229f93_bigui255, /* lookup tables shifted lookup option: */ - 0x3b81c607a0e9cac79bbfc5e837079988edadb93a8afb339fa2332f4be2135594_cppui_modular255, - 0x22193ce8a7d60a0a06f6cf97c74ab8724e72f5a242a75afb39f0260e67947718_cppui_modular255, - 0x1fc7fbe92ba48f1663da984e9628b1de09d1a54bfb7a8e5a7b4ecbc7624e2487_cppui_modular255, + 0x3b81c607a0e9cac79bbfc5e837079988edadb93a8afb339fa2332f4be2135594_bigui255, + 0x22193ce8a7d60a0a06f6cf97c74ab8724e72f5a242a75afb39f0260e67947718_bigui255, + 0x1fc7fbe92ba48f1663da984e9628b1de09d1a54bfb7a8e5a7b4ecbc7624e2487_bigui255, /* sorted :*/ - 0x1ad4c042735d793d01537bad9f89a0f1dacacdc47495cd16a638e9ddf74b7f90_cppui_modular255, - 0xeef4260e7f2f40ebcf749089fb3bcc22a0d504a0c4b0b0bb581832fb8597e3d_cppui_modular255, - 0x263a119ae0c496c4a6a289302d2eb77f1acbb3cf11c71b7594b8102060192c5_cppui_modular255, - 0x3c6db664b0ff67f755a19001fdd120088a06e162e3ef0cb16dfe35095040147b_cppui_modular255, - 0x3d35e0079956b46536464e7edd6e72c1cfd8c58c07d9127ef7c79b03776e5ee3_cppui_modular255}; + 0x1ad4c042735d793d01537bad9f89a0f1dacacdc47495cd16a638e9ddf74b7f90_bigui255, + 0xeef4260e7f2f40ebcf749089fb3bcc22a0d504a0c4b0b0bb581832fb8597e3d_bigui255, + 0x263a119ae0c496c4a6a289302d2eb77f1acbb3cf11c71b7594b8102060192c5_bigui255, + 0x3c6db664b0ff67f755a19001fdd120088a06e162e3ef0cb16dfe35095040147b_bigui255, + 0x3d35e0079956b46536464e7edd6e72c1cfd8c58c07d9127ef7c79b03776e5ee3_bigui255}; std::array expected_res = { - 0x2413f12ba244014bb6d17827fdf209681c9f3a27fbce3708282075180377399d_cppui_modular255, - 0x1b8893815550e740989d0307c537ee686917e97aeedc6373cf074bb385d4b1bc_cppui_modular255, - 0x3b6b19adb84d93d44f6d20a4d2e7318130609cf9d0dbcf032265e31b92dd20ec_cppui_modular255, - 0x39ee0a3ffd9389e182c7918896bc78ba74b7af4fc8e2ae5e585b4566b0ea183_cppui_modular255}; // F + 0x2413f12ba244014bb6d17827fdf209681c9f3a27fbce3708282075180377399d_bigui255, + 0x1b8893815550e740989d0307c537ee686917e97aeedc6373cf074bb385d4b1bc_bigui255, + 0x3b6b19adb84d93d44f6d20a4d2e7318130609cf9d0dbcf032265e31b92dd20ec_bigui255, + 0x39ee0a3ffd9389e182c7918896bc78ba74b7af4fc8e2ae5e585b4566b0ea183_bigui255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp index d094704e51..9bc45614a8 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp @@ -110,30 +110,30 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_argument_verifier_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - /*.f = */ 0xad2bcf3656123a451e5ae737a10600efd60eb61a019329f54336e570a35ab9_cppui_modular255, - 0x3a229abbe186e216f2c24d215d3a14ec65f213fda941f5d4ee6894ea0f20331e_cppui_modular255, - 0x314564d4bb2dc124ebe6977105d2a16a70e5bc0a100095e28a9931be6a37770a_cppui_modular255, - 0x20b742463ddb6422a9638a1e1e024b97f67786fded20e091254f2d6a0476f847_cppui_modular255, - /*.Se = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_cppui_modular255, - 0x3512e6cbc8242f438407a36a7d6cafe0a4f03fd5aa67a2a8b6a3c9006c86a5d_cppui_modular255, - 0x1095e81fae8b4ec5194263114731f6f6338b13f2c54062d4b9132ed021ea13d1_cppui_modular255, - 0x12ed889e68b889d97e4bef5663f9d2cedf70cac1d0f4f50c0432b923a9926314_cppui_modular255, - /*.Ssigma = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_cppui_modular255, - 0x740745f98a84b4a006f567611871547c31fc448c6a32fd0b31e2ae2cb614ef6_cppui_modular255, - 0x2a966cffe76f3bf716c6f0abfb15f48472f34b3284e716a4c52108f4e1a9365b_cppui_modular255, - 0x3c814ce925e32a65c269304816c7e0114dfe0cf6a234ca8140fd133f2c19cf2c_cppui_modular255, - /*.L0_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_cppui_modular255, - /*.Vsigma_y = */ 0xb69213d83fd8da544645b1bcf69e827f5327ee15437632222676104ad1b08a3_cppui_modular255, - /*.Vsigma_zetay = */ 0x1d4e3ecd39d89a37045c909602e88968d376bc444b6c8976ff0d2d0d407a4ac5_cppui_modular255, - /*.q_last_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_cppui_modular255, - /*.q_pad_y = */ 0xeae8e9652b38b988bfcd8e9ef1a418990021cd4fa6981461d0e1c50049b76f2_cppui_modular255, - /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, - 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_cppui_modular255}; + /*.f = */ 0xad2bcf3656123a451e5ae737a10600efd60eb61a019329f54336e570a35ab9_bigui255, + 0x3a229abbe186e216f2c24d215d3a14ec65f213fda941f5d4ee6894ea0f20331e_bigui255, + 0x314564d4bb2dc124ebe6977105d2a16a70e5bc0a100095e28a9931be6a37770a_bigui255, + 0x20b742463ddb6422a9638a1e1e024b97f67786fded20e091254f2d6a0476f847_bigui255, + /*.Se = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_bigui255, + 0x3512e6cbc8242f438407a36a7d6cafe0a4f03fd5aa67a2a8b6a3c9006c86a5d_bigui255, + 0x1095e81fae8b4ec5194263114731f6f6338b13f2c54062d4b9132ed021ea13d1_bigui255, + 0x12ed889e68b889d97e4bef5663f9d2cedf70cac1d0f4f50c0432b923a9926314_bigui255, + /*.Ssigma = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_bigui255, + 0x740745f98a84b4a006f567611871547c31fc448c6a32fd0b31e2ae2cb614ef6_bigui255, + 0x2a966cffe76f3bf716c6f0abfb15f48472f34b3284e716a4c52108f4e1a9365b_bigui255, + 0x3c814ce925e32a65c269304816c7e0114dfe0cf6a234ca8140fd133f2c19cf2c_bigui255, + /*.L0_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_bigui255, + /*.Vsigma_y = */ 0xb69213d83fd8da544645b1bcf69e827f5327ee15437632222676104ad1b08a3_bigui255, + /*.Vsigma_zetay = */ 0x1d4e3ecd39d89a37045c909602e88968d376bc444b6c8976ff0d2d0d407a4ac5_bigui255, + /*.q_last_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_bigui255, + /*.q_pad_y = */ 0xeae8e9652b38b988bfcd8e9ef1a418990021cd4fa6981461d0e1c50049b76f2_bigui255, + /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, + 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_bigui255}; std::array expected_res = { - 0x164cd4eb4883a25e30db9cf84de858ae429a9e8bc1cc6afa78610548c0455b69_cppui_modular255, - 0x644e8375bddf7d18597aab619542335c0767f3398461c70b3ca1ad73c9a89c1_cppui_modular255, - 0x34bbaf6e1e85fef1a66b63e96f343e34c02cbcfc8531d7f18dea0e1c9425ca24_cppui_modular255, + 0x164cd4eb4883a25e30db9cf84de858ae429a9e8bc1cc6afa78610548c0455b69_bigui255, + 0x644e8375bddf7d18597aab619542335c0767f3398461c70b3ca1ad73c9a89c1_bigui255, + 0x34bbaf6e1e85fef1a66b63e96f343e34c02cbcfc8531d7f18dea0e1c9425ca24_bigui255, }; test(public_input, expected_res); @@ -144,27 +144,27 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_argument_verifier_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - /*.f = */ 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_cppui_modular255, - 0x0_cppui_modular255, - 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_cppui_modular255, - /*.Se = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_cppui_modular255, - 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_cppui_modular255, - 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_cppui_modular255, - /*.Ssigma = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_cppui_modular255, - 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_cppui_modular255, - 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_cppui_modular255, - /*.L0_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_cppui_modular255, - /*.Vsigma_y = */ 0x1_cppui_modular255, - /*.Vsigma_zetay = */ 0x1_cppui_modular255, - /*.q_last_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_cppui_modular255, - /*.q_pad_y = */ 0x362c09c9697f3d477eee786396c2e690cc2f73d44a5650e351b2b844dba3fb73_cppui_modular255, - /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_cppui_modular255, - 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_cppui_modular255}; + /*.f = */ 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_bigui255, + 0x0_bigui255, + 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_bigui255, + /*.Se = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_bigui255, + 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_bigui255, + 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_bigui255, + /*.Ssigma = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_bigui255, + 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_bigui255, + 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_bigui255, + /*.L0_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_bigui255, + /*.Vsigma_y = */ 0x1_bigui255, + /*.Vsigma_zetay = */ 0x1_bigui255, + /*.q_last_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_bigui255, + /*.q_pad_y = */ 0x362c09c9697f3d477eee786396c2e690cc2f73d44a5650e351b2b844dba3fb73_bigui255, + /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, + 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_bigui255}; std::array expected_res = { - 0x0_cppui_modular255, - 0x0_cppui_modular255, - 0x0_cppui_modular255, + 0x0_bigui255, + 0x0_bigui255, + 0x0_bigui255, }; test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/zkevm/bytecode.cpp b/crypto3/libs/blueprint/test/zkevm/bytecode.cpp index 015827e388..1f17ea6a3e 100644 --- a/crypto3/libs/blueprint/test/zkevm/bytecode.cpp +++ b/crypto3/libs/blueprint/test/zkevm/bytecode.cpp @@ -130,7 +130,7 @@ BOOST_AUTO_TEST_SUITE(blueprint_bytecode_input_test_suite) BOOST_AUTO_TEST_CASE(input_test){ nil::blueprint::components::bytecode_input_type input; input.new_bytecode(hex_string_to_bytes(bytecode_for)); - input.new_bytecode({hex_string_to_bytes(bytecode_addition), zkevm_word_type(0x1234ab000_cppui_modular257)}); + input.new_bytecode({hex_string_to_bytes(bytecode_addition), zkevm_word_type(0x1234ab000_bigui257)}); auto ind = input.new_bytecode(); input.push_byte(ind, 0x60); input.push_byte(ind, 0x40); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp index 77a1af7d1a..7d2dd540a7 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp @@ -63,23 +63,23 @@ BOOST_AUTO_TEST_CASE(zkevm_add_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp index 9a4309488f..f2b5e643fe 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp @@ -63,41 +63,41 @@ BOOST_AUTO_TEST_CASE(zkevm_bitwise_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp index f6384abb0e..a28adf52cf 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp @@ -63,164 +63,164 @@ BOOST_AUTO_TEST_CASE(zkevm_byte_ops_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHL); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp index 41e6fe2fc8..d7d9b1f1c0 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp @@ -63,50 +63,50 @@ BOOST_AUTO_TEST_CASE(zkevm_cmp_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp index 79c6c6e67c..3df5d9cf69 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp @@ -63,52 +63,52 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); @@ -124,17 +124,17 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); // below is the overflow case for signed division - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp index 5e97593c41..6a9df75d65 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp @@ -141,8 +141,8 @@ BOOST_AUTO_TEST_CASE(zkevm_err0_test_2) { zkevm_table zkevm_table(zkevm_circuit, assignment); zkevm_machine_type machine = get_empty_machine(8); - machine.apply_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); zkevm_table.assign_opcode(machine); - machine.apply_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); zkevm_table.assign_opcode(machine); + machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); zkevm_table.assign_opcode(machine); + machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); zkevm_table.assign_opcode(machine); // produce an out-of-gas error zkevm_table.finalize_test(); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp index 3b7b782888..efda52329a 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp @@ -64,52 +64,52 @@ BOOST_AUTO_TEST_CASE(zkevm_mod_ops_test) { // incorrect test logic, but we have no memory operations so opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 3); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 3); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_bigui257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x6789012345_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x6789012345_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_bigui257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp index 76b3013b75..bf62a6e36e 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp @@ -63,16 +63,16 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp index ff22aab030..9920686edf 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp @@ -62,11 +62,11 @@ BOOST_AUTO_TEST_CASE(zkevm_not_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp index 1e6976a57a..bd75e0cc98 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp @@ -116,9 +116,9 @@ BOOST_AUTO_TEST_CASE(zkevm_workload_test) { // incorrect test logic, but we have no memory operations so for(std::size_t i = 0; i < workload; i++) { - opcode_tester.push_opcode(zkevm_opcode::PUSH1, zwordc(0x11_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, zwordc(0x22_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, zwordc(0x33_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x11_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x22_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x33_bigui257); opcode_tester.push_opcode(implemented_opcodes[i % num_of_opcodes]); } opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp index e7776dceae..8397827dc7 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp @@ -68,23 +68,23 @@ BOOST_AUTO_TEST_CASE(add_sub) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SUB); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp index 21073bc1df..5c6b69db4a 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp @@ -68,41 +68,41 @@ BOOST_AUTO_TEST_CASE(bitwize) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x3_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::XOR); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp index 9ba3435b56..10d993427e 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp @@ -69,167 +69,167 @@ BOOST_AUTO_TEST_CASE(byte_ops) { l1_size_restrictions max_sizes; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 65538); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 30); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 50); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,32); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 31); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x33_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); opcode_tester.push_opcode(zkevm_opcode::SHL); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp index 73db79e035..6ccdd6bb03 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp @@ -68,50 +68,50 @@ BOOST_AUTO_TEST_CASE(cmp) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::SLT); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp index f6aaf90407..c1dc76cbc7 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp @@ -68,52 +68,52 @@ BOOST_AUTO_TEST_CASE(divs) { l1_size_restrictions max_sizes; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); @@ -129,17 +129,17 @@ BOOST_AUTO_TEST_CASE(divs) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); // below is the overflow case for signed division - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8000000000000000000000000000000000000000000000000000000000000000_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp index 2f2e33f95c..52aadd86f5 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp @@ -81,24 +81,24 @@ BOOST_AUTO_TEST_CASE(exp) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 255); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp index 15ba56ce3b..cc182d9c1c 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp @@ -70,31 +70,31 @@ BOOST_AUTO_TEST_CASE(mul) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1111111111111111111111111111111111111111111111111111111111111111_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1111111111111111111111111111111111111111111111111111111111111111_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x4444444444444444333333333333333322222222222222221111111111111111_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x4444444444444444333333333333333322222222222222221111111111111111_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x88888888888888888888888888888888_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x88888888888888888888888888888888_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x8888888888888888888888888888888888888888888888888888888888888888_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8888888888888888888888888888888888888888888888888888888888888888_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1e); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp index 3ae089e6ba..da9082d607 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp @@ -68,11 +68,11 @@ BOOST_AUTO_TEST_CASE(opcode_not) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1234567890_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::NOT); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp index 4bfcd09608..b6204efa55 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp @@ -113,38 +113,38 @@ BOOST_AUTO_TEST_CASE(pushx) { zkevm_opcode_tester opcode_tester; opcode_tester.push_opcode(zkevm_opcode::PUSH0); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, zwordc(0x12_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH2, zwordc(0x1234_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH3, zwordc(0x123456_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH4, zwordc(0x12345678_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH5, zwordc(0x1b70726fb8_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH6, zwordc(0x1b70726fb8d3_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH7, zwordc(0x1b70726fb8d3a2_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH8, zwordc(0x1b70726fb8d3a24d_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH9, zwordc(0x1b70726fb8d3a24da9_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH10, zwordc(0x1b70726fb8d3a24da9ff_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH11, zwordc(0x1b70726fb8d3a24da9ff96_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH12, zwordc(0x1b70726fb8d3a24da9ff9647_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH13, zwordc(0x1b70726fb8d3a24da9ff964722_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH14, zwordc(0x1b70726fb8d3a24da9ff9647225a_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH15, zwordc(0x1b70726fb8d3a24da9ff9647225a18_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH16, zwordc(0x1b70726fb8d3a24da9ff9647225a1841_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH17, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH18, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH19, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f01_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH20, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f0104_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH21, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH22, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f01042593_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH23, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f0104259385_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH24, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH25, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d7_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH26, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73e_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH27, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH28, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc88_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH29, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH30, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH31, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e0_cppui_modular257)); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, zwordc(0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_cppui_modular257)); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x12_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH2, 0x1234_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH3, 0x123456_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH4, 0x12345678_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH5, 0x1b70726fb8_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH6, 0x1b70726fb8d3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH7, 0x1b70726fb8d3a2_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH8, 0x1b70726fb8d3a24d_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH9, 0x1b70726fb8d3a24da9_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH10, 0x1b70726fb8d3a24da9ff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH11, 0x1b70726fb8d3a24da9ff96_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH12, 0x1b70726fb8d3a24da9ff9647_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH13, 0x1b70726fb8d3a24da9ff964722_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH14, 0x1b70726fb8d3a24da9ff9647225a_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH15, 0x1b70726fb8d3a24da9ff9647225a18_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH16, 0x1b70726fb8d3a24da9ff9647225a1841_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH17, 0x1b70726fb8d3a24da9ff9647225a18412b_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH18, 0x1b70726fb8d3a24da9ff9647225a18412b8f_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH19, 0x1b70726fb8d3a24da9ff9647225a18412b8f01_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH20, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH21, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH22, 0x1b70726fb8d3a24da9ff9647225a18412b8f01042593_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH23, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104259385_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH24, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH25, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d7_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH26, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73e_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH27, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH28, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc88_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH29, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH30, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH31, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e0_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); opcode_tester.push_opcode(zkevm_opcode::STOP); l1_size_restrictions max_sizes; diff --git a/crypto3/libs/containers/test/merkle/merkle.cpp b/crypto3/libs/containers/test/merkle/merkle.cpp index 92456ce76a..4098e9427f 100644 --- a/crypto3/libs/containers/test/merkle/merkle.cpp +++ b/crypto3/libs/containers/test/merkle/merkle.cpp @@ -284,14 +284,14 @@ BOOST_AUTO_TEST_CASE(merkletree_validate_test_1) { BOOST_STATIC_ASSERT_MSG(algebra::is_field_element::value, "Expecting Poseidon to consume field elements"); std::vector> v_field = { - {0x0_cppui_modular255}, - {0x1_cppui_modular255}, - {0x2_cppui_modular255}, - {0x3_cppui_modular255}, - {0x4_cppui_modular255}, - {0x5_cppui_modular255}, - {0x6_cppui_modular255}, - {0x7_cppui_modular255} + {0x0_bigui255}, + {0x1_bigui255}, + {0x2_bigui255}, + {0x3_bigui255}, + {0x4_bigui255}, + {0x5_bigui255}, + {0x6_bigui255}, + {0x7_bigui255} }; testing_validate_template(v_field); testing_validate_template(v_field); @@ -354,7 +354,7 @@ BOOST_AUTO_TEST_CASE(merkletree_hash_test_1) { wrappers.emplace_back(inner_containers); } merkle_tree tree = make_merkle_tree(wrappers.begin(), wrappers.end()); - BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_cppui_modular255); + BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_bigui255); } BOOST_AUTO_TEST_CASE(merkletree_hash_test_2) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp index 053a020dd5..408f4d9264 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp @@ -103,7 +103,7 @@ namespace nil { field_element_ = value_type::zero(); auto tmp_iter = input_container_l_; for (std::size_t i = 0; i < container_elements_per_field_element_ && tmp_iter != input_container_r_; ++i) { - field_element_.data <<= input_value_bits_; // TODO: add shift operators to field values + field_element_.data = field_element_.data.base() << input_value_bits_; // TODO: add shift operators to field values field_element_ += uint64_t(*tmp_iter++); } element_filled_ = true; diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep.hpp index 225a449589..eeb1e23a4c 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep.hpp @@ -33,12 +33,9 @@ #include #include -#include - namespace nil { namespace crypto3 { namespace hashes { - using namespace boost::multiprecision; template struct ep_map { @@ -47,10 +44,6 @@ namespace nil { typedef typename suite_type::group_value_type group_value_type; typedef typename suite_type::field_value_type field_value_type; typedef typename suite_type::modular_type modular_type; - typedef typename modular_type::backend_type modular_adaptor_type; - typedef typename suite_type::modular_backend modular_backend; - - typedef boost::multiprecision::backends::modular_params modular_params_type; typedef typename suite_type::hash_type hash_type; @@ -60,9 +53,7 @@ namespace nil { // Sometimes hash is 512 bits, while the group element is 256 or 381 bits. // In these cases we take the number module the modulus of the group. - typedef typename boost::multiprecision::cpp_int_modular_backend modular_backend_of_hash_size; - - constexpr static const modular_params_type p_modulus_params = suite_type::p.backend(); + typedef nil::crypto3::multiprecision::big_uint big_uint_of_hash_size; typedef expand_message_xmd expand_message_ro; // typedef expand_message_xof expand_message_nu; @@ -100,7 +91,7 @@ namespace nil { std::array uniform_bytes {0}; expand_message_type::process(N * m * L, msg, dst, uniform_bytes); - number e; + big_uint_of_hash_size e; std::array coordinates; std::array result; for (std::size_t i = 0; i < N; i++) { @@ -111,10 +102,10 @@ namespace nil { // Sometimes hash is 512 bits, while the group element is 256 or 381 bits. // In these cases we take the number module the modulus of the group. - e %= p_modulus_params.get_mod(); + // TODO(ioxid): this is not needed + e %= suite_type::p; - coordinates[j] = modular_type(modular_adaptor_type( - modular_backend(e.backend()), p_modulus_params)); + coordinates[j] = modular_type(e); } result[i] = field_value_type(coordinates[0]); } diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep2.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep2.hpp index 871ece3801..a529365858 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep2.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/ep2.hpp @@ -32,13 +32,9 @@ #include -#include - namespace nil { namespace crypto3 { namespace hashes { - using namespace boost::multiprecision; - template struct ep2_map { typedef h2c_suite suite_type; @@ -46,10 +42,6 @@ namespace nil { typedef typename suite_type::group_value_type group_value_type; typedef typename suite_type::field_value_type field_value_type; typedef typename suite_type::modular_type modular_type; - typedef typename modular_type::backend_type modular_adaptor_type; - typedef typename suite_type::modular_backend modular_backend; - - typedef boost::multiprecision::backends::modular_params modular_params_type; typedef typename suite_type::hash_type hash_type; @@ -59,11 +51,10 @@ namespace nil { // Sometimes hash is 512 bits, while the group element is 256 or 381 bits. // In these cases we take the number module the modulus of the group. - typedef typename boost::multiprecision::cpp_int_modular_backend modular_backend_of_hash_size; + typedef nil::crypto3::multiprecision::big_uint big_uint_of_hash_size; typedef expand_message_xmd expand_message_ro; // typedef expand_message_xof expand_message_nu; - constexpr static const modular_params_type p_modulus_params = suite_type::p.backend(); static_assert(m == 2, "underlying field has wrong extension"); @@ -89,7 +80,7 @@ namespace nil { std::array uniform_bytes {0}; expand_message_type::process(N * m * L, msg, dst, uniform_bytes); - number e; + big_uint_of_hash_size e; std::array coordinates; std::array result; for (std::size_t i = 0; i < N; i++) { @@ -99,9 +90,10 @@ namespace nil { uniform_bytes.begin() + elm_offset + L); // Sometimes hash is 512 bits, while the group element is 256 or 381 bits. // In these cases we take the number module the modulus of the group. - e %= p_modulus_params.get_mod(); - coordinates[j] = modular_type(modular_adaptor_type( - modular_backend(e.backend()), p_modulus_params)); + // TODO(ioxid): this is not needed + e %= suite_type::p; + + coordinates[j] = modular_type(e); } result[i] = field_value_type(coordinates[0], coordinates[1]); } diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp index 9a1af2f161..9a6f3a286c 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp @@ -45,24 +45,15 @@ namespace nil { namespace detail { template inline bool sgn0(const algebra::fields::detail::element_fp &e) { - using modular_type = typename FieldParams::modular_type; - - static const modular_type two = modular_type(typename modular_type::backend_type(2u)); - - return static_cast(e.data % two); + return e.data.base().bit_test(0); } template inline bool sgn0(const algebra::fields::detail::element_fp2 &e) { - using underlying_type = typename algebra::fields::detail::element_fp2::underlying_type; - using modular_type = typename FieldParams::modular_type; - - static const modular_type two = modular_type(typename modular_type::backend_type(2u)); - - modular_type sign_0 = e.data[0].data % two; + bool sign_0 = e.data[0].data.base().bit_test(0); bool zero_0 = e.data[0].data.is_zero(); - modular_type sign_1 = e.data[1].data % two; - return static_cast(sign_0) || (zero_0 && static_cast(sign_1)); + bool sign_1 = e.data[1].data.base().bit_test(0); + return sign_0 || (zero_0 && sign_1); } template @@ -81,65 +72,65 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_cppui_modular381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_cppui_modular381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_cppui_modular381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_cppui_modular381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_cppui_modular381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_cppui_modular381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_cppui_modular381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_cppui_modular381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_cppui_modular381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_cppui_modular381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_cppui_modular381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_cppui_modular381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_cppui_modular381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_cppui_modular381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_cppui_modular381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_cppui_modular381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_cppui_modular381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_cppui_modular381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_cppui_modular381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_cppui_modular381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_cppui_modular381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_cppui_modular381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_cppui_modular381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_cppui_modular381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_cppui_modular381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_cppui_modular381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_cppui_modular381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_cppui_modular381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_cppui_modular381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_cppui_modular381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_cppui_modular381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_cppui_modular381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_cppui_modular381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_cppui_modular381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_cppui_modular381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_cppui_modular381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_cppui_modular381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_cppui_modular381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_cppui_modular381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_cppui_modular381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_cppui_modular381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_cppui_modular381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_cppui_modular381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_cppui_modular381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_cppui_modular381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_cppui_modular381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_cppui_modular381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_cppui_modular381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_cppui_modular381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_cppui_modular381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_cppui_modular381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_cppui_modular381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_cppui_modular381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -195,38 +186,38 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_cppui_modular381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_cppui_modular381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_cppui_modular381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_cppui_modular381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp index edbfd4d6ba..982bdc3c52 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp @@ -52,65 +52,65 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_cppui_modular381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_cppui_modular381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_cppui_modular381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_cppui_modular381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_cppui_modular381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_cppui_modular381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_cppui_modular381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_cppui_modular381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_cppui_modular381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_cppui_modular381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_cppui_modular381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_cppui_modular381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_cppui_modular381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_cppui_modular381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_cppui_modular381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_cppui_modular381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_cppui_modular381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_cppui_modular381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_cppui_modular381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_cppui_modular381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_cppui_modular381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_cppui_modular381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_cppui_modular381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_cppui_modular381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_cppui_modular381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_cppui_modular381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_cppui_modular381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_cppui_modular381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_cppui_modular381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_cppui_modular381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_cppui_modular381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_cppui_modular381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_cppui_modular381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_cppui_modular381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_cppui_modular381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_cppui_modular381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_cppui_modular381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_cppui_modular381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_cppui_modular381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_cppui_modular381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_cppui_modular381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_cppui_modular381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_cppui_modular381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_cppui_modular381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_cppui_modular381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_cppui_modular381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_cppui_modular381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_cppui_modular381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_cppui_modular381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_cppui_modular381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_cppui_modular381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_cppui_modular381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_cppui_modular381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -165,38 +165,38 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_cppui_modular381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_cppui_modular381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_cppui_modular381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_cppui_modular381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_cppui_modular381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_cppui_modular381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_cppui_modular381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_cppui_modular381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_cppui_modular381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_cppui_modular381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_cppui_modular381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_sgn0.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_sgn0.hpp index 6fd7130374..1c74b373d9 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_sgn0.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_sgn0.hpp @@ -36,24 +36,15 @@ namespace nil { template inline bool sgn0(const element_fp &e) { - using modular_type = typename FieldParams::modular_type; - - static const modular_type two = typename modular_type::backend_type(2u); - - return static_cast(e.data % two); + return e.data.base().bit_test(0); } template inline bool sgn0(const element_fp2 &e) { - using underlying_type = typename element_fp2::underlying_type; - using modular_type = typename FieldParams::modular_type; - - static const modular_type two = typename modular_type::backend_type(2u); - - modular_type sign_0 = e.data[0].data % two; + bool sign_0 = e.data[0].data.base().bit_test(0); bool zero_0 = e.data[0].data.is_zero(); - modular_type sign_1 = e.data[1].data % two; - return static_cast(sign_0) || (zero_0 && static_cast(sign_1)); + bool sign_1 = e.data[1].data.base().bit_test(0); + return sign_0 || (zero_0 && sign_1); } } // namespace hashes } // namespace crypto3 diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp index 06b11136c6..3a070bbf3f 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp @@ -52,7 +52,6 @@ namespace nil { typedef typename group_type::value_type group_value_type; typedef typename group_type::field_type::integral_type integral_type; typedef typename group_type::field_type::modular_type modular_type; - typedef typename group_type::field_type::modular_backend modular_backend; typedef typename group_type::field_type field_type; typedef typename group_type::field_type::value_type field_value_type; @@ -66,11 +65,11 @@ namespace nil { constexpr static std::size_t L = 64; constexpr static inline const field_value_type Ai = field_value_type( - 0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d_cppui_modular381); + 0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d_bigui381); constexpr static inline const field_value_type Bi = field_value_type( - 0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0_cppui_modular381); + 0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0_bigui381); constexpr static inline const field_value_type Z = field_value_type(11u); - constexpr static integral_type h_eff = 0xd201000000010001_cppui_modular381; + constexpr static integral_type h_eff = 0xd201000000010001_bigui381; }; template<> @@ -82,7 +81,6 @@ namespace nil { typedef typename group_type::value_type group_value_type; typedef typename group_type::field_type::integral_type integral_type; typedef typename group_type::field_type::modular_type modular_type; - typedef typename group_type::field_type::modular_backend modular_backend; typedef typename group_type::field_type field_type; typedef typename group_type::field_type::value_type field_value_type; @@ -105,7 +103,7 @@ namespace nil { constexpr static inline field_value_type Z = -field_value_type(2u, 1u); #endif constexpr static inline auto h_eff = - 0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551_cppui_modular636; + 0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551_bigui636; }; } // namespace hashes } // namespace crypto3 diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp index b136b67c01..f1b6c3f8c5 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp @@ -37,19 +37,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_cppui_modular253, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_cppui_modular253, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_cppui_modular253 + 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui253, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui253, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui253 }}, {{ - 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_cppui_modular253, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_cppui_modular253, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_cppui_modular253 + 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui253, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui253, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui253 }}, {{ - 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_cppui_modular253, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_cppui_modular253, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_cppui_modular253 + 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui253, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui253, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui253 }}, }}; @@ -57,279 +57,279 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_cppui_modular253, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_cppui_modular253, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_cppui_modular253 + 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui253, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui253, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui253 }}, {{ - 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_cppui_modular253, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_cppui_modular253, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_cppui_modular253 + 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui253, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui253, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui253 }}, {{ - 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_cppui_modular253, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_cppui_modular253, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_cppui_modular253 + 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui253, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui253, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui253 }}, {{ - 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_cppui_modular253, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_cppui_modular253, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_cppui_modular253 + 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui253, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui253, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui253 }}, {{ - 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_cppui_modular253, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_cppui_modular253, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_cppui_modular253 + 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui253, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui253, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui253 }}, {{ - 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_cppui_modular253, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_cppui_modular253, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_cppui_modular253 + 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui253, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui253, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui253 }}, {{ - 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_cppui_modular253, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_cppui_modular253, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_cppui_modular253 + 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui253, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui253, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui253 }}, {{ - 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_cppui_modular253, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_cppui_modular253, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_cppui_modular253 + 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui253, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui253, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui253 }}, {{ - 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_cppui_modular253, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_cppui_modular253, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_cppui_modular253 + 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui253, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui253, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui253 }}, {{ - 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_cppui_modular253, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_cppui_modular253, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_cppui_modular253 + 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui253, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui253, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui253 }}, {{ - 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_cppui_modular253, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_cppui_modular253, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_cppui_modular253 + 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui253, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui253, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui253 }}, {{ - 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_cppui_modular253, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_cppui_modular253, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_cppui_modular253 + 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui253, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui253, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui253 }}, {{ - 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_cppui_modular253, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_cppui_modular253, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_cppui_modular253 + 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui253, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui253, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui253 }}, {{ - 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_cppui_modular253, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_cppui_modular253, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_cppui_modular253 + 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui253, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui253, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui253 }}, {{ - 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_cppui_modular253, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_cppui_modular253, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_cppui_modular253 + 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui253, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui253, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui253 }}, {{ - 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_cppui_modular253, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_cppui_modular253, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_cppui_modular253 + 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui253, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui253, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui253 }}, {{ - 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_cppui_modular253, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_cppui_modular253, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_cppui_modular253 + 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui253, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui253, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui253 }}, {{ - 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_cppui_modular253, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_cppui_modular253, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_cppui_modular253 + 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui253, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui253, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui253 }}, {{ - 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_cppui_modular253, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_cppui_modular253, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_cppui_modular253 + 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui253, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui253, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui253 }}, {{ - 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_cppui_modular253, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_cppui_modular253, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_cppui_modular253 + 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui253, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui253, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui253 }}, {{ - 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_cppui_modular253, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_cppui_modular253, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_cppui_modular253 + 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui253, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui253, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui253 }}, {{ - 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_cppui_modular253, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_cppui_modular253, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_cppui_modular253 + 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui253, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui253, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui253 }}, {{ - 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_cppui_modular253, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_cppui_modular253, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_cppui_modular253 + 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui253, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui253, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui253 }}, {{ - 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_cppui_modular253, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_cppui_modular253, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_cppui_modular253 + 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui253, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui253, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui253 }}, {{ - 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_cppui_modular253, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_cppui_modular253, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_cppui_modular253 + 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui253, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui253, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui253 }}, {{ - 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_cppui_modular253, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_cppui_modular253, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_cppui_modular253 + 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui253, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui253, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui253 }}, {{ - 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_cppui_modular253, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_cppui_modular253, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_cppui_modular253 + 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui253, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui253, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui253 }}, {{ - 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_cppui_modular253, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_cppui_modular253, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_cppui_modular253 + 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui253, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui253, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui253 }}, {{ - 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_cppui_modular253, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_cppui_modular253, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_cppui_modular253 + 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui253, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui253, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui253 }}, {{ - 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_cppui_modular253, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_cppui_modular253, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_cppui_modular253 + 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui253, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui253, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui253 }}, {{ - 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_cppui_modular253, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_cppui_modular253, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_cppui_modular253 + 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui253, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui253, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui253 }}, {{ - 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_cppui_modular253, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_cppui_modular253, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_cppui_modular253 + 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui253, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui253, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui253 }}, {{ - 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_cppui_modular253, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_cppui_modular253, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_cppui_modular253 + 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui253, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui253, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui253 }}, {{ - 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_cppui_modular253, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_cppui_modular253, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_cppui_modular253 + 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui253, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui253, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui253 }}, {{ - 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_cppui_modular253, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_cppui_modular253, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_cppui_modular253 + 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui253, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui253, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui253 }}, {{ - 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_cppui_modular253, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_cppui_modular253, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_cppui_modular253 + 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui253, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui253, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui253 }}, {{ - 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_cppui_modular253, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_cppui_modular253, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_cppui_modular253 + 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui253, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui253, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui253 }}, {{ - 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_cppui_modular253, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_cppui_modular253, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_cppui_modular253 + 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui253, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui253, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui253 }}, {{ - 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_cppui_modular253, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_cppui_modular253, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_cppui_modular253 + 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui253, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui253, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui253 }}, {{ - 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_cppui_modular253, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_cppui_modular253, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_cppui_modular253 + 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui253, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui253, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui253 }}, {{ - 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_cppui_modular253, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_cppui_modular253, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_cppui_modular253 + 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui253, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui253, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui253 }}, {{ - 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_cppui_modular253, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_cppui_modular253, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_cppui_modular253 + 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui253, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui253, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui253 }}, {{ - 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_cppui_modular253, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_cppui_modular253, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_cppui_modular253 + 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui253, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui253, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui253 }}, {{ - 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_cppui_modular253, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_cppui_modular253, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_cppui_modular253 + 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui253, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui253, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui253 }}, {{ - 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_cppui_modular253, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_cppui_modular253, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_cppui_modular253 + 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui253, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui253, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui253 }}, {{ - 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_cppui_modular253, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_cppui_modular253, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_cppui_modular253 + 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui253, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui253, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui253 }}, {{ - 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_cppui_modular253, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_cppui_modular253, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_cppui_modular253 + 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui253, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui253, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui253 }}, {{ - 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_cppui_modular253, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_cppui_modular253, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_cppui_modular253 + 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui253, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui253, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui253 }}, {{ - 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_cppui_modular253, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_cppui_modular253, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_cppui_modular253 + 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui253, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui253, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui253 }}, {{ - 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_cppui_modular253, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_cppui_modular253, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_cppui_modular253 + 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui253, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui253, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui253 }}, {{ - 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_cppui_modular253, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_cppui_modular253, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_cppui_modular253 + 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui253, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui253, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui253 }}, {{ - 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_cppui_modular253, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_cppui_modular253, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_cppui_modular253 + 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui253, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui253, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui253 }}, {{ - 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_cppui_modular253, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_cppui_modular253, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_cppui_modular253 + 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui253, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui253, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui253 }}, {{ - 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_cppui_modular253, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_cppui_modular253, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_cppui_modular253 + 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui253, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui253, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui253 }}, {{ - 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_cppui_modular253, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_cppui_modular253, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_cppui_modular253 + 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui253, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui253, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui253 }}, }}; }; @@ -344,19 +344,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_cppui_modular255, - 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_cppui_modular255, - 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_cppui_modular255, + 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_bigui255, + 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_bigui255, + 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_bigui255, }}, {{ - 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_cppui_modular255, - 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_cppui_modular255, - 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_cppui_modular255, + 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_bigui255, + 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_bigui255, + 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_bigui255, }}, {{ - 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_cppui_modular255, - 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_cppui_modular255, - 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_cppui_modular255, + 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_bigui255, + 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_bigui255, + 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_bigui255, }}, }}; @@ -364,279 +364,279 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_cppui_modular255, - 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_cppui_modular255, - 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_cppui_modular255, + 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_bigui255, + 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_bigui255, + 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_bigui255, }}, {{ - 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_cppui_modular255, - 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_cppui_modular255, - 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_cppui_modular255, + 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_bigui255, + 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_bigui255, + 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_bigui255, }}, {{ - 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_cppui_modular255, - 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_cppui_modular255, - 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_cppui_modular255, + 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_bigui255, + 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_bigui255, + 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_bigui255, }}, {{ - 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_cppui_modular255, - 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_cppui_modular255, - 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_cppui_modular255, + 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_bigui255, + 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_bigui255, + 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_bigui255, }}, {{ - 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_cppui_modular255, - 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_cppui_modular255, - 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_cppui_modular255, + 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_bigui255, + 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_bigui255, + 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_bigui255, }}, {{ - 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_cppui_modular255, - 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_cppui_modular255, - 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_cppui_modular255, + 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_bigui255, + 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_bigui255, + 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_bigui255, }}, {{ - 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_cppui_modular255, - 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_cppui_modular255, - 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_cppui_modular255, + 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_bigui255, + 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_bigui255, + 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_bigui255, }}, {{ - 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_cppui_modular255, - 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_cppui_modular255, - 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_cppui_modular255, + 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_bigui255, + 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_bigui255, + 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_bigui255, }}, {{ - 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_cppui_modular255, - 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_cppui_modular255, - 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_cppui_modular255, + 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_bigui255, + 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_bigui255, + 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_bigui255, }}, {{ - 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_cppui_modular255, - 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_cppui_modular255, - 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_cppui_modular255, + 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_bigui255, + 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_bigui255, + 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_bigui255, }}, {{ - 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_cppui_modular255, - 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_cppui_modular255, - 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_cppui_modular255, + 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_bigui255, + 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_bigui255, + 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_bigui255, }}, {{ - 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_cppui_modular255, - 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_cppui_modular255, - 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_cppui_modular255, + 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_bigui255, + 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_bigui255, + 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_bigui255, }}, {{ - 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_cppui_modular255, - 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_cppui_modular255, - 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_cppui_modular255, + 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_bigui255, + 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_bigui255, + 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_bigui255, }}, {{ - 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_cppui_modular255, - 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_cppui_modular255, - 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_cppui_modular255, + 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_bigui255, + 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_bigui255, + 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_bigui255, }}, {{ - 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_cppui_modular255, - 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_cppui_modular255, - 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_cppui_modular255, + 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_bigui255, + 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_bigui255, + 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_bigui255, }}, {{ - 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_cppui_modular255, - 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_cppui_modular255, - 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_cppui_modular255, + 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_bigui255, + 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_bigui255, + 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_bigui255, }}, {{ - 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_cppui_modular255, - 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_cppui_modular255, - 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_cppui_modular255, + 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_bigui255, + 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_bigui255, + 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_bigui255, }}, {{ - 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_cppui_modular255, - 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_cppui_modular255, - 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_cppui_modular255, + 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_bigui255, + 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_bigui255, + 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_bigui255, }}, {{ - 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_cppui_modular255, - 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_cppui_modular255, - 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_cppui_modular255, + 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_bigui255, + 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_bigui255, + 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_bigui255, }}, {{ - 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_cppui_modular255, - 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_cppui_modular255, - 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_cppui_modular255, + 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_bigui255, + 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_bigui255, + 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_bigui255, }}, {{ - 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_cppui_modular255, - 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_cppui_modular255, - 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_cppui_modular255, + 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_bigui255, + 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_bigui255, + 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_bigui255, }}, {{ - 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_cppui_modular255, - 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_cppui_modular255, - 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_cppui_modular255, + 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_bigui255, + 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_bigui255, + 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_bigui255, }}, {{ - 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_cppui_modular255, - 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_cppui_modular255, - 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_cppui_modular255, + 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_bigui255, + 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_bigui255, + 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_bigui255, }}, {{ - 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_cppui_modular255, - 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_cppui_modular255, - 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_cppui_modular255, + 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_bigui255, + 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_bigui255, + 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_bigui255, }}, {{ - 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_cppui_modular255, - 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_cppui_modular255, - 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_cppui_modular255, + 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_bigui255, + 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_bigui255, + 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_bigui255, }}, {{ - 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_cppui_modular255, - 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_cppui_modular255, - 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_cppui_modular255, + 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_bigui255, + 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_bigui255, + 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_bigui255, }}, {{ - 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_cppui_modular255, - 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_cppui_modular255, - 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_cppui_modular255, + 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_bigui255, + 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_bigui255, + 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_bigui255, }}, {{ - 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_cppui_modular255, - 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_cppui_modular255, - 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_cppui_modular255, + 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_bigui255, + 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_bigui255, + 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_bigui255, }}, {{ - 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_cppui_modular255, - 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_cppui_modular255, - 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_cppui_modular255, + 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_bigui255, + 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_bigui255, + 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_bigui255, }}, {{ - 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_cppui_modular255, - 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_cppui_modular255, - 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_cppui_modular255, + 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_bigui255, + 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_bigui255, + 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_bigui255, }}, {{ - 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_cppui_modular255, - 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_cppui_modular255, - 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_cppui_modular255, + 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_bigui255, + 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_bigui255, + 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_bigui255, }}, {{ - 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_cppui_modular255, - 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_cppui_modular255, - 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_cppui_modular255, + 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_bigui255, + 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_bigui255, + 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_bigui255, }}, {{ - 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_cppui_modular255, - 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_cppui_modular255, - 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_cppui_modular255, + 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_bigui255, + 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_bigui255, + 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_bigui255, }}, {{ - 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_cppui_modular255, - 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_cppui_modular255, - 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_cppui_modular255, + 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_bigui255, + 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_bigui255, + 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_bigui255, }}, {{ - 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_cppui_modular255, - 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_cppui_modular255, - 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_cppui_modular255, + 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_bigui255, + 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_bigui255, + 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_bigui255, }}, {{ - 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_cppui_modular255, - 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_cppui_modular255, - 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_cppui_modular255, + 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_bigui255, + 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_bigui255, + 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_bigui255, }}, {{ - 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_cppui_modular255, - 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_cppui_modular255, - 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_cppui_modular255, + 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_bigui255, + 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_bigui255, + 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_bigui255, }}, {{ - 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_cppui_modular255, - 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_cppui_modular255, - 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_cppui_modular255, + 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_bigui255, + 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_bigui255, + 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_bigui255, }}, {{ - 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_cppui_modular255, - 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_cppui_modular255, - 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_cppui_modular255, + 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_bigui255, + 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_bigui255, + 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_bigui255, }}, {{ - 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_cppui_modular255, - 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_cppui_modular255, - 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_cppui_modular255, + 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_bigui255, + 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_bigui255, + 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_bigui255, }}, {{ - 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_cppui_modular255, - 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_cppui_modular255, - 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_cppui_modular255, + 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_bigui255, + 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_bigui255, + 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_bigui255, }}, {{ - 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_cppui_modular255, - 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_cppui_modular255, - 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_cppui_modular255, + 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_bigui255, + 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_bigui255, + 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_bigui255, }}, {{ - 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_cppui_modular255, - 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_cppui_modular255, - 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_cppui_modular255, + 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_bigui255, + 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_bigui255, + 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_bigui255, }}, {{ - 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_cppui_modular255, - 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_cppui_modular255, - 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_cppui_modular255, + 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_bigui255, + 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_bigui255, + 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_bigui255, }}, {{ - 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_cppui_modular255, - 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_cppui_modular255, - 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_cppui_modular255, + 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_bigui255, + 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_bigui255, + 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_bigui255, }}, {{ - 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_cppui_modular255, - 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_cppui_modular255, - 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_cppui_modular255, + 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_bigui255, + 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_bigui255, + 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_bigui255, }}, {{ - 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_cppui_modular255, - 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_cppui_modular255, - 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_cppui_modular255, + 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_bigui255, + 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_bigui255, + 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_bigui255, }}, {{ - 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_cppui_modular255, - 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_cppui_modular255, - 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_cppui_modular255, + 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_bigui255, + 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_bigui255, + 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_bigui255, }}, {{ - 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_cppui_modular255, - 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_cppui_modular255, - 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_cppui_modular255, + 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_bigui255, + 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_bigui255, + 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_bigui255, }}, {{ - 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_cppui_modular255, - 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_cppui_modular255, - 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_cppui_modular255, + 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_bigui255, + 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_bigui255, + 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_bigui255, }}, {{ - 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_cppui_modular255, - 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_cppui_modular255, - 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_cppui_modular255, + 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_bigui255, + 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_bigui255, + 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_bigui255, }}, {{ - 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_cppui_modular255, - 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_cppui_modular255, - 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_cppui_modular255, + 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_bigui255, + 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_bigui255, + 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_bigui255, }}, {{ - 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_cppui_modular255, - 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_cppui_modular255, - 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_cppui_modular255, + 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_bigui255, + 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_bigui255, + 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_bigui255, }}, {{ - 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_cppui_modular255, - 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_cppui_modular255, - 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_cppui_modular255, + 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_bigui255, + 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_bigui255, + 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_bigui255, }}, {{ - 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_cppui_modular255, - 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_cppui_modular255, - 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_cppui_modular255, + 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_bigui255, + 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_bigui255, + 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_bigui255, }}, }}; }; diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp index c97b98195a..c55a4d6400 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp @@ -43,19 +43,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x109b7f411ba0e4c9b2b70caf5c36a7b194be7c11ad24378bfedb68592ba8118b_cppui_modular254, - 0x16ed41e13bb9c0c66ae119424fddbcbc9314dc9fdbdeea55d6c64543dc4903e0_cppui_modular254, - 0x2b90bba00fca0589f617e7dcbfe82e0df706ab640ceb247b791a93b74e36736d_cppui_modular254 + 0x109b7f411ba0e4c9b2b70caf5c36a7b194be7c11ad24378bfedb68592ba8118b_bigui254, + 0x16ed41e13bb9c0c66ae119424fddbcbc9314dc9fdbdeea55d6c64543dc4903e0_bigui254, + 0x2b90bba00fca0589f617e7dcbfe82e0df706ab640ceb247b791a93b74e36736d_bigui254 }}, {{ - 0x2969f27eed31a480b9c36c764379dbca2cc8fdd1415c3dded62940bcde0bd771_cppui_modular254, - 0x2e2419f9ec02ec394c9871c832963dc1b89d743c8c7b964029b2311687b1fe23_cppui_modular254, - 0x101071f0032379b697315876690f053d148d4e109f5fb065c8aacc55a0f89bfa_cppui_modular254 + 0x2969f27eed31a480b9c36c764379dbca2cc8fdd1415c3dded62940bcde0bd771_bigui254, + 0x2e2419f9ec02ec394c9871c832963dc1b89d743c8c7b964029b2311687b1fe23_bigui254, + 0x101071f0032379b697315876690f053d148d4e109f5fb065c8aacc55a0f89bfa_bigui254 }}, {{ - 0x143021ec686a3f330d5f9e654638065ce6cd79e28c5b3753326244ee65a1b1a7_cppui_modular254, - 0x176cc029695ad02582a70eff08a6fd99d057e12e58e7d7b6b16cdfabc8ee2911_cppui_modular254, - 0x19a3fc0a56702bf417ba7fee3802593fa644470307043f7773279cd71d25d5e0_cppui_modular254 + 0x143021ec686a3f330d5f9e654638065ce6cd79e28c5b3753326244ee65a1b1a7_bigui254, + 0x176cc029695ad02582a70eff08a6fd99d057e12e58e7d7b6b16cdfabc8ee2911_bigui254, + 0x19a3fc0a56702bf417ba7fee3802593fa644470307043f7773279cd71d25d5e0_bigui254 }} }}; #endif @@ -66,329 +66,329 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x0ee9a592ba9a9518d05986d656f40c2114c4993c11bb29938d21d47304cd8e6e_cppui_modular254, - 0x00f1445235f2148c5986587169fc1bcd887b08d4d00868df5696fff40956e864_cppui_modular254, - 0x08dff3487e8ac99e1f29a058d0fa80b930c728730b7ab36ce879f3890ecf73f5_cppui_modular254 + 0x0ee9a592ba9a9518d05986d656f40c2114c4993c11bb29938d21d47304cd8e6e_bigui254, + 0x00f1445235f2148c5986587169fc1bcd887b08d4d00868df5696fff40956e864_bigui254, + 0x08dff3487e8ac99e1f29a058d0fa80b930c728730b7ab36ce879f3890ecf73f5_bigui254 }}, {{ - 0x2f27be690fdaee46c3ce28f7532b13c856c35342c84bda6e20966310fadc01d0_cppui_modular254, - 0x2b2ae1acf68b7b8d2416bebf3d4f6234b763fe04b8043ee48b8327bebca16cf2_cppui_modular254, - 0x0319d062072bef7ecca5eac06f97d4d55952c175ab6b03eae64b44c7dbf11cfa_cppui_modular254 + 0x2f27be690fdaee46c3ce28f7532b13c856c35342c84bda6e20966310fadc01d0_bigui254, + 0x2b2ae1acf68b7b8d2416bebf3d4f6234b763fe04b8043ee48b8327bebca16cf2_bigui254, + 0x0319d062072bef7ecca5eac06f97d4d55952c175ab6b03eae64b44c7dbf11cfa_bigui254 }}, {{ - 0x28813dcaebaeaa828a376df87af4a63bc8b7bf27ad49c6298ef7b387bf28526d_cppui_modular254, - 0x2727673b2ccbc903f181bf38e1c1d40d2033865200c352bc150928adddf9cb78_cppui_modular254, - 0x234ec45ca27727c2e74abd2b2a1494cd6efbd43e340587d6b8fb9e31e65cc632_cppui_modular254 + 0x28813dcaebaeaa828a376df87af4a63bc8b7bf27ad49c6298ef7b387bf28526d_bigui254, + 0x2727673b2ccbc903f181bf38e1c1d40d2033865200c352bc150928adddf9cb78_bigui254, + 0x234ec45ca27727c2e74abd2b2a1494cd6efbd43e340587d6b8fb9e31e65cc632_bigui254 }}, {{ - 0x15b52534031ae18f7f862cb2cf7cf760ab10a8150a337b1ccd99ff6e8797d428_cppui_modular254, - 0x0dc8fad6d9e4b35f5ed9a3d186b79ce38e0e8a8d1b58b132d701d4eecf68d1f6_cppui_modular254, - 0x1bcd95ffc211fbca600f705fad3fb567ea4eb378f62e1fec97805518a47e4d9c_cppui_modular254 + 0x15b52534031ae18f7f862cb2cf7cf760ab10a8150a337b1ccd99ff6e8797d428_bigui254, + 0x0dc8fad6d9e4b35f5ed9a3d186b79ce38e0e8a8d1b58b132d701d4eecf68d1f6_bigui254, + 0x1bcd95ffc211fbca600f705fad3fb567ea4eb378f62e1fec97805518a47e4d9c_bigui254 }}, {{ - 0x10520b0ab721cadfe9eff81b016fc34dc76da36c2578937817cb978d069de559_cppui_modular254, - 0x1f6d48149b8e7f7d9b257d8ed5fbbaf42932498075fed0ace88a9eb81f5627f6_cppui_modular254, - 0x1d9655f652309014d29e00ef35a2089bfff8dc1c816f0dc9ca34bdb5460c8705_cppui_modular254 + 0x10520b0ab721cadfe9eff81b016fc34dc76da36c2578937817cb978d069de559_bigui254, + 0x1f6d48149b8e7f7d9b257d8ed5fbbaf42932498075fed0ace88a9eb81f5627f6_bigui254, + 0x1d9655f652309014d29e00ef35a2089bfff8dc1c816f0dc9ca34bdb5460c8705_bigui254 }}, {{ - 0x04df5a56ff95bcafb051f7b1cd43a99ba731ff67e47032058fe3d4185697cc7d_cppui_modular254, - 0x0672d995f8fff640151b3d290cedaf148690a10a8c8424a7f6ec282b6e4be828_cppui_modular254, - 0x099952b414884454b21200d7ffafdd5f0c9a9dcc06f2708e9fc1d8209b5c75b9_cppui_modular254 + 0x04df5a56ff95bcafb051f7b1cd43a99ba731ff67e47032058fe3d4185697cc7d_bigui254, + 0x0672d995f8fff640151b3d290cedaf148690a10a8c8424a7f6ec282b6e4be828_bigui254, + 0x099952b414884454b21200d7ffafdd5f0c9a9dcc06f2708e9fc1d8209b5c75b9_bigui254 }}, {{ - 0x052cba2255dfd00c7c483143ba8d469448e43586a9b4cd9183fd0e843a6b9fa6_cppui_modular254, - 0x0b8badee690adb8eb0bd74712b7999af82de55707251ad7716077cb93c464ddc_cppui_modular254, - 0x119b1590f13307af5a1ee651020c07c749c15d60683a8050b963d0a8e4b2bdd1_cppui_modular254 + 0x052cba2255dfd00c7c483143ba8d469448e43586a9b4cd9183fd0e843a6b9fa6_bigui254, + 0x0b8badee690adb8eb0bd74712b7999af82de55707251ad7716077cb93c464ddc_bigui254, + 0x119b1590f13307af5a1ee651020c07c749c15d60683a8050b963d0a8e4b2bdd1_bigui254 }}, {{ - 0x03150b7cd6d5d17b2529d36be0f67b832c4acfc884ef4ee5ce15be0bfb4a8d09_cppui_modular254, - 0x2cc6182c5e14546e3cf1951f173912355374efb83d80898abe69cb317c9ea565_cppui_modular254, - 0x005032551e6378c450cfe129a404b3764218cadedac14e2b92d2cd73111bf0f9_cppui_modular254 + 0x03150b7cd6d5d17b2529d36be0f67b832c4acfc884ef4ee5ce15be0bfb4a8d09_bigui254, + 0x2cc6182c5e14546e3cf1951f173912355374efb83d80898abe69cb317c9ea565_bigui254, + 0x005032551e6378c450cfe129a404b3764218cadedac14e2b92d2cd73111bf0f9_bigui254 }}, {{ - 0x233237e3289baa34bb147e972ebcb9516469c399fcc069fb88f9da2cc28276b5_cppui_modular254, - 0x05c8f4f4ebd4a6e3c980d31674bfbe6323037f21b34ae5a4e80c2d4c24d60280_cppui_modular254, - 0x0a7b1db13042d396ba05d818a319f25252bcf35ef3aeed91ee1f09b2590fc65b_cppui_modular254 + 0x233237e3289baa34bb147e972ebcb9516469c399fcc069fb88f9da2cc28276b5_bigui254, + 0x05c8f4f4ebd4a6e3c980d31674bfbe6323037f21b34ae5a4e80c2d4c24d60280_bigui254, + 0x0a7b1db13042d396ba05d818a319f25252bcf35ef3aeed91ee1f09b2590fc65b_bigui254 }}, {{ - 0x2a73b71f9b210cf5b14296572c9d32dbf156e2b086ff47dc5df542365a404ec0_cppui_modular254, - 0x1ac9b0417abcc9a1935107e9ffc91dc3ec18f2c4dbe7f22976a760bb5c50c460_cppui_modular254, - 0x12c0339ae08374823fabb076707ef479269f3e4d6cb104349015ee046dc93fc0_cppui_modular254 + 0x2a73b71f9b210cf5b14296572c9d32dbf156e2b086ff47dc5df542365a404ec0_bigui254, + 0x1ac9b0417abcc9a1935107e9ffc91dc3ec18f2c4dbe7f22976a760bb5c50c460_bigui254, + 0x12c0339ae08374823fabb076707ef479269f3e4d6cb104349015ee046dc93fc0_bigui254 }}, {{ - 0x0b7475b102a165ad7f5b18db4e1e704f52900aa3253baac68246682e56e9a28e_cppui_modular254, - 0x037c2849e191ca3edb1c5e49f6e8b8917c843e379366f2ea32ab3aa88d7f8448_cppui_modular254, - 0x05a6811f8556f014e92674661e217e9bd5206c5c93a07dc145fdb176a716346f_cppui_modular254 + 0x0b7475b102a165ad7f5b18db4e1e704f52900aa3253baac68246682e56e9a28e_bigui254, + 0x037c2849e191ca3edb1c5e49f6e8b8917c843e379366f2ea32ab3aa88d7f8448_bigui254, + 0x05a6811f8556f014e92674661e217e9bd5206c5c93a07dc145fdb176a716346f_bigui254 }}, {{ - 0x29a795e7d98028946e947b75d54e9f044076e87a7b2883b47b675ef5f38bd66e_cppui_modular254, - 0x20439a0c84b322eb45a3857afc18f5826e8c7382c8a1585c507be199981fd22f_cppui_modular254, - 0x2e0ba8d94d9ecf4a94ec2050c7371ff1bb50f27799a84b6d4a2a6f2a0982c887_cppui_modular254 + 0x29a795e7d98028946e947b75d54e9f044076e87a7b2883b47b675ef5f38bd66e_bigui254, + 0x20439a0c84b322eb45a3857afc18f5826e8c7382c8a1585c507be199981fd22f_bigui254, + 0x2e0ba8d94d9ecf4a94ec2050c7371ff1bb50f27799a84b6d4a2a6f2a0982c887_bigui254 }}, {{ - 0x143fd115ce08fb27ca38eb7cce822b4517822cd2109048d2e6d0ddcca17d71c8_cppui_modular254, - 0x0c64cbecb1c734b857968dbbdcf813cdf8611659323dbcbfc84323623be9caf1_cppui_modular254, - 0x028a305847c683f646fca925c163ff5ae74f348d62c2b670f1426cef9403da53_cppui_modular254 + 0x143fd115ce08fb27ca38eb7cce822b4517822cd2109048d2e6d0ddcca17d71c8_bigui254, + 0x0c64cbecb1c734b857968dbbdcf813cdf8611659323dbcbfc84323623be9caf1_bigui254, + 0x028a305847c683f646fca925c163ff5ae74f348d62c2b670f1426cef9403da53_bigui254 }}, {{ - 0x2e4ef510ff0b6fda5fa940ab4c4380f26a6bcb64d89427b824d6755b5db9e30c_cppui_modular254, - 0x0081c95bc43384e663d79270c956ce3b8925b4f6d033b078b96384f50579400e_cppui_modular254, - 0x2ed5f0c91cbd9749187e2fade687e05ee2491b349c039a0bba8a9f4023a0bb38_cppui_modular254 + 0x2e4ef510ff0b6fda5fa940ab4c4380f26a6bcb64d89427b824d6755b5db9e30c_bigui254, + 0x0081c95bc43384e663d79270c956ce3b8925b4f6d033b078b96384f50579400e_bigui254, + 0x2ed5f0c91cbd9749187e2fade687e05ee2491b349c039a0bba8a9f4023a0bb38_bigui254 }}, {{ - 0x30509991f88da3504bbf374ed5aae2f03448a22c76234c8c990f01f33a735206_cppui_modular254, - 0x1c3f20fd55409a53221b7c4d49a356b9f0a1119fb2067b41a7529094424ec6ad_cppui_modular254, - 0x10b4e7f3ab5df003049514459b6e18eec46bb2213e8e131e170887b47ddcb96c_cppui_modular254 + 0x30509991f88da3504bbf374ed5aae2f03448a22c76234c8c990f01f33a735206_bigui254, + 0x1c3f20fd55409a53221b7c4d49a356b9f0a1119fb2067b41a7529094424ec6ad_bigui254, + 0x10b4e7f3ab5df003049514459b6e18eec46bb2213e8e131e170887b47ddcb96c_bigui254 }}, {{ - 0x2a1982979c3ff7f43ddd543d891c2abddd80f804c077d775039aa3502e43adef_cppui_modular254, - 0x1c74ee64f15e1db6feddbead56d6d55dba431ebc396c9af95cad0f1315bd5c91_cppui_modular254, - 0x07533ec850ba7f98eab9303cace01b4b9e4f2e8b82708cfa9c2fe45a0ae146a0_cppui_modular254 + 0x2a1982979c3ff7f43ddd543d891c2abddd80f804c077d775039aa3502e43adef_bigui254, + 0x1c74ee64f15e1db6feddbead56d6d55dba431ebc396c9af95cad0f1315bd5c91_bigui254, + 0x07533ec850ba7f98eab9303cace01b4b9e4f2e8b82708cfa9c2fe45a0ae146a0_bigui254 }}, {{ - 0x21576b438e500449a151e4eeaf17b154285c68f42d42c1808a11abf3764c0750_cppui_modular254, - 0x2f17c0559b8fe79608ad5ca193d62f10bce8384c815f0906743d6930836d4a9e_cppui_modular254, - 0x2d477e3862d07708a79e8aae946170bc9775a4201318474ae665b0b1b7e2730e_cppui_modular254 + 0x21576b438e500449a151e4eeaf17b154285c68f42d42c1808a11abf3764c0750_bigui254, + 0x2f17c0559b8fe79608ad5ca193d62f10bce8384c815f0906743d6930836d4a9e_bigui254, + 0x2d477e3862d07708a79e8aae946170bc9775a4201318474ae665b0b1b7e2730e_bigui254 }}, {{ - 0x162f5243967064c390e095577984f291afba2266c38f5abcd89be0f5b2747eab_cppui_modular254, - 0x2b4cb233ede9ba48264ecd2c8ae50d1ad7a8596a87f29f8a7777a70092393311_cppui_modular254, - 0x2c8fbcb2dd8573dc1dbaf8f4622854776db2eece6d85c4cf4254e7c35e03b07a_cppui_modular254 + 0x162f5243967064c390e095577984f291afba2266c38f5abcd89be0f5b2747eab_bigui254, + 0x2b4cb233ede9ba48264ecd2c8ae50d1ad7a8596a87f29f8a7777a70092393311_bigui254, + 0x2c8fbcb2dd8573dc1dbaf8f4622854776db2eece6d85c4cf4254e7c35e03b07a_bigui254 }}, {{ - 0x1d6f347725e4816af2ff453f0cd56b199e1b61e9f601e9ade5e88db870949da9_cppui_modular254, - 0x204b0c397f4ebe71ebc2d8b3df5b913df9e6ac02b68d31324cd49af5c4565529_cppui_modular254, - 0x0c4cb9dc3c4fd8174f1149b3c63c3c2f9ecb827cd7dc25534ff8fb75bc79c502_cppui_modular254 + 0x1d6f347725e4816af2ff453f0cd56b199e1b61e9f601e9ade5e88db870949da9_bigui254, + 0x204b0c397f4ebe71ebc2d8b3df5b913df9e6ac02b68d31324cd49af5c4565529_bigui254, + 0x0c4cb9dc3c4fd8174f1149b3c63c3c2f9ecb827cd7dc25534ff8fb75bc79c502_bigui254 }}, {{ - 0x174ad61a1448c899a25416474f4930301e5c49475279e0639a616ddc45bc7b54_cppui_modular254, - 0x1a96177bcf4d8d89f759df4ec2f3cde2eaaa28c177cc0fa13a9816d49a38d2ef_cppui_modular254, - 0x066d04b24331d71cd0ef8054bc60c4ff05202c126a233c1a8242ace360b8a30a_cppui_modular254 + 0x174ad61a1448c899a25416474f4930301e5c49475279e0639a616ddc45bc7b54_bigui254, + 0x1a96177bcf4d8d89f759df4ec2f3cde2eaaa28c177cc0fa13a9816d49a38d2ef_bigui254, + 0x066d04b24331d71cd0ef8054bc60c4ff05202c126a233c1a8242ace360b8a30a_bigui254 }}, {{ - 0x2a4c4fc6ec0b0cf52195782871c6dd3b381cc65f72e02ad527037a62aa1bd804_cppui_modular254, - 0x13ab2d136ccf37d447e9f2e14a7cedc95e727f8446f6d9d7e55afc01219fd649_cppui_modular254, - 0x1121552fca26061619d24d843dc82769c1b04fcec26f55194c2e3e869acc6a9a_cppui_modular254 + 0x2a4c4fc6ec0b0cf52195782871c6dd3b381cc65f72e02ad527037a62aa1bd804_bigui254, + 0x13ab2d136ccf37d447e9f2e14a7cedc95e727f8446f6d9d7e55afc01219fd649_bigui254, + 0x1121552fca26061619d24d843dc82769c1b04fcec26f55194c2e3e869acc6a9a_bigui254 }}, {{ - 0x00ef653322b13d6c889bc81715c37d77a6cd267d595c4a8909a5546c7c97cff1_cppui_modular254, - 0x0e25483e45a665208b261d8ba74051e6400c776d652595d9845aca35d8a397d3_cppui_modular254, - 0x29f536dcb9dd7682245264659e15d88e395ac3d4dde92d8c46448db979eeba89_cppui_modular254 + 0x00ef653322b13d6c889bc81715c37d77a6cd267d595c4a8909a5546c7c97cff1_bigui254, + 0x0e25483e45a665208b261d8ba74051e6400c776d652595d9845aca35d8a397d3_bigui254, + 0x29f536dcb9dd7682245264659e15d88e395ac3d4dde92d8c46448db979eeba89_bigui254 }}, {{ - 0x2a56ef9f2c53febadfda33575dbdbd885a124e2780bbea170e456baace0fa5be_cppui_modular254, - 0x1c8361c78eb5cf5decfb7a2d17b5c409f2ae2999a46762e8ee416240a8cb9af1_cppui_modular254, - 0x151aff5f38b20a0fc0473089aaf0206b83e8e68a764507bfd3d0ab4be74319c5_cppui_modular254 + 0x2a56ef9f2c53febadfda33575dbdbd885a124e2780bbea170e456baace0fa5be_bigui254, + 0x1c8361c78eb5cf5decfb7a2d17b5c409f2ae2999a46762e8ee416240a8cb9af1_bigui254, + 0x151aff5f38b20a0fc0473089aaf0206b83e8e68a764507bfd3d0ab4be74319c5_bigui254 }}, {{ - 0x04c6187e41ed881dc1b239c88f7f9d43a9f52fc8c8b6cdd1e76e47615b51f100_cppui_modular254, - 0x13b37bd80f4d27fb10d84331f6fb6d534b81c61ed15776449e801b7ddc9c2967_cppui_modular254, - 0x01a5c536273c2d9df578bfbd32c17b7a2ce3664c2a52032c9321ceb1c4e8a8e4_cppui_modular254 + 0x04c6187e41ed881dc1b239c88f7f9d43a9f52fc8c8b6cdd1e76e47615b51f100_bigui254, + 0x13b37bd80f4d27fb10d84331f6fb6d534b81c61ed15776449e801b7ddc9c2967_bigui254, + 0x01a5c536273c2d9df578bfbd32c17b7a2ce3664c2a52032c9321ceb1c4e8a8e4_bigui254 }}, {{ - 0x2ab3561834ca73835ad05f5d7acb950b4a9a2c666b9726da832239065b7c3b02_cppui_modular254, - 0x1d4d8ec291e720db200fe6d686c0d613acaf6af4e95d3bf69f7ed516a597b646_cppui_modular254, - 0x041294d2cc484d228f5784fe7919fd2bb925351240a04b711514c9c80b65af1d_cppui_modular254 + 0x2ab3561834ca73835ad05f5d7acb950b4a9a2c666b9726da832239065b7c3b02_bigui254, + 0x1d4d8ec291e720db200fe6d686c0d613acaf6af4e95d3bf69f7ed516a597b646_bigui254, + 0x041294d2cc484d228f5784fe7919fd2bb925351240a04b711514c9c80b65af1d_bigui254 }}, {{ - 0x154ac98e01708c611c4fa715991f004898f57939d126e392042971dd90e81fc6_cppui_modular254, - 0x0b339d8acca7d4f83eedd84093aef51050b3684c88f8b0b04524563bc6ea4da4_cppui_modular254, - 0x0955e49e6610c94254a4f84cfbab344598f0e71eaff4a7dd81ed95b50839c82e_cppui_modular254 + 0x154ac98e01708c611c4fa715991f004898f57939d126e392042971dd90e81fc6_bigui254, + 0x0b339d8acca7d4f83eedd84093aef51050b3684c88f8b0b04524563bc6ea4da4_bigui254, + 0x0955e49e6610c94254a4f84cfbab344598f0e71eaff4a7dd81ed95b50839c82e_bigui254 }}, {{ - 0x06746a6156eba54426b9e22206f15abca9a6f41e6f535c6f3525401ea0654626_cppui_modular254, - 0x0f18f5a0ecd1423c496f3820c549c27838e5790e2bd0a196ac917c7ff32077fb_cppui_modular254, - 0x04f6eeca1751f7308ac59eff5beb261e4bb563583ede7bc92a738223d6f76e13_cppui_modular254 + 0x06746a6156eba54426b9e22206f15abca9a6f41e6f535c6f3525401ea0654626_bigui254, + 0x0f18f5a0ecd1423c496f3820c549c27838e5790e2bd0a196ac917c7ff32077fb_bigui254, + 0x04f6eeca1751f7308ac59eff5beb261e4bb563583ede7bc92a738223d6f76e13_bigui254 }}, {{ - 0x2b56973364c4c4f5c1a3ec4da3cdce038811eb116fb3e45bc1768d26fc0b3758_cppui_modular254, - 0x123769dd49d5b054dcd76b89804b1bcb8e1392b385716a5d83feb65d437f29ef_cppui_modular254, - 0x2147b424fc48c80a88ee52b91169aacea989f6446471150994257b2fb01c63e9_cppui_modular254 + 0x2b56973364c4c4f5c1a3ec4da3cdce038811eb116fb3e45bc1768d26fc0b3758_bigui254, + 0x123769dd49d5b054dcd76b89804b1bcb8e1392b385716a5d83feb65d437f29ef_bigui254, + 0x2147b424fc48c80a88ee52b91169aacea989f6446471150994257b2fb01c63e9_bigui254 }}, {{ - 0x0fdc1f58548b85701a6c5505ea332a29647e6f34ad4243c2ea54ad897cebe54d_cppui_modular254, - 0x12373a8251fea004df68abcf0f7786d4bceff28c5dbbe0c3944f685cc0a0b1f2_cppui_modular254, - 0x21e4f4ea5f35f85bad7ea52ff742c9e8a642756b6af44203dd8a1f35c1a90035_cppui_modular254 + 0x0fdc1f58548b85701a6c5505ea332a29647e6f34ad4243c2ea54ad897cebe54d_bigui254, + 0x12373a8251fea004df68abcf0f7786d4bceff28c5dbbe0c3944f685cc0a0b1f2_bigui254, + 0x21e4f4ea5f35f85bad7ea52ff742c9e8a642756b6af44203dd8a1f35c1a90035_bigui254 }}, {{ - 0x16243916d69d2ca3dfb4722224d4c462b57366492f45e90d8a81934f1bc3b147_cppui_modular254, - 0x1efbe46dd7a578b4f66f9adbc88b4378abc21566e1a0453ca13a4159cac04ac2_cppui_modular254, - 0x07ea5e8537cf5dd08886020e23a7f387d468d5525be66f853b672cc96a88969a_cppui_modular254 + 0x16243916d69d2ca3dfb4722224d4c462b57366492f45e90d8a81934f1bc3b147_bigui254, + 0x1efbe46dd7a578b4f66f9adbc88b4378abc21566e1a0453ca13a4159cac04ac2_bigui254, + 0x07ea5e8537cf5dd08886020e23a7f387d468d5525be66f853b672cc96a88969a_bigui254 }}, {{ - 0x05a8c4f9968b8aa3b7b478a30f9a5b63650f19a75e7ce11ca9fe16c0b76c00bc_cppui_modular254, - 0x20f057712cc21654fbfe59bd345e8dac3f7818c701b9c7882d9d57b72a32e83f_cppui_modular254, - 0x04a12ededa9dfd689672f8c67fee31636dcd8e88d01d49019bd90b33eb33db69_cppui_modular254 + 0x05a8c4f9968b8aa3b7b478a30f9a5b63650f19a75e7ce11ca9fe16c0b76c00bc_bigui254, + 0x20f057712cc21654fbfe59bd345e8dac3f7818c701b9c7882d9d57b72a32e83f_bigui254, + 0x04a12ededa9dfd689672f8c67fee31636dcd8e88d01d49019bd90b33eb33db69_bigui254 }}, {{ - 0x27e88d8c15f37dcee44f1e5425a51decbd136ce5091a6767e49ec9544ccd101a_cppui_modular254, - 0x2feed17b84285ed9b8a5c8c5e95a41f66e096619a7703223176c41ee433de4d1_cppui_modular254, - 0x1ed7cc76edf45c7c404241420f729cf394e5942911312a0d6972b8bd53aff2b8_cppui_modular254 + 0x27e88d8c15f37dcee44f1e5425a51decbd136ce5091a6767e49ec9544ccd101a_bigui254, + 0x2feed17b84285ed9b8a5c8c5e95a41f66e096619a7703223176c41ee433de4d1_bigui254, + 0x1ed7cc76edf45c7c404241420f729cf394e5942911312a0d6972b8bd53aff2b8_bigui254 }}, {{ - 0x15742e99b9bfa323157ff8c586f5660eac6783476144cdcadf2874be45466b1a_cppui_modular254, - 0x1aac285387f65e82c895fc6887ddf40577107454c6ec0317284f033f27d0c785_cppui_modular254, - 0x25851c3c845d4790f9ddadbdb6057357832e2e7a49775f71ec75a96554d67c77_cppui_modular254 + 0x15742e99b9bfa323157ff8c586f5660eac6783476144cdcadf2874be45466b1a_bigui254, + 0x1aac285387f65e82c895fc6887ddf40577107454c6ec0317284f033f27d0c785_bigui254, + 0x25851c3c845d4790f9ddadbdb6057357832e2e7a49775f71ec75a96554d67c77_bigui254 }}, {{ - 0x15a5821565cc2ec2ce78457db197edf353b7ebba2c5523370ddccc3d9f146a67_cppui_modular254, - 0x2411d57a4813b9980efa7e31a1db5966dcf64f36044277502f15485f28c71727_cppui_modular254, - 0x002e6f8d6520cd4713e335b8c0b6d2e647e9a98e12f4cd2558828b5ef6cb4c9b_cppui_modular254 + 0x15a5821565cc2ec2ce78457db197edf353b7ebba2c5523370ddccc3d9f146a67_bigui254, + 0x2411d57a4813b9980efa7e31a1db5966dcf64f36044277502f15485f28c71727_bigui254, + 0x002e6f8d6520cd4713e335b8c0b6d2e647e9a98e12f4cd2558828b5ef6cb4c9b_bigui254 }}, {{ - 0x2ff7bc8f4380cde997da00b616b0fcd1af8f0e91e2fe1ed7398834609e0315d2_cppui_modular254, - 0x00b9831b948525595ee02724471bcd182e9521f6b7bb68f1e93be4febb0d3cbe_cppui_modular254, - 0x0a2f53768b8ebf6a86913b0e57c04e011ca408648a4743a87d77adbf0c9c3512_cppui_modular254 + 0x2ff7bc8f4380cde997da00b616b0fcd1af8f0e91e2fe1ed7398834609e0315d2_bigui254, + 0x00b9831b948525595ee02724471bcd182e9521f6b7bb68f1e93be4febb0d3cbe_bigui254, + 0x0a2f53768b8ebf6a86913b0e57c04e011ca408648a4743a87d77adbf0c9c3512_bigui254 }}, {{ - 0x00248156142fd0373a479f91ff239e960f599ff7e94be69b7f2a290305e1198d_cppui_modular254, - 0x171d5620b87bfb1328cf8c02ab3f0c9a397196aa6a542c2350eb512a2b2bcda9_cppui_modular254, - 0x170a4f55536f7dc970087c7c10d6fad760c952172dd54dd99d1045e4ec34a808_cppui_modular254 + 0x00248156142fd0373a479f91ff239e960f599ff7e94be69b7f2a290305e1198d_bigui254, + 0x171d5620b87bfb1328cf8c02ab3f0c9a397196aa6a542c2350eb512a2b2bcda9_bigui254, + 0x170a4f55536f7dc970087c7c10d6fad760c952172dd54dd99d1045e4ec34a808_bigui254 }}, {{ - 0x29aba33f799fe66c2ef3134aea04336ecc37e38c1cd211ba482eca17e2dbfae1_cppui_modular254, - 0x1e9bc179a4fdd758fdd1bb1945088d47e70d114a03f6a0e8b5ba650369e64973_cppui_modular254, - 0x1dd269799b660fad58f7f4892dfb0b5afeaad869a9c4b44f9c9e1c43bdaf8f09_cppui_modular254 + 0x29aba33f799fe66c2ef3134aea04336ecc37e38c1cd211ba482eca17e2dbfae1_bigui254, + 0x1e9bc179a4fdd758fdd1bb1945088d47e70d114a03f6a0e8b5ba650369e64973_bigui254, + 0x1dd269799b660fad58f7f4892dfb0b5afeaad869a9c4b44f9c9e1c43bdaf8f09_bigui254 }}, {{ - 0x22cdbc8b70117ad1401181d02e15459e7ccd426fe869c7c95d1dd2cb0f24af38_cppui_modular254, - 0x0ef042e454771c533a9f57a55c503fcefd3150f52ed94a7cd5ba93b9c7dacefd_cppui_modular254, - 0x11609e06ad6c8fe2f287f3036037e8851318e8b08a0359a03b304ffca62e8284_cppui_modular254 + 0x22cdbc8b70117ad1401181d02e15459e7ccd426fe869c7c95d1dd2cb0f24af38_bigui254, + 0x0ef042e454771c533a9f57a55c503fcefd3150f52ed94a7cd5ba93b9c7dacefd_bigui254, + 0x11609e06ad6c8fe2f287f3036037e8851318e8b08a0359a03b304ffca62e8284_bigui254 }}, {{ - 0x1166d9e554616dba9e753eea427c17b7fecd58c076dfe42708b08f5b783aa9af_cppui_modular254, - 0x2de52989431a859593413026354413db177fbf4cd2ac0b56f855a888357ee466_cppui_modular254, - 0x3006eb4ffc7a85819a6da492f3a8ac1df51aee5b17b8e89d74bf01cf5f71e9ad_cppui_modular254 + 0x1166d9e554616dba9e753eea427c17b7fecd58c076dfe42708b08f5b783aa9af_bigui254, + 0x2de52989431a859593413026354413db177fbf4cd2ac0b56f855a888357ee466_bigui254, + 0x3006eb4ffc7a85819a6da492f3a8ac1df51aee5b17b8e89d74bf01cf5f71e9ad_bigui254 }}, {{ - 0x2af41fbb61ba8a80fdcf6fff9e3f6f422993fe8f0a4639f962344c8225145086_cppui_modular254, - 0x119e684de476155fe5a6b41a8ebc85db8718ab27889e85e781b214bace4827c3_cppui_modular254, - 0x1835b786e2e8925e188bea59ae363537b51248c23828f047cff784b97b3fd800_cppui_modular254 + 0x2af41fbb61ba8a80fdcf6fff9e3f6f422993fe8f0a4639f962344c8225145086_bigui254, + 0x119e684de476155fe5a6b41a8ebc85db8718ab27889e85e781b214bace4827c3_bigui254, + 0x1835b786e2e8925e188bea59ae363537b51248c23828f047cff784b97b3fd800_bigui254 }}, {{ - 0x28201a34c594dfa34d794996c6433a20d152bac2a7905c926c40e285ab32eeb6_cppui_modular254, - 0x083efd7a27d1751094e80fefaf78b000864c82eb571187724a761f88c22cc4e7_cppui_modular254, - 0x0b6f88a3577199526158e61ceea27be811c16df7774dd8519e079564f61fd13b_cppui_modular254 + 0x28201a34c594dfa34d794996c6433a20d152bac2a7905c926c40e285ab32eeb6_bigui254, + 0x083efd7a27d1751094e80fefaf78b000864c82eb571187724a761f88c22cc4e7_bigui254, + 0x0b6f88a3577199526158e61ceea27be811c16df7774dd8519e079564f61fd13b_bigui254 }}, {{ - 0x0ec868e6d15e51d9644f66e1d6471a94589511ca00d29e1014390e6ee4254f5b_cppui_modular254, - 0x2af33e3f866771271ac0c9b3ed2e1142ecd3e74b939cd40d00d937ab84c98591_cppui_modular254, - 0x0b520211f904b5e7d09b5d961c6ace7734568c547dd6858b364ce5e47951f178_cppui_modular254 + 0x0ec868e6d15e51d9644f66e1d6471a94589511ca00d29e1014390e6ee4254f5b_bigui254, + 0x2af33e3f866771271ac0c9b3ed2e1142ecd3e74b939cd40d00d937ab84c98591_bigui254, + 0x0b520211f904b5e7d09b5d961c6ace7734568c547dd6858b364ce5e47951f178_bigui254 }}, {{ - 0x0b2d722d0919a1aad8db58f10062a92ea0c56ac4270e822cca228620188a1d40_cppui_modular254, - 0x1f790d4d7f8cf094d980ceb37c2453e957b54a9991ca38bbe0061d1ed6e562d4_cppui_modular254, - 0x0171eb95dfbf7d1eaea97cd385f780150885c16235a2a6a8da92ceb01e504233_cppui_modular254 + 0x0b2d722d0919a1aad8db58f10062a92ea0c56ac4270e822cca228620188a1d40_bigui254, + 0x1f790d4d7f8cf094d980ceb37c2453e957b54a9991ca38bbe0061d1ed6e562d4_bigui254, + 0x0171eb95dfbf7d1eaea97cd385f780150885c16235a2a6a8da92ceb01e504233_bigui254 }}, {{ - 0x0c2d0e3b5fd57549329bf6885da66b9b790b40defd2c8650762305381b168873_cppui_modular254, - 0x1162fb28689c27154e5a8228b4e72b377cbcafa589e283c35d3803054407a18d_cppui_modular254, - 0x2f1459b65dee441b64ad386a91e8310f282c5a92a89e19921623ef8249711bc0_cppui_modular254 + 0x0c2d0e3b5fd57549329bf6885da66b9b790b40defd2c8650762305381b168873_bigui254, + 0x1162fb28689c27154e5a8228b4e72b377cbcafa589e283c35d3803054407a18d_bigui254, + 0x2f1459b65dee441b64ad386a91e8310f282c5a92a89e19921623ef8249711bc0_bigui254 }}, {{ - 0x1e6ff3216b688c3d996d74367d5cd4c1bc489d46754eb712c243f70d1b53cfbb_cppui_modular254, - 0x01ca8be73832b8d0681487d27d157802d741a6f36cdc2a0576881f9326478875_cppui_modular254, - 0x1f7735706ffe9fc586f976d5bdf223dc680286080b10cea00b9b5de315f9650e_cppui_modular254 + 0x1e6ff3216b688c3d996d74367d5cd4c1bc489d46754eb712c243f70d1b53cfbb_bigui254, + 0x01ca8be73832b8d0681487d27d157802d741a6f36cdc2a0576881f9326478875_bigui254, + 0x1f7735706ffe9fc586f976d5bdf223dc680286080b10cea00b9b5de315f9650e_bigui254 }}, {{ - 0x2522b60f4ea3307640a0c2dce041fba921ac10a3d5f096ef4745ca838285f019_cppui_modular254, - 0x23f0bee001b1029d5255075ddc957f833418cad4f52b6c3f8ce16c235572575b_cppui_modular254, - 0x2bc1ae8b8ddbb81fcaac2d44555ed5685d142633e9df905f66d9401093082d59_cppui_modular254 + 0x2522b60f4ea3307640a0c2dce041fba921ac10a3d5f096ef4745ca838285f019_bigui254, + 0x23f0bee001b1029d5255075ddc957f833418cad4f52b6c3f8ce16c235572575b_bigui254, + 0x2bc1ae8b8ddbb81fcaac2d44555ed5685d142633e9df905f66d9401093082d59_bigui254 }}, {{ - 0x0f9406b8296564a37304507b8dba3ed162371273a07b1fc98011fcd6ad72205f_cppui_modular254, - 0x2360a8eb0cc7defa67b72998de90714e17e75b174a52ee4acb126c8cd995f0a8_cppui_modular254, - 0x15871a5cddead976804c803cbaef255eb4815a5e96df8b006dcbbc2767f88948_cppui_modular254 + 0x0f9406b8296564a37304507b8dba3ed162371273a07b1fc98011fcd6ad72205f_bigui254, + 0x2360a8eb0cc7defa67b72998de90714e17e75b174a52ee4acb126c8cd995f0a8_bigui254, + 0x15871a5cddead976804c803cbaef255eb4815a5e96df8b006dcbbc2767f88948_bigui254 }}, {{ - 0x193a56766998ee9e0a8652dd2f3b1da0362f4f54f72379544f957ccdeefb420f_cppui_modular254, - 0x2a394a43934f86982f9be56ff4fab1703b2e63c8ad334834e4309805e777ae0f_cppui_modular254, - 0x1859954cfeb8695f3e8b635dcb345192892cd11223443ba7b4166e8876c0d142_cppui_modular254 + 0x193a56766998ee9e0a8652dd2f3b1da0362f4f54f72379544f957ccdeefb420f_bigui254, + 0x2a394a43934f86982f9be56ff4fab1703b2e63c8ad334834e4309805e777ae0f_bigui254, + 0x1859954cfeb8695f3e8b635dcb345192892cd11223443ba7b4166e8876c0d142_bigui254 }}, {{ - 0x04e1181763050e58013444dbcb99f1902b11bc25d90bbdca408d3819f4fed32b_cppui_modular254, - 0x0fdb253dee83869d40c335ea64de8c5bb10eb82db08b5e8b1f5e5552bfd05f23_cppui_modular254, - 0x058cbe8a9a5027bdaa4efb623adead6275f08686f1c08984a9d7c5bae9b4f1c0_cppui_modular254 + 0x04e1181763050e58013444dbcb99f1902b11bc25d90bbdca408d3819f4fed32b_bigui254, + 0x0fdb253dee83869d40c335ea64de8c5bb10eb82db08b5e8b1f5e5552bfd05f23_bigui254, + 0x058cbe8a9a5027bdaa4efb623adead6275f08686f1c08984a9d7c5bae9b4f1c0_bigui254 }}, {{ - 0x1382edce9971e186497eadb1aeb1f52b23b4b83bef023ab0d15228b4cceca59a_cppui_modular254, - 0x03464990f045c6ee0819ca51fd11b0be7f61b8eb99f14b77e1e6634601d9e8b5_cppui_modular254, - 0x23f7bfc8720dc296fff33b41f98ff83c6fcab4605db2eb5aaa5bc137aeb70a58_cppui_modular254 + 0x1382edce9971e186497eadb1aeb1f52b23b4b83bef023ab0d15228b4cceca59a_bigui254, + 0x03464990f045c6ee0819ca51fd11b0be7f61b8eb99f14b77e1e6634601d9e8b5_bigui254, + 0x23f7bfc8720dc296fff33b41f98ff83c6fcab4605db2eb5aaa5bc137aeb70a58_bigui254 }}, {{ - 0x0a59a158e3eec2117e6e94e7f0e9decf18c3ffd5e1531a9219636158bbaf62f2_cppui_modular254, - 0x06ec54c80381c052b58bf23b312ffd3ce2c4eba065420af8f4c23ed0075fd07b_cppui_modular254, - 0x118872dc832e0eb5476b56648e867ec8b09340f7a7bcb1b4962f0ff9ed1f9d01_cppui_modular254 + 0x0a59a158e3eec2117e6e94e7f0e9decf18c3ffd5e1531a9219636158bbaf62f2_bigui254, + 0x06ec54c80381c052b58bf23b312ffd3ce2c4eba065420af8f4c23ed0075fd07b_bigui254, + 0x118872dc832e0eb5476b56648e867ec8b09340f7a7bcb1b4962f0ff9ed1f9d01_bigui254 }}, {{ - 0x13d69fa127d834165ad5c7cba7ad59ed52e0b0f0e42d7fea95e1906b520921b1_cppui_modular254, - 0x169a177f63ea681270b1c6877a73d21bde143942fb71dc55fd8a49f19f10c77b_cppui_modular254, - 0x04ef51591c6ead97ef42f287adce40d93abeb032b922f66ffb7e9a5a7450544d_cppui_modular254 + 0x13d69fa127d834165ad5c7cba7ad59ed52e0b0f0e42d7fea95e1906b520921b1_bigui254, + 0x169a177f63ea681270b1c6877a73d21bde143942fb71dc55fd8a49f19f10c77b_bigui254, + 0x04ef51591c6ead97ef42f287adce40d93abeb032b922f66ffb7e9a5a7450544d_bigui254 }}, {{ - 0x256e175a1dc079390ecd7ca703fb2e3b19ec61805d4f03ced5f45ee6dd0f69ec_cppui_modular254, - 0x30102d28636abd5fe5f2af412ff6004f75cc360d3205dd2da002813d3e2ceeb2_cppui_modular254, - 0x10998e42dfcd3bbf1c0714bc73eb1bf40443a3fa99bef4a31fd31be182fcc792_cppui_modular254 + 0x256e175a1dc079390ecd7ca703fb2e3b19ec61805d4f03ced5f45ee6dd0f69ec_bigui254, + 0x30102d28636abd5fe5f2af412ff6004f75cc360d3205dd2da002813d3e2ceeb2_bigui254, + 0x10998e42dfcd3bbf1c0714bc73eb1bf40443a3fa99bef4a31fd31be182fcc792_bigui254 }}, {{ - 0x193edd8e9fcf3d7625fa7d24b598a1d89f3362eaf4d582efecad76f879e36860_cppui_modular254, - 0x18168afd34f2d915d0368ce80b7b3347d1c7a561ce611425f2664d7aa51f0b5d_cppui_modular254, - 0x29383c01ebd3b6ab0c017656ebe658b6a328ec77bc33626e29e2e95b33ea6111_cppui_modular254 + 0x193edd8e9fcf3d7625fa7d24b598a1d89f3362eaf4d582efecad76f879e36860_bigui254, + 0x18168afd34f2d915d0368ce80b7b3347d1c7a561ce611425f2664d7aa51f0b5d_bigui254, + 0x29383c01ebd3b6ab0c017656ebe658b6a328ec77bc33626e29e2e95b33ea6111_bigui254 }}, {{ - 0x10646d2f2603de39a1f4ae5e7771a64a702db6e86fb76ab600bf573f9010c711_cppui_modular254, - 0x0beb5e07d1b27145f575f1395a55bf132f90c25b40da7b3864d0242dcb1117fb_cppui_modular254, - 0x16d685252078c133dc0d3ecad62b5c8830f95bb2e54b59abdffbf018d96fa336_cppui_modular254 + 0x10646d2f2603de39a1f4ae5e7771a64a702db6e86fb76ab600bf573f9010c711_bigui254, + 0x0beb5e07d1b27145f575f1395a55bf132f90c25b40da7b3864d0242dcb1117fb_bigui254, + 0x16d685252078c133dc0d3ecad62b5c8830f95bb2e54b59abdffbf018d96fa336_bigui254 }}, {{ - 0x0a6abd1d833938f33c74154e0404b4b40a555bbbec21ddfafd672dd62047f01a_cppui_modular254, - 0x1a679f5d36eb7b5c8ea12a4c2dedc8feb12dffeec450317270a6f19b34cf1860_cppui_modular254, - 0x0980fb233bd456c23974d50e0ebfde4726a423eada4e8f6ffbc7592e3f1b93d6_cppui_modular254 + 0x0a6abd1d833938f33c74154e0404b4b40a555bbbec21ddfafd672dd62047f01a_bigui254, + 0x1a679f5d36eb7b5c8ea12a4c2dedc8feb12dffeec450317270a6f19b34cf1860_bigui254, + 0x0980fb233bd456c23974d50e0ebfde4726a423eada4e8f6ffbc7592e3f1b93d6_bigui254 }}, {{ - 0x161b42232e61b84cbf1810af93a38fc0cece3d5628c9282003ebacb5c312c72b_cppui_modular254, - 0x0ada10a90c7f0520950f7d47a60d5e6a493f09787f1564e5d09203db47de1a0b_cppui_modular254, - 0x1a730d372310ba82320345a29ac4238ed3f07a8a2b4e121bb50ddb9af407f451_cppui_modular254 + 0x161b42232e61b84cbf1810af93a38fc0cece3d5628c9282003ebacb5c312c72b_bigui254, + 0x0ada10a90c7f0520950f7d47a60d5e6a493f09787f1564e5d09203db47de1a0b_bigui254, + 0x1a730d372310ba82320345a29ac4238ed3f07a8a2b4e121bb50ddb9af407f451_bigui254 }}, {{ - 0x2c8120f268ef054f817064c369dda7ea908377feaba5c4dffbda10ef58e8c556_cppui_modular254, - 0x1c7c8824f758753fa57c00789c684217b930e95313bcb73e6e7b8649a4968f70_cppui_modular254, - 0x2cd9ed31f5f8691c8e39e4077a74faa0f400ad8b491eb3f7b47b27fa3fd1cf77_cppui_modular254 + 0x2c8120f268ef054f817064c369dda7ea908377feaba5c4dffbda10ef58e8c556_bigui254, + 0x1c7c8824f758753fa57c00789c684217b930e95313bcb73e6e7b8649a4968f70_bigui254, + 0x2cd9ed31f5f8691c8e39e4077a74faa0f400ad8b491eb3f7b47b27fa3fd1cf77_bigui254 }}, {{ - 0x23ff4f9d46813457cf60d92f57618399a5e022ac321ca550854ae23918a22eea_cppui_modular254, - 0x09945a5d147a4f66ceece6405dddd9d0af5a2c5103529407dff1ea58f180426d_cppui_modular254, - 0x188d9c528025d4c2b67660c6b771b90f7c7da6eaa29d3f268a6dd223ec6fc630_cppui_modular254 + 0x23ff4f9d46813457cf60d92f57618399a5e022ac321ca550854ae23918a22eea_bigui254, + 0x09945a5d147a4f66ceece6405dddd9d0af5a2c5103529407dff1ea58f180426d_bigui254, + 0x188d9c528025d4c2b67660c6b771b90f7c7da6eaa29d3f268a6dd223ec6fc630_bigui254 }}, {{ - 0x3050e37996596b7f81f68311431d8734dba7d926d3633595e0c0d8ddf4f0f47f_cppui_modular254, - 0x15af1169396830a91600ca8102c35c426ceae5461e3f95d89d829518d30afd78_cppui_modular254, - 0x1da6d09885432ea9a06d9f37f873d985dae933e351466b2904284da3320d8acc_cppui_modular254 + 0x3050e37996596b7f81f68311431d8734dba7d926d3633595e0c0d8ddf4f0f47f_bigui254, + 0x15af1169396830a91600ca8102c35c426ceae5461e3f95d89d829518d30afd78_bigui254, + 0x1da6d09885432ea9a06d9f37f873d985dae933e351466b2904284da3320d8acc_bigui254 }}, {{ - 0x2796ea90d269af29f5f8acf33921124e4e4fad3dbe658945e546ee411ddaa9cb_cppui_modular254, - 0x202d7dd1da0f6b4b0325c8b3307742f01e15612ec8e9304a7cb0319e01d32d60_cppui_modular254, - 0x096d6790d05bb759156a952ba263d672a2d7f9c788f4c831a29dace4c0f8be5f_cppui_modular254 + 0x2796ea90d269af29f5f8acf33921124e4e4fad3dbe658945e546ee411ddaa9cb_bigui254, + 0x202d7dd1da0f6b4b0325c8b3307742f01e15612ec8e9304a7cb0319e01d32d60_bigui254, + 0x096d6790d05bb759156a952ba263d672a2d7f9c788f4c831a29dace4c0f8be5f_bigui254 }}, {{ - 0x054efa1f65b0fce283808965275d877b438da23ce5b13e1963798cb1447d25a4_cppui_modular254, - 0x1b162f83d917e93edb3308c29802deb9d8aa690113b2e14864ccf6e18e4165f1_cppui_modular254, - 0x21e5241e12564dd6fd9f1cdd2a0de39eedfefc1466cc568ec5ceb745a0506edc_cppui_modular254 + 0x054efa1f65b0fce283808965275d877b438da23ce5b13e1963798cb1447d25a4_bigui254, + 0x1b162f83d917e93edb3308c29802deb9d8aa690113b2e14864ccf6e18e4165f1_bigui254, + 0x21e5241e12564dd6fd9f1cdd2a0de39eedfefc1466cc568ec5ceb745a0506edc_bigui254 }}, {{ - 0x1cfb5662e8cf5ac9226a80ee17b36abecb73ab5f87e161927b4349e10e4bdf08_cppui_modular254, - 0x0f21177e302a771bbae6d8d1ecb373b62c99af346220ac0129c53f666eb24100_cppui_modular254, - 0x1671522374606992affb0dd7f71b12bec4236aede6290546bcef7e1f515c2320_cppui_modular254 + 0x1cfb5662e8cf5ac9226a80ee17b36abecb73ab5f87e161927b4349e10e4bdf08_bigui254, + 0x0f21177e302a771bbae6d8d1ecb373b62c99af346220ac0129c53f666eb24100_bigui254, + 0x1671522374606992affb0dd7f71b12bec4236aede6290546bcef7e1f515c2320_bigui254 }}, {{ - 0x0fa3ec5b9488259c2eb4cf24501bfad9be2ec9e42c5cc8ccd419d2a692cad870_cppui_modular254, - 0x193c0e04e0bd298357cb266c1506080ed36edce85c648cc085e8c57b1ab54bba_cppui_modular254, - 0x102adf8ef74735a27e9128306dcbc3c99f6f7291cd406578ce14ea2adaba68f8_cppui_modular254 + 0x0fa3ec5b9488259c2eb4cf24501bfad9be2ec9e42c5cc8ccd419d2a692cad870_bigui254, + 0x193c0e04e0bd298357cb266c1506080ed36edce85c648cc085e8c57b1ab54bba_bigui254, + 0x102adf8ef74735a27e9128306dcbc3c99f6f7291cd406578ce14ea2adaba68f8_bigui254 }}, {{ - 0x0fe0af7858e49859e2a54d6f1ad945b1316aa24bfbdd23ae40a6d0cb70c3eab1_cppui_modular254, - 0x216f6717bbc7dedb08536a2220843f4e2da5f1daa9ebdefde8a5ea7344798d22_cppui_modular254, - 0x1da55cc900f0d21f4a3e694391918a1b3c23b2ac773c6b3ef88e2e4228325161_cppui_modular254 + 0x0fe0af7858e49859e2a54d6f1ad945b1316aa24bfbdd23ae40a6d0cb70c3eab1_bigui254, + 0x216f6717bbc7dedb08536a2220843f4e2da5f1daa9ebdefde8a5ea7344798d22_bigui254, + 0x1da55cc900f0d21f4a3e694391918a1b3c23b2ac773c6b3ef88e2e4228325161_bigui254 }} }}; #endif @@ -405,519 +405,519 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x251e7fdf99591080080b0af133b9e4369f22e57ace3cd7f64fc6fdbcf38d7da1_cppui_modular254, - 0x25fb50b65acf4fb047cbd3b1c17d97c7fe26ea9ca238d6e348550486e91c7765_cppui_modular254, - 0x293d617d7da72102355f39ebf62f91b06deb5325f367a4556ea1e31ed5767833_cppui_modular254, - 0x104d0295ab00c85e960111ac25da474366599e575a9b7edf6145f14ba6d3c1c4_cppui_modular254, - 0x0aaa35e2c84baf117dea3e336cd96a39792b3813954fe9bf3ed5b90f2f69c977_cppui_modular254 + 0x251e7fdf99591080080b0af133b9e4369f22e57ace3cd7f64fc6fdbcf38d7da1_bigui254, + 0x25fb50b65acf4fb047cbd3b1c17d97c7fe26ea9ca238d6e348550486e91c7765_bigui254, + 0x293d617d7da72102355f39ebf62f91b06deb5325f367a4556ea1e31ed5767833_bigui254, + 0x104d0295ab00c85e960111ac25da474366599e575a9b7edf6145f14ba6d3c1c4_bigui254, + 0x0aaa35e2c84baf117dea3e336cd96a39792b3813954fe9bf3ed5b90f2f69c977_bigui254 }}, {{ - 0x2a70b9f1d4bbccdbc03e17c1d1dcdb02052903dc6609ea6969f661b2eb74c839_cppui_modular254, - 0x281154651c921e746315a9934f1b8a1bba9f92ad8ef4b979115b8e2e991ccd7a_cppui_modular254, - 0x28c2be2f8264f95f0b53c732134efa338ccd8fdb9ee2b45fb86a894f7db36c37_cppui_modular254, - 0x21888041e6febd546d427c890b1883bb9b626d8cb4dc18dcc4ec8fa75e530a13_cppui_modular254, - 0x14ddb5fada0171db80195b9592d8cf2be810930e3ea4574a350d65e2cbff4941_cppui_modular254 + 0x2a70b9f1d4bbccdbc03e17c1d1dcdb02052903dc6609ea6969f661b2eb74c839_bigui254, + 0x281154651c921e746315a9934f1b8a1bba9f92ad8ef4b979115b8e2e991ccd7a_bigui254, + 0x28c2be2f8264f95f0b53c732134efa338ccd8fdb9ee2b45fb86a894f7db36c37_bigui254, + 0x21888041e6febd546d427c890b1883bb9b626d8cb4dc18dcc4ec8fa75e530a13_bigui254, + 0x14ddb5fada0171db80195b9592d8cf2be810930e3ea4574a350d65e2cbff4941_bigui254 }}, {{ - 0x2f69a7198e1fbcc7dea43265306a37ed55b91bff652ad69aa4fa8478970d401d_cppui_modular254, - 0x001c1edd62645b73ad931ab80e37bbb267ba312b34140e716d6a3747594d3052_cppui_modular254, - 0x15b98ce93e47bc64ce2f2c96c69663c439c40c603049466fa7f9a4b228bfc32b_cppui_modular254, - 0x12c7e2adfa524e5958f65be2fbac809fcba8458b28e44d9265051de33163cf9c_cppui_modular254, - 0x2efc2b90d688134849018222e7b8922eaf67ce79816ef468531ec2de53bbd167_cppui_modular254 + 0x2f69a7198e1fbcc7dea43265306a37ed55b91bff652ad69aa4fa8478970d401d_bigui254, + 0x001c1edd62645b73ad931ab80e37bbb267ba312b34140e716d6a3747594d3052_bigui254, + 0x15b98ce93e47bc64ce2f2c96c69663c439c40c603049466fa7f9a4b228bfc32b_bigui254, + 0x12c7e2adfa524e5958f65be2fbac809fcba8458b28e44d9265051de33163cf9c_bigui254, + 0x2efc2b90d688134849018222e7b8922eaf67ce79816ef468531ec2de53bbd167_bigui254 }}, {{ - 0x0c3f050a6bf5af151981e55e3e1a29a13c3ffa4550bd2514f1afd6c5f721f830_cppui_modular254, - 0x0dec54e6dbf75205fa75ba7992bd34f08b2efe2ecd424a73eda7784320a1a36e_cppui_modular254, - 0x1c482a25a729f5df20225815034b196098364a11f4d988fb7cc75cf32d8136fa_cppui_modular254, - 0x2625ce48a7b39a4252732624e4ab94360812ac2fc9a14a5fb8b607ae9fd8514a_cppui_modular254, - 0x07f017a7ebd56dd086f7cd4fd710c509ed7ef8e300b9a8bb9fb9f28af710251f_cppui_modular254 + 0x0c3f050a6bf5af151981e55e3e1a29a13c3ffa4550bd2514f1afd6c5f721f830_bigui254, + 0x0dec54e6dbf75205fa75ba7992bd34f08b2efe2ecd424a73eda7784320a1a36e_bigui254, + 0x1c482a25a729f5df20225815034b196098364a11f4d988fb7cc75cf32d8136fa_bigui254, + 0x2625ce48a7b39a4252732624e4ab94360812ac2fc9a14a5fb8b607ae9fd8514a_bigui254, + 0x07f017a7ebd56dd086f7cd4fd710c509ed7ef8e300b9a8bb9fb9f28af710251f_bigui254 }}, {{ - 0x2a20e3a4a0e57d92f97c9d6186c6c3ea7c5e55c20146259be2f78c2ccc2e3595_cppui_modular254, - 0x1049f8210566b51faafb1e9a5d63c0ee701673aed820d9c4403b01feb727a549_cppui_modular254, - 0x02ecac687ef5b4b568002bd9d1b96b4bef357a69e3e86b5561b9299b82d69c8e_cppui_modular254, - 0x2d3a1aea2e6d44466808f88c9ba903d3bdcb6b58ba40441ed4ebcf11bbe1e37b_cppui_modular254, - 0x14074bb14c982c81c9ad171e4f35fe49b39c4a7a72dbb6d9c98d803bfed65e64_cppui_modular254 + 0x2a20e3a4a0e57d92f97c9d6186c6c3ea7c5e55c20146259be2f78c2ccc2e3595_bigui254, + 0x1049f8210566b51faafb1e9a5d63c0ee701673aed820d9c4403b01feb727a549_bigui254, + 0x02ecac687ef5b4b568002bd9d1b96b4bef357a69e3e86b5561b9299b82d69c8e_bigui254, + 0x2d3a1aea2e6d44466808f88c9ba903d3bdcb6b58ba40441ed4ebcf11bbe1e37b_bigui254, + 0x14074bb14c982c81c9ad171e4f35fe49b39c4a7a72dbb6d9c98d803bfed65e64_bigui254 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x0eb544fee2815dda7f53e29ccac98ed7d889bb4ebd47c3864f3c2bd81a6da891_cppui_modular254, - 0x0554d736315b8662f02fdba7dd737fbca197aeb12ea64713ba733f28475128cb_cppui_modular254, - 0x2f83b9df259b2b68bcd748056307c37754907df0c0fb0035f5087c58d5e8c2d4_cppui_modular254, - 0x2ca70e2e8d7f39a12447ac83052451b461f15f8b41a75ef31915208f5aba9683_cppui_modular254, - 0x1cb5f9319be6a45e91b04d7222271c94994196f12ed22c5d4ec719cb83ecfea9_cppui_modular254, + 0x0eb544fee2815dda7f53e29ccac98ed7d889bb4ebd47c3864f3c2bd81a6da891_bigui254, + 0x0554d736315b8662f02fdba7dd737fbca197aeb12ea64713ba733f28475128cb_bigui254, + 0x2f83b9df259b2b68bcd748056307c37754907df0c0fb0035f5087c58d5e8c2d4_bigui254, + 0x2ca70e2e8d7f39a12447ac83052451b461f15f8b41a75ef31915208f5aba9683_bigui254, + 0x1cb5f9319be6a45e91b04d7222271c94994196f12ed22c5d4ec719cb83ecfea9_bigui254, }}, {{ - 0x2eb4f99c69f966ebf8a42192de7ff61621c7bb47b93750c2b9ea08d18446c122_cppui_modular254, - 0x224a28e5a35385a7c5198169e405d9ea0fc7da8b93ee13b6d5f7d099e299520e_cppui_modular254, - 0x0f7411b465e600eed8afdd6afca49c3036f33ecbd9a0f97823796b993bbd82f7_cppui_modular254, - 0x0f9d0d5aad2c9555a2be7150392d8d9819b208ae3370f99a0626f9ff5d90e4e3_cppui_modular254, - 0x1e9a96dc8292bb596f52a59538d329229732b25259cf744b6a12d30702d6fba0_cppui_modular254, + 0x2eb4f99c69f966ebf8a42192de7ff61621c7bb47b93750c2b9ea08d18446c122_bigui254, + 0x224a28e5a35385a7c5198169e405d9ea0fc7da8b93ee13b6d5f7d099e299520e_bigui254, + 0x0f7411b465e600eed8afdd6afca49c3036f33ecbd9a0f97823796b993bbd82f7_bigui254, + 0x0f9d0d5aad2c9555a2be7150392d8d9819b208ae3370f99a0626f9ff5d90e4e3_bigui254, + 0x1e9a96dc8292bb596f52a59538d329229732b25259cf744b6a12d30702d6fba0_bigui254, }}, {{ - 0x08780514ccd90380887d578c45555e593cfe52eab4b945c6c2cd4d528fb3fe3c_cppui_modular254, - 0x272498fced686c7ac8149fa3f73ef8c2ced64717e3556d5a59f119d629ccb5fc_cppui_modular254, - 0x01ef8f9dd7c93aac4b7cb80930bd06eb45bd350aff585f10e3d0ef8a782ef7df_cppui_modular254, - 0x045b9f59b6595e614dc08f222b469b138e886e64bf3c40aa97ea0ae754934d30_cppui_modular254, - 0x0ac1e91c57d9da919fd6f59d2a40ff8ea3e41e24e247a387adf2584295d61c66_cppui_modular254, + 0x08780514ccd90380887d578c45555e593cfe52eab4b945c6c2cd4d528fb3fe3c_bigui254, + 0x272498fced686c7ac8149fa3f73ef8c2ced64717e3556d5a59f119d629ccb5fc_bigui254, + 0x01ef8f9dd7c93aac4b7cb80930bd06eb45bd350aff585f10e3d0ef8a782ef7df_bigui254, + 0x045b9f59b6595e614dc08f222b469b138e886e64bf3c40aa97ea0ae754934d30_bigui254, + 0x0ac1e91c57d9da919fd6f59d2a40ff8ea3e41e24e247a387adf2584295d61c66_bigui254, }}, {{ - 0x028a1621a94054b0c7f9a421353cd89d0fd67061aee99979d12e68f04e62d134_cppui_modular254, - 0x26b41802c071ea4c9632647ed059236e50c19c3fb3c96d09d02aae2a0dcd9dbc_cppui_modular254, - 0x2fb5dda8072bb72cbaac2f63e468215e05c9de06758db6a94af34384aedb462b_cppui_modular254, - 0x2212d3a0f5fccaf244ff3547fd823249ad8ab8ba2a18d383dd05c56ee894d850_cppui_modular254, - 0x1b041ad5b2f0684258e4dfaeea09be56a3276fdb19f44c015cd0c7eed465e2e3_cppui_modular254, + 0x028a1621a94054b0c7f9a421353cd89d0fd67061aee99979d12e68f04e62d134_bigui254, + 0x26b41802c071ea4c9632647ed059236e50c19c3fb3c96d09d02aae2a0dcd9dbc_bigui254, + 0x2fb5dda8072bb72cbaac2f63e468215e05c9de06758db6a94af34384aedb462b_bigui254, + 0x2212d3a0f5fccaf244ff3547fd823249ad8ab8ba2a18d383dd05c56ee894d850_bigui254, + 0x1b041ad5b2f0684258e4dfaeea09be56a3276fdb19f44c015cd0c7eed465e2e3_bigui254, }}, {{ - 0x0a01776bb22f4b6b8eccff33e76fded3144fb7e3ac14e846a91e64afb1500eff_cppui_modular254, - 0x2b7b5674aaecc3cbf34d3f275066d549a4f33ae8c15cf827f7936440810ace43_cppui_modular254, - 0x29d299b80cd4489e4cf75779ed54b48c60b042257b78fc004c1b803381a3bdfd_cppui_modular254, - 0x1c46831d9a74529357641c219d721a74a427110032b5e1dd19dde30424be401e_cppui_modular254, - 0x06d7626c953ccb72f37141dc34d578e036296c0657674f80739ae1d883e91269_cppui_modular254, + 0x0a01776bb22f4b6b8eccff33e76fded3144fb7e3ac14e846a91e64afb1500eff_bigui254, + 0x2b7b5674aaecc3cbf34d3f275066d549a4f33ae8c15cf827f7936440810ace43_bigui254, + 0x29d299b80cd4489e4cf75779ed54b48c60b042257b78fc004c1b803381a3bdfd_bigui254, + 0x1c46831d9a74529357641c219d721a74a427110032b5e1dd19dde30424be401e_bigui254, + 0x06d7626c953ccb72f37141dc34d578e036296c0657674f80739ae1d883e91269_bigui254, }}, {{ - 0x28ffddc86f18c136c54002748e0c410edc5c440a3022cd960f108c71cda2930c_cppui_modular254, - 0x2e67f7ee5e4aa295f85deed09e400b17be67f1b7ed2ab6adb8ec0619f6fbc5e9_cppui_modular254, - 0x26ce38fa636c90630e97f25114a79a2dca56859ef759e53ce7abf22c24e80f27_cppui_modular254, - 0x2e6e07c3c95bf7c34dd7a01d00a7ffec42cb3d16a1f72721afacb4c4cfd35db1_cppui_modular254, - 0x2aa74f7597f0c9f45f91d7961c3a54fb8890d276612e1246384b1470da24d8cc_cppui_modular254, + 0x28ffddc86f18c136c54002748e0c410edc5c440a3022cd960f108c71cda2930c_bigui254, + 0x2e67f7ee5e4aa295f85deed09e400b17be67f1b7ed2ab6adb8ec0619f6fbc5e9_bigui254, + 0x26ce38fa636c90630e97f25114a79a2dca56859ef759e53ce7abf22c24e80f27_bigui254, + 0x2e6e07c3c95bf7c34dd7a01d00a7ffec42cb3d16a1f72721afacb4c4cfd35db1_bigui254, + 0x2aa74f7597f0c9f45f91d7961c3a54fb8890d276612e1246384b1470da24d8cc_bigui254, }}, {{ - 0x287d681a46a2faae2c7c090f668ab45b8a71313c1509183e2ec0ca639b7f73fe_cppui_modular254, - 0x212bd19df812eaaef4a40600528f3d7da5d3106ff565aa3b11e29f3305e73c04_cppui_modular254, - 0x1154f7cf519186bf1aafb14b350eb860f97fd9740926dab93809c28404713504_cppui_modular254, - 0x1dff6385cb31f1c24637810a4bd1b16fbf5152905be36583da747e79661fc207_cppui_modular254, - 0x0e444582d22b4e76c081d34c44c18e424011a34d5476252863ea3c606b551e5c_cppui_modular254, + 0x287d681a46a2faae2c7c090f668ab45b8a71313c1509183e2ec0ca639b7f73fe_bigui254, + 0x212bd19df812eaaef4a40600528f3d7da5d3106ff565aa3b11e29f3305e73c04_bigui254, + 0x1154f7cf519186bf1aafb14b350eb860f97fd9740926dab93809c28404713504_bigui254, + 0x1dff6385cb31f1c24637810a4bd1b16fbf5152905be36583da747e79661fc207_bigui254, + 0x0e444582d22b4e76c081d34c44c18e424011a34d5476252863ea3c606b551e5c_bigui254, }}, {{ - 0x0323c9e433ba66c4abab6638328f02f1815773e9c2846323ff72d3aab7e4eff8_cppui_modular254, - 0x12746bbd71791059193bba79cdec448f25b8cf002740112db70f2c6876a9c29d_cppui_modular254, - 0x1173b7d112c2a798fd9b9d3751842c75d466c837cf50d73efd049eb4438a2240_cppui_modular254, - 0x13d51c1090a1ad4876d1e555d7fed13da8e5713b25026ebe5fdb4808703243da_cppui_modular254, - 0x00874c1344a4ad51ff8dcb7cbd2d9743cb72743f0394efe7f4a58ebeb956baa1_cppui_modular254, + 0x0323c9e433ba66c4abab6638328f02f1815773e9c2846323ff72d3aab7e4eff8_bigui254, + 0x12746bbd71791059193bba79cdec448f25b8cf002740112db70f2c6876a9c29d_bigui254, + 0x1173b7d112c2a798fd9b9d3751842c75d466c837cf50d73efd049eb4438a2240_bigui254, + 0x13d51c1090a1ad4876d1e555d7fed13da8e5713b25026ebe5fdb4808703243da_bigui254, + 0x00874c1344a4ad51ff8dcb7cbd2d9743cb72743f0394efe7f4a58ebeb956baa1_bigui254, }}, {{ - 0x22df22131aaab85865ce236b07f244fa0eea48d3546e97d6a32a562074fef08f_cppui_modular254, - 0x0bf964d2dbd25b908708b437a445fc3e984524a59101e6c18bf5eb05a919f155_cppui_modular254, - 0x09b18d9b917a55bca302be1f7f181e0e640b9d73a9ab298c69b435b5fc502f32_cppui_modular254, - 0x094f5534444fae36a4bfc1d5bf3dc05bfbbbc70a6365366dd6745a5067289e43_cppui_modular254, - 0x2999bab1a5f25210519fa6622af53a15a3e240c0da5701cb784fddc0dc23f01f_cppui_modular254, + 0x22df22131aaab85865ce236b07f244fa0eea48d3546e97d6a32a562074fef08f_bigui254, + 0x0bf964d2dbd25b908708b437a445fc3e984524a59101e6c18bf5eb05a919f155_bigui254, + 0x09b18d9b917a55bca302be1f7f181e0e640b9d73a9ab298c69b435b5fc502f32_bigui254, + 0x094f5534444fae36a4bfc1d5bf3dc05bfbbbc70a6365366dd6745a5067289e43_bigui254, + 0x2999bab1a5f25210519fa6622af53a15a3e240c0da5701cb784fddc0dc23f01f_bigui254, }}, {{ - 0x2f6898c07581f6371ca94db73710e88084301bce8a93d13669575a11b03a3d23_cppui_modular254, - 0x07268eaaba08bc19ec16d7e1318a4740565deb1e8e5742f862174b1a6866fccb_cppui_modular254, - 0x186279b003454db01339ff77113bc9eb62603e078e1c6689a6c9582c41a0529f_cppui_modular254, - 0x18a3f736509197d6e4915bdd04d3e5ddb67e2cc5de9a22750768e5524737172c_cppui_modular254, - 0x0a21fa1988cf38d877cc1e2ed24c808c725e2d4bcb2d3a007b5987b87085671d_cppui_modular254, + 0x2f6898c07581f6371ca94db73710e88084301bce8a93d13669575a11b03a3d23_bigui254, + 0x07268eaaba08bc19ec16d7e1318a4740565deb1e8e5742f862174b1a6866fccb_bigui254, + 0x186279b003454db01339ff77113bc9eb62603e078e1c6689a6c9582c41a0529f_bigui254, + 0x18a3f736509197d6e4915bdd04d3e5ddb67e2cc5de9a22750768e5524737172c_bigui254, + 0x0a21fa1988cf38d877cc1e2ed24c808c725e2d4bcb2d3a007b5987b87085671d_bigui254, }}, {{ - 0x15b285cbe26c467f1faf5ef6a64625228328c184a2c43bc00b36a135e785fba2_cppui_modular254, - 0x164b7062c4671cf08c08b8c3f9806d560b7775b7c902f5788cd28de3e779f161_cppui_modular254, - 0x0890ba0819ac0a6f86d9865fe7e50ef361c61d3d43b6e65d7a24f651249baa70_cppui_modular254, - 0x2fbea4d65d7ed425a42712e5a721e4eaa627ac5cb0eb878ccc2ee0aed543e922_cppui_modular254, - 0x0492bf383c36fa55540303a3b536f85e7b70a58e854ab9b9103d7f5f379abaaa_cppui_modular254, + 0x15b285cbe26c467f1faf5ef6a64625228328c184a2c43bc00b36a135e785fba2_bigui254, + 0x164b7062c4671cf08c08b8c3f9806d560b7775b7c902f5788cd28de3e779f161_bigui254, + 0x0890ba0819ac0a6f86d9865fe7e50ef361c61d3d43b6e65d7a24f651249baa70_bigui254, + 0x2fbea4d65d7ed425a42712e5a721e4eaa627ac5cb0eb878ccc2ee0aed543e922_bigui254, + 0x0492bf383c36fa55540303a3b536f85e7b70a58e854ab9b9103d7f5f379abaaa_bigui254, }}, {{ - 0x05e91fe944e944104e20251c565142d61d6185a9ce85675f6a969d56292dc24e_cppui_modular254, - 0x12fe5c2029e4b33893d463cb041acad0995b9621e6e49c3b7e380a76e36e6c1c_cppui_modular254, - 0x024154adf0255d47958f7723921474131f2629fadc89496906cd01dc6fa0784e_cppui_modular254, - 0x18824a09e6afaf4a36ed2462a86bd0bad798815644f2bbde8813c13457a45550_cppui_modular254, - 0x0c8b482dba0ad51be9f255de0c3dbddddf84a630af68d50bbb06983e3d5d58a5_cppui_modular254, + 0x05e91fe944e944104e20251c565142d61d6185a9ce85675f6a969d56292dc24e_bigui254, + 0x12fe5c2029e4b33893d463cb041acad0995b9621e6e49c3b7e380a76e36e6c1c_bigui254, + 0x024154adf0255d47958f7723921474131f2629fadc89496906cd01dc6fa0784e_bigui254, + 0x18824a09e6afaf4a36ed2462a86bd0bad798815644f2bbde8813c13457a45550_bigui254, + 0x0c8b482dba0ad51be9f255de0c3dbddddf84a630af68d50bbb06983e3d5d58a5_bigui254, }}, {{ - 0x17325fd0ab635871363e0a1667d3b67c5a4fa67fcd6aaf86441392878fdb05e6_cppui_modular254, - 0x050ae95f6d2f1519122f5af67b690f31e550773fa8d18bf71cc6d0e911fa402e_cppui_modular254, - 0x0f0d139a0e81e943038cb288d62636764bbb6295f07569885771ec84edc50c40_cppui_modular254, - 0x1c0f8697795689cdf70fd2f2c0f93d1a79b39ebc7a1b1c549dbbca7b8e747cd6_cppui_modular254, - 0x2bd0f940ad936b796d2bc2e048bc979e49be23a4b13598f9fe536a16dc1d81e6_cppui_modular254, + 0x17325fd0ab635871363e0a1667d3b67c5a4fa67fcd6aaf86441392878fdb05e6_bigui254, + 0x050ae95f6d2f1519122f5af67b690f31e550773fa8d18bf71cc6d0e911fa402e_bigui254, + 0x0f0d139a0e81e943038cb288d62636764bbb6295f07569885771ec84edc50c40_bigui254, + 0x1c0f8697795689cdf70fd2f2c0f93d1a79b39ebc7a1b1c549dbbca7b8e747cd6_bigui254, + 0x2bd0f940ad936b796d2bc2e048bc979e49be23a4b13598f9fe536a16dc1d81e6_bigui254, }}, {{ - 0x27eb1be27c9c4e934778c09a0053337fa06ebb275e096d167ce54d1e96ee62cb_cppui_modular254, - 0x2e4889d830a67e5a8f96bdd3155a7ca3284fbd307d1f71b0f151be62548e2aea_cppui_modular254, - 0x193fe3db0ab47d3c5d2ec5e9c5bd9983c9891f2cadc165db6064bbe6fcc1e305_cppui_modular254, - 0x2bf3086e96c36c7bce415907ad0c40ed6e9661c009679e4e37cb13027c83e525_cppui_modular254, - 0x12f16e2de6d4ad46a98cdb697c6cad5dd5e7e413f741ccf29ff2ea486e59bb28_cppui_modular254, + 0x27eb1be27c9c4e934778c09a0053337fa06ebb275e096d167ce54d1e96ee62cb_bigui254, + 0x2e4889d830a67e5a8f96bdd3155a7ca3284fbd307d1f71b0f151be62548e2aea_bigui254, + 0x193fe3db0ab47d3c5d2ec5e9c5bd9983c9891f2cadc165db6064bbe6fcc1e305_bigui254, + 0x2bf3086e96c36c7bce415907ad0c40ed6e9661c009679e4e37cb13027c83e525_bigui254, + 0x12f16e2de6d4ad46a98cdb697c6cad5dd5e7e413f741ccf29ff2ea486e59bb28_bigui254, }}, {{ - 0x2a72147d230119f3a0262e3653ddd19f33f3d5d6ec6c4bf0ad919b0343b92d2f_cppui_modular254, - 0x21be0e2c4bfd64e56dc47f957806dc5f0a2d9bcc26412e2977df79acc10ba974_cppui_modular254, - 0x0e2d7e1dc946d70b2749a3b54367b25a71b84fb911aa57ae137fd4b6c21b444a_cppui_modular254, - 0x2667f7fb5a4fa1246170a745d8a4188cc31adb0eae3325dc9f3f07d4b92b3e2e_cppui_modular254, - 0x2ccc6f431fb7400730a783b66064697a1550c12b08dfeb72830e107da78e3405_cppui_modular254, + 0x2a72147d230119f3a0262e3653ddd19f33f3d5d6ec6c4bf0ad919b0343b92d2f_bigui254, + 0x21be0e2c4bfd64e56dc47f957806dc5f0a2d9bcc26412e2977df79acc10ba974_bigui254, + 0x0e2d7e1dc946d70b2749a3b54367b25a71b84fb911aa57ae137fd4b6c21b444a_bigui254, + 0x2667f7fb5a4fa1246170a745d8a4188cc31adb0eae3325dc9f3f07d4b92b3e2e_bigui254, + 0x2ccc6f431fb7400730a783b66064697a1550c12b08dfeb72830e107da78e3405_bigui254, }}, {{ - 0x08888a94fc5a2ca34f0201462420001fae6dbee9e8ca0c242ec50621e38e6e5d_cppui_modular254, - 0x02977b34eeaa3cb6ad40dd42c9b6fdd7a0d2fbe753af88b36acfcd3ccbc53f2a_cppui_modular254, - 0x120ccce13d28b75cfd6fb6c9ea13a648bfcfe0d7e6ff8e9610b5e9f971e16b9a_cppui_modular254, - 0x09fad2269c4a8e93c81e1b9770ea098c92787a4575b2bd73a0bf2af32f86ff3c_cppui_modular254, - 0x026091fd3d4c44d50a4b310e4ac6f0fa0debdb70775eeb8af630cffb60092d6f_cppui_modular254, + 0x08888a94fc5a2ca34f0201462420001fae6dbee9e8ca0c242ec50621e38e6e5d_bigui254, + 0x02977b34eeaa3cb6ad40dd42c9b6fdd7a0d2fbe753af88b36acfcd3ccbc53f2a_bigui254, + 0x120ccce13d28b75cfd6fb6c9ea13a648bfcfe0d7e6ff8e9610b5e9f971e16b9a_bigui254, + 0x09fad2269c4a8e93c81e1b9770ea098c92787a4575b2bd73a0bf2af32f86ff3c_bigui254, + 0x026091fd3d4c44d50a4b310e4ac6f0fa0debdb70775eeb8af630cffb60092d6f_bigui254, }}, {{ - 0x29404aa2ba565b77bb7fba9dfb6fc3212543cc56afad6afcb904fd2bca893994_cppui_modular254, - 0x2749475c399aaf39d4e87c2548695b4ef1ffd86590e0827de7201351b7c883f9_cppui_modular254, - 0x098c842322479f7239912b50424685cba2ebe2dc2e4da70ac7557dab65ffa222_cppui_modular254, - 0x18cef581222b647e31238e57fead7d5c758ace14c93c4da40191d0c053b51936_cppui_modular254, - 0x13177839c68a5080d4e746745e43711d3cbc0ca4a108f98d63b2aa681698de60_cppui_modular254, + 0x29404aa2ba565b77bb7fba9dfb6fc3212543cc56afad6afcb904fd2bca893994_bigui254, + 0x2749475c399aaf39d4e87c2548695b4ef1ffd86590e0827de7201351b7c883f9_bigui254, + 0x098c842322479f7239912b50424685cba2ebe2dc2e4da70ac7557dab65ffa222_bigui254, + 0x18cef581222b647e31238e57fead7d5c758ace14c93c4da40191d0c053b51936_bigui254, + 0x13177839c68a5080d4e746745e43711d3cbc0ca4a108f98d63b2aa681698de60_bigui254, }}, {{ - 0x020ca696f531e43ec088f56f4b74325626cc4df712c0e5f0a907d88e5f0deffd_cppui_modular254, - 0x27230eede9cccfc9fa805a30fc548db693d13708c646841d16e028387c7ac022_cppui_modular254, - 0x01645911c1198b01d64fde34a342a1786497c05969a015439057d2fe75bb281c_cppui_modular254, - 0x2c323fe16481bf496e439c88341ce25f198971e14487056cfdca4a451a5d8643_cppui_modular254, - 0x0fc082dfe70728e8450bd2074c3e22e1b022c124d3bffe8b5af88ae6db5085c8_cppui_modular254, + 0x020ca696f531e43ec088f56f4b74325626cc4df712c0e5f0a907d88e5f0deffd_bigui254, + 0x27230eede9cccfc9fa805a30fc548db693d13708c646841d16e028387c7ac022_bigui254, + 0x01645911c1198b01d64fde34a342a1786497c05969a015439057d2fe75bb281c_bigui254, + 0x2c323fe16481bf496e439c88341ce25f198971e14487056cfdca4a451a5d8643_bigui254, + 0x0fc082dfe70728e8450bd2074c3e22e1b022c124d3bffe8b5af88ae6db5085c8_bigui254, }}, {{ - 0x2052c174800db209d8cdca568dcc25b3be9642116ac4c77efe8a488b423521ee_cppui_modular254, - 0x28e420e10df2fbb5af96d621d55423190be351ce8129065a8dd9fd05b3ece9c0_cppui_modular254, - 0x25698ca5e24a1b799f783c4462a24db655d6ae1bdacd1cb549d6e0bc3ae5069a_cppui_modular254, - 0x160a9981a5c89a57cf8ffbfa57d51049a297b61074422ac134d9b857d6984d35_cppui_modular254, - 0x21c91a39e145c3bc34d9b694b843f3bf8b7cebf59ddbb0a064642b069997f3d4_cppui_modular254, + 0x2052c174800db209d8cdca568dcc25b3be9642116ac4c77efe8a488b423521ee_bigui254, + 0x28e420e10df2fbb5af96d621d55423190be351ce8129065a8dd9fd05b3ece9c0_bigui254, + 0x25698ca5e24a1b799f783c4462a24db655d6ae1bdacd1cb549d6e0bc3ae5069a_bigui254, + 0x160a9981a5c89a57cf8ffbfa57d51049a297b61074422ac134d9b857d6984d35_bigui254, + 0x21c91a39e145c3bc34d9b694b843f3bf8b7cebf59ddbb0a064642b069997f3d4_bigui254, }}, {{ - 0x1ac8d80dcd5ee876d2b09345ef112345d6eaa029d93f03b6d10975461e41734c_cppui_modular254, - 0x0ab3e6ad0ecf8b8e7c1662a4174c52225d822895e2755544b8dbcea5657ce02c_cppui_modular254, - 0x1c675182512620ae27e3b0b917b3a21ca52ef3ef5909b4e1c5b2237cbdab3377_cppui_modular254, - 0x2cdbc998dfd7affd3d948d0c85bad2e2e37a4a3e07a7d75d0c8a9092ac2bed45_cppui_modular254, - 0x23b584a56e2117b0774bf67cc0dee33324337350309dff833e491a133bb63b2e_cppui_modular254, + 0x1ac8d80dcd5ee876d2b09345ef112345d6eaa029d93f03b6d10975461e41734c_bigui254, + 0x0ab3e6ad0ecf8b8e7c1662a4174c52225d822895e2755544b8dbcea5657ce02c_bigui254, + 0x1c675182512620ae27e3b0b917b3a21ca52ef3ef5909b4e1c5b2237cbdab3377_bigui254, + 0x2cdbc998dfd7affd3d948d0c85bad2e2e37a4a3e07a7d75d0c8a9092ac2bed45_bigui254, + 0x23b584a56e2117b0774bf67cc0dee33324337350309dff833e491a133bb63b2e_bigui254, }}, {{ - 0x1e9e2b310f60ba9f8cb73030a3c9d2a10d133bc6ba4ec1152f3d20de1465e9a5_cppui_modular254, - 0x0e01e365ba5b3031abc3e720140ae746c9ab5dab987520c460bcd4f1fa5b22db_cppui_modular254, - 0x040884cdcfc64bfc7b7127340498d5c443382011b61c9a4b1387d85bc1264e68_cppui_modular254, - 0x190b1ee1205eb9500c74a3998f2bea36353f1724d6067ed0a0a17de311ef9668_cppui_modular254, - 0x1647c72aec6c4388d04f52fc23cd9c08c1dfcf65ce61e165fc28d1f832bd3b2c_cppui_modular254, + 0x1e9e2b310f60ba9f8cb73030a3c9d2a10d133bc6ba4ec1152f3d20de1465e9a5_bigui254, + 0x0e01e365ba5b3031abc3e720140ae746c9ab5dab987520c460bcd4f1fa5b22db_bigui254, + 0x040884cdcfc64bfc7b7127340498d5c443382011b61c9a4b1387d85bc1264e68_bigui254, + 0x190b1ee1205eb9500c74a3998f2bea36353f1724d6067ed0a0a17de311ef9668_bigui254, + 0x1647c72aec6c4388d04f52fc23cd9c08c1dfcf65ce61e165fc28d1f832bd3b2c_bigui254, }}, {{ - 0x2430006346a0145f799880cc4c8736269f5494d89fb48b02842e595b71e4541d_cppui_modular254, - 0x177b9a08343917e1365107a3da3ae7f69d853902bb16bacb3221850252b757af_cppui_modular254, - 0x04a420e642b11ae94e58862a68f5e32609cd53d0ae29423439b11d04666df4f8_cppui_modular254, - 0x25d0e0f739fb39fc105a88fab0afd810de2461858e956ccccdfabeddb6a25c8f_cppui_modular254, - 0x04476d91b7eff2fd85905cbf58651edc320cb15610eaed452c4d4ffa0c740a27_cppui_modular254, + 0x2430006346a0145f799880cc4c8736269f5494d89fb48b02842e595b71e4541d_bigui254, + 0x177b9a08343917e1365107a3da3ae7f69d853902bb16bacb3221850252b757af_bigui254, + 0x04a420e642b11ae94e58862a68f5e32609cd53d0ae29423439b11d04666df4f8_bigui254, + 0x25d0e0f739fb39fc105a88fab0afd810de2461858e956ccccdfabeddb6a25c8f_bigui254, + 0x04476d91b7eff2fd85905cbf58651edc320cb15610eaed452c4d4ffa0c740a27_bigui254, }}, {{ - 0x1090c0b68b3d7d7b8bc9ca2419eb8dea1c28f6d5e1250cb5e9780fd9ca286fae_cppui_modular254, - 0x25393ce3b9256d50448a725c5c7cd5ad376f2d435855c10ebf2899cb5c6617be_cppui_modular254, - 0x25931c0c7371f4f1fc862f306e6e5830ed824388d6b9342697d144f0fab46630_cppui_modular254, - 0x2396cb501700bbe6c82aad51b0fb79cf8a4d353185d5808203f73f22afbf62f6_cppui_modular254, - 0x26a363483348b58954ea748a7129a7b0a3dc9068c3cca7b5b3f0ce03b8724884_cppui_modular254, + 0x1090c0b68b3d7d7b8bc9ca2419eb8dea1c28f6d5e1250cb5e9780fd9ca286fae_bigui254, + 0x25393ce3b9256d50448a725c5c7cd5ad376f2d435855c10ebf2899cb5c6617be_bigui254, + 0x25931c0c7371f4f1fc862f306e6e5830ed824388d6b9342697d144f0fab46630_bigui254, + 0x2396cb501700bbe6c82aad51b0fb79cf8a4d353185d5808203f73f22afbf62f6_bigui254, + 0x26a363483348b58954ea748a7129a7b0a3dc9068c3cca7b5b3f0ce03b8724884_bigui254, }}, {{ - 0x27ca107ca204f2a18d6f1535b92c5478c99b893334215f6ba7a0e5b45fcd6897_cppui_modular254, - 0x26da28fc097ed77ce4662bde326b2cceac15f7301178581d8d2d02b3b2d91056_cppui_modular254, - 0x056ab351691d8bb3703e3055070ac9cc655774c1bb35d57572971ba56ee0cb89_cppui_modular254, - 0x2638b57f23b754aec76d109a2f481aa3c22547a11ffc50152d729af632376a90_cppui_modular254, - 0x304754bb8c57d60732f492c2605184fdc33e46a532bdec80ea7bc5519ede7cef_cppui_modular254, + 0x27ca107ca204f2a18d6f1535b92c5478c99b893334215f6ba7a0e5b45fcd6897_bigui254, + 0x26da28fc097ed77ce4662bde326b2cceac15f7301178581d8d2d02b3b2d91056_bigui254, + 0x056ab351691d8bb3703e3055070ac9cc655774c1bb35d57572971ba56ee0cb89_bigui254, + 0x2638b57f23b754aec76d109a2f481aa3c22547a11ffc50152d729af632376a90_bigui254, + 0x304754bb8c57d60732f492c2605184fdc33e46a532bdec80ea7bc5519ede7cef_bigui254, }}, {{ - 0x00d1727f8457ee03514f155b5806cbf748ec6857fc554010752ac93a9b7619ac_cppui_modular254, - 0x00ee1f3c66fbc05c43ba295a303c72fab5bca86805ec9419c588e50947761fa3_cppui_modular254, - 0x0afafadcf5b4dd4a4a76b5a1d82415fd10a19fbcfc59078c61f9297eb675d972_cppui_modular254, - 0x0b2449f39746085e86ce45e8eed108ee65a234835a0a6a5ea8996d124dd04d0a_cppui_modular254, - 0x206b0ce2f1b2c5b7c9f37b0045227095f6c6f071ec3bdda76a7ddf4823dd5dd6_cppui_modular254, + 0x00d1727f8457ee03514f155b5806cbf748ec6857fc554010752ac93a9b7619ac_bigui254, + 0x00ee1f3c66fbc05c43ba295a303c72fab5bca86805ec9419c588e50947761fa3_bigui254, + 0x0afafadcf5b4dd4a4a76b5a1d82415fd10a19fbcfc59078c61f9297eb675d972_bigui254, + 0x0b2449f39746085e86ce45e8eed108ee65a234835a0a6a5ea8996d124dd04d0a_bigui254, + 0x206b0ce2f1b2c5b7c9f37b0045227095f6c6f071ec3bdda76a7ddf4823dd5dd6_bigui254, }}, {{ - 0x0feba4fb87834c7cb696e67433628cd6caffc3a4ef20fea852c7e1029459409c_cppui_modular254, - 0x254dbfac74c49b0b8926752e084e02513b06f1315e6d70e18173e972336e55d3_cppui_modular254, - 0x0addb1372cee4e164655168c367559e19606c5bd17910aeb37719edfa0ca8762_cppui_modular254, - 0x26b25b7e257f3e97c799024fb019f65c6ca4d8d81b1ae16221a589d68831d759_cppui_modular254, - 0x090995b79acec240413b8d4c658787e5a4657b9ab00bdb5b1960b1059e113ba3_cppui_modular254, + 0x0feba4fb87834c7cb696e67433628cd6caffc3a4ef20fea852c7e1029459409c_bigui254, + 0x254dbfac74c49b0b8926752e084e02513b06f1315e6d70e18173e972336e55d3_bigui254, + 0x0addb1372cee4e164655168c367559e19606c5bd17910aeb37719edfa0ca8762_bigui254, + 0x26b25b7e257f3e97c799024fb019f65c6ca4d8d81b1ae16221a589d68831d759_bigui254, + 0x090995b79acec240413b8d4c658787e5a4657b9ab00bdb5b1960b1059e113ba3_bigui254, }}, {{ - 0x08dbdc2e21ef11f2c57299687843cea3eb0d8e40e99131f42974178d44f73b7b_cppui_modular254, - 0x09e8aba671481197679faf752a0f78e342fe9c491596ab6758f170939785179f_cppui_modular254, - 0x1deb05180e833e45659052a7ebaf816c7efd12a7f9eec94b7bc7c683f1363d5c_cppui_modular254, - 0x19a70ec6bdfc9098a926efbcc04aa9ee248997e8b2c24af335fd6523e5250879_cppui_modular254, - 0x21d773660adafb8a879986f9aab4890566353a3777d8a3f1eb93abe10bbf1f64_cppui_modular254, + 0x08dbdc2e21ef11f2c57299687843cea3eb0d8e40e99131f42974178d44f73b7b_bigui254, + 0x09e8aba671481197679faf752a0f78e342fe9c491596ab6758f170939785179f_bigui254, + 0x1deb05180e833e45659052a7ebaf816c7efd12a7f9eec94b7bc7c683f1363d5c_bigui254, + 0x19a70ec6bdfc9098a926efbcc04aa9ee248997e8b2c24af335fd6523e5250879_bigui254, + 0x21d773660adafb8a879986f9aab4890566353a3777d8a3f1eb93abe10bbf1f64_bigui254, }}, {{ - 0x09f1890f72e9dc713e20ba637b89d5d397a6b01fcd667347f6f46617841c3901_cppui_modular254, - 0x05af459361eb454d2a300c61e446998d48fa1f897bf219d608c2145c33b111c3_cppui_modular254, - 0x0fa1a1d6829f0345664a66dc75a657335f336f15f340756cfa12fc850cc8b513_cppui_modular254, - 0x02e47a35bcc0c3a0bda0b1c0307ad543f4280fcf87f636f853655cf97a628bb0_cppui_modular254, - 0x14f773e9834c6bdeb8f90e78bf4c24b7203411460112491036621895204d0f12_cppui_modular254, + 0x09f1890f72e9dc713e20ba637b89d5d397a6b01fcd667347f6f46617841c3901_bigui254, + 0x05af459361eb454d2a300c61e446998d48fa1f897bf219d608c2145c33b111c3_bigui254, + 0x0fa1a1d6829f0345664a66dc75a657335f336f15f340756cfa12fc850cc8b513_bigui254, + 0x02e47a35bcc0c3a0bda0b1c0307ad543f4280fcf87f636f853655cf97a628bb0_bigui254, + 0x14f773e9834c6bdeb8f90e78bf4c24b7203411460112491036621895204d0f12_bigui254, }}, {{ - 0x102d98cf502ed843255cf19d29bc7d8e642abe7cfd639992ffb091962fc8f7cc_cppui_modular254, - 0x043dd5f4aa5a76dd4c47f6c65da7ca2320d4c73ad3294738cba686a7e91373c2_cppui_modular254, - 0x21833819c3337194a6c0d29a48d4f2676f0e7c79743a306f4cfdb2b26bd11efa_cppui_modular254, - 0x0f281925cf5ee649b474a6819d116ca3eb4eca246c311ecadc53262a3cff2b53_cppui_modular254, - 0x0d3e2477a7b10beb44709c7746d6824edf625dd60504d5dc93ce662f15c238d6_cppui_modular254, + 0x102d98cf502ed843255cf19d29bc7d8e642abe7cfd639992ffb091962fc8f7cc_bigui254, + 0x043dd5f4aa5a76dd4c47f6c65da7ca2320d4c73ad3294738cba686a7e91373c2_bigui254, + 0x21833819c3337194a6c0d29a48d4f2676f0e7c79743a306f4cfdb2b26bd11efa_bigui254, + 0x0f281925cf5ee649b474a6819d116ca3eb4eca246c311ecadc53262a3cff2b53_bigui254, + 0x0d3e2477a7b10beb44709c7746d6824edf625dd60504d5dc93ce662f15c238d6_bigui254, }}, {{ - 0x2cd7f641bedbf66956ff8a01be9cde35d80f80ab51e73b49acbfc3eff5aefc44_cppui_modular254, - 0x29e95b492bf2f95f4d09380f98b74e389149d24045811d7a86dd861310463cf8_cppui_modular254, - 0x22da66bc62e8f011266efca86a6c810f9ae4c51af6ffeb57f8b3c50df83cc13e_cppui_modular254, - 0x0fe6d30de7a82d163023491794f4aca3220db79e8129df3643072d841925554a_cppui_modular254, - 0x0050e842a1299909123c46eff185c23ad312d03fef1adfecc7e07ecb298fd67f_cppui_modular254, + 0x2cd7f641bedbf66956ff8a01be9cde35d80f80ab51e73b49acbfc3eff5aefc44_bigui254, + 0x29e95b492bf2f95f4d09380f98b74e389149d24045811d7a86dd861310463cf8_bigui254, + 0x22da66bc62e8f011266efca86a6c810f9ae4c51af6ffeb57f8b3c50df83cc13e_bigui254, + 0x0fe6d30de7a82d163023491794f4aca3220db79e8129df3643072d841925554a_bigui254, + 0x0050e842a1299909123c46eff185c23ad312d03fef1adfecc7e07ecb298fd67f_bigui254, }}, {{ - 0x2130a3a7b3221222be34cc53a42d7733666f9ddf714ed7c5885cbbdb63108c21_cppui_modular254, - 0x2df9ee294edf99e3d8d5883fe0566c24aa66731f34a93280e1d328e67b33c9fa_cppui_modular254, - 0x1bf7d6e489ad8c0cf26eb68cc21ff54158132396dc250aeba4b6fc5fc3372762_cppui_modular254, - 0x0c602fa155be958761eaf739617ab136cf7b807728bf7fe35d4778d311780e54_cppui_modular254, - 0x2e50e2c5b36aa20532407d86b8d22d7d5154080a24972faeb63faf0121ed7f21_cppui_modular254, + 0x2130a3a7b3221222be34cc53a42d7733666f9ddf714ed7c5885cbbdb63108c21_bigui254, + 0x2df9ee294edf99e3d8d5883fe0566c24aa66731f34a93280e1d328e67b33c9fa_bigui254, + 0x1bf7d6e489ad8c0cf26eb68cc21ff54158132396dc250aeba4b6fc5fc3372762_bigui254, + 0x0c602fa155be958761eaf739617ab136cf7b807728bf7fe35d4778d311780e54_bigui254, + 0x2e50e2c5b36aa20532407d86b8d22d7d5154080a24972faeb63faf0121ed7f21_bigui254, }}, {{ - 0x17c2510982a7b5825710d6290ec4f782f674995ee8409b42b459123b180332e1_cppui_modular254, - 0x0b0d52f03c8af7276803ecf2465b885b21337b538eabd2f6b2ab255f376b42a8_cppui_modular254, - 0x0f5633df1972b9455953d88a63f80647a9ac77c6c0f85d4561972dd8fab8bd14_cppui_modular254, - 0x0ebf7ad29ca13804e1422e939681155124780ff43e76e929035498130a7f1572_cppui_modular254, - 0x1aff13c81bda47e80b02962173bba343e18f94bee27c8a57661b1103a720ffe2_cppui_modular254, + 0x17c2510982a7b5825710d6290ec4f782f674995ee8409b42b459123b180332e1_bigui254, + 0x0b0d52f03c8af7276803ecf2465b885b21337b538eabd2f6b2ab255f376b42a8_bigui254, + 0x0f5633df1972b9455953d88a63f80647a9ac77c6c0f85d4561972dd8fab8bd14_bigui254, + 0x0ebf7ad29ca13804e1422e939681155124780ff43e76e929035498130a7f1572_bigui254, + 0x1aff13c81bda47e80b02962173bba343e18f94bee27c8a57661b1103a720ffe2_bigui254, }}, {{ - 0x210449dbf5cf3061da2465be85505862d3f31de1a3b58ff35713be57efac6c07_cppui_modular254, - 0x088230c2794e50c57d75cd6d3c7b9dbe19d1e2f1d3001044b93ad1c3ee629817_cppui_modular254, - 0x1c408c256490b0a1da08dc464138dfc78cce9a9e16c7705617a4d6dbb20e7e3a_cppui_modular254, - 0x074517e081eb4c1f22d1771200fb07658f7c77654d58440490dd6f557e9e3903_cppui_modular254, - 0x02d04e9c21df1dbd88524bdb203691b4cee5530559d6cf0fa05adf61e12fdcbf_cppui_modular254, + 0x210449dbf5cf3061da2465be85505862d3f31de1a3b58ff35713be57efac6c07_bigui254, + 0x088230c2794e50c57d75cd6d3c7b9dbe19d1e2f1d3001044b93ad1c3ee629817_bigui254, + 0x1c408c256490b0a1da08dc464138dfc78cce9a9e16c7705617a4d6dbb20e7e3a_bigui254, + 0x074517e081eb4c1f22d1771200fb07658f7c77654d58440490dd6f557e9e3903_bigui254, + 0x02d04e9c21df1dbd88524bdb203691b4cee5530559d6cf0fa05adf61e12fdcbf_bigui254, }}, {{ - 0x2eb7a011b8bce91082e13ebd75de3b58eb9b4650dae9f11aa81db32cf1b67b13_cppui_modular254, - 0x2efda77ed35f4af0299f75d6e8a849b54d2ac6bf95368304e6030c18f0cf17b5_cppui_modular254, - 0x09199dcafd50ce642eddbeda65206d4f61a73d10852b8114c51b2440192ae064_cppui_modular254, - 0x268c5cfc446d399c4dd319db666a75b5cb655d8c1797e9fa76181cb4216e1562_cppui_modular254, - 0x2303a652c949071826b0e9a36c80578697b44e912cce6687012854eda11a18dc_cppui_modular254, + 0x2eb7a011b8bce91082e13ebd75de3b58eb9b4650dae9f11aa81db32cf1b67b13_bigui254, + 0x2efda77ed35f4af0299f75d6e8a849b54d2ac6bf95368304e6030c18f0cf17b5_bigui254, + 0x09199dcafd50ce642eddbeda65206d4f61a73d10852b8114c51b2440192ae064_bigui254, + 0x268c5cfc446d399c4dd319db666a75b5cb655d8c1797e9fa76181cb4216e1562_bigui254, + 0x2303a652c949071826b0e9a36c80578697b44e912cce6687012854eda11a18dc_bigui254, }}, {{ - 0x27c53563b12a6ee2c3f041f31dc45922bc5353eb110868d237073f4efb35fbdf_cppui_modular254, - 0x1201a87eaf4ae618f02bd82d0a5109049969b5248cfe90f42c278f22615d2b0e_cppui_modular254, - 0x2c43169439fcd69ead8214997bb069becafcb1ba2c51e5706cb4b43dab2a443d_cppui_modular254, - 0x0683597315359040ea03c45d6984c6894f46cbb36d702e3c4fb9847e6304d944_cppui_modular254, - 0x03545706706eab36afb93b128febd16fb0425e158314197b77795ad3a798d183_cppui_modular254, + 0x27c53563b12a6ee2c3f041f31dc45922bc5353eb110868d237073f4efb35fbdf_bigui254, + 0x1201a87eaf4ae618f02bd82d0a5109049969b5248cfe90f42c278f22615d2b0e_bigui254, + 0x2c43169439fcd69ead8214997bb069becafcb1ba2c51e5706cb4b43dab2a443d_bigui254, + 0x0683597315359040ea03c45d6984c6894f46cbb36d702e3c4fb9847e6304d944_bigui254, + 0x03545706706eab36afb93b128febd16fb0425e158314197b77795ad3a798d183_bigui254, }}, {{ - 0x1a33c254ec117619d35f1fc051b31728740bed23a6a37870edb393b71a0c0e6b_cppui_modular254, - 0x1ffe6968a4470cd567b0c002281caf996e88f71e759b87e6f338e517f1690c78_cppui_modular254, - 0x0fd66e03ba8808ffecb059c899fd80f4140ddd5d2a5c4483107f4e02e355b393_cppui_modular254, - 0x263ab69f13b966f8197394552906b17e6c8617a7bdd5d74a7be3396b7fe013ab_cppui_modular254, - 0x16a425e47d1110625054d5a165de413e3bd87d5aa3958fdd6eb7e03e39ba4046_cppui_modular254, + 0x1a33c254ec117619d35f1fc051b31728740bed23a6a37870edb393b71a0c0e6b_bigui254, + 0x1ffe6968a4470cd567b0c002281caf996e88f71e759b87e6f338e517f1690c78_bigui254, + 0x0fd66e03ba8808ffecb059c899fd80f4140ddd5d2a5c4483107f4e02e355b393_bigui254, + 0x263ab69f13b966f8197394552906b17e6c8617a7bdd5d74a7be3396b7fe013ab_bigui254, + 0x16a425e47d1110625054d5a165de413e3bd87d5aa3958fdd6eb7e03e39ba4046_bigui254, }}, {{ - 0x2dc510a4719ec10cad752f03c673f0e253cc31d13e39e909fcc5f73af9138d9a_cppui_modular254, - 0x24df8e8d856c5b5e1bd1cad23d07dda3423c5179329b7a82cb4aa709a94576e5_cppui_modular254, - 0x2bcc94ff4fc3c76f3cd5c68915a042e87628249a01b09561bdf24a6cdce5620f_cppui_modular254, - 0x076c1e88dc540c8d8de54e343df7c429d3295f52c38cffe6b48be86852da97df_cppui_modular254, - 0x09b5f209a451ac431c051fb12d9a5e4fe40ee1601120947da990fb8e12cb46e1_cppui_modular254, + 0x2dc510a4719ec10cad752f03c673f0e253cc31d13e39e909fcc5f73af9138d9a_bigui254, + 0x24df8e8d856c5b5e1bd1cad23d07dda3423c5179329b7a82cb4aa709a94576e5_bigui254, + 0x2bcc94ff4fc3c76f3cd5c68915a042e87628249a01b09561bdf24a6cdce5620f_bigui254, + 0x076c1e88dc540c8d8de54e343df7c429d3295f52c38cffe6b48be86852da97df_bigui254, + 0x09b5f209a451ac431c051fb12d9a5e4fe40ee1601120947da990fb8e12cb46e1_bigui254, }}, {{ - 0x205f17b0d8729e2eaa88d6a44135a6ab64e9424f55b0f1ea0683af75eb677c07_cppui_modular254, - 0x281c5c688836f6cf912638c38be046cd091681f0a41761720cdd1edf9f237029_cppui_modular254, - 0x1a053e6878e900f45f4d67448c471cf3009a44e7a02ea50e4afa44f2592621f5_cppui_modular254, - 0x100dc7d426debe3007fb7ceac84e4f5468efcb897e7bbee981742839d59e064c_cppui_modular254, - 0x17022672a016a957bb87e2cfadc8b75fb28905bdb62c82c80b1cb31b411e49c8_cppui_modular254, + 0x205f17b0d8729e2eaa88d6a44135a6ab64e9424f55b0f1ea0683af75eb677c07_bigui254, + 0x281c5c688836f6cf912638c38be046cd091681f0a41761720cdd1edf9f237029_bigui254, + 0x1a053e6878e900f45f4d67448c471cf3009a44e7a02ea50e4afa44f2592621f5_bigui254, + 0x100dc7d426debe3007fb7ceac84e4f5468efcb897e7bbee981742839d59e064c_bigui254, + 0x17022672a016a957bb87e2cfadc8b75fb28905bdb62c82c80b1cb31b411e49c8_bigui254, }}, {{ - 0x1086db7e2760fc8b71053a87ebe151239fb8b547182b170de0c27203f954f4d2_cppui_modular254, - 0x15384fe39d73b63302460ae4c2942fac2b41fb65a185536fb85dd24fd7584064_cppui_modular254, - 0x2ebb599fe9136d424bf4abc5342c6c7447b1a853205fcfb5519e551357709008_cppui_modular254, - 0x1b4b5e87cfb9262cfec3c0f0542e4c5a4cf278292b4ce3eed996fac6f4d37288_cppui_modular254, - 0x2465053ae50b6885801f3f82e302cafbbb4a7581bb4fba60b637febe659e5057_cppui_modular254, + 0x1086db7e2760fc8b71053a87ebe151239fb8b547182b170de0c27203f954f4d2_bigui254, + 0x15384fe39d73b63302460ae4c2942fac2b41fb65a185536fb85dd24fd7584064_bigui254, + 0x2ebb599fe9136d424bf4abc5342c6c7447b1a853205fcfb5519e551357709008_bigui254, + 0x1b4b5e87cfb9262cfec3c0f0542e4c5a4cf278292b4ce3eed996fac6f4d37288_bigui254, + 0x2465053ae50b6885801f3f82e302cafbbb4a7581bb4fba60b637febe659e5057_bigui254, }}, {{ - 0x114f32edcdea09cd095c5bb5d38f1b97da9f05e18b3708bf6e0ab9d3d54859ef_cppui_modular254, - 0x2bc70dfeb2baab2f6b387cd77be779ac2e5e5519f3d18123ee28d8c2543c7148_cppui_modular254, - 0x01c9bf7a203ce22b775e3a61ad7e77b6a78348b9f6ec68a412e49bfe32c05415_cppui_modular254, - 0x0514b0fe5909ea887bedb0295fbbcec355cfb575ff6a97cd9f4ad00ccb57ee9b_cppui_modular254, - 0x267c76ec81934cc81a132a8b058910a12092520b12a201af03e3202d7b6c1b7e_cppui_modular254, + 0x114f32edcdea09cd095c5bb5d38f1b97da9f05e18b3708bf6e0ab9d3d54859ef_bigui254, + 0x2bc70dfeb2baab2f6b387cd77be779ac2e5e5519f3d18123ee28d8c2543c7148_bigui254, + 0x01c9bf7a203ce22b775e3a61ad7e77b6a78348b9f6ec68a412e49bfe32c05415_bigui254, + 0x0514b0fe5909ea887bedb0295fbbcec355cfb575ff6a97cd9f4ad00ccb57ee9b_bigui254, + 0x267c76ec81934cc81a132a8b058910a12092520b12a201af03e3202d7b6c1b7e_bigui254, }}, {{ - 0x29170e3322b3d8d5c78c84babbb470adf1622493ce83e95cfb151cf757bde5d6_cppui_modular254, - 0x019f6a8124b19e33af33e5d3873f9c335c6f09a45486cab536dd596ca41d9519_cppui_modular254, - 0x1904aa4d6908544a8b348e9db1981c27009ed8ea171518ae5405d036242b60e9_cppui_modular254, - 0x26f17873949bc679f7f043956694e422b3cee1de9dd6f6473b932a476455ff1a_cppui_modular254, - 0x1ac668f612b8243c193b33720b8aa54040c476031197131ebdcac9b18bc48f75_cppui_modular254, + 0x29170e3322b3d8d5c78c84babbb470adf1622493ce83e95cfb151cf757bde5d6_bigui254, + 0x019f6a8124b19e33af33e5d3873f9c335c6f09a45486cab536dd596ca41d9519_bigui254, + 0x1904aa4d6908544a8b348e9db1981c27009ed8ea171518ae5405d036242b60e9_bigui254, + 0x26f17873949bc679f7f043956694e422b3cee1de9dd6f6473b932a476455ff1a_bigui254, + 0x1ac668f612b8243c193b33720b8aa54040c476031197131ebdcac9b18bc48f75_bigui254, }}, {{ - 0x0996d961a75c0d07196dae45bf624766ccfbf8555be9796da52f81568ef0663d_cppui_modular254, - 0x030c97e1b8cad1d4fd50d1b4383fbe6674d171f99c63febb5425b395c24fc819_cppui_modular254, - 0x06e3ad6a46900e2d3953370255b68f89b3e523f1fe502642ee226f2d8bd0848f_cppui_modular254, - 0x1d6b3755331cd0216b6880e42f9880f565cb94b0e0455153a329890588cc916e_cppui_modular254, - 0x28e4dcba4b96f12a59b041535e730ac8c35189dc0b85ac033dd38c08bae531f2_cppui_modular254, + 0x0996d961a75c0d07196dae45bf624766ccfbf8555be9796da52f81568ef0663d_bigui254, + 0x030c97e1b8cad1d4fd50d1b4383fbe6674d171f99c63febb5425b395c24fc819_bigui254, + 0x06e3ad6a46900e2d3953370255b68f89b3e523f1fe502642ee226f2d8bd0848f_bigui254, + 0x1d6b3755331cd0216b6880e42f9880f565cb94b0e0455153a329890588cc916e_bigui254, + 0x28e4dcba4b96f12a59b041535e730ac8c35189dc0b85ac033dd38c08bae531f2_bigui254, }}, {{ - 0x08b6086046a835508ccf484f2974b6a6b0712a476260376c7a3b3e4bc4a47a14_cppui_modular254, - 0x162cd2ca7fe3b5f1444bcec97812019bb6fd85fba6a0536a89643e15b9bb3b52_cppui_modular254, - 0x28f1e03baaea9bbc05af5b11937e4f5cb5c9a9c1192063d1998c01c64d483a76_cppui_modular254, - 0x1bdb062778d7c15da395af2734c25faa0127d2aab4aa71366031a0bb6791ce10_cppui_modular254, - 0x2375839502e09890cb2914e829627e0e0fc98870b2324a8b50329ebdd24749cb_cppui_modular254, + 0x08b6086046a835508ccf484f2974b6a6b0712a476260376c7a3b3e4bc4a47a14_bigui254, + 0x162cd2ca7fe3b5f1444bcec97812019bb6fd85fba6a0536a89643e15b9bb3b52_bigui254, + 0x28f1e03baaea9bbc05af5b11937e4f5cb5c9a9c1192063d1998c01c64d483a76_bigui254, + 0x1bdb062778d7c15da395af2734c25faa0127d2aab4aa71366031a0bb6791ce10_bigui254, + 0x2375839502e09890cb2914e829627e0e0fc98870b2324a8b50329ebdd24749cb_bigui254, }}, {{ - 0x1fa8662fbcb61fb3ad7c55668dc9423a332dc87cfb2df456e92d33611ed7bb50_cppui_modular254, - 0x1e4fad2dd6b0a6f1f8707f721716c8a446e2fb2c47a5138f3f7f9736079d7694_cppui_modular254, - 0x211256d16c7269fd6df6f5fcdd1fa788ba3bd050059f53d261b0f5f13731ffe7_cppui_modular254, - 0x2e49084b336eceaa4f8e2a2e6af08318f42060e574dda341f4a1079b12bcc5a5_cppui_modular254, - 0x0ce19f54cdc39f7f3bf35192ac6808211aecea08dfe14cab758d25891fb00bb9_cppui_modular254, + 0x1fa8662fbcb61fb3ad7c55668dc9423a332dc87cfb2df456e92d33611ed7bb50_bigui254, + 0x1e4fad2dd6b0a6f1f8707f721716c8a446e2fb2c47a5138f3f7f9736079d7694_bigui254, + 0x211256d16c7269fd6df6f5fcdd1fa788ba3bd050059f53d261b0f5f13731ffe7_bigui254, + 0x2e49084b336eceaa4f8e2a2e6af08318f42060e574dda341f4a1079b12bcc5a5_bigui254, + 0x0ce19f54cdc39f7f3bf35192ac6808211aecea08dfe14cab758d25891fb00bb9_bigui254, }}, {{ - 0x0011c5d56c390e893cc394221261d8748dc60451e4ae4e1c84a8468bab2c14cb_cppui_modular254, - 0x17d79ff06b63ac2a8a9e05ee6af3dbb7ca60e17bfa39b47514a8cd8051579b4c_cppui_modular254, - 0x19a7d3a446cb5393dc74560093592b06b1a8b35cd6416a2ecab00173639015fa_cppui_modular254, - 0x030c00a0933dcdba2a808b2e1b9282f331f04596d8928da7aa6c3c97237037a6_cppui_modular254, - 0x16bcb447ce2d50f3ae25ad080695382e935d2d00184c4acc9370be8aab64139c_cppui_modular254, + 0x0011c5d56c390e893cc394221261d8748dc60451e4ae4e1c84a8468bab2c14cb_bigui254, + 0x17d79ff06b63ac2a8a9e05ee6af3dbb7ca60e17bfa39b47514a8cd8051579b4c_bigui254, + 0x19a7d3a446cb5393dc74560093592b06b1a8b35cd6416a2ecab00173639015fa_bigui254, + 0x030c00a0933dcdba2a808b2e1b9282f331f04596d8928da7aa6c3c97237037a6_bigui254, + 0x16bcb447ce2d50f3ae25ad080695382e935d2d00184c4acc9370be8aab64139c_bigui254, }}, {{ - 0x12341b46b0150aa25ea4ec8715312997e62124f37cab7b6d39255b7cd66feb1d_cppui_modular254, - 0x0e86d13917f44050b72a97b2bf610c84002fc28e296d1044dc89212db6a49ff4_cppui_modular254, - 0x08e6eb4089d37d66d357e00b53d7f30d1052a181f8f2eb14d059025b110c7262_cppui_modular254, - 0x2ea123856245f6c84738d15dd1481a0c0415ccb351a1e0cee10c48ce97ca7b18_cppui_modular254, - 0x2dca72b2ebcab8c23446e00330b163104195789025413abf664db0f9c84dfa6f_cppui_modular254, + 0x12341b46b0150aa25ea4ec8715312997e62124f37cab7b6d39255b7cd66feb1d_bigui254, + 0x0e86d13917f44050b72a97b2bf610c84002fc28e296d1044dc89212db6a49ff4_bigui254, + 0x08e6eb4089d37d66d357e00b53d7f30d1052a181f8f2eb14d059025b110c7262_bigui254, + 0x2ea123856245f6c84738d15dd1481a0c0415ccb351a1e0cee10c48ce97ca7b18_bigui254, + 0x2dca72b2ebcab8c23446e00330b163104195789025413abf664db0f9c84dfa6f_bigui254, }}, {{ - 0x06ff9ed50d327e8463329f585ec924b3f2f6b4235f036fa4c64a26cbd42b6a6b_cppui_modular254, - 0x246a10b7e3e0089947f7c9bda3d54df8e2a60e0cca84ea2ac630a4535afbf730_cppui_modular254, - 0x22a63501c5f04b9018719ed99d700ee52f846a715ae67ad75c96b39d688b6691_cppui_modular254, - 0x2f4c50477f7fd9c671799ac5d2e224cdb9164f58351d8aa140ec07e514fae937_cppui_modular254, - 0x10ffb7aad1f51c7d13b17f4d876d9a1e38f0ba8a4a23d4b50cda32cad851567e_cppui_modular254, + 0x06ff9ed50d327e8463329f585ec924b3f2f6b4235f036fa4c64a26cbd42b6a6b_bigui254, + 0x246a10b7e3e0089947f7c9bda3d54df8e2a60e0cca84ea2ac630a4535afbf730_bigui254, + 0x22a63501c5f04b9018719ed99d700ee52f846a715ae67ad75c96b39d688b6691_bigui254, + 0x2f4c50477f7fd9c671799ac5d2e224cdb9164f58351d8aa140ec07e514fae937_bigui254, + 0x10ffb7aad1f51c7d13b17f4d876d9a1e38f0ba8a4a23d4b50cda32cad851567e_bigui254, }}, {{ - 0x0e9cefddc3c2d3bea4d39722532d5420784027352187e7af1a056935c35803ae_cppui_modular254, - 0x07af84a4d3141e7ac23352e6dc6ea4afa1656f96a33c8978a3e83bdd4ba62b41_cppui_modular254, - 0x2d9e31a10aebc761f8de00d14b1e566d1a39323d6e89b638e940f3ec8a22c3c5_cppui_modular254, - 0x27f19a6532e66b5333db1afd592f66f1d36034b314dad8447656747be27e64c7_cppui_modular254, - 0x0058fa3c8454d63354b2024c3b4a577a180ed99f8f3155cd7e4d617d47d07ffd_cppui_modular254, + 0x0e9cefddc3c2d3bea4d39722532d5420784027352187e7af1a056935c35803ae_bigui254, + 0x07af84a4d3141e7ac23352e6dc6ea4afa1656f96a33c8978a3e83bdd4ba62b41_bigui254, + 0x2d9e31a10aebc761f8de00d14b1e566d1a39323d6e89b638e940f3ec8a22c3c5_bigui254, + 0x27f19a6532e66b5333db1afd592f66f1d36034b314dad8447656747be27e64c7_bigui254, + 0x0058fa3c8454d63354b2024c3b4a577a180ed99f8f3155cd7e4d617d47d07ffd_bigui254, }}, {{ - 0x041627b6715b780967957c080699343eb0414a205d3a175d708964956816a5d5_cppui_modular254, - 0x006ac49dd9253edc7f632e57b958ccecd98201471cf1f66589888f12b727c52d_cppui_modular254, - 0x0131adffd8bd7254b1d8c3616bbe3386ec0c9c0d6d25a9a4ec46a6bf18301398_cppui_modular254, - 0x1c4a6f52c9fccf7a4138e413ef62a28377977ad7e25e49a3cf030e1cd8f9f5b6_cppui_modular254, - 0x03f2a6be51ec677f946551b3860ea479fee048ae2078aeb7d1f7958d2c2645f6_cppui_modular254, + 0x041627b6715b780967957c080699343eb0414a205d3a175d708964956816a5d5_bigui254, + 0x006ac49dd9253edc7f632e57b958ccecd98201471cf1f66589888f12b727c52d_bigui254, + 0x0131adffd8bd7254b1d8c3616bbe3386ec0c9c0d6d25a9a4ec46a6bf18301398_bigui254, + 0x1c4a6f52c9fccf7a4138e413ef62a28377977ad7e25e49a3cf030e1cd8f9f5b6_bigui254, + 0x03f2a6be51ec677f946551b3860ea479fee048ae2078aeb7d1f7958d2c2645f6_bigui254, }}, {{ - 0x2da770aad2c2eb09391a0cb78ef3a9648a1372d8543119564d7376396b8ddc62_cppui_modular254, - 0x15278463665f74cddc1802febfab02cec9d45fe866c359c738062afb75d64a03_cppui_modular254, - 0x12fe278aa36544eac9731027090518d434e38ea966a08a6f8d580638ac54c773_cppui_modular254, - 0x149b9c802182558a4c45d119d3f4cc7fd8587604ca4f0d6e21b06ff30b6a23b6_cppui_modular254, - 0x0812e7b4d847bc8517d19319772f3c9855e044fd60dbac9a0adc4959b691dfe4_cppui_modular254, + 0x2da770aad2c2eb09391a0cb78ef3a9648a1372d8543119564d7376396b8ddc62_bigui254, + 0x15278463665f74cddc1802febfab02cec9d45fe866c359c738062afb75d64a03_bigui254, + 0x12fe278aa36544eac9731027090518d434e38ea966a08a6f8d580638ac54c773_bigui254, + 0x149b9c802182558a4c45d119d3f4cc7fd8587604ca4f0d6e21b06ff30b6a23b6_bigui254, + 0x0812e7b4d847bc8517d19319772f3c9855e044fd60dbac9a0adc4959b691dfe4_bigui254, }}, {{ - 0x02ed8d8ddeafe3d9d8df7f28a0bfaa7f555813c7e7503aea2a66973703a0c61b_cppui_modular254, - 0x0ebd073ba0537b514deb6029f921029e55e5e4d9a03d6b6ba1304038662d4db8_cppui_modular254, - 0x15c754d5b14b2c4205c6ba8d2ccd028255b3e792c6afa08b44ee75b62eff9f59_cppui_modular254, - 0x169515c89ac5479db0ed8fa6fa311b391cc1235270f4cbc5c29e7cbc30e8732a_cppui_modular254, - 0x25479fbfb3a68f982388f2621001101608bdc29f6ff037696d9161f5cd9a4fef_cppui_modular254, + 0x02ed8d8ddeafe3d9d8df7f28a0bfaa7f555813c7e7503aea2a66973703a0c61b_bigui254, + 0x0ebd073ba0537b514deb6029f921029e55e5e4d9a03d6b6ba1304038662d4db8_bigui254, + 0x15c754d5b14b2c4205c6ba8d2ccd028255b3e792c6afa08b44ee75b62eff9f59_bigui254, + 0x169515c89ac5479db0ed8fa6fa311b391cc1235270f4cbc5c29e7cbc30e8732a_bigui254, + 0x25479fbfb3a68f982388f2621001101608bdc29f6ff037696d9161f5cd9a4fef_bigui254, }}, {{ - 0x14475c4bd520451f3c852cb0311a578ca7f8e6e972182196ce09486e94be6071_cppui_modular254, - 0x045a691066cc66bec9baf2798833a1dfd3a847502aec8d5f5c4e73363d097799_cppui_modular254, - 0x26029c0c267c799fb833ac8a11e3a3f0147a8ca037221b90013b8bcb37eba683_cppui_modular254, - 0x163facb34ff572fbf7c946969c1c260873ce12a6a94a3e45b8101d5b948d1641_cppui_modular254, - 0x2c714e96e1913b351d969320cc69d5ec13e06a6275e58688af8ee00c4240ee28_cppui_modular254, + 0x14475c4bd520451f3c852cb0311a578ca7f8e6e972182196ce09486e94be6071_bigui254, + 0x045a691066cc66bec9baf2798833a1dfd3a847502aec8d5f5c4e73363d097799_bigui254, + 0x26029c0c267c799fb833ac8a11e3a3f0147a8ca037221b90013b8bcb37eba683_bigui254, + 0x163facb34ff572fbf7c946969c1c260873ce12a6a94a3e45b8101d5b948d1641_bigui254, + 0x2c714e96e1913b351d969320cc69d5ec13e06a6275e58688af8ee00c4240ee28_bigui254, }}, {{ - 0x1c1661e2a7ce74b75aba84665ecd2bf9ddd6268f06debfe2d52b804eff1d5fa6_cppui_modular254, - 0x06a69ae795ee9bfe5e5af3e6619a47d26635b34c2a0889fea8c3c068b7dc2c71_cppui_modular254, - 0x113d58535d892115c5d28b4c19a3609374dbdbadf54195c731416c85d731d46a_cppui_modular254, - 0x2ab89102e2b8d5e638ff97d761da6042e534f1ff47f7917a2ca1a74063b46101_cppui_modular254, - 0x03c11ca79e41fdfe962730c45e699546349031893da2b4fd39804fd6a15ad1b3_cppui_modular254, + 0x1c1661e2a7ce74b75aba84665ecd2bf9ddd6268f06debfe2d52b804eff1d5fa6_bigui254, + 0x06a69ae795ee9bfe5e5af3e6619a47d26635b34c2a0889fea8c3c068b7dc2c71_bigui254, + 0x113d58535d892115c5d28b4c19a3609374dbdbadf54195c731416c85d731d46a_bigui254, + 0x2ab89102e2b8d5e638ff97d761da6042e534f1ff47f7917a2ca1a74063b46101_bigui254, + 0x03c11ca79e41fdfe962730c45e699546349031893da2b4fd39804fd6a15ad1b3_bigui254, }}, {{ - 0x27096c672621403888014ddbbbfc9da1f7f67b4d4cfe846c6adf040faaf2669c_cppui_modular254, - 0x2de32ad15497aef4d504d4deeb53b13c66db790ce486130caa9dc2b57ef5be0d_cppui_modular254, - 0x0dc108f2b0a280d2fd5d341310722a2d28c738dddaec9f3d255754448eefd001_cppui_modular254, - 0x1869f3b763fe8164c96858a1bb9efad5bcdc3eebc409be7c7d34ca50365d832f_cppui_modular254, - 0x022ed3a2d9ff31cbf82559fe6a911843b616945e16a568d48c6d33767129682d_cppui_modular254, + 0x27096c672621403888014ddbbbfc9da1f7f67b4d4cfe846c6adf040faaf2669c_bigui254, + 0x2de32ad15497aef4d504d4deeb53b13c66db790ce486130caa9dc2b57ef5be0d_bigui254, + 0x0dc108f2b0a280d2fd5d341310722a2d28c738dddaec9f3d255754448eefd001_bigui254, + 0x1869f3b763fe8164c96858a1bb9efad5bcdc3eebc409be7c7d34ca50365d832f_bigui254, + 0x022ed3a2d9ff31cbf82559fe6a911843b616945e16a568d48c6d33767129682d_bigui254, }}, {{ - 0x2155d6005210169e3944ed1365bd0e7292fca1f27c19c26610c6aec077d026bc_cppui_modular254, - 0x0de1ba7a562a8f7acae93263f5f1b4bbec0c0556c91af3db3ea5928c8caeae85_cppui_modular254, - 0x05dbb4406024beabcfce5bf46ec7da38126f740bce8d637b6351dfa7da902563_cppui_modular254, - 0x05d4149baac413bed4d8dc8ad778d32c00e789e3fcd72dccc97e5427a368fd5e_cppui_modular254, - 0x01cdf8b452d97c2b9be5046e7397e76ff0b6802fa941c7879212e22172c27b2e_cppui_modular254, + 0x2155d6005210169e3944ed1365bd0e7292fca1f27c19c26610c6aec077d026bc_bigui254, + 0x0de1ba7a562a8f7acae93263f5f1b4bbec0c0556c91af3db3ea5928c8caeae85_bigui254, + 0x05dbb4406024beabcfce5bf46ec7da38126f740bce8d637b6351dfa7da902563_bigui254, + 0x05d4149baac413bed4d8dc8ad778d32c00e789e3fcd72dccc97e5427a368fd5e_bigui254, + 0x01cdf8b452d97c2b9be5046e7397e76ff0b6802fa941c7879212e22172c27b2e_bigui254, }}, {{ - 0x1fc6a71867027f56af8085ff81adce33c4d7c5015eced8c71b0a22279d46c07c_cppui_modular254, - 0x1040bef4c642d0345d4d59a5a7a3a42ba9e185b75306d9c3568e0fda96aaafc2_cppui_modular254, - 0x16b79c3a6bf316e0ff2c91b289334a4d2b21e95676431918a8081475ab8fad0d_cppui_modular254, - 0x20dff1bc30f6db6b434b3a1387e3c8c6a34070e52b601fc13cbe1cdcd59f474e_cppui_modular254, - 0x0212ac2ab7a6eaaec254955030a970f8062dd4171a726a8bdfb7fd8512ae060d_cppui_modular254, + 0x1fc6a71867027f56af8085ff81adce33c4d7c5015eced8c71b0a22279d46c07c_bigui254, + 0x1040bef4c642d0345d4d59a5a7a3a42ba9e185b75306d9c3568e0fda96aaafc2_bigui254, + 0x16b79c3a6bf316e0ff2c91b289334a4d2b21e95676431918a8081475ab8fad0d_bigui254, + 0x20dff1bc30f6db6b434b3a1387e3c8c6a34070e52b601fc13cbe1cdcd59f474e_bigui254, + 0x0212ac2ab7a6eaaec254955030a970f8062dd4171a726a8bdfb7fd8512ae060d_bigui254, }}, {{ - 0x2f29377491474442869a109c9215637cb02dc03134f0044213c8119f6996ae09_cppui_modular254, - 0x0984ca6a5f9185d525ec93c33fea603273be9f3866aa284c5837d9f32d814bfa_cppui_modular254, - 0x0d080a6b6b3b60700d299bd6fa81220de491361c8a6bd19ceb0ee9294b24f028_cppui_modular254, - 0x0e65cd99e84b052f6789530638cb0ad821acc85b6400264dce929ed7c85a4544_cppui_modular254, - 0x2e208875bc7ac1224808f72c716cd05ee30e3d20380ff6a655975da12736920b_cppui_modular254, + 0x2f29377491474442869a109c9215637cb02dc03134f0044213c8119f6996ae09_bigui254, + 0x0984ca6a5f9185d525ec93c33fea603273be9f3866aa284c5837d9f32d814bfa_bigui254, + 0x0d080a6b6b3b60700d299bd6fa81220de491361c8a6bd19ceb0ee9294b24f028_bigui254, + 0x0e65cd99e84b052f6789530638cb0ad821acc85b6400264dce929ed7c85a4544_bigui254, + 0x2e208875bc7ac1224808f72c716cd05ee30e3d20380ff6a655975da12736920b_bigui254, }}, {{ - 0x2989f3ae477c2fd376a0b0ff3d7dfac1ae2e3b894afd29f64a60d1aa8592bad5_cppui_modular254, - 0x11361ce544e941379222d101e6fac0ce918106a463290a3e3a74c3cea7189459_cppui_modular254, - 0x1e8d014b86cb5a7da539e10c173f6a75d122a822b8fb366c34c8bd05a2061438_cppui_modular254, - 0x173f65adec8deee27ba812ad29558e23a0c2324167ef6c91212ee2c28ee98733_cppui_modular254, - 0x01c36daaf9f01f1bafee8bd0c779ac3e5da5df7ad45499d0991bd695310eddd9_cppui_modular254, + 0x2989f3ae477c2fd376a0b0ff3d7dfac1ae2e3b894afd29f64a60d1aa8592bad5_bigui254, + 0x11361ce544e941379222d101e6fac0ce918106a463290a3e3a74c3cea7189459_bigui254, + 0x1e8d014b86cb5a7da539e10c173f6a75d122a822b8fb366c34c8bd05a2061438_bigui254, + 0x173f65adec8deee27ba812ad29558e23a0c2324167ef6c91212ee2c28ee98733_bigui254, + 0x01c36daaf9f01f1bafee8bd0c779ac3e5da5df7ad45499d0991bd695310eddd9_bigui254, }}, {{ - 0x1353acb08c05adb4aa9ab1c485bb85fff277d1a3f2fc89944a6f5741f381e562_cppui_modular254, - 0x2e5abd2537207cad1860e71ea1188ee4009d33deb4f93aeb20f1c87a3b064d34_cppui_modular254, - 0x191d5c5edaef42d3d02eedbb7ab8562513deb4eb34913a13421726ba8f69455c_cppui_modular254, - 0x11d7f8d1f269264282a263fea6d7599d82a04c74c127de9dee7939dd2dcd089e_cppui_modular254, - 0x04218fde366829ed90f79ad5e67997973445cb4cd6bc6f951bad085286cac971_cppui_modular254, + 0x1353acb08c05adb4aa9ab1c485bb85fff277d1a3f2fc89944a6f5741f381e562_bigui254, + 0x2e5abd2537207cad1860e71ea1188ee4009d33deb4f93aeb20f1c87a3b064d34_bigui254, + 0x191d5c5edaef42d3d02eedbb7ab8562513deb4eb34913a13421726ba8f69455c_bigui254, + 0x11d7f8d1f269264282a263fea6d7599d82a04c74c127de9dee7939dd2dcd089e_bigui254, + 0x04218fde366829ed90f79ad5e67997973445cb4cd6bc6f951bad085286cac971_bigui254, }}, {{ - 0x0070772f7cf52453048397ca5f47a202027b73b489301c3227b71c730d76d6dd_cppui_modular254, - 0x038a389baef5d9a7c865b065687a1d9b67681a98cd051634c1dc04dbe3d2b861_cppui_modular254, - 0x09a5eefab8b36a80cda446b2b4b59ccd0f39d00966a50beaf19860789015a6e5_cppui_modular254, - 0x01b588848b8b47c8b969c145109b4b583d9ec99edfacb7489d16212c7584cd8c_cppui_modular254, - 0x0b846e4a390e560f6e1af6dfc3341419545e5abfa323d817fed91e30d42954a6_cppui_modular254, + 0x0070772f7cf52453048397ca5f47a202027b73b489301c3227b71c730d76d6dd_bigui254, + 0x038a389baef5d9a7c865b065687a1d9b67681a98cd051634c1dc04dbe3d2b861_bigui254, + 0x09a5eefab8b36a80cda446b2b4b59ccd0f39d00966a50beaf19860789015a6e5_bigui254, + 0x01b588848b8b47c8b969c145109b4b583d9ec99edfacb7489d16212c7584cd8c_bigui254, + 0x0b846e4a390e560f6e1af6dfc3341419545e5abfa323d817fed91e30d42954a6_bigui254, }}, {{ - 0x23a6679c7d9adb660d43a02ddb900040eb1513bc394fc4f985cabfe85ce72fe3_cppui_modular254, - 0x2e0374a699197e343e5caa35f1351e9f4c3402fb7c85ecccf72f31d6fe089254_cppui_modular254, - 0x0752cd899e52dc4d7f7a08af4cde3ff64b8cc0b1176bb9ec37d41913a7a27b48_cppui_modular254, - 0x068f8813127299dac349a2b6d57397a50275142b664b802c99e2873dd7ae55a7_cppui_modular254, - 0x2ba70a102355d549677574167434b3f986872d04a295b5b8b374330f2da202b5_cppui_modular254 + 0x23a6679c7d9adb660d43a02ddb900040eb1513bc394fc4f985cabfe85ce72fe3_bigui254, + 0x2e0374a699197e343e5caa35f1351e9f4c3402fb7c85ecccf72f31d6fe089254_bigui254, + 0x0752cd899e52dc4d7f7a08af4cde3ff64b8cc0b1176bb9ec37d41913a7a27b48_bigui254, + 0x068f8813127299dac349a2b6d57397a50275142b664b802c99e2873dd7ae55a7_bigui254, + 0x2ba70a102355d549677574167434b3f986872d04a295b5b8b374330f2da202b5_bigui254 }}, {{ - 0x2c467af88748abf6a334d1df03b5521309f9099b825dd289b8609e70a0b50828_cppui_modular254, - 0x05c5f20bef1bd82701009a2b448ae881e3a52c2d1a31957296d29e5763e8f497_cppui_modular254, - 0x0dc6385fdc567be5842a381f6006e2c60cd083a2c649d9f23ac8c9fe61b73871_cppui_modular254, - 0x142d3983f3dc7f7e19d49911b8670fa70378d5b84150d25ed255baa8114b369c_cppui_modular254, - 0x29a01efb2f6aa894fd7e6d98c96a0fa0f36f86a7a99aa35c00fa18c1b2df67bf_cppui_modular254 + 0x2c467af88748abf6a334d1df03b5521309f9099b825dd289b8609e70a0b50828_bigui254, + 0x05c5f20bef1bd82701009a2b448ae881e3a52c2d1a31957296d29e5763e8f497_bigui254, + 0x0dc6385fdc567be5842a381f6006e2c60cd083a2c649d9f23ac8c9fe61b73871_bigui254, + 0x142d3983f3dc7f7e19d49911b8670fa70378d5b84150d25ed255baa8114b369c_bigui254, + 0x29a01efb2f6aa894fd7e6d98c96a0fa0f36f86a7a99aa35c00fa18c1b2df67bf_bigui254 }}, {{ - 0x0525ffee737d605138c4a5066644ec630ab9e8afc64555b7d2a1af04eb613a76_cppui_modular254, - 0x1e807dca81d79581f076677ca0e822767e164f614910264ef177cf4238301dc8_cppui_modular254, - 0x0385fb3f89c74dc993510816472474d34c0223e0f733a52fdba56082dbd8757c_cppui_modular254, - 0x037640dc1afc0143e1a6298e53cae59fcfabd7016fd6ef1af558f337bab0ea01_cppui_modular254, - 0x1341999a1ed86919f12a6c5260829eee5fd56cf031da8050b7e4c0de896074b4_cppui_modular254 + 0x0525ffee737d605138c4a5066644ec630ab9e8afc64555b7d2a1af04eb613a76_bigui254, + 0x1e807dca81d79581f076677ca0e822767e164f614910264ef177cf4238301dc8_bigui254, + 0x0385fb3f89c74dc993510816472474d34c0223e0f733a52fdba56082dbd8757c_bigui254, + 0x037640dc1afc0143e1a6298e53cae59fcfabd7016fd6ef1af558f337bab0ea01_bigui254, + 0x1341999a1ed86919f12a6c5260829eee5fd56cf031da8050b7e4c0de896074b4_bigui254 }}, {{ - 0x069eb075866b0af356906d4bafb10ad773afd642efdcc5657b244f65bed8ece7_cppui_modular254, - 0x171c0b81e62136e395b38e8e08b3e646d2726101d3afaa02ea1909a619033696_cppui_modular254, - 0x2c81814c9453f51cb6eb55c311753e84cbbdcb39bfe696f95575107502acced8_cppui_modular254, - 0x29d843c0415d35d9e3b33fadcf274b2ab04b39032adca92ce39b8a86a7c3a604_cppui_modular254, - 0x085d6a1070f3513d8436bccdabb78750d8e15ea5947f2cdaa7669cf3fae7728b_cppui_modular254 + 0x069eb075866b0af356906d4bafb10ad773afd642efdcc5657b244f65bed8ece7_bigui254, + 0x171c0b81e62136e395b38e8e08b3e646d2726101d3afaa02ea1909a619033696_bigui254, + 0x2c81814c9453f51cb6eb55c311753e84cbbdcb39bfe696f95575107502acced8_bigui254, + 0x29d843c0415d35d9e3b33fadcf274b2ab04b39032adca92ce39b8a86a7c3a604_bigui254, + 0x085d6a1070f3513d8436bccdabb78750d8e15ea5947f2cdaa7669cf3fae7728b_bigui254 }}, {{ - 0x11820363ed541daa10a44ba665bf302cdbf1dd4e6706b02c9e2a5cda412fc394_cppui_modular254, - 0x201935a58f5c57fc02b60d61a83785bddfd3150e05f1df5d105840b751a16317_cppui_modular254, - 0x0a8c2820c56971aae27a952abd33a03d46794eedd686cd8ecfed610e87c02e9a_cppui_modular254, - 0x180638ff301a64ca04abd6d0bd7500b6650b65ff33e6be1fd50dbc163a281877_cppui_modular254, - 0x095c716266f1de59044f97114a4158a3f85ca8a937cfbec63e9b321a812dd36b_cppui_modular254 + 0x11820363ed541daa10a44ba665bf302cdbf1dd4e6706b02c9e2a5cda412fc394_bigui254, + 0x201935a58f5c57fc02b60d61a83785bddfd3150e05f1df5d105840b751a16317_bigui254, + 0x0a8c2820c56971aae27a952abd33a03d46794eedd686cd8ecfed610e87c02e9a_bigui254, + 0x180638ff301a64ca04abd6d0bd7500b6650b65ff33e6be1fd50dbc163a281877_bigui254, + 0x095c716266f1de59044f97114a4158a3f85ca8a937cfbec63e9b321a812dd36b_bigui254 }}, {{ - 0x17c31ea02fbc378320d86ffed6c7ca1583b618c5c1a687818d4087a497d73490_cppui_modular254, - 0x05b86c4bb8ef318b6a7227e4192d149d3c17a9764ccd660de4d50a77f192a91b_cppui_modular254, - 0x265bc95df4a4c4876ff70d7ea2fde2c7ab15f4a6ae0d237cd6ce74ba986c7a7b_cppui_modular254, - 0x24752b47bc6c6bc8d9bbe48f5fef2f6908701739c5f5b4b3d6c886d4715c7929_cppui_modular254, - 0x14814a1e0f492a4ea0d86e527a96482178d624b98da96ee5e583b9324d974efe_cppui_modular254 + 0x17c31ea02fbc378320d86ffed6c7ca1583b618c5c1a687818d4087a497d73490_bigui254, + 0x05b86c4bb8ef318b6a7227e4192d149d3c17a9764ccd660de4d50a77f192a91b_bigui254, + 0x265bc95df4a4c4876ff70d7ea2fde2c7ab15f4a6ae0d237cd6ce74ba986c7a7b_bigui254, + 0x24752b47bc6c6bc8d9bbe48f5fef2f6908701739c5f5b4b3d6c886d4715c7929_bigui254, + 0x14814a1e0f492a4ea0d86e527a96482178d624b98da96ee5e583b9324d974efe_bigui254 }}, {{ - 0x10def931073b6479bd60577378f29381997c8e041d3cfb3dc7523bca906f00bd_cppui_modular254, - 0x14f7ae770bf7e95f7f706c0d8ab4ed03fa0b880d28c69d031b4592c98610175f_cppui_modular254, - 0x1aef50a0cee751b59f926af40e8035d19decc9d428ebe4e775c5cc9dce1ce589_cppui_modular254, - 0x041935607172f68eba65ca60068dfe3b086c2a2d57d09602951214b57e73cf5a_cppui_modular254, - 0x26863e9dd24255d1573bd083959b856c0493fbefe83c819837a151d3bf452cb8_cppui_modular254 + 0x10def931073b6479bd60577378f29381997c8e041d3cfb3dc7523bca906f00bd_bigui254, + 0x14f7ae770bf7e95f7f706c0d8ab4ed03fa0b880d28c69d031b4592c98610175f_bigui254, + 0x1aef50a0cee751b59f926af40e8035d19decc9d428ebe4e775c5cc9dce1ce589_bigui254, + 0x041935607172f68eba65ca60068dfe3b086c2a2d57d09602951214b57e73cf5a_bigui254, + 0x26863e9dd24255d1573bd083959b856c0493fbefe83c819837a151d3bf452cb8_bigui254 }}, {{ - 0x2036efb6f9830965eb3d7a068bd087c9f5adf251ba62052c652738e63ff8b3af_cppui_modular254, - 0x0c712a975b74dc9d766b639a029969ca30be4f75a753f854b00fa4f1b4f4ee9b_cppui_modular254, - 0x08014dab3cd1667e27afc99bfac1e6807afdff6456492ca3375731d387539699_cppui_modular254, - 0x198d07192db4fac2a82a4a79839d6a2b97c4dd4d37b4e8f3b53009f79b34e6a4_cppui_modular254, - 0x29eb1de42a3ad381b23b4131426897a32709b29d53bb946dfd15784d1f63e572_cppui_modular254 + 0x2036efb6f9830965eb3d7a068bd087c9f5adf251ba62052c652738e63ff8b3af_bigui254, + 0x0c712a975b74dc9d766b639a029969ca30be4f75a753f854b00fa4f1b4f4ee9b_bigui254, + 0x08014dab3cd1667e27afc99bfac1e6807afdff6456492ca3375731d387539699_bigui254, + 0x198d07192db4fac2a82a4a79839d6a2b97c4dd4d37b4e8f3b53009f79b34e6a4_bigui254, + 0x29eb1de42a3ad381b23b4131426897a32709b29d53bb946dfd15784d1f63e572_bigui254 }} }}; }; @@ -933,348 +933,348 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x3d955d6c02fe4d7cb500e12f2b55eff668a7b4386bd27413766713c93f2acfcd_cppui_modular255, - 0x3798866f4e6058035dcf8addb2cf1771fac234bcc8fc05d6676e77e797f224bf_cppui_modular255, - 0x2c51456a7bf2467eac813649f3f25ea896eac27c5da020dae54a6e640278fda2_cppui_modular255 + 0x3d955d6c02fe4d7cb500e12f2b55eff668a7b4386bd27413766713c93f2acfcd_bigui255, + 0x3798866f4e6058035dcf8addb2cf1771fac234bcc8fc05d6676e77e797f224bf_bigui255, + 0x2c51456a7bf2467eac813649f3f25ea896eac27c5da020dae54a6e640278fda2_bigui255 }}, {{ - 0x20088ca07bbcd7490a0218ebc0ecb31d0ea34840e2dc2d33a1a5adfecff83b43_cppui_modular255, - 0x1d04ba0915e7807c968ea4b1cb2d610c7f9a16b4033f02ebacbb948c86a988c3_cppui_modular255, - 0x5387ccd5729d7acbd09d96714d1d18bbd0eeaefb2ddee3d2ef573c9c7f953307_cppui_modular255 + 0x20088ca07bbcd7490a0218ebc0ecb31d0ea34840e2dc2d33a1a5adfecff83b43_bigui255, + 0x1d04ba0915e7807c968ea4b1cb2d610c7f9a16b4033f02ebacbb948c86a988c3_bigui255, + 0x5387ccd5729d7acbd09d96714d1d18bbd0eeaefb2ddee3d2ef573c9c7f953307_bigui255 }}, {{ - 0x1e208f585a72558534281562cad89659b428ec61433293a8d7f0f0e38a6726ac_cppui_modular255, - 0x0455ebf862f0b60f69698e97d36e8aafd4d107cae2b61be1858b23a3363642e0_cppui_modular255, - 0x569e2c206119e89455852059f707370e2c1fc9721f6c50991cedbbf782daef54_cppui_modular255 + 0x1e208f585a72558534281562cad89659b428ec61433293a8d7f0f0e38a6726ac_bigui255, + 0x0455ebf862f0b60f69698e97d36e8aafd4d107cae2b61be1858b23a3363642e0_bigui255, + 0x569e2c206119e89455852059f707370e2c1fc9721f6c50991cedbbf782daef54_bigui255 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x6c4ffa723eaf1a7bf74905cc7dae4ca9ff4a2c3bc81d42e09540d1f250910880_cppui_modular255, - 0x54dd837eccf180c92c2f53a3476e45a156ab69a403b6b9fdfd8dd970fddcdd9a_cppui_modular255, - 0x64f56d735286c35f0e7d0a29680d49d54fb924adccf8962eeee225bf9423a85e_cppui_modular255 + 0x6c4ffa723eaf1a7bf74905cc7dae4ca9ff4a2c3bc81d42e09540d1f250910880_bigui255, + 0x54dd837eccf180c92c2f53a3476e45a156ab69a403b6b9fdfd8dd970fddcdd9a_bigui255, + 0x64f56d735286c35f0e7d0a29680d49d54fb924adccf8962eeee225bf9423a85e_bigui255 }}, {{ - 0x670d5b6efe620f987d967fb13d2045ee3ac8e9cbf7d30e8594e733c7497910dc_cppui_modular255, - 0x2ef5299e2077b2392ca874b015120d7e7530f277e06f78ee0b28f33550c68937_cppui_modular255, - 0x0c0981889405b59c384e7dfa49cd4236e2f45ed024488f67c73f51c7c22d8095_cppui_modular255 + 0x670d5b6efe620f987d967fb13d2045ee3ac8e9cbf7d30e8594e733c7497910dc_bigui255, + 0x2ef5299e2077b2392ca874b015120d7e7530f277e06f78ee0b28f33550c68937_bigui255, + 0x0c0981889405b59c384e7dfa49cd4236e2f45ed024488f67c73f51c7c22d8095_bigui255 }}, {{ - 0x0d88548e6296171b26c61ea458288e5a0d048e2fdf5659de62cfca43f1649c82_cppui_modular255, - 0x3371c00f3715d44abce4140202abaaa44995f6f1df12384222f61123faa6b638_cppui_modular255, - 0x4ce428fec6d178d10348f4857f0006a652911085c8d86baa706f6d7975b0fe1b_cppui_modular255 + 0x0d88548e6296171b26c61ea458288e5a0d048e2fdf5659de62cfca43f1649c82_bigui255, + 0x3371c00f3715d44abce4140202abaaa44995f6f1df12384222f61123faa6b638_bigui255, + 0x4ce428fec6d178d10348f4857f0006a652911085c8d86baa706f6d7975b0fe1b_bigui255 }}, {{ - 0x1a3c26d755bf65326b03521c94582d91a3ae2c0d8dfb2a345847aece52070ab0_cppui_modular255, - 0x02dbb4709583838c35a118742bf482d257ed4dfb212014c083a6b059adda82b5_cppui_modular255, - 0x41f2dd64b9a0dcea721b0035259f45f2a9066690de8f13b9a48ead411d8ff5a7_cppui_modular255 + 0x1a3c26d755bf65326b03521c94582d91a3ae2c0d8dfb2a345847aece52070ab0_bigui255, + 0x02dbb4709583838c35a118742bf482d257ed4dfb212014c083a6b059adda82b5_bigui255, + 0x41f2dd64b9a0dcea721b0035259f45f2a9066690de8f13b9a48ead411d8ff5a7_bigui255 }}, {{ - 0x5f154892782617b26993eea6431580c0a82c0a4dd0efdb24688726b4108c46a8_cppui_modular255, - 0x0db98520f9b97cbcdb557872f4b7f81567a1be374f60fc4281a6e04079e00c0c_cppui_modular255, - 0x71564ed66b41e872ca76aaf9b2fa0ca0695f2162705ca6a1f7ef043fd957f12d_cppui_modular255 + 0x5f154892782617b26993eea6431580c0a82c0a4dd0efdb24688726b4108c46a8_bigui255, + 0x0db98520f9b97cbcdb557872f4b7f81567a1be374f60fc4281a6e04079e00c0c_bigui255, + 0x71564ed66b41e872ca76aaf9b2fa0ca0695f2162705ca6a1f7ef043fd957f12d_bigui255 }}, {{ - 0x69191b1fe6acbf888d0c723f754c89e8bd29cb34b1e43ab27be105ea6b38d8b8_cppui_modular255, - 0x04e9919eb06ff327152cfed30028c5edc667809ce1512e5963329c7040d29350_cppui_modular255, - 0x573bc78e3ed162e5edd38595feead65481c991b856178f6182a0c7090ff71288_cppui_modular255 + 0x69191b1fe6acbf888d0c723f754c89e8bd29cb34b1e43ab27be105ea6b38d8b8_bigui255, + 0x04e9919eb06ff327152cfed30028c5edc667809ce1512e5963329c7040d29350_bigui255, + 0x573bc78e3ed162e5edd38595feead65481c991b856178f6182a0c7090ff71288_bigui255 }}, {{ - 0x102800af87fd92eb1dec942469e076602695a1996a4db968bb7f38ddd455db0b_cppui_modular255, - 0x593d1894c17e5b626f8779acc32d8f188d619c02902ef775ebe81ef1c0fb7a8f_cppui_modular255, - 0x66850b1b1d5d4e07b03bac49c9feadd051e374908196a806bd296957fa2fe2b7_cppui_modular255 + 0x102800af87fd92eb1dec942469e076602695a1996a4db968bb7f38ddd455db0b_bigui255, + 0x593d1894c17e5b626f8779acc32d8f188d619c02902ef775ebe81ef1c0fb7a8f_bigui255, + 0x66850b1b1d5d4e07b03bac49c9feadd051e374908196a806bd296957fa2fe2b7_bigui255 }}, {{ - 0x46aaa1206232ceb480d6aa16cc03465d8e96a807b28c1e494a81c43e0faffc57_cppui_modular255, - 0x2102aab97ce5bd94ffd5db908bf28b7f8c36671191d4ee9ac1c5f2fae4780579_cppui_modular255, - 0x14387b24d1c0c712bbe720164c4093185fcb546a2a7d481abc94e5b8fb5178b7_cppui_modular255 + 0x46aaa1206232ceb480d6aa16cc03465d8e96a807b28c1e494a81c43e0faffc57_bigui255, + 0x2102aab97ce5bd94ffd5db908bf28b7f8c36671191d4ee9ac1c5f2fae4780579_bigui255, + 0x14387b24d1c0c712bbe720164c4093185fcb546a2a7d481abc94e5b8fb5178b7_bigui255 }}, {{ - 0x5f2179b3a7845836cfced83e64e206f6a6cef2cf737f020b5cfd713c9550fe9f_cppui_modular255, - 0x1787986ab56e1b56b5443334562b0bc3657d27323b87e3a8485e68ab96d57188_cppui_modular255, - 0x39ef4b00deefe7e7451adda44428aa22074c496de2c9ed67dcf4861da65f543a_cppui_modular255 + 0x5f2179b3a7845836cfced83e64e206f6a6cef2cf737f020b5cfd713c9550fe9f_bigui255, + 0x1787986ab56e1b56b5443334562b0bc3657d27323b87e3a8485e68ab96d57188_bigui255, + 0x39ef4b00deefe7e7451adda44428aa22074c496de2c9ed67dcf4861da65f543a_bigui255 }}, {{ - 0x7271d384cf5c90fd0c48af190c5c765937c7468088b081a99337e6eae53bb20c_cppui_modular255, - 0x6669e58d04248ca86024fbc196e5f306e522423aa71f84225435328b37a1dd3d_cppui_modular255, - 0x0c1f1b492b27539d754cba5e46edc1f1ac1c5696da8eb19416b07420bb321c65_cppui_modular255 + 0x7271d384cf5c90fd0c48af190c5c765937c7468088b081a99337e6eae53bb20c_bigui255, + 0x6669e58d04248ca86024fbc196e5f306e522423aa71f84225435328b37a1dd3d_bigui255, + 0x0c1f1b492b27539d754cba5e46edc1f1ac1c5696da8eb19416b07420bb321c65_bigui255 }}, {{ - 0x1c4d41a133b97dc467f1f184cf191f331dfc38e79e7e53516c39848c9bd44692_cppui_modular255, - 0x369ea8e699181b1cf88be9205ab840180c9288e67a359dc0dda4ac74cf9768e2_cppui_modular255, - 0x4cfa7d72afed332bf0b8a2a719123f7ebfa714b9e3100eaa533dbde6fb985043_cppui_modular255 + 0x1c4d41a133b97dc467f1f184cf191f331dfc38e79e7e53516c39848c9bd44692_bigui255, + 0x369ea8e699181b1cf88be9205ab840180c9288e67a359dc0dda4ac74cf9768e2_bigui255, + 0x4cfa7d72afed332bf0b8a2a719123f7ebfa714b9e3100eaa533dbde6fb985043_bigui255 }}, {{ - 0x4e592fcde9f3c360e54c6f34d7a8bd41889942e9fe23d9fd4a9e5b3bfbbb3e45_cppui_modular255, - 0x032b5885586212fb235570996d3a4c40f54ff91598a948ec2722ed865b8438a5_cppui_modular255, - 0x03f3178956cfd3e2e6614fb134597d3b3cff0d8a33f3523d825982990c068940_cppui_modular255 + 0x4e592fcde9f3c360e54c6f34d7a8bd41889942e9fe23d9fd4a9e5b3bfbbb3e45_bigui255, + 0x032b5885586212fb235570996d3a4c40f54ff91598a948ec2722ed865b8438a5_bigui255, + 0x03f3178956cfd3e2e6614fb134597d3b3cff0d8a33f3523d825982990c068940_bigui255 }}, {{ - 0x3126e84dfd67a22bf0ce0d9273d8ad40e6109af5bb2bd78d0ac08a16c6248f74_cppui_modular255, - 0x3527888062f1e2738d7b928e9af244f0a39011390c2dbbcf56d8e087f4087b6f_cppui_modular255, - 0x64635758efc701dbbe2eb423bf7b5bf6c3d34c6ff92494f3421182a8b187ecf7_cppui_modular255 + 0x3126e84dfd67a22bf0ce0d9273d8ad40e6109af5bb2bd78d0ac08a16c6248f74_bigui255, + 0x3527888062f1e2738d7b928e9af244f0a39011390c2dbbcf56d8e087f4087b6f_bigui255, + 0x64635758efc701dbbe2eb423bf7b5bf6c3d34c6ff92494f3421182a8b187ecf7_bigui255 }}, {{ - 0x4d7f71960f03db8a2a428cbf77ddc1916a5f4243dbeb2ddaef7b5b5f9d74546e_cppui_modular255, - 0x37832ba2da93de3643243eba3b9765d75359310617f3fc06d74ac12db57b29c5_cppui_modular255, - 0x4dce55879ffd9398f96c9e6556a3bb4fc93147965252cb1d6c94b3282ba3fae6_cppui_modular255 + 0x4d7f71960f03db8a2a428cbf77ddc1916a5f4243dbeb2ddaef7b5b5f9d74546e_bigui255, + 0x37832ba2da93de3643243eba3b9765d75359310617f3fc06d74ac12db57b29c5_bigui255, + 0x4dce55879ffd9398f96c9e6556a3bb4fc93147965252cb1d6c94b3282ba3fae6_bigui255 }}, {{ - 0x4ba85e4d2537972c0fd5a4727a58c3d85d98563697a34c0af845bfecd6dc4b40_cppui_modular255, - 0x582dc453b4cbf6b1d19734b0f337d3423b503703979689f384d0eb96ff5b02ce_cppui_modular255, - 0x0e6f127f479ee6113540d69b25420a2682f07b23e799566b091a1c891fa224ba_cppui_modular255 + 0x4ba85e4d2537972c0fd5a4727a58c3d85d98563697a34c0af845bfecd6dc4b40_bigui255, + 0x582dc453b4cbf6b1d19734b0f337d3423b503703979689f384d0eb96ff5b02ce_bigui255, + 0x0e6f127f479ee6113540d69b25420a2682f07b23e799566b091a1c891fa224ba_bigui255 }}, {{ - 0x39c815508d2995bb8ae5035472944706e900b2fb16d5a779fdfff82306f37dbb_cppui_modular255, - 0x6591aba215bcf96d8aa03220372179a4c5060cfd7f95724ab300d9459f709051_cppui_modular255, - 0x221807cb4909d549c546a734ad2cd7f60a69e816ace98fad830452a44a343188_cppui_modular255 + 0x39c815508d2995bb8ae5035472944706e900b2fb16d5a779fdfff82306f37dbb_bigui255, + 0x6591aba215bcf96d8aa03220372179a4c5060cfd7f95724ab300d9459f709051_bigui255, + 0x221807cb4909d549c546a734ad2cd7f60a69e816ace98fad830452a44a343188_bigui255 }}, {{ - 0x2766a1e33038004da58bce78722380b22b13b0aecb87f38659f3035e1336b53f_cppui_modular255, - 0x11b5e993e6a9cdc3b5d2f5336dc9bad5074b661537ff890b1babd7f53cada9e3_cppui_modular255, - 0x29576176f9a5a10e3d0a2c59af26b51f4c5fc86ec59c0f2492deb60ad49eddcd_cppui_modular255 + 0x2766a1e33038004da58bce78722380b22b13b0aecb87f38659f3035e1336b53f_bigui255, + 0x11b5e993e6a9cdc3b5d2f5336dc9bad5074b661537ff890b1babd7f53cada9e3_bigui255, + 0x29576176f9a5a10e3d0a2c59af26b51f4c5fc86ec59c0f2492deb60ad49eddcd_bigui255 }}, {{ - 0x51e72c44f9de491c747d8a6d333fb2b3e16ee7571f1340a9a5f6f72363991e98_cppui_modular255, - 0x2fb360d959be4aa871e071764a5e41eb264d04f0289f098723b69bab09f4d1a6_cppui_modular255, - 0x03f46b4c3c77957cb595ed61fe13f9e8739a5009311142b69c1e8c07ae250f47_cppui_modular255 + 0x51e72c44f9de491c747d8a6d333fb2b3e16ee7571f1340a9a5f6f72363991e98_bigui255, + 0x2fb360d959be4aa871e071764a5e41eb264d04f0289f098723b69bab09f4d1a6_bigui255, + 0x03f46b4c3c77957cb595ed61fe13f9e8739a5009311142b69c1e8c07ae250f47_bigui255 }}, {{ - 0x4683311e382a99927e0ff672cd0543aaebfc0c33ba96ad937818cec979b57b5e_cppui_modular255, - 0x7117cc69bf566b1b0ba5486b0f1f9bd60f2f945e3cbf33a2ed17076f4caa0dd6_cppui_modular255, - 0x3bd670c3ce88ea43f254d61c2a9b56d6a4dff19ab5c4d28989d271f3dd6bee25_cppui_modular255 + 0x4683311e382a99927e0ff672cd0543aaebfc0c33ba96ad937818cec979b57b5e_bigui255, + 0x7117cc69bf566b1b0ba5486b0f1f9bd60f2f945e3cbf33a2ed17076f4caa0dd6_bigui255, + 0x3bd670c3ce88ea43f254d61c2a9b56d6a4dff19ab5c4d28989d271f3dd6bee25_bigui255 }}, {{ - 0x2fd2ed0ba1135575995d15061ddb487f2c5c6005feed28d8a01b9d7bee361a1b_cppui_modular255, - 0x6a66704e22a81e6b7ad8e2f28edd8c9c9a10abf17e053f4d89665810332600ec_cppui_modular255, - 0x5cbc378be1db3840b32d8d2ebfe2695f810f932a206aacece707ca693f4f933e_cppui_modular255 + 0x2fd2ed0ba1135575995d15061ddb487f2c5c6005feed28d8a01b9d7bee361a1b_bigui255, + 0x6a66704e22a81e6b7ad8e2f28edd8c9c9a10abf17e053f4d89665810332600ec_bigui255, + 0x5cbc378be1db3840b32d8d2ebfe2695f810f932a206aacece707ca693f4f933e_bigui255 }}, {{ - 0x35b716410b3c9374d42e7d39eaca316b6568f0a14cb14d519967aa3ff9970aac_cppui_modular255, - 0x231c6db056e47a01c192db40e586ededc929b564667377a10bd1465f3852811f_cppui_modular255, - 0x4904d5de1f512eb14b0f856acb016c7a43079b2f702303752962f336558b0f32_cppui_modular255 + 0x35b716410b3c9374d42e7d39eaca316b6568f0a14cb14d519967aa3ff9970aac_bigui255, + 0x231c6db056e47a01c192db40e586ededc929b564667377a10bd1465f3852811f_bigui255, + 0x4904d5de1f512eb14b0f856acb016c7a43079b2f702303752962f336558b0f32_bigui255 }}, {{ - 0x56d6bc63f429bb7fec7bdd133581f2abc74406a57607c2ba3302481eddba4074_cppui_modular255, - 0x519d0daccadfbb0167fa79d1afdf36b25f28b9f74f1e65d21d28ce1022579735_cppui_modular255, - 0x0576cf2418d6bd88f352bb26da1066637575f85688cdb981c7787f8094e5a71a_cppui_modular255 + 0x56d6bc63f429bb7fec7bdd133581f2abc74406a57607c2ba3302481eddba4074_bigui255, + 0x519d0daccadfbb0167fa79d1afdf36b25f28b9f74f1e65d21d28ce1022579735_bigui255, + 0x0576cf2418d6bd88f352bb26da1066637575f85688cdb981c7787f8094e5a71a_bigui255 }}, {{ - 0x16672be70221dfa20aa110bdce12e1e66ab171db4eadd9935baa0e3aa49e437a_cppui_modular255, - 0x1e51c73bc2aeb9e877d9c2c18f17b03ea3dfcc04adfc649780ce4bcbc43b0b69_cppui_modular255, - 0x1271c830507a211c8e2ebdfb372f79c8a42a9e84e4fdb0dcb35d55e4d155e169_cppui_modular255 + 0x16672be70221dfa20aa110bdce12e1e66ab171db4eadd9935baa0e3aa49e437a_bigui255, + 0x1e51c73bc2aeb9e877d9c2c18f17b03ea3dfcc04adfc649780ce4bcbc43b0b69_bigui255, + 0x1271c830507a211c8e2ebdfb372f79c8a42a9e84e4fdb0dcb35d55e4d155e169_bigui255 }}, {{ - 0x67077397c2b01db4de4b78adf97e0ebceb20cb91647db49a7bc06a5ce1b25544_cppui_modular255, - 0x2e5454b258106b63f0ab01924767b4aecce371202abc28a260adc45f35570b9d_cppui_modular255, - 0x440f72769f137a8078f05063cfa4e2b73b2381b72b68e97b1c1e9cd18df36f82_cppui_modular255 + 0x67077397c2b01db4de4b78adf97e0ebceb20cb91647db49a7bc06a5ce1b25544_bigui255, + 0x2e5454b258106b63f0ab01924767b4aecce371202abc28a260adc45f35570b9d_bigui255, + 0x440f72769f137a8078f05063cfa4e2b73b2381b72b68e97b1c1e9cd18df36f82_bigui255 }}, {{ - 0x6ae1478fc162c50032fef2ef79c93ca7ee25b16358704f434f6cddcce2fc9c40_cppui_modular255, - 0x0c0f3630409a2242a39ebb33c5c7cf18965b8932621aab4ca2c315d4441b6987_cppui_modular255, - 0x0d1bd84a786a990adf88b51f253bd9032cb50ce4682bafe103893af36d5e75dc_cppui_modular255 + 0x6ae1478fc162c50032fef2ef79c93ca7ee25b16358704f434f6cddcce2fc9c40_bigui255, + 0x0c0f3630409a2242a39ebb33c5c7cf18965b8932621aab4ca2c315d4441b6987_bigui255, + 0x0d1bd84a786a990adf88b51f253bd9032cb50ce4682bafe103893af36d5e75dc_bigui255 }}, {{ - 0x30ce425059810dd94aae2f255666b0fe8bc52ff701c385c43a998926539dd401_cppui_modular255, - 0x395a1e753153b56d1a9ec2ca73099425e446dfa668dc73da2ea311abe5e3d96d_cppui_modular255, - 0x57f09d89e827d00392fdc0c3d21b1a5bae2d689894ced82f58e256a03d20ef91_cppui_modular255 + 0x30ce425059810dd94aae2f255666b0fe8bc52ff701c385c43a998926539dd401_bigui255, + 0x395a1e753153b56d1a9ec2ca73099425e446dfa668dc73da2ea311abe5e3d96d_bigui255, + 0x57f09d89e827d00392fdc0c3d21b1a5bae2d689894ced82f58e256a03d20ef91_bigui255 }}, {{ - 0x1065b71b135e4feb8b3cba3c252daa084cb5624b0ba76f48f6a03854bfdbcacc_cppui_modular255, - 0x3d5f53bd162f053f045547952a06bc83bc413e17957977e359d9bd4c8883203d_cppui_modular255, - 0x05f467a5081bd3479d6b49f697b0a75d264b42b95b2bed475cd58ffd05322d85_cppui_modular255 + 0x1065b71b135e4feb8b3cba3c252daa084cb5624b0ba76f48f6a03854bfdbcacc_bigui255, + 0x3d5f53bd162f053f045547952a06bc83bc413e17957977e359d9bd4c8883203d_bigui255, + 0x05f467a5081bd3479d6b49f697b0a75d264b42b95b2bed475cd58ffd05322d85_bigui255 }}, {{ - 0x6f5ad8e3ed272494c36a5a52a7d034e04b633460c16a512d0d8002f8fa0e3484_cppui_modular255, - 0x23c293275e282bf15cdbffae1f00a2712e76aa6d62820542159e9d6f115df3b8_cppui_modular255, - 0x3757e7009ca9bec8bba29308b9922354eeeff3beb4113174bf8cde584722d31b_cppui_modular255 + 0x6f5ad8e3ed272494c36a5a52a7d034e04b633460c16a512d0d8002f8fa0e3484_bigui255, + 0x23c293275e282bf15cdbffae1f00a2712e76aa6d62820542159e9d6f115df3b8_bigui255, + 0x3757e7009ca9bec8bba29308b9922354eeeff3beb4113174bf8cde584722d31b_bigui255 }}, {{ - 0x406f25e72d0264ed50473ec95a7ec53ebe114898f84deb06e53715ae24725342_cppui_modular255, - 0x046dcfa2d6d655c7c551f7440772b056e7d3f2c65ac52e4496c4fc753130ad45_cppui_modular255, - 0x49c2e954d649ee1c4e72ce8c1833c33796ab29dbb0486fe53b04687b2063259f_cppui_modular255 + 0x406f25e72d0264ed50473ec95a7ec53ebe114898f84deb06e53715ae24725342_bigui255, + 0x046dcfa2d6d655c7c551f7440772b056e7d3f2c65ac52e4496c4fc753130ad45_bigui255, + 0x49c2e954d649ee1c4e72ce8c1833c33796ab29dbb0486fe53b04687b2063259f_bigui255 }}, {{ - 0x2caa8aae247ef83e63dbe8e5efc89d7d28ffd8bf7a5331e245af8aebc872a759_cppui_modular255, - 0x5efa9f8f32d9ec1d3a3d8cea806e068909b3d3562fdc3f91f2d899f8109bc717_cppui_modular255, - 0x0df424bdf3b0c60395cd7380029a633692b933250b79371e09122c8c39aa1301_cppui_modular255 + 0x2caa8aae247ef83e63dbe8e5efc89d7d28ffd8bf7a5331e245af8aebc872a759_bigui255, + 0x5efa9f8f32d9ec1d3a3d8cea806e068909b3d3562fdc3f91f2d899f8109bc717_bigui255, + 0x0df424bdf3b0c60395cd7380029a633692b933250b79371e09122c8c39aa1301_bigui255 }}, {{ - 0x2d012e3e811cf4b88aed6f38d5cc8c3456dbae1741f501574321906efb474930_cppui_modular255, - 0x709c043fc648c48a5bfb5ea25d5f0557d03aadff9d6ec1afaf2032f3aadb9dba_cppui_modular255, - 0x1bb9b23d6805ed1179a1dad95740513dcea114185a8ed34e17dc8077dc830916_cppui_modular255 + 0x2d012e3e811cf4b88aed6f38d5cc8c3456dbae1741f501574321906efb474930_bigui255, + 0x709c043fc648c48a5bfb5ea25d5f0557d03aadff9d6ec1afaf2032f3aadb9dba_bigui255, + 0x1bb9b23d6805ed1179a1dad95740513dcea114185a8ed34e17dc8077dc830916_bigui255 }}, {{ - 0x0fab922a838c55af1e2349b1e50b56d0690c200d0f2318aad4b7bd8a38a47f61_cppui_modular255, - 0x4d58799d4501ee8e89c73db7a4ff48d9f5e80fd5984afc67f3054f59d3dc74d1_cppui_modular255, - 0x4f130b733cb78f3940da337d187934e48765956ad2ca7b75b7bf8e293b46a758_cppui_modular255 + 0x0fab922a838c55af1e2349b1e50b56d0690c200d0f2318aad4b7bd8a38a47f61_bigui255, + 0x4d58799d4501ee8e89c73db7a4ff48d9f5e80fd5984afc67f3054f59d3dc74d1_bigui255, + 0x4f130b733cb78f3940da337d187934e48765956ad2ca7b75b7bf8e293b46a758_bigui255 }}, {{ - 0x03e7812afd6c480faef03c3beadfb882923a743a4e60e58a259e7ed4598cca97_cppui_modular255, - 0x739ea276a5ef7008fffc02a3c853f4d56eaeee7df395cbee8bbe6b502b81ca1a_cppui_modular255, - 0x0ae97e00a91a4e761815fde0e9506629373ef7ce765ecb1bc7ba0ca2decd7d01_cppui_modular255 + 0x03e7812afd6c480faef03c3beadfb882923a743a4e60e58a259e7ed4598cca97_bigui255, + 0x739ea276a5ef7008fffc02a3c853f4d56eaeee7df395cbee8bbe6b502b81ca1a_bigui255, + 0x0ae97e00a91a4e761815fde0e9506629373ef7ce765ecb1bc7ba0ca2decd7d01_bigui255 }}, {{ - 0x6d6c41e1315436781a774555668cc3d41c99c78dc107f443ba0ae60cdb287c16_cppui_modular255, - 0x18d683776871c1918c2b5c632cb1854dff865c4b1b8bd66e46d2fa2a8d515c34_cppui_modular255, - 0x3597acab641c21dc5475eb8b04b0e2ae91700acad1b543e8c7e69d574eb5a15a_cppui_modular255 + 0x6d6c41e1315436781a774555668cc3d41c99c78dc107f443ba0ae60cdb287c16_bigui255, + 0x18d683776871c1918c2b5c632cb1854dff865c4b1b8bd66e46d2fa2a8d515c34_bigui255, + 0x3597acab641c21dc5475eb8b04b0e2ae91700acad1b543e8c7e69d574eb5a15a_bigui255 }}, {{ - 0x63df64938297594b4e8bf2ddd6bcaee6f2b9703e5814ddeca44d341b9e7d24a2_cppui_modular255, - 0x009ab455f6b4c7755da22615073e9839cd12a88d1f9b583d7ad61bde4009b873_cppui_modular255, - 0x09e21d43c56b0abfc26d0fb7a3ebfd3a7743bbeea99ac2b8f61cc23d1c673a12_cppui_modular255 + 0x63df64938297594b4e8bf2ddd6bcaee6f2b9703e5814ddeca44d341b9e7d24a2_bigui255, + 0x009ab455f6b4c7755da22615073e9839cd12a88d1f9b583d7ad61bde4009b873_bigui255, + 0x09e21d43c56b0abfc26d0fb7a3ebfd3a7743bbeea99ac2b8f61cc23d1c673a12_bigui255 }}, {{ - 0x4db404b9eae6a9f39417be43c93a9f6d136a0784b73789d590ada0a60df0d16c_cppui_modular255, - 0x0c6f0ecaf32a3d60aaebeaf3f8ccb00a10ee19def3836b78fc905bfeaf2b80a9_cppui_modular255, - 0x3518d688407ca0e548165b9796a4279d038720408a3c822dc44ce8974ea8ad8d_cppui_modular255 + 0x4db404b9eae6a9f39417be43c93a9f6d136a0784b73789d590ada0a60df0d16c_bigui255, + 0x0c6f0ecaf32a3d60aaebeaf3f8ccb00a10ee19def3836b78fc905bfeaf2b80a9_bigui255, + 0x3518d688407ca0e548165b9796a4279d038720408a3c822dc44ce8974ea8ad8d_bigui255 }}, {{ - 0x27ba9d4584a23881e23aa0340dc266b32b56455c30e6da78b37741de7ac5b185_cppui_modular255, - 0x63d33e44fda7868d50858e482fbff7c29143d60fe00817cf32e0efab4c3ad6eb_cppui_modular255, - 0x561a72b93fecdbd83d67a5022d9a221cf21b22cff2d79c114bf01c71f2641ae9_cppui_modular255 + 0x27ba9d4584a23881e23aa0340dc266b32b56455c30e6da78b37741de7ac5b185_bigui255, + 0x63d33e44fda7868d50858e482fbff7c29143d60fe00817cf32e0efab4c3ad6eb_bigui255, + 0x561a72b93fecdbd83d67a5022d9a221cf21b22cff2d79c114bf01c71f2641ae9_bigui255 }}, {{ - 0x48a1625a9ee1102971aa28bc07a5ba88ac6424801502ff4fcb6994824c2e5e36_cppui_modular255, - 0x46a003c184ecf0e00fa8ef7dbb356366be4d63a3847634b46a18ecd47667d1bc_cppui_modular255, - 0x37d6efb2876f3cba63a60821e50853d0997947b96f633607bb36ded243ded838_cppui_modular255 + 0x48a1625a9ee1102971aa28bc07a5ba88ac6424801502ff4fcb6994824c2e5e36_bigui255, + 0x46a003c184ecf0e00fa8ef7dbb356366be4d63a3847634b46a18ecd47667d1bc_bigui255, + 0x37d6efb2876f3cba63a60821e50853d0997947b96f633607bb36ded243ded838_bigui255 }}, {{ - 0x14f96acdb291ed2bf98a5bed063f6911598bdff1f6c0219bbefa447ab1918163_cppui_modular255, - 0x573d156263dc8edf24efced0c465587cbdd1a2c792cbadd58abf95e037d3c668_cppui_modular255, - 0x46839e7d70370149b35b3a07d8406acbaff07615747d2101bbad18abb9891f95_cppui_modular255 + 0x14f96acdb291ed2bf98a5bed063f6911598bdff1f6c0219bbefa447ab1918163_bigui255, + 0x573d156263dc8edf24efced0c465587cbdd1a2c792cbadd58abf95e037d3c668_bigui255, + 0x46839e7d70370149b35b3a07d8406acbaff07615747d2101bbad18abb9891f95_bigui255 }}, {{ - 0x3b74a3420d1b988408fe8d8fcb51a81f16f8d17d082da9ba61fbc8031d8ff59b_cppui_modular255, - 0x059f3301178a22026798b07a8578611d7c56c16bfbbe6a058f4e44016aaa172d_cppui_modular255, - 0x467d9ff3508feb318b07acf9184537462e987c58b7ef486873e1de428eaa3f32_cppui_modular255 + 0x3b74a3420d1b988408fe8d8fcb51a81f16f8d17d082da9ba61fbc8031d8ff59b_bigui255, + 0x059f3301178a22026798b07a8578611d7c56c16bfbbe6a058f4e44016aaa172d_bigui255, + 0x467d9ff3508feb318b07acf9184537462e987c58b7ef486873e1de428eaa3f32_bigui255 }}, {{ - 0x716cac6b0fc8f63d406d38d6b82c8ed4e5665e449f07b572b83f43c9f9ba2004_cppui_modular255, - 0x7121fa9ca506687b3c49dc2060731c85ae48596be138148d8ea365333b8f03a6_cppui_modular255, - 0x10000c75e6e03366bba4f59c68f312becb7ae0c30d4aa141940a7531105ef7e0_cppui_modular255 + 0x716cac6b0fc8f63d406d38d6b82c8ed4e5665e449f07b572b83f43c9f9ba2004_bigui255, + 0x7121fa9ca506687b3c49dc2060731c85ae48596be138148d8ea365333b8f03a6_bigui255, + 0x10000c75e6e03366bba4f59c68f312becb7ae0c30d4aa141940a7531105ef7e0_bigui255 }}, {{ - 0x375487214c07542fa5b6a5736344466a06c2cb4c1838c9966925cd8c5888c3ca_cppui_modular255, - 0x2361aaf969f732be06b159772a097f3518ed9485449edcfd367e289f0964c486_cppui_modular255, - 0x2ddba8679308f327c27023a893c0458d1e73dcd64a39b22b130fd9e4f283f906_cppui_modular255 + 0x375487214c07542fa5b6a5736344466a06c2cb4c1838c9966925cd8c5888c3ca_bigui255, + 0x2361aaf969f732be06b159772a097f3518ed9485449edcfd367e289f0964c486_bigui255, + 0x2ddba8679308f327c27023a893c0458d1e73dcd64a39b22b130fd9e4f283f906_bigui255 }}, {{ - 0x6303e21755b1de4d65495bae9685e05162245106f53d7407ec0883e39695b15c_cppui_modular255, - 0x5aa3dddf8da369722b2e1c8f2aacf0625d08264f8a0ed320df110ab42f5b0c1f_cppui_modular255, - 0x3525eb41c2db9cf9cd08652d815d7c91f3294defeee702efedb5f777284cd1fd_cppui_modular255 + 0x6303e21755b1de4d65495bae9685e05162245106f53d7407ec0883e39695b15c_bigui255, + 0x5aa3dddf8da369722b2e1c8f2aacf0625d08264f8a0ed320df110ab42f5b0c1f_bigui255, + 0x3525eb41c2db9cf9cd08652d815d7c91f3294defeee702efedb5f777284cd1fd_bigui255 }}, {{ - 0x0079ae4df49f78b97cb0e3c3f4b225538d4a0c4827e333d27a29398c17c26c9e_cppui_modular255, - 0x533c8c1b05e2dd7e7e19ea4b027cc8bd559c2e2a622207b0c13bc7afdd7bc3b7_cppui_modular255, - 0x4989a01e4fe4b1bd544e5cd4288895068897cba899ddb01779f6e2b08024d3ab_cppui_modular255 + 0x0079ae4df49f78b97cb0e3c3f4b225538d4a0c4827e333d27a29398c17c26c9e_bigui255, + 0x533c8c1b05e2dd7e7e19ea4b027cc8bd559c2e2a622207b0c13bc7afdd7bc3b7_bigui255, + 0x4989a01e4fe4b1bd544e5cd4288895068897cba899ddb01779f6e2b08024d3ab_bigui255 }}, {{ - 0x1c7f5858eabb1e2b8c3104808dc68ae3de05381fc74704a2afbd2fcc42cdd3c8_cppui_modular255, - 0x55faf16bbea2ee0f35413b9808c135fb1e4729c90b4cce4c345238c6dc557639_cppui_modular255, - 0x156a82f8e5aea455d9c8c436f89c6f9ecbce0ecaafdd13b93f255e075c72ebd0_cppui_modular255 + 0x1c7f5858eabb1e2b8c3104808dc68ae3de05381fc74704a2afbd2fcc42cdd3c8_bigui255, + 0x55faf16bbea2ee0f35413b9808c135fb1e4729c90b4cce4c345238c6dc557639_bigui255, + 0x156a82f8e5aea455d9c8c436f89c6f9ecbce0ecaafdd13b93f255e075c72ebd0_bigui255 }}, {{ - 0x37c7047032df0027d7bc128e9a107582f25ba0b7387230a05864aee420724703_cppui_modular255, - 0x40ab847795176c24af06d5000ceedb82d87492cbde5c1c262a83a9b6b6f4b264_cppui_modular255, - 0x5a73bece689545bd2de9ef263d5036152f36e2250c76711e8bc9ed9bda7af685_cppui_modular255 + 0x37c7047032df0027d7bc128e9a107582f25ba0b7387230a05864aee420724703_bigui255, + 0x40ab847795176c24af06d5000ceedb82d87492cbde5c1c262a83a9b6b6f4b264_bigui255, + 0x5a73bece689545bd2de9ef263d5036152f36e2250c76711e8bc9ed9bda7af685_bigui255 }}, {{ - 0x1c4a903be5dff4440b4f38e56f988cddacc57371aeebb06cb64ab5d21d9562f5_cppui_modular255, - 0x5bba81a692e87b51c7c176730fd05cfd100b0bd86d69b4b4f367277a2302b2f8_cppui_modular255, - 0x2f875bdd6669a8ff920c3d7bedd74c101541d4b184b7e1bc0b90ddb26902319d_cppui_modular255 + 0x1c4a903be5dff4440b4f38e56f988cddacc57371aeebb06cb64ab5d21d9562f5_bigui255, + 0x5bba81a692e87b51c7c176730fd05cfd100b0bd86d69b4b4f367277a2302b2f8_bigui255, + 0x2f875bdd6669a8ff920c3d7bedd74c101541d4b184b7e1bc0b90ddb26902319d_bigui255 }}, {{ - 0x5e89035bbe943f9e6024db13c58bbc748d3f1654050c7ffe084b763efceff3bd_cppui_modular255, - 0x728cff754d7a76a7f8b00656412ad8874e7bab9827706ca6d6d13c72a0c6812e_cppui_modular255, - 0x6dcfa6338bfe3569524a968abc95c706801fcc695ee3f5854a79e4689625481c_cppui_modular255 + 0x5e89035bbe943f9e6024db13c58bbc748d3f1654050c7ffe084b763efceff3bd_bigui255, + 0x728cff754d7a76a7f8b00656412ad8874e7bab9827706ca6d6d13c72a0c6812e_bigui255, + 0x6dcfa6338bfe3569524a968abc95c706801fcc695ee3f5854a79e4689625481c_bigui255 }}, {{ - 0x24ce56469aeaa4243053bb62c07100002b8f74c4ac74c350beff0c0be47e5a51_cppui_modular255, - 0x6a72f954f591825caa43c3ba7ccfea7aa1a00de5a681e52de6148252062f8363_cppui_modular255, - 0x59922ae3f06524d2028e9aa00a136613d4306fd5f4247ad0a6a587be0fb0081c_cppui_modular255 + 0x24ce56469aeaa4243053bb62c07100002b8f74c4ac74c350beff0c0be47e5a51_bigui255, + 0x6a72f954f591825caa43c3ba7ccfea7aa1a00de5a681e52de6148252062f8363_bigui255, + 0x59922ae3f06524d2028e9aa00a136613d4306fd5f4247ad0a6a587be0fb0081c_bigui255 }}, {{ - 0x50d8b98688f4980b1a0c2b5313f8ac9660b1e9199b5f59ed3709e0f1d9185552_cppui_modular255, - 0x3184262ef10e9b0ab57cfc898fb68342cb86ed6e25e536fa94caa605b4a3caf1_cppui_modular255, - 0x69980a1f4b883cac1039fc47dba993503d4ae5ad40ed112a5a5070090006f73e_cppui_modular255 + 0x50d8b98688f4980b1a0c2b5313f8ac9660b1e9199b5f59ed3709e0f1d9185552_bigui255, + 0x3184262ef10e9b0ab57cfc898fb68342cb86ed6e25e536fa94caa605b4a3caf1_bigui255, + 0x69980a1f4b883cac1039fc47dba993503d4ae5ad40ed112a5a5070090006f73e_bigui255 }}, {{ - 0x1d5a91b930b89934745ba00bd9094b67f95e41e3778fe0420880e80bbf8078e1_cppui_modular255, - 0x0ddebce4b6ca45d69b2f70c8b54e425615c1aadadccda74e0882eb79c445778f_cppui_modular255, - 0x68c8362e93a371d7c9551edf3e3f3b14c54c729c1fab0fa6eebae7da09855826_cppui_modular255 + 0x1d5a91b930b89934745ba00bd9094b67f95e41e3778fe0420880e80bbf8078e1_bigui255, + 0x0ddebce4b6ca45d69b2f70c8b54e425615c1aadadccda74e0882eb79c445778f_bigui255, + 0x68c8362e93a371d7c9551edf3e3f3b14c54c729c1fab0fa6eebae7da09855826_bigui255 }}, {{ - 0x3dcc6a17e074d0350ffc0e5426e1bb6894e6c958f96f3d7d9c4240b948cde438_cppui_modular255, - 0x03b8aba0ee959a4e51cb5cfc458b0f4ad3a9b59797394c3d3c9eb57adeca2308_cppui_modular255, - 0x0f24cc57f3b2fbf25375c71d71bbb97b2d193fc1a203ccc514c074d461001ec4_cppui_modular255 + 0x3dcc6a17e074d0350ffc0e5426e1bb6894e6c958f96f3d7d9c4240b948cde438_bigui255, + 0x03b8aba0ee959a4e51cb5cfc458b0f4ad3a9b59797394c3d3c9eb57adeca2308_bigui255, + 0x0f24cc57f3b2fbf25375c71d71bbb97b2d193fc1a203ccc514c074d461001ec4_bigui255 }}, {{ - 0x71e9bfa7f66afbafbf139a70baedfb1b202a2e51e6b6c420e28dd342a5eb0cd6_cppui_modular255, - 0x3ac9c11890e96a2dcda6405a6c52a47e803d6674e65117f1a8adf701d68cd02a_cppui_modular255, - 0x45c00146e1b89ad5ccb8a02202482023751b88997d8fba1af5c0e7a68dadb63c_cppui_modular255 + 0x71e9bfa7f66afbafbf139a70baedfb1b202a2e51e6b6c420e28dd342a5eb0cd6_bigui255, + 0x3ac9c11890e96a2dcda6405a6c52a47e803d6674e65117f1a8adf701d68cd02a_bigui255, + 0x45c00146e1b89ad5ccb8a02202482023751b88997d8fba1af5c0e7a68dadb63c_bigui255 }}, {{ - 0x1f98bdb8dc318e3e2e28cc3d8b85e334f74b57e15b02e1637ae035b04bda3b5c_cppui_modular255, - 0x2ec077dbbc7bf2affe7ddd8b8a7f900f3019cddc8ce55cf9782004f65f51257b_cppui_modular255, - 0x32c377fc988f600a2c2ef5d5376e2e31faf1c2d1a618db011fbfec1ff337568d_cppui_modular255 + 0x1f98bdb8dc318e3e2e28cc3d8b85e334f74b57e15b02e1637ae035b04bda3b5c_bigui255, + 0x2ec077dbbc7bf2affe7ddd8b8a7f900f3019cddc8ce55cf9782004f65f51257b_bigui255, + 0x32c377fc988f600a2c2ef5d5376e2e31faf1c2d1a618db011fbfec1ff337568d_bigui255 }}, {{ - 0x0a820d131da844383bdfc1a053d8aceec7f2eb345ab6c21d38e829db8d05861e_cppui_modular255, - 0x5bd95df8a933f7b7e263e013f45a92c0e786dba563e210b77d5a40f961092e60_cppui_modular255, - 0x264cf7b75095fb96b420fb3f31c064299e78e796e8b3735bd0a186cd3817708d_cppui_modular255 + 0x0a820d131da844383bdfc1a053d8aceec7f2eb345ab6c21d38e829db8d05861e_bigui255, + 0x5bd95df8a933f7b7e263e013f45a92c0e786dba563e210b77d5a40f961092e60_bigui255, + 0x264cf7b75095fb96b420fb3f31c064299e78e796e8b3735bd0a186cd3817708d_bigui255 }}, {{ - 0x27d3e47b2f11ada6a9a5d329e00a128c9836be92ee92429ab891e71d11dc29f2_cppui_modular255, - 0x64354b412c8cfa1319e4afd891e619a8fbbde04d85bef4ad0548689295d2bce2_cppui_modular255, - 0x0db0f967487ee52e0836fb7135bce37fbd32887e911de52d0b855a5afac1f770_cppui_modular255 + 0x27d3e47b2f11ada6a9a5d329e00a128c9836be92ee92429ab891e71d11dc29f2_bigui255, + 0x64354b412c8cfa1319e4afd891e619a8fbbde04d85bef4ad0548689295d2bce2_bigui255, + 0x0db0f967487ee52e0836fb7135bce37fbd32887e911de52d0b855a5afac1f770_bigui255 }}, {{ - 0x1c9a155911b36c896475995417197faad870737a9ce5d9d3a5000f5396978e9d_cppui_modular255, - 0x65ae557151ae9ec7f870fa2804bfb88e669dc0f8865b140f964f1f93180ac531_cppui_modular255, - 0x52c6f6242517362c066020764fef4a5574749106a6dad534d136e7fe885fcb40_cppui_modular255 + 0x1c9a155911b36c896475995417197faad870737a9ce5d9d3a5000f5396978e9d_bigui255, + 0x65ae557151ae9ec7f870fa2804bfb88e669dc0f8865b140f964f1f93180ac531_bigui255, + 0x52c6f6242517362c066020764fef4a5574749106a6dad534d136e7fe885fcb40_bigui255 }}, {{ - 0x6e44c5bcd5dc6591e2f84290a313b71a04da8da398dd10135d22bb23df41e883_cppui_modular255, - 0x2146d3e371040feba8595049a285944bd45a458dccb059c785c2adf032c8b710_cppui_modular255, - 0x16db9ceb3074a795499a37c20ffc9eaca9b07a5a25824aa6adcdb19fabdff0b9_cppui_modular255 + 0x6e44c5bcd5dc6591e2f84290a313b71a04da8da398dd10135d22bb23df41e883_bigui255, + 0x2146d3e371040feba8595049a285944bd45a458dccb059c785c2adf032c8b710_bigui255, + 0x16db9ceb3074a795499a37c20ffc9eaca9b07a5a25824aa6adcdb19fabdff0b9_bigui255 }}, {{ - 0x5903725fd86fec14c9cf2a273017eb01d3a1785039397060650c4e228a6e6571_cppui_modular255, - 0x54c75952f908e3f99e05718bd1f59bb6c414bc2aebacd81c47189885cbbc566a_cppui_modular255, - 0x0dba4abc7f188e33e7f309317b7b9f5c22870ca90bcee7b576dd0b52619a39f6_cppui_modular255 + 0x5903725fd86fec14c9cf2a273017eb01d3a1785039397060650c4e228a6e6571_bigui255, + 0x54c75952f908e3f99e05718bd1f59bb6c414bc2aebacd81c47189885cbbc566a_bigui255, + 0x0dba4abc7f188e33e7f309317b7b9f5c22870ca90bcee7b576dd0b52619a39f6_bigui255 }}, {{ - 0x3950231611808399ad3ba5b78cad4c6bed6f364b9346541dfffa4d16366d257e_cppui_modular255, - 0x1a6d8230bb9e8d1af552b9bab8babfe505931dd87e200fc7b3c57160a5bc4ae2_cppui_modular255, - 0x6b3dd35220ecd616eea4309ac9a8118e9dc65a3f7c1ef52dde7a3d33578c43a0_cppui_modular255 + 0x3950231611808399ad3ba5b78cad4c6bed6f364b9346541dfffa4d16366d257e_bigui255, + 0x1a6d8230bb9e8d1af552b9bab8babfe505931dd87e200fc7b3c57160a5bc4ae2_bigui255, + 0x6b3dd35220ecd616eea4309ac9a8118e9dc65a3f7c1ef52dde7a3d33578c43a0_bigui255 }}, {{ - 0x6da00240c3505b214c8d8ce3f48914247adb9f0ecf239d7baeada5183d31ba54_cppui_modular255, - 0x37c3720b132d3a719424e29c37acb7dfbd709ec9497a3162175424bf063c6e18_cppui_modular255, - 0x500f85a3d06a0b5a05c5e93ae70084802fd499c7e6ed1ee6e26b4bf8fd6838fb_cppui_modular255 + 0x6da00240c3505b214c8d8ce3f48914247adb9f0ecf239d7baeada5183d31ba54_bigui255, + 0x37c3720b132d3a719424e29c37acb7dfbd709ec9497a3162175424bf063c6e18_bigui255, + 0x500f85a3d06a0b5a05c5e93ae70084802fd499c7e6ed1ee6e26b4bf8fd6838fb_bigui255 }}, {{ - 0x2b37f70d73366d32d575186d0787fc8ce539b73f83c6e7eaab27be85f4faaaf4_cppui_modular255, - 0x1d8efd6e52d4f936415e5c4814f3366804e2386857a4befa2a53aab21ddb68de_cppui_modular255, - 0x33303b8a8f2d811be65a977907d17d133f3a64c59fe2a9c5c2d4517e3eb390e3_cppui_modular255 + 0x2b37f70d73366d32d575186d0787fc8ce539b73f83c6e7eaab27be85f4faaaf4_bigui255, + 0x1d8efd6e52d4f936415e5c4814f3366804e2386857a4befa2a53aab21ddb68de_bigui255, + 0x33303b8a8f2d811be65a977907d17d133f3a64c59fe2a9c5c2d4517e3eb390e3_bigui255 }}, {{ - 0x2c1ba860f51e0c2eaf4a9a6bf095c65fab3ee15c145f404fbb0272b5ca14a449_cppui_modular255, - 0x0b0849c7a3adea03a89d101081c9c9f4f66ef917d09c7957584db9a75aec2378_cppui_modular255, - 0x41e7e30c77579da7809c3e757821c869b53f103fcb752ac82f8a734d4abdc792_cppui_modular255 + 0x2c1ba860f51e0c2eaf4a9a6bf095c65fab3ee15c145f404fbb0272b5ca14a449_bigui255, + 0x0b0849c7a3adea03a89d101081c9c9f4f66ef917d09c7957584db9a75aec2378_bigui255, + 0x41e7e30c77579da7809c3e757821c869b53f103fcb752ac82f8a734d4abdc792_bigui255 }}, {{ - 0x182e66be60686c8c5e6518430845f98924fe8d7d43e628bf75ff52a716371b9c_cppui_modular255, - 0x373b2508c2fca1a288fa4f54a6edf02f2661e664dcf4ff2a74f3d06b1a00ddc4_cppui_modular255, - 0x1735b442b3acaad0bbe630f308e03f1aa6f56bdb029e50c1393533cee1a45c30_cppui_modular255 + 0x182e66be60686c8c5e6518430845f98924fe8d7d43e628bf75ff52a716371b9c_bigui255, + 0x373b2508c2fca1a288fa4f54a6edf02f2661e664dcf4ff2a74f3d06b1a00ddc4_bigui255, + 0x1735b442b3acaad0bbe630f308e03f1aa6f56bdb029e50c1393533cee1a45c30_bigui255 }}, {{ - 0x22abe8ea470a0372911bcef1367e10aa220491d76caeaa5959feb5d75f4a1f9f_cppui_modular255, - 0x5caab387eb997f774f64151ed21abfa5364a83c6f065d92bd9c92f2719b8e80b_cppui_modular255, - 0x57b33094aeff828377897b56e1c432978d07c668ef25a36bc5e2e835aaeff725_cppui_modular255 + 0x22abe8ea470a0372911bcef1367e10aa220491d76caeaa5959feb5d75f4a1f9f_bigui255, + 0x5caab387eb997f774f64151ed21abfa5364a83c6f065d92bd9c92f2719b8e80b_bigui255, + 0x57b33094aeff828377897b56e1c432978d07c668ef25a36bc5e2e835aaeff725_bigui255 }} }}; }; @@ -1290,519 +1290,519 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x354423b163d1078b0dd645be56316e34a9b98e52dcf9f469be44b108be46c107_cppui_modular255, - 0x44778737e8bc1154aca1cd92054a1e5b83808403705f7d54da88bbd1920e1053_cppui_modular255, - 0x5872eefb5ab6b2946556524168a2aebb69afd513a2fff91e50167b1f6e4055e0_cppui_modular255, - 0x43dff85b25129835819bc8c95819f1a34136f6114e900cd3656e1b9e0e13f86a_cppui_modular255, - 0x07803d2ffe72940596803f244ac090a9cf2d3616546520bc360c7eed0b81cbf8_cppui_modular255 + 0x354423b163d1078b0dd645be56316e34a9b98e52dcf9f469be44b108be46c107_bigui255, + 0x44778737e8bc1154aca1cd92054a1e5b83808403705f7d54da88bbd1920e1053_bigui255, + 0x5872eefb5ab6b2946556524168a2aebb69afd513a2fff91e50167b1f6e4055e0_bigui255, + 0x43dff85b25129835819bc8c95819f1a34136f6114e900cd3656e1b9e0e13f86a_bigui255, + 0x07803d2ffe72940596803f244ac090a9cf2d3616546520bc360c7eed0b81cbf8_bigui255 }}, {{ - 0x45d6bc4b818e2b9a53e0e2c0a08f70c34167fd8128e05ac800651ddfee0932d1_cppui_modular255, - 0x08317abbb9e5046b22dfb79e64c8184855107c1d95dddd2b63ca10dddea9ff1a_cppui_modular255, - 0x1bb80eba77c5dcffafb55ccba4ae39ac8f94a054f2a0ee3006b362f709d5e470_cppui_modular255, - 0x038e75bdcf8be7fd3a1e844c4de7333531bbd5a8d2c3779627df88e7480e7c5c_cppui_modular255, - 0x2dd797a699e620ea6b31b91ba3fad4a82f40cffb3e8a30c0b7a546ff69a9002b_cppui_modular255 + 0x45d6bc4b818e2b9a53e0e2c0a08f70c34167fd8128e05ac800651ddfee0932d1_bigui255, + 0x08317abbb9e5046b22dfb79e64c8184855107c1d95dddd2b63ca10dddea9ff1a_bigui255, + 0x1bb80eba77c5dcffafb55ccba4ae39ac8f94a054f2a0ee3006b362f709d5e470_bigui255, + 0x038e75bdcf8be7fd3a1e844c4de7333531bbd5a8d2c3779627df88e7480e7c5c_bigui255, + 0x2dd797a699e620ea6b31b91ba3fad4a82f40cffb3e8a30c0b7a546ff69a9002b_bigui255 }}, {{ - 0x4b906f9ee339b196e958e3541b555b4b53e540a113b2f1cabba627be16eb5608_cppui_modular255, - 0x605f0c707b82ef287f46431f9241fe4acf0b7ddb151803cbcf1e7bbd27c3e974_cppui_modular255, - 0x100c514bf38f6ff10df1c83bb428397789cfff7bb0b1280f52343861e8c8737e_cppui_modular255, - 0x2d40ce8af8a252f5611701c3d6b1e517161d0549ef27f443570c81fcdfe3706b_cppui_modular255, - 0x3e6418bdf0313f59afc5f40b4450e56881110ea9a0532e8092efb06a12a8b0f1_cppui_modular255 + 0x4b906f9ee339b196e958e3541b555b4b53e540a113b2f1cabba627be16eb5608_bigui255, + 0x605f0c707b82ef287f46431f9241fe4acf0b7ddb151803cbcf1e7bbd27c3e974_bigui255, + 0x100c514bf38f6ff10df1c83bb428397789cfff7bb0b1280f52343861e8c8737e_bigui255, + 0x2d40ce8af8a252f5611701c3d6b1e517161d0549ef27f443570c81fcdfe3706b_bigui255, + 0x3e6418bdf0313f59afc5f40b4450e56881110ea9a0532e8092efb06a12a8b0f1_bigui255 }}, {{ - 0x71788bf7f6c0cebae5627c5629d012d5fba52428d1f25cdaa0a7434e70e014d0_cppui_modular255, - 0x55cc73296f7e7d26d10b9339721d7983ca06145675255025ab00b34342557db7_cppui_modular255, - 0x0f043b29be2def73a6c6ec92168ea4b47bc9f434a5e6b5d48677670a7ca4d285_cppui_modular255, - 0x62ccc9cdfed859a610f103d74ea04dec0f6874a9b36f3b4e9b47fd73368d45b4_cppui_modular255, - 0x55fb349dd6200b34eaba53a67e74f47d08e473da139dc47e44df50a26423d2d1_cppui_modular255 + 0x71788bf7f6c0cebae5627c5629d012d5fba52428d1f25cdaa0a7434e70e014d0_bigui255, + 0x55cc73296f7e7d26d10b9339721d7983ca06145675255025ab00b34342557db7_bigui255, + 0x0f043b29be2def73a6c6ec92168ea4b47bc9f434a5e6b5d48677670a7ca4d285_bigui255, + 0x62ccc9cdfed859a610f103d74ea04dec0f6874a9b36f3b4e9b47fd73368d45b4_bigui255, + 0x55fb349dd6200b34eaba53a67e74f47d08e473da139dc47e44df50a26423d2d1_bigui255 }}, {{ - 0x45bfbe5ed2f4a01c13b15f20bba00ff577b1154a81b3f318a6aff86369a66735_cppui_modular255, - 0x6a008906685587af05dce9ad2c65ea1d42b1ec32609597bd00c01f58443329ef_cppui_modular255, - 0x004feebd0dbdb9b71176a1d43c9eb495e16419382cdf7864e4bce7b37440cd58_cppui_modular255, - 0x09f080180ce23a5aef3a07e60b28ffeb2cf1771aefbc565c2a3059b39ed82f43_cppui_modular255, - 0x2f7126ddc54648ab6d02493dbe9907f29f4ef3967ad8cd609f0d9467e1694607_cppui_modular255 + 0x45bfbe5ed2f4a01c13b15f20bba00ff577b1154a81b3f318a6aff86369a66735_bigui255, + 0x6a008906685587af05dce9ad2c65ea1d42b1ec32609597bd00c01f58443329ef_bigui255, + 0x004feebd0dbdb9b71176a1d43c9eb495e16419382cdf7864e4bce7b37440cd58_bigui255, + 0x09f080180ce23a5aef3a07e60b28ffeb2cf1771aefbc565c2a3059b39ed82f43_bigui255, + 0x2f7126ddc54648ab6d02493dbe9907f29f4ef3967ad8cd609f0d9467e1694607_bigui255 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x5ee52b2f39e240a4006e97a15a7609dce42fa9aa510d11586a56db98fa925158_cppui_modular255, - 0x3e92829ce321755f769c6fd0d51e98262d7747ad553b028dbbe98b5274b9c8e1_cppui_modular255, - 0x7067b2b9b65af0519cef530217d4563543852399c2af1557fcd9eb325b5365e4_cppui_modular255, - 0x725e66aa00e406f247f00002487d092328c526f2f5a3c456004a71cea83845d5_cppui_modular255, - 0x72bf92303a9d433709d29979a296d98f147e8e7b8ed0cb452bd9f9508f6e4711_cppui_modular255 + 0x5ee52b2f39e240a4006e97a15a7609dce42fa9aa510d11586a56db98fa925158_bigui255, + 0x3e92829ce321755f769c6fd0d51e98262d7747ad553b028dbbe98b5274b9c8e1_bigui255, + 0x7067b2b9b65af0519cef530217d4563543852399c2af1557fcd9eb325b5365e4_bigui255, + 0x725e66aa00e406f247f00002487d092328c526f2f5a3c456004a71cea83845d5_bigui255, + 0x72bf92303a9d433709d29979a296d98f147e8e7b8ed0cb452bd9f9508f6e4711_bigui255 }}, {{ - 0x3d7e5deccc6eb706c315ff02070232127dbe99bc6a4d1b23e967d35205b87694_cppui_modular255, - 0x13558f81fbc15c2793cc349a059d752c712783727e1443c74098cd66fa12b78b_cppui_modular255, - 0x686f2c6d24dfb9cddbbf717708ca6e04a70f0e077766a39d5bc5de5155e6fcb2_cppui_modular255, - 0x582bc59317a001ed75ffe1c225901d67d8d3764a70eb254f810afc895cbf231b_cppui_modular255, - 0x076df166a42eae40f6df9e5908a54f69a77f4c507ea6dd07d671682cbc1a9534_cppui_modular255 + 0x3d7e5deccc6eb706c315ff02070232127dbe99bc6a4d1b23e967d35205b87694_bigui255, + 0x13558f81fbc15c2793cc349a059d752c712783727e1443c74098cd66fa12b78b_bigui255, + 0x686f2c6d24dfb9cddbbf717708ca6e04a70f0e077766a39d5bc5de5155e6fcb2_bigui255, + 0x582bc59317a001ed75ffe1c225901d67d8d3764a70eb254f810afc895cbf231b_bigui255, + 0x076df166a42eae40f6df9e5908a54f69a77f4c507ea6dd07d671682cbc1a9534_bigui255 }}, {{ - 0x531f360b9640e565d580688ee5d09e2635997037e87129303bf8297459ab2492_cppui_modular255, - 0x30be41b5a9d8af19a5f922794008a263a121837bcbe113d59621ea30beefd075_cppui_modular255, - 0x39f57e4c8a1178d875210f820977f7fcd33812d444f88e471040676e3e591306_cppui_modular255, - 0x3514084b13bc0be636482204d9cddb072ee674c5cb1238890ee6206a3e7bf035_cppui_modular255, - 0x6372b6bc660daf6b04361caff785b46bbe59eb6a34ab93e23d6364e655dc3a36_cppui_modular255 + 0x531f360b9640e565d580688ee5d09e2635997037e87129303bf8297459ab2492_bigui255, + 0x30be41b5a9d8af19a5f922794008a263a121837bcbe113d59621ea30beefd075_bigui255, + 0x39f57e4c8a1178d875210f820977f7fcd33812d444f88e471040676e3e591306_bigui255, + 0x3514084b13bc0be636482204d9cddb072ee674c5cb1238890ee6206a3e7bf035_bigui255, + 0x6372b6bc660daf6b04361caff785b46bbe59eb6a34ab93e23d6364e655dc3a36_bigui255 }}, {{ - 0x422af985e648814bec5af62c142828e002d4b014b702760106b0b90c50d11de5_cppui_modular255, - 0x3296e51f12e0f5c49747c1beb050ff320e2eb7422807eb0c157a372dba2ea013_cppui_modular255, - 0x3b76246abaf33b03dd5b589b80a7fac0ae7f1ad8a9623bb7cf7432c90e27358d_cppui_modular255, - 0x0b40e7e02f5cb836c883c7cef72ec48e87c1808f7d829e2ee0bec0ee709f7409_cppui_modular255, - 0x2ee81b5c29c93b8a6e8871c01d0380a698e547475359b4a4befc22ed2232690f_cppui_modular255 + 0x422af985e648814bec5af62c142828e002d4b014b702760106b0b90c50d11de5_bigui255, + 0x3296e51f12e0f5c49747c1beb050ff320e2eb7422807eb0c157a372dba2ea013_bigui255, + 0x3b76246abaf33b03dd5b589b80a7fac0ae7f1ad8a9623bb7cf7432c90e27358d_bigui255, + 0x0b40e7e02f5cb836c883c7cef72ec48e87c1808f7d829e2ee0bec0ee709f7409_bigui255, + 0x2ee81b5c29c93b8a6e8871c01d0380a698e547475359b4a4befc22ed2232690f_bigui255 }}, {{ - 0x341ff90fc4a8afee9b74c464955ba9b357252e915b8d39ea7c1318eda718f54d_cppui_modular255, - 0x55eddabde058f3b5e9dae90873ec9bd7b05927da36925e7dfb7bc290c1da125e_cppui_modular255, - 0x6b34ad8cec56aae4595c403377cd2aa990a2f09b931f832781221965bb081b1c_cppui_modular255, - 0x707de76df294fb845309d2160e1bdffebefd57a80c8658899e2c95e77254c752_cppui_modular255, - 0x05e9b152bfd4946b9c109f930eb01892f314597507d28c735a266f4277bb2a32_cppui_modular255 + 0x341ff90fc4a8afee9b74c464955ba9b357252e915b8d39ea7c1318eda718f54d_bigui255, + 0x55eddabde058f3b5e9dae90873ec9bd7b05927da36925e7dfb7bc290c1da125e_bigui255, + 0x6b34ad8cec56aae4595c403377cd2aa990a2f09b931f832781221965bb081b1c_bigui255, + 0x707de76df294fb845309d2160e1bdffebefd57a80c8658899e2c95e77254c752_bigui255, + 0x05e9b152bfd4946b9c109f930eb01892f314597507d28c735a266f4277bb2a32_bigui255 }}, {{ - 0x1589a5cbcee13b696b6f0a1dbbabc08394ab00ed5a6ae6435020e9e3e2fc909a_cppui_modular255, - 0x7116a5d027fe73fbc45bfc60fd875c3116fe3a567e830d1d2d38655223dbd7ec_cppui_modular255, - 0x05382ee6ad97381eb3137f5a90ea13298dac6bc7c2204906044fafc01bfe6ae4_cppui_modular255, - 0x0900bcfe5e7c1b7d0aa80c714b7b2a0c1df7473362138a9dc5c552d11c1d0015_cppui_modular255, - 0x0513deb89d2e48fc729440dc08d0256a79cda84d511a04e0d92cce3c7e55a7c2_cppui_modular255 + 0x1589a5cbcee13b696b6f0a1dbbabc08394ab00ed5a6ae6435020e9e3e2fc909a_bigui255, + 0x7116a5d027fe73fbc45bfc60fd875c3116fe3a567e830d1d2d38655223dbd7ec_bigui255, + 0x05382ee6ad97381eb3137f5a90ea13298dac6bc7c2204906044fafc01bfe6ae4_bigui255, + 0x0900bcfe5e7c1b7d0aa80c714b7b2a0c1df7473362138a9dc5c552d11c1d0015_bigui255, + 0x0513deb89d2e48fc729440dc08d0256a79cda84d511a04e0d92cce3c7e55a7c2_bigui255 }}, {{ - 0x6bbb5f1736d499fe3fda42ad40a2b124952ac35fe970ebde38c65cc20ad2afc8_cppui_modular255, - 0x5782ac68a8da0ba09f4d17e7e4b46caa4411a27e60be92168ce75bed95453e05_cppui_modular255, - 0x2d83f3324639c5d83a1ffcf6ac693eef98d8ea4877d547c62b304b0a9f4a0c28_cppui_modular255, - 0x16d3a13700ec503e29ca4d0c6342864595134408b6668bbf1766bb48d7f96cba_cppui_modular255, - 0x318050e971e075931253b00430d35f89f40a88fc73d62150882a8e87149d7244_cppui_modular255 + 0x6bbb5f1736d499fe3fda42ad40a2b124952ac35fe970ebde38c65cc20ad2afc8_bigui255, + 0x5782ac68a8da0ba09f4d17e7e4b46caa4411a27e60be92168ce75bed95453e05_bigui255, + 0x2d83f3324639c5d83a1ffcf6ac693eef98d8ea4877d547c62b304b0a9f4a0c28_bigui255, + 0x16d3a13700ec503e29ca4d0c6342864595134408b6668bbf1766bb48d7f96cba_bigui255, + 0x318050e971e075931253b00430d35f89f40a88fc73d62150882a8e87149d7244_bigui255 }}, {{ - 0x7180760dd839d8bffbf9b1e26826cb4f6de65fa868a8143e1dc8c2b6ac6d1ac2_cppui_modular255, - 0x5cf2aa95907e59c4725cc17c8cf492f9a7eeef2de337ac227a983c444ae0e80e_cppui_modular255, - 0x2b8345763484d7ec02d6ee267b7c737ca9de41e2186416bf91c65eb0cd11c0a4_cppui_modular255, - 0x055aa90aa60ef9b7f3c29c7500c64e6b85929220a6418dfad37ead3928059117_cppui_modular255, - 0x541d5e4be0967bf49a595c1d8290b750305a334f3347c01b57f8ba313170e1ca_cppui_modular255 + 0x7180760dd839d8bffbf9b1e26826cb4f6de65fa868a8143e1dc8c2b6ac6d1ac2_bigui255, + 0x5cf2aa95907e59c4725cc17c8cf492f9a7eeef2de337ac227a983c444ae0e80e_bigui255, + 0x2b8345763484d7ec02d6ee267b7c737ca9de41e2186416bf91c65eb0cd11c0a4_bigui255, + 0x055aa90aa60ef9b7f3c29c7500c64e6b85929220a6418dfad37ead3928059117_bigui255, + 0x541d5e4be0967bf49a595c1d8290b750305a334f3347c01b57f8ba313170e1ca_bigui255 }}, {{ - 0x05c0a1f16f97f582caaf4338f018f869e8dd0fa32f007bad1a1a4780053d5817_cppui_modular255, - 0x01519e13858591aa93b9c1d7f849276ac1d2011b7fd19a475371c7968d9f52cd_cppui_modular255, - 0x69c30d5a27f4dffa19c956c348287a704676d999f23044036b9e687a45a1a113_cppui_modular255, - 0x58c93b899aa53e06e82b6346e36338841ba7279d2b7a0ecd3aa20f292852936f_cppui_modular255, - 0x06b8a12870a15479d41018fed6f1a29102ae23e13d0fbccec93ace48bdb9dc93_cppui_modular255 + 0x05c0a1f16f97f582caaf4338f018f869e8dd0fa32f007bad1a1a4780053d5817_bigui255, + 0x01519e13858591aa93b9c1d7f849276ac1d2011b7fd19a475371c7968d9f52cd_bigui255, + 0x69c30d5a27f4dffa19c956c348287a704676d999f23044036b9e687a45a1a113_bigui255, + 0x58c93b899aa53e06e82b6346e36338841ba7279d2b7a0ecd3aa20f292852936f_bigui255, + 0x06b8a12870a15479d41018fed6f1a29102ae23e13d0fbccec93ace48bdb9dc93_bigui255 }}, {{ - 0x33eda3c347379e61c2297aa1026682d22f95dc3c7e46e68ab3adb4b0939d76e2_cppui_modular255, - 0x187728045111275b93a1218a148ada85a1f6e2059c443ac7d61fe81e3130b89b_cppui_modular255, - 0x397ec485c5a8b0c8a03ff543e9a9e5a4dc0dd4849fe955bb77b452e2e22c4f17_cppui_modular255, - 0x2f33f8de90f81248455d5a6592667092992be0468372addbaff664caa84cd2d5_cppui_modular255, - 0x061a1a458994ddf9f38c5edfbd737d3ceb05deaee685058b14943e7e9246ebca_cppui_modular255 + 0x33eda3c347379e61c2297aa1026682d22f95dc3c7e46e68ab3adb4b0939d76e2_bigui255, + 0x187728045111275b93a1218a148ada85a1f6e2059c443ac7d61fe81e3130b89b_bigui255, + 0x397ec485c5a8b0c8a03ff543e9a9e5a4dc0dd4849fe955bb77b452e2e22c4f17_bigui255, + 0x2f33f8de90f81248455d5a6592667092992be0468372addbaff664caa84cd2d5_bigui255, + 0x061a1a458994ddf9f38c5edfbd737d3ceb05deaee685058b14943e7e9246ebca_bigui255 }}, {{ - 0x4b73ab5b9d35f47307b731e3cf1a1a22e7068e2744f2af0ef6bd78bf8aae4845_cppui_modular255, - 0x5578b7ad5f8d4f3b8e618af7d8d5ec8bf837d2d9486527fe2f9bf7464f8516ad_cppui_modular255, - 0x50b4f055d860f89e12883209f847a4b1a2395fb419eb53c182dbb555c962255c_cppui_modular255, - 0x0b2da770936d6c778be289557ddd2ca024b93fa38c5d4541344e883a69611813_cppui_modular255, - 0x47d8441e1ae7cb8ffc52a18c67afff3cf7543cad51605b2d4e2513f1e1868b68_cppui_modular255 + 0x4b73ab5b9d35f47307b731e3cf1a1a22e7068e2744f2af0ef6bd78bf8aae4845_bigui255, + 0x5578b7ad5f8d4f3b8e618af7d8d5ec8bf837d2d9486527fe2f9bf7464f8516ad_bigui255, + 0x50b4f055d860f89e12883209f847a4b1a2395fb419eb53c182dbb555c962255c_bigui255, + 0x0b2da770936d6c778be289557ddd2ca024b93fa38c5d4541344e883a69611813_bigui255, + 0x47d8441e1ae7cb8ffc52a18c67afff3cf7543cad51605b2d4e2513f1e1868b68_bigui255 }}, {{ - 0x619da3bf44b42acd949ed572c9f3c195ed20b0b91bcd9e95ee3750d26f3b0ebd_cppui_modular255, - 0x6c9e249e89b2b4cf9cd7772950e0cc9d06688d4f051095eafd116371ede49ab7_cppui_modular255, - 0x210bd3217a141c55877d4528a4e80d5d81d78de7addce85994082281a6250d4b_cppui_modular255, - 0x4e1d8e4079c14c83847af6394d7dc23f33ebf71593379583ec574bf5c86ea9a6_cppui_modular255, - 0x699187330fc1d606e8b31b677651a2c7d1c87d4d001018031792cad0ad3f2826_cppui_modular255 + 0x619da3bf44b42acd949ed572c9f3c195ed20b0b91bcd9e95ee3750d26f3b0ebd_bigui255, + 0x6c9e249e89b2b4cf9cd7772950e0cc9d06688d4f051095eafd116371ede49ab7_bigui255, + 0x210bd3217a141c55877d4528a4e80d5d81d78de7addce85994082281a6250d4b_bigui255, + 0x4e1d8e4079c14c83847af6394d7dc23f33ebf71593379583ec574bf5c86ea9a6_bigui255, + 0x699187330fc1d606e8b31b677651a2c7d1c87d4d001018031792cad0ad3f2826_bigui255 }}, {{ - 0x2946bfc0f45c1f1a0dc4c343a85259f6a6237f064481fe66eda76f01998a01ea_cppui_modular255, - 0x5543e07588375c6d800e5e42d1bfd8b7a92a2a35d65b234ded85f879f82a3d66_cppui_modular255, - 0x660e9d0f2f866e8d12b40dd9d9c03cc8b9ca78600bd649f0fffb2c388dcc8b43_cppui_modular255, - 0x38f06c48d4dc53cb1b69619244cc2a610fdc4229ea316980dffe9131a72b4209_cppui_modular255, - 0x5c9a73a16521ddf463f9de314dd5f7255bc66add48297615b761f34e4636762d_cppui_modular255 + 0x2946bfc0f45c1f1a0dc4c343a85259f6a6237f064481fe66eda76f01998a01ea_bigui255, + 0x5543e07588375c6d800e5e42d1bfd8b7a92a2a35d65b234ded85f879f82a3d66_bigui255, + 0x660e9d0f2f866e8d12b40dd9d9c03cc8b9ca78600bd649f0fffb2c388dcc8b43_bigui255, + 0x38f06c48d4dc53cb1b69619244cc2a610fdc4229ea316980dffe9131a72b4209_bigui255, + 0x5c9a73a16521ddf463f9de314dd5f7255bc66add48297615b761f34e4636762d_bigui255 }}, {{ - 0x310931f0204c9936fe659e9ebbda832c930172130b3f5476c6c6ee5e7fef3e45_cppui_modular255, - 0x72eb1d833664d8989998af11441ac49654c12210b3465e5ac67a99679634a3af_cppui_modular255, - 0x6981346585a2a466a9255841f710e1d083bdcc21c0aa6721745e158218767a94_cppui_modular255, - 0x0370a259836b3766d563ed3cdcf55ace52655111a1017d8c76eaf8f97e81d858_cppui_modular255, - 0x4f63c45a324b8b974c22a20a6c670eb62d47ef900541b63f1d362b8bbe4ec418_cppui_modular255 + 0x310931f0204c9936fe659e9ebbda832c930172130b3f5476c6c6ee5e7fef3e45_bigui255, + 0x72eb1d833664d8989998af11441ac49654c12210b3465e5ac67a99679634a3af_bigui255, + 0x6981346585a2a466a9255841f710e1d083bdcc21c0aa6721745e158218767a94_bigui255, + 0x0370a259836b3766d563ed3cdcf55ace52655111a1017d8c76eaf8f97e81d858_bigui255, + 0x4f63c45a324b8b974c22a20a6c670eb62d47ef900541b63f1d362b8bbe4ec418_bigui255 }}, {{ - 0x6a4c7347121c2d4745ecffaad22281cc4d58ea74453b7d2b625b890190fdc7ad_cppui_modular255, - 0x36d8869bb69a51ee99622af09d6878c5b715084b25f6e4560a7498557fe87fb5_cppui_modular255, - 0x18faa7f51e1b7a442f9123806872094c0de8a46a6d8402f31f0cde3fcb878394_cppui_modular255, - 0x3610d022aacbe58593e0d6aa7eefdca767f5ddfe7fa1fb9fb4f80225d82b617b_cppui_modular255, - 0x3b5f13d6a8bbff31569bc6860087b2a4b361146a04ad5fc7396a3d0c59f68c1c_cppui_modular255 + 0x6a4c7347121c2d4745ecffaad22281cc4d58ea74453b7d2b625b890190fdc7ad_bigui255, + 0x36d8869bb69a51ee99622af09d6878c5b715084b25f6e4560a7498557fe87fb5_bigui255, + 0x18faa7f51e1b7a442f9123806872094c0de8a46a6d8402f31f0cde3fcb878394_bigui255, + 0x3610d022aacbe58593e0d6aa7eefdca767f5ddfe7fa1fb9fb4f80225d82b617b_bigui255, + 0x3b5f13d6a8bbff31569bc6860087b2a4b361146a04ad5fc7396a3d0c59f68c1c_bigui255 }}, {{ - 0x40e919335051c6aaaee033745c41b6fa36739a097d94ce6eb075ec03da2a978b_cppui_modular255, - 0x2f54586ab9b7886340f8ed5254f29128a85e2fb1e3725bf3c9cd8bddadc947f1_cppui_modular255, - 0x00606231b689a040363e5afc050f9fc9296d6c620a885eeaffe91be387cbe96c_cppui_modular255, - 0x4b55696db6b0fa327527a76e6ab6b688561c879e53d858e4c90a1122210130e1_cppui_modular255, - 0x569c39bd78356991953aef4b1a01fdf71710bb05eea1f447c3e5efe13bd62894_cppui_modular255 + 0x40e919335051c6aaaee033745c41b6fa36739a097d94ce6eb075ec03da2a978b_bigui255, + 0x2f54586ab9b7886340f8ed5254f29128a85e2fb1e3725bf3c9cd8bddadc947f1_bigui255, + 0x00606231b689a040363e5afc050f9fc9296d6c620a885eeaffe91be387cbe96c_bigui255, + 0x4b55696db6b0fa327527a76e6ab6b688561c879e53d858e4c90a1122210130e1_bigui255, + 0x569c39bd78356991953aef4b1a01fdf71710bb05eea1f447c3e5efe13bd62894_bigui255 }}, {{ - 0x537f73fcaa256497a2582e45105f1dc10f39c7fce9b88cab5523af3f5f82dcd9_cppui_modular255, - 0x2d58d32120c25995cd0754ab9fdf9ad67d67623cfd1fcbf489f51fa6e6eee4a2_cppui_modular255, - 0x37cb0f655951fca18a4ccdddd4d8466f8839ba8e320a104cb47a59cd387d322f_cppui_modular255, - 0x4e29d154430c9bced788d2eed8f3e01b5da24c1d3710e490bc40ee6d5903213c_cppui_modular255, - 0x47597b7a9018192ef22d6dd24555af1c0c51d8a90b54d8a0bdc2df7967d7a28b_cppui_modular255 + 0x537f73fcaa256497a2582e45105f1dc10f39c7fce9b88cab5523af3f5f82dcd9_bigui255, + 0x2d58d32120c25995cd0754ab9fdf9ad67d67623cfd1fcbf489f51fa6e6eee4a2_bigui255, + 0x37cb0f655951fca18a4ccdddd4d8466f8839ba8e320a104cb47a59cd387d322f_bigui255, + 0x4e29d154430c9bced788d2eed8f3e01b5da24c1d3710e490bc40ee6d5903213c_bigui255, + 0x47597b7a9018192ef22d6dd24555af1c0c51d8a90b54d8a0bdc2df7967d7a28b_bigui255 }}, {{ - 0x4e01b43205fca0b4a32582abe600f3a326035fe7e028cb0569bac43c997b98ce_cppui_modular255, - 0x0172ffdfba7e43ca807d5b5de7727b4e41706c1f2858c1e8a46c27ed3eae5ff2_cppui_modular255, - 0x2216dd907ab98c0d1e720a46ef83334a236d2c134ccf35ef8e889421e70ebe03_cppui_modular255, - 0x168709f668b635f03607a39390a0de71306d6430ce2babf7292d789d25c0f8d5_cppui_modular255, - 0x0ff6a3823440877dfd355dea80595e21115d0dfe3472cec4ad1437572cc6151d_cppui_modular255 + 0x4e01b43205fca0b4a32582abe600f3a326035fe7e028cb0569bac43c997b98ce_bigui255, + 0x0172ffdfba7e43ca807d5b5de7727b4e41706c1f2858c1e8a46c27ed3eae5ff2_bigui255, + 0x2216dd907ab98c0d1e720a46ef83334a236d2c134ccf35ef8e889421e70ebe03_bigui255, + 0x168709f668b635f03607a39390a0de71306d6430ce2babf7292d789d25c0f8d5_bigui255, + 0x0ff6a3823440877dfd355dea80595e21115d0dfe3472cec4ad1437572cc6151d_bigui255 }}, {{ - 0x44e37699b3c72f50ec1a754c72e6fa3f5a074181dd63d189ba36447d34e536ff_cppui_modular255, - 0x267298d2e46227f7f7f422e3059f18d83a8795731b13f6568ce54730cd3fe9ae_cppui_modular255, - 0x1ecbe7a60848077203373441a5b09b44693a155fe226442259e37ac47209235a_cppui_modular255, - 0x31cb23e6b5d7393577d5f5c3368c5bdd5b434ee6319f07e502031cc393d4eccb_cppui_modular255, - 0x5d4c550c4a6eccd74b74d6279b3d9bc755084588156a1bef673657dc2116ecfc_cppui_modular255 + 0x44e37699b3c72f50ec1a754c72e6fa3f5a074181dd63d189ba36447d34e536ff_bigui255, + 0x267298d2e46227f7f7f422e3059f18d83a8795731b13f6568ce54730cd3fe9ae_bigui255, + 0x1ecbe7a60848077203373441a5b09b44693a155fe226442259e37ac47209235a_bigui255, + 0x31cb23e6b5d7393577d5f5c3368c5bdd5b434ee6319f07e502031cc393d4eccb_bigui255, + 0x5d4c550c4a6eccd74b74d6279b3d9bc755084588156a1bef673657dc2116ecfc_bigui255 }}, {{ - 0x226056b5dec9afd19190ac48740c3b5ab1bb429b19f56894a3dec3f104d238c0_cppui_modular255, - 0x09077c021183dd37ad10451ded70d7ae6ec4819ae76ce23fb2a0be63e69907d9_cppui_modular255, - 0x53545c868ba0fbf0ed1ed7a24ec11b2ecfba5b37fd5cee80774e1ecdea991ed4_cppui_modular255, - 0x69521c33d148e678ca10b33103812cd27597c4a6cddbe83f4970d4b96e03304d_cppui_modular255, - 0x01d5779be7477b96aac6532ef919e61c624072be54587e0698999dd5f460e446_cppui_modular255 + 0x226056b5dec9afd19190ac48740c3b5ab1bb429b19f56894a3dec3f104d238c0_bigui255, + 0x09077c021183dd37ad10451ded70d7ae6ec4819ae76ce23fb2a0be63e69907d9_bigui255, + 0x53545c868ba0fbf0ed1ed7a24ec11b2ecfba5b37fd5cee80774e1ecdea991ed4_bigui255, + 0x69521c33d148e678ca10b33103812cd27597c4a6cddbe83f4970d4b96e03304d_bigui255, + 0x01d5779be7477b96aac6532ef919e61c624072be54587e0698999dd5f460e446_bigui255 }}, {{ - 0x57875a44441d2f191ac7d8de42691ab55fd3401bbaf04b786ef0603b3edf2927_cppui_modular255, - 0x1d5c957da0832d5b94e76f7abdb190972774b594ed232810bfcafe5441839d37_cppui_modular255, - 0x1b678335a80fd045fc7ce1897aa129f67bd55ca9ca801bd88eb7cc868538bd7a_cppui_modular255, - 0x31e69d706a5c1e011c1cb1809e5bf1857c90f9f50b9e1ae5ad36e4d3dcdbb7ed_cppui_modular255, - 0x485df8462ed7a18de34aa6e99ecc9bbf2db075a096b56bc2943b76a99c4bb1a0_cppui_modular255 + 0x57875a44441d2f191ac7d8de42691ab55fd3401bbaf04b786ef0603b3edf2927_bigui255, + 0x1d5c957da0832d5b94e76f7abdb190972774b594ed232810bfcafe5441839d37_bigui255, + 0x1b678335a80fd045fc7ce1897aa129f67bd55ca9ca801bd88eb7cc868538bd7a_bigui255, + 0x31e69d706a5c1e011c1cb1809e5bf1857c90f9f50b9e1ae5ad36e4d3dcdbb7ed_bigui255, + 0x485df8462ed7a18de34aa6e99ecc9bbf2db075a096b56bc2943b76a99c4bb1a0_bigui255 }}, {{ - 0x1e46fdcbb3705f663a350e78f99024912d80c95779195807aae82cbb494ce9e4_cppui_modular255, - 0x441d0fa0e9cb86c3a2a1f87151681c603c3e028f1a0670be2149eed4f0a24f08_cppui_modular255, - 0x02a3caff274f40942062340ec1fae17c1b1e97c2f0fc7e847c90e9317fea2c0c_cppui_modular255, - 0x4caf281080c0b2f2f638bf0f4859442f4c9da94e9994dada34c5c914130c1a9e_cppui_modular255, - 0x444470c6c49b5b9a38181c3af20bcfea572450946135baea85cfd6b692fa6464_cppui_modular255 + 0x1e46fdcbb3705f663a350e78f99024912d80c95779195807aae82cbb494ce9e4_bigui255, + 0x441d0fa0e9cb86c3a2a1f87151681c603c3e028f1a0670be2149eed4f0a24f08_bigui255, + 0x02a3caff274f40942062340ec1fae17c1b1e97c2f0fc7e847c90e9317fea2c0c_bigui255, + 0x4caf281080c0b2f2f638bf0f4859442f4c9da94e9994dada34c5c914130c1a9e_bigui255, + 0x444470c6c49b5b9a38181c3af20bcfea572450946135baea85cfd6b692fa6464_bigui255 }}, {{ - 0x6d5e07a13376fc883bea2dcdbad7f80b7780f231cdd33f5b98618f42cc49ec2f_cppui_modular255, - 0x1b9470418a07d8c88c767d1e63e8d5cc7f810cc530db1340181ecbbb212e0f70_cppui_modular255, - 0x4134c8666c685b712f4aec72077c540ef4a041dcaa123caabd57b83fc6266f14_cppui_modular255, - 0x3d5d0489e27362db9bf0cc7217477d81d2a73e1a44edc43e32d43bb544287c9d_cppui_modular255, - 0x71d7d4a91945e796f538f03b9324497489009ec1a0a403de062ed5bb4d7c2400_cppui_modular255 + 0x6d5e07a13376fc883bea2dcdbad7f80b7780f231cdd33f5b98618f42cc49ec2f_bigui255, + 0x1b9470418a07d8c88c767d1e63e8d5cc7f810cc530db1340181ecbbb212e0f70_bigui255, + 0x4134c8666c685b712f4aec72077c540ef4a041dcaa123caabd57b83fc6266f14_bigui255, + 0x3d5d0489e27362db9bf0cc7217477d81d2a73e1a44edc43e32d43bb544287c9d_bigui255, + 0x71d7d4a91945e796f538f03b9324497489009ec1a0a403de062ed5bb4d7c2400_bigui255 }}, {{ - 0x646c3d732a94f722384ac266b41e06cf21bf24fb9426c9556d8ac9514f0875f7_cppui_modular255, - 0x4f860c9e5d9bb73057d93c207902d9e60fd6a7c779fde1ebf16b853dba1ea9ad_cppui_modular255, - 0x05801566eb9e119e2f9ace565c9488cd999d66a5753eb4b9887363137baa09ab_cppui_modular255, - 0x0263bdb8654cf1245ae4589370dfd5eeb109a50944eef54308566055b887ee01_cppui_modular255, - 0x4cc39561e65eb05cb8c83f9854750a9114a996eb23e6a0bb07d2d61f0baf0a62_cppui_modular255 + 0x646c3d732a94f722384ac266b41e06cf21bf24fb9426c9556d8ac9514f0875f7_bigui255, + 0x4f860c9e5d9bb73057d93c207902d9e60fd6a7c779fde1ebf16b853dba1ea9ad_bigui255, + 0x05801566eb9e119e2f9ace565c9488cd999d66a5753eb4b9887363137baa09ab_bigui255, + 0x0263bdb8654cf1245ae4589370dfd5eeb109a50944eef54308566055b887ee01_bigui255, + 0x4cc39561e65eb05cb8c83f9854750a9114a996eb23e6a0bb07d2d61f0baf0a62_bigui255 }}, {{ - 0x36b544778b2fdb94f808ad8d077b7f0b44f3bba515ecdf026919e2fed09a106d_cppui_modular255, - 0x3fb1f7aec47cbe990151d4bf703c38349b95f409abdf0504e67c1a55ef82294c_cppui_modular255, - 0x637e7eb19cf539aada7e48bc6b72e5ccb0e3f6913f18a0d55696dddfcb1b587a_cppui_modular255, - 0x73bc630fcece6947fb81ac8e0f1f1671ed6042c3ef3bbb12ed554f28b48b46ec_cppui_modular255, - 0x304b46f52d597b964fbec3fc0dceee442febe6131359e156c194ab7be2a11e6d_cppui_modular255 + 0x36b544778b2fdb94f808ad8d077b7f0b44f3bba515ecdf026919e2fed09a106d_bigui255, + 0x3fb1f7aec47cbe990151d4bf703c38349b95f409abdf0504e67c1a55ef82294c_bigui255, + 0x637e7eb19cf539aada7e48bc6b72e5ccb0e3f6913f18a0d55696dddfcb1b587a_bigui255, + 0x73bc630fcece6947fb81ac8e0f1f1671ed6042c3ef3bbb12ed554f28b48b46ec_bigui255, + 0x304b46f52d597b964fbec3fc0dceee442febe6131359e156c194ab7be2a11e6d_bigui255 }}, {{ - 0x067d85956dcfff7fd9f6a0fec505b7f4998e3d85672623677a6d974d6b111de6_cppui_modular255, - 0x65830d8053bf8afc0ba5274f1a4c4cce617fa624b480f13ed3eb369fbba78e67_cppui_modular255, - 0x6c32c101e08a962bd996d759a6c012a4d97aedaab9fc99c1fa735a16cd24dd44_cppui_modular255, - 0x11fb2d160e41a1845fd14578c617285081fb1a16a21b36cfd5065b30fac574e3_cppui_modular255, - 0x50aada39348c4736f6c59f7f053c488ed999a33ad23501d9c635aa03baf90db5_cppui_modular255 + 0x067d85956dcfff7fd9f6a0fec505b7f4998e3d85672623677a6d974d6b111de6_bigui255, + 0x65830d8053bf8afc0ba5274f1a4c4cce617fa624b480f13ed3eb369fbba78e67_bigui255, + 0x6c32c101e08a962bd996d759a6c012a4d97aedaab9fc99c1fa735a16cd24dd44_bigui255, + 0x11fb2d160e41a1845fd14578c617285081fb1a16a21b36cfd5065b30fac574e3_bigui255, + 0x50aada39348c4736f6c59f7f053c488ed999a33ad23501d9c635aa03baf90db5_bigui255 }}, {{ - 0x5a5f0e3a32b260fbdfdc8c0eaf3a99396992b50b6dbb63a9d1e1ddf9c91d78d4_cppui_modular255, - 0x62c9f6d9aea355d358f2986ad487c2ae443122e1edfb076930865608d05c3b39_cppui_modular255, - 0x520cea06cee20150703a1c8000d4a5f22b3efeb9e34eb90bad0b4ff091b33683_cppui_modular255, - 0x6da4e4682545c1f4c0076f5845fbbcf48632a9c193a92593d12d248031f2c893_cppui_modular255, - 0x1ba5502cee2ea2d07a64f68f0a7492d2426382a5b9662d0410e086107399989b_cppui_modular255 + 0x5a5f0e3a32b260fbdfdc8c0eaf3a99396992b50b6dbb63a9d1e1ddf9c91d78d4_bigui255, + 0x62c9f6d9aea355d358f2986ad487c2ae443122e1edfb076930865608d05c3b39_bigui255, + 0x520cea06cee20150703a1c8000d4a5f22b3efeb9e34eb90bad0b4ff091b33683_bigui255, + 0x6da4e4682545c1f4c0076f5845fbbcf48632a9c193a92593d12d248031f2c893_bigui255, + 0x1ba5502cee2ea2d07a64f68f0a7492d2426382a5b9662d0410e086107399989b_bigui255 }}, {{ - 0x6ab843ca92240f8a82862da071d53f048272d55425907fc8d0e60dcccd5a1ea4_cppui_modular255, - 0x3f65c2dfa6bb39c1b291c40f810cc912015384a2a24fd322b6375e27bd069322_cppui_modular255, - 0x6a2df71a64cb0d9a548e3b65ba4e646ff5e519cab564b5f77b3fe08e038b9c3a_cppui_modular255, - 0x64776bf2b66bcd09c8661ee6ca6b8251bb4aba5a7ba181464d905db561ca45e1_cppui_modular255, - 0x6d7bed0d258b518eda13368f00be2cc0a94d71cc203d5905c35b10a3ee53eea8_cppui_modular255 + 0x6ab843ca92240f8a82862da071d53f048272d55425907fc8d0e60dcccd5a1ea4_bigui255, + 0x3f65c2dfa6bb39c1b291c40f810cc912015384a2a24fd322b6375e27bd069322_bigui255, + 0x6a2df71a64cb0d9a548e3b65ba4e646ff5e519cab564b5f77b3fe08e038b9c3a_bigui255, + 0x64776bf2b66bcd09c8661ee6ca6b8251bb4aba5a7ba181464d905db561ca45e1_bigui255, + 0x6d7bed0d258b518eda13368f00be2cc0a94d71cc203d5905c35b10a3ee53eea8_bigui255 }}, {{ - 0x371b958b5c79c889d1786edfe404119773f728822637fb4890b8847a93f97af1_cppui_modular255, - 0x56923182c33cb4dbf0988ba2314378dfd7491b3467b6134e6283c87a1478cbb8_cppui_modular255, - 0x3c4304994ef664d6aa19e3db492c306534281b5b6f857fa6ffae67bdba99c09e_cppui_modular255, - 0x0d003bd3068fa94c4f7bbe6ba02993acd341a27ed2fd7ecaa4e6b0b9d0abd85a_cppui_modular255, - 0x1073cb8c08510e7d88ed4cdf78e96b297cabe9d6677db47289b056c2a640da01_cppui_modular255 + 0x371b958b5c79c889d1786edfe404119773f728822637fb4890b8847a93f97af1_bigui255, + 0x56923182c33cb4dbf0988ba2314378dfd7491b3467b6134e6283c87a1478cbb8_bigui255, + 0x3c4304994ef664d6aa19e3db492c306534281b5b6f857fa6ffae67bdba99c09e_bigui255, + 0x0d003bd3068fa94c4f7bbe6ba02993acd341a27ed2fd7ecaa4e6b0b9d0abd85a_bigui255, + 0x1073cb8c08510e7d88ed4cdf78e96b297cabe9d6677db47289b056c2a640da01_bigui255 }}, {{ - 0x5c57522580fbc75883658d4b7b8ea07e1a4fc75f453c09edd9d249ff1bd31ae0_cppui_modular255, - 0x2a5bec9b422b4dc64958f4752d0c091ffa7904e0ce4809728d16235bb41d707f_cppui_modular255, - 0x379c4a9b4174c5878f72b60fa985f7aa86c1fd868683bdbe8fae194cda2e56c7_cppui_modular255, - 0x3634e042e79d046adb911d57b338e78f51ac7d212c5a5c6dc4fa1a05ddb58c82_cppui_modular255, - 0x3ace976310c5040e1484d1a6d42993ac5923d474ce5497a3fac468af25843a01_cppui_modular255 + 0x5c57522580fbc75883658d4b7b8ea07e1a4fc75f453c09edd9d249ff1bd31ae0_bigui255, + 0x2a5bec9b422b4dc64958f4752d0c091ffa7904e0ce4809728d16235bb41d707f_bigui255, + 0x379c4a9b4174c5878f72b60fa985f7aa86c1fd868683bdbe8fae194cda2e56c7_bigui255, + 0x3634e042e79d046adb911d57b338e78f51ac7d212c5a5c6dc4fa1a05ddb58c82_bigui255, + 0x3ace976310c5040e1484d1a6d42993ac5923d474ce5497a3fac468af25843a01_bigui255 }}, {{ - 0x3f5a856ab863b7584bc2e6e4c610b9df55a9306eb68894d630ff7d04f243e6f5_cppui_modular255, - 0x0d52822f5581fe9c5dab0b1f8d04eae183deb87c89504544a3d5558594b3149b_cppui_modular255, - 0x3c119e173586c22059bb09d2af4fc1044c8fc44f709233f7625e5fffa6696596_cppui_modular255, - 0x3e154fd5a026d7c6584faf8c089d82fd560f138392a8d4a5fe287859994c96b5_cppui_modular255, - 0x47251339c44d737b21df0ed1e204a28b68c9abb58f1cf2232f8a2da433e24b0b_cppui_modular255 + 0x3f5a856ab863b7584bc2e6e4c610b9df55a9306eb68894d630ff7d04f243e6f5_bigui255, + 0x0d52822f5581fe9c5dab0b1f8d04eae183deb87c89504544a3d5558594b3149b_bigui255, + 0x3c119e173586c22059bb09d2af4fc1044c8fc44f709233f7625e5fffa6696596_bigui255, + 0x3e154fd5a026d7c6584faf8c089d82fd560f138392a8d4a5fe287859994c96b5_bigui255, + 0x47251339c44d737b21df0ed1e204a28b68c9abb58f1cf2232f8a2da433e24b0b_bigui255 }}, {{ - 0x73d84625f38db2f3842d7724d8e79d6d0349a93b8d6142603eea382ba6ed8692_cppui_modular255, - 0x42929bffc19bf9cd1c53d10440b0760a3be6442db20458b692b4ba3901e6003f_cppui_modular255, - 0x39b16b0fc3700aa93e0cac53fcaf7e84495ac3b49553b2e1a5ff9f73fe74de50_cppui_modular255, - 0x2b715e21640cfb6f77b91a4f6d3dcaef9b5faa7c0bfe94c8d80b0824292603bc_cppui_modular255, - 0x306bef0c637b5d7c8d6486915f6623f4e1ed81971f40772ec60feb5e243d32a0_cppui_modular255 + 0x73d84625f38db2f3842d7724d8e79d6d0349a93b8d6142603eea382ba6ed8692_bigui255, + 0x42929bffc19bf9cd1c53d10440b0760a3be6442db20458b692b4ba3901e6003f_bigui255, + 0x39b16b0fc3700aa93e0cac53fcaf7e84495ac3b49553b2e1a5ff9f73fe74de50_bigui255, + 0x2b715e21640cfb6f77b91a4f6d3dcaef9b5faa7c0bfe94c8d80b0824292603bc_bigui255, + 0x306bef0c637b5d7c8d6486915f6623f4e1ed81971f40772ec60feb5e243d32a0_bigui255 }}, {{ - 0x5287d6ece65ef5df6e1c65dddf1d97cfa019157a5c90c004527c9d7c7496d814_cppui_modular255, - 0x0d760a2132c9092b0c8c89cbdf4fb1bd282791ef6284b73a44b313e8118e7d0c_cppui_modular255, - 0x5e830f4484268a349e4d9f6178ef745460f1f8456b04d0dc7814844052d51eb5_cppui_modular255, - 0x2468669481610965d8439f60a66aa61fbc7b18e82b35aa4755873ec4db82174e_cppui_modular255, - 0x23b6ea9e4d1fde701c719c2afab1272ea22b172bf7afe0837364ad9a2f698bd4_cppui_modular255 + 0x5287d6ece65ef5df6e1c65dddf1d97cfa019157a5c90c004527c9d7c7496d814_bigui255, + 0x0d760a2132c9092b0c8c89cbdf4fb1bd282791ef6284b73a44b313e8118e7d0c_bigui255, + 0x5e830f4484268a349e4d9f6178ef745460f1f8456b04d0dc7814844052d51eb5_bigui255, + 0x2468669481610965d8439f60a66aa61fbc7b18e82b35aa4755873ec4db82174e_bigui255, + 0x23b6ea9e4d1fde701c719c2afab1272ea22b172bf7afe0837364ad9a2f698bd4_bigui255 }}, {{ - 0x412024b2e86e9d5e903a5fbda26200be47003e3b0dcc322480d3079850606cc0_cppui_modular255, - 0x1f64c17825c1ce9333d211d45a555b5ceaa4608a354ed3237db56225b3a9459b_cppui_modular255, - 0x0b66fa87587ab95d5d29dde50cd606a1bc2c45fd223c03d0693c88b13ae23039_cppui_modular255, - 0x3086c386026698e733e54e5e17f65cb26c17fe64e76f85902cc184d5dd8ef0cf_cppui_modular255, - 0x72036acd9ef575414d5437327d902da6396cc70c0bcffcef2a82b4c296b5ea93_cppui_modular255 + 0x412024b2e86e9d5e903a5fbda26200be47003e3b0dcc322480d3079850606cc0_bigui255, + 0x1f64c17825c1ce9333d211d45a555b5ceaa4608a354ed3237db56225b3a9459b_bigui255, + 0x0b66fa87587ab95d5d29dde50cd606a1bc2c45fd223c03d0693c88b13ae23039_bigui255, + 0x3086c386026698e733e54e5e17f65cb26c17fe64e76f85902cc184d5dd8ef0cf_bigui255, + 0x72036acd9ef575414d5437327d902da6396cc70c0bcffcef2a82b4c296b5ea93_bigui255 }}, {{ - 0x53d89e4470b3ea1eb861717e47c08fda42f6e61fc08118b16645ae5e8fdd664f_cppui_modular255, - 0x4ebea65d1fc5c5167b1412ffcbf8900a8df2096c25d7011e6c74f500662465f8_cppui_modular255, - 0x5ee6e1e0312e78e2e67b246a95afdd79e2e7a5b9b0ef6ee36c3d1639f9736e65_cppui_modular255, - 0x1d770c0cc2c2231213624d58b7875b1715554f6100784bb2b545e405c7fcb94e_cppui_modular255, - 0x2ea5c9837af445988c480fc6a55b1e5640dbe38d5e8cf1ddd85bc42c3658d9ca_cppui_modular255 + 0x53d89e4470b3ea1eb861717e47c08fda42f6e61fc08118b16645ae5e8fdd664f_bigui255, + 0x4ebea65d1fc5c5167b1412ffcbf8900a8df2096c25d7011e6c74f500662465f8_bigui255, + 0x5ee6e1e0312e78e2e67b246a95afdd79e2e7a5b9b0ef6ee36c3d1639f9736e65_bigui255, + 0x1d770c0cc2c2231213624d58b7875b1715554f6100784bb2b545e405c7fcb94e_bigui255, + 0x2ea5c9837af445988c480fc6a55b1e5640dbe38d5e8cf1ddd85bc42c3658d9ca_bigui255 }}, {{ - 0x6fb78d12c35235f738b1667749064d0066fa7cfe3a9624cb0944f16d37bc485e_cppui_modular255, - 0x35b75e89e794282cee1e66991ccfb2499dce4366b88d7be5f7b5775c12103a22_cppui_modular255, - 0x50e83b08162e7ccfe2d0f19aea4753ba83ef5c40572d6e904cfe2419ee9d901d_cppui_modular255, - 0x3fc5c93031cbcecf12d5831aaa6b2b3071657cd669f7b377b2fef4a7bfc9adf2_cppui_modular255, - 0x37895bdfe29a174b98cd4b49104e56ea09e41c7b50f9aa95b400b529c545f5b4_cppui_modular255 + 0x6fb78d12c35235f738b1667749064d0066fa7cfe3a9624cb0944f16d37bc485e_bigui255, + 0x35b75e89e794282cee1e66991ccfb2499dce4366b88d7be5f7b5775c12103a22_bigui255, + 0x50e83b08162e7ccfe2d0f19aea4753ba83ef5c40572d6e904cfe2419ee9d901d_bigui255, + 0x3fc5c93031cbcecf12d5831aaa6b2b3071657cd669f7b377b2fef4a7bfc9adf2_bigui255, + 0x37895bdfe29a174b98cd4b49104e56ea09e41c7b50f9aa95b400b529c545f5b4_bigui255 }}, {{ - 0x695e405509a0981035ba77e27cdcf53f3bc15d20fe4e43a335aeb6406ae1837d_cppui_modular255, - 0x104985a48aa7e0a668d8cc7140c255ed1b8482ac5febbd3d7a1cca0e96cf0682_cppui_modular255, - 0x118220b30330f1954e7d94d40fb1043a1a79ca83e68e9ef590601a86a4a917a4_cppui_modular255, - 0x098b3be7845a63543c13d211efac076b94a9528d34cb355faf0ff7a0d5ee9991_cppui_modular255, - 0x69ca1313dcddd8c2f5c5c7ee93a1d2a94726c0c0bc4a303fcf83109b23bf3621_cppui_modular255 + 0x695e405509a0981035ba77e27cdcf53f3bc15d20fe4e43a335aeb6406ae1837d_bigui255, + 0x104985a48aa7e0a668d8cc7140c255ed1b8482ac5febbd3d7a1cca0e96cf0682_bigui255, + 0x118220b30330f1954e7d94d40fb1043a1a79ca83e68e9ef590601a86a4a917a4_bigui255, + 0x098b3be7845a63543c13d211efac076b94a9528d34cb355faf0ff7a0d5ee9991_bigui255, + 0x69ca1313dcddd8c2f5c5c7ee93a1d2a94726c0c0bc4a303fcf83109b23bf3621_bigui255 }}, {{ - 0x570c1bd286b258b8bf11e8b85a2eb0c6dbfc2e4cdf01a0cde5464aa009b5bd43_cppui_modular255, - 0x4f2921de3696018e0d1ca7cdd5a4064ebf51845ab25b2d395b71c341ea8527da_cppui_modular255, - 0x19035c69cbaf0e0e7e02c5c524a8cc56de0e52d1936a9a10b7580f0c0555878f_cppui_modular255, - 0x2b8fdad2064a6f58d01e8c48d49bb25730780055829c1faead0430afcfbc5669_cppui_modular255, - 0x60ef9a74bbf8b98cb8248856492257f30c7520b3353a6fec9d90d48be46070ba_cppui_modular255 + 0x570c1bd286b258b8bf11e8b85a2eb0c6dbfc2e4cdf01a0cde5464aa009b5bd43_bigui255, + 0x4f2921de3696018e0d1ca7cdd5a4064ebf51845ab25b2d395b71c341ea8527da_bigui255, + 0x19035c69cbaf0e0e7e02c5c524a8cc56de0e52d1936a9a10b7580f0c0555878f_bigui255, + 0x2b8fdad2064a6f58d01e8c48d49bb25730780055829c1faead0430afcfbc5669_bigui255, + 0x60ef9a74bbf8b98cb8248856492257f30c7520b3353a6fec9d90d48be46070ba_bigui255 }}, {{ - 0x4c9a6bc8284e783afd6c425f8cbdab82c0db3eac060a2dc00eca48ed6d1d052b_cppui_modular255, - 0x68e6d3a83ac8e60c92d2860ff7557e1fbe3b91c38fabbde8b28371dccce2a10b_cppui_modular255, - 0x56e0e39848046f0305d268b28aa753a41d48586e8579d5f95f12dba60e181d4c_cppui_modular255, - 0x5176824fd8c92fed23df24c382a9fdf86aeeecab0b6716bef53da57bd3f551eb_cppui_modular255, - 0x3aaf796b71041e8b2b494bca3b030f56a0c5663149093c8a179c0f3e24d0f718_cppui_modular255 + 0x4c9a6bc8284e783afd6c425f8cbdab82c0db3eac060a2dc00eca48ed6d1d052b_bigui255, + 0x68e6d3a83ac8e60c92d2860ff7557e1fbe3b91c38fabbde8b28371dccce2a10b_bigui255, + 0x56e0e39848046f0305d268b28aa753a41d48586e8579d5f95f12dba60e181d4c_bigui255, + 0x5176824fd8c92fed23df24c382a9fdf86aeeecab0b6716bef53da57bd3f551eb_bigui255, + 0x3aaf796b71041e8b2b494bca3b030f56a0c5663149093c8a179c0f3e24d0f718_bigui255 }}, {{ - 0x101cd65865abc573f5382df3636f4d60bc669aaa70f09ba040d61ef8d09c5296_cppui_modular255, - 0x2581f83d616d932b438bfe0062082d4e1ed7d34b9a1cf63580199731d44a4b25_cppui_modular255, - 0x65d74f6d1320dd1dc9412547b130bc7ad03c4e80cd8a44c108f24ec7aa35489a_cppui_modular255, - 0x0d5cb6e19c9aac7d9f51f176ed42d008317a189dc4f6fc5c36fc6d451a035916_cppui_modular255, - 0x0e367d17423501e62db9fd487f72076f2d1de6dabd3c175341ce35f925c9941e_cppui_modular255 + 0x101cd65865abc573f5382df3636f4d60bc669aaa70f09ba040d61ef8d09c5296_bigui255, + 0x2581f83d616d932b438bfe0062082d4e1ed7d34b9a1cf63580199731d44a4b25_bigui255, + 0x65d74f6d1320dd1dc9412547b130bc7ad03c4e80cd8a44c108f24ec7aa35489a_bigui255, + 0x0d5cb6e19c9aac7d9f51f176ed42d008317a189dc4f6fc5c36fc6d451a035916_bigui255, + 0x0e367d17423501e62db9fd487f72076f2d1de6dabd3c175341ce35f925c9941e_bigui255 }}, {{ - 0x3f3f101f7c8abd6bebe6b81dadf0ff5fa31ec7140e317909a8d2f94ce4adc890_cppui_modular255, - 0x6d5f212b5f4775095ab1d20fffd41dd73ab69b4ac60e9de11693f8e6bab88e67_cppui_modular255, - 0x6b11154212e86e185a4cb17dc2b9dc061f72bf9cc3df5f95f7b87f1101d09f1c_cppui_modular255, - 0x43f4cf980ff1a9101ca3c4601814f8de4124d108be2584ee9ffb9505188d35fd_cppui_modular255, - 0x5d9be9303e3a25e8fa1abb6f2a7e3250231091100f9d7311b050b52666ec8f02_cppui_modular255 + 0x3f3f101f7c8abd6bebe6b81dadf0ff5fa31ec7140e317909a8d2f94ce4adc890_bigui255, + 0x6d5f212b5f4775095ab1d20fffd41dd73ab69b4ac60e9de11693f8e6bab88e67_bigui255, + 0x6b11154212e86e185a4cb17dc2b9dc061f72bf9cc3df5f95f7b87f1101d09f1c_bigui255, + 0x43f4cf980ff1a9101ca3c4601814f8de4124d108be2584ee9ffb9505188d35fd_bigui255, + 0x5d9be9303e3a25e8fa1abb6f2a7e3250231091100f9d7311b050b52666ec8f02_bigui255 }}, {{ - 0x1eb3b147885e1261d9034ca89a658817caef5ae629e1265cd32c6ef89ce704e9_cppui_modular255, - 0x1595d95dac2c4653d32b01c3fbc294b2922140e41b93c5e7f5702212226d7140_cppui_modular255, - 0x578b22f1f6d6eeb61507f0de1c817bb876b9cd079a18be9e99e2faa8e02618e2_cppui_modular255, - 0x4de38f88c5e8ba1890b3695c912ccacd63721298c9ba3d3668b44f2a13b40abd_cppui_modular255, - 0x0b9df0b81af072be21be9f08df336d3babe6ed5bfc199c73f2e97ccc73de80ae_cppui_modular255 + 0x1eb3b147885e1261d9034ca89a658817caef5ae629e1265cd32c6ef89ce704e9_bigui255, + 0x1595d95dac2c4653d32b01c3fbc294b2922140e41b93c5e7f5702212226d7140_bigui255, + 0x578b22f1f6d6eeb61507f0de1c817bb876b9cd079a18be9e99e2faa8e02618e2_bigui255, + 0x4de38f88c5e8ba1890b3695c912ccacd63721298c9ba3d3668b44f2a13b40abd_bigui255, + 0x0b9df0b81af072be21be9f08df336d3babe6ed5bfc199c73f2e97ccc73de80ae_bigui255 }}, {{ - 0x2a1a8c6d54abda22954e90386d40cc7d5c4f54c592ec2c69a9574601e88b6559_cppui_modular255, - 0x5c5d96136cd1c4ae8fa1db9273083567345b407eb66f73a313ab8ad1a76cb157_cppui_modular255, - 0x1ade9e2b734e937fc2fa04ca445236faf24e6d47ad1a4baa3408102c0d1e6363_cppui_modular255, - 0x49354c394824998704e44eeb2ba6cb6fb431c334b648e6c87565e5fe133e8079_cppui_modular255, - 0x4ea258f019a8055902a696b85547652519b8d8d92de4bf18e2dbfa41264a9a6e_cppui_modular255 + 0x2a1a8c6d54abda22954e90386d40cc7d5c4f54c592ec2c69a9574601e88b6559_bigui255, + 0x5c5d96136cd1c4ae8fa1db9273083567345b407eb66f73a313ab8ad1a76cb157_bigui255, + 0x1ade9e2b734e937fc2fa04ca445236faf24e6d47ad1a4baa3408102c0d1e6363_bigui255, + 0x49354c394824998704e44eeb2ba6cb6fb431c334b648e6c87565e5fe133e8079_bigui255, + 0x4ea258f019a8055902a696b85547652519b8d8d92de4bf18e2dbfa41264a9a6e_bigui255 }}, {{ - 0x008a5162adf5ebd8711fd8139418509e472abc02908084f2e494086232336808_cppui_modular255, - 0x6badee92872dcc00812a1cbc8081dd65ece0c7d3512af5a9df5fed7428557c81_cppui_modular255, - 0x324c64ef2693e966965246bb7bb8c04b57a21fbee9be8c4a10096222bc83cc51_cppui_modular255, - 0x3f14138eee87c93b0fbfe7efdcfa906525b0ce0f3b9a7431a492f8cb71514219_cppui_modular255, - 0x0db99fa5ce25d50f557415ad181f1399840574f678b2534cae8f774bc8703009_cppui_modular255 + 0x008a5162adf5ebd8711fd8139418509e472abc02908084f2e494086232336808_bigui255, + 0x6badee92872dcc00812a1cbc8081dd65ece0c7d3512af5a9df5fed7428557c81_bigui255, + 0x324c64ef2693e966965246bb7bb8c04b57a21fbee9be8c4a10096222bc83cc51_bigui255, + 0x3f14138eee87c93b0fbfe7efdcfa906525b0ce0f3b9a7431a492f8cb71514219_bigui255, + 0x0db99fa5ce25d50f557415ad181f1399840574f678b2534cae8f774bc8703009_bigui255 }}, {{ - 0x23d984702589f3275211041a4bde9d79329967723ec029da095bdbe733e97381_cppui_modular255, - 0x6c5144ace155e976e287f1b95951194895bac2e5d54b07b62c3afe0eeafcbe39_cppui_modular255, - 0x57a3e420fe7e0638bfb4d0b2c6286c2946166a6eb17836571909da153c3204de_cppui_modular255, - 0x156621c4691a9240863577f10e29dc66a37d1b94e756869984c22d9f9d284726_cppui_modular255, - 0x1b1e774a7ec903650adffe34f6aa8201d356e41e0951d38fb83a89413d078e4b_cppui_modular255 + 0x23d984702589f3275211041a4bde9d79329967723ec029da095bdbe733e97381_bigui255, + 0x6c5144ace155e976e287f1b95951194895bac2e5d54b07b62c3afe0eeafcbe39_bigui255, + 0x57a3e420fe7e0638bfb4d0b2c6286c2946166a6eb17836571909da153c3204de_bigui255, + 0x156621c4691a9240863577f10e29dc66a37d1b94e756869984c22d9f9d284726_bigui255, + 0x1b1e774a7ec903650adffe34f6aa8201d356e41e0951d38fb83a89413d078e4b_bigui255 }}, {{ - 0x514b940e5717c1ae53ea29b9a5a15998e294f69c1f553fe56124f66a16a78d53_cppui_modular255, - 0x16350c6898d04d355d966c1d7827eee076a1ebd90781639e120feab665391ea9_cppui_modular255, - 0x5b8b30d8c5ae46c4171d40478886c71c28fc86a3ae4a52ad1c05d8bcb9991b52_cppui_modular255, - 0x5226cdc8a40c229ea4fb08f2c10e0e24cd41f24ca5fa5b5ab73e7340f632e727_cppui_modular255, - 0x64383db664537c84a0a4030c3318f2f19cbeda46c70460035ad9d9240011639d_cppui_modular255 + 0x514b940e5717c1ae53ea29b9a5a15998e294f69c1f553fe56124f66a16a78d53_bigui255, + 0x16350c6898d04d355d966c1d7827eee076a1ebd90781639e120feab665391ea9_bigui255, + 0x5b8b30d8c5ae46c4171d40478886c71c28fc86a3ae4a52ad1c05d8bcb9991b52_bigui255, + 0x5226cdc8a40c229ea4fb08f2c10e0e24cd41f24ca5fa5b5ab73e7340f632e727_bigui255, + 0x64383db664537c84a0a4030c3318f2f19cbeda46c70460035ad9d9240011639d_bigui255 }}, {{ - 0x61068a086ab73c87701b2642af25f6a430240936ba473a9a258cbf90db275277_cppui_modular255, - 0x5bf320a3e8a48c6a85e2dffc4740d1b381ec4aa0771d885dc16adee569403ad3_cppui_modular255, - 0x2603e0fd03264a856c1a7b8f1c5a22c3b98f4858c345e8e0a68e3f6424dd2dfb_cppui_modular255, - 0x100d221342e64ed7e4f1520be70f5b0134031f8a31b4790ebb8e0a89e50b42e2_cppui_modular255, - 0x0e61bad85ce909438ecc028b55085ec2cee0dd3ac5a7bcaa79d96186747a4606_cppui_modular255 + 0x61068a086ab73c87701b2642af25f6a430240936ba473a9a258cbf90db275277_bigui255, + 0x5bf320a3e8a48c6a85e2dffc4740d1b381ec4aa0771d885dc16adee569403ad3_bigui255, + 0x2603e0fd03264a856c1a7b8f1c5a22c3b98f4858c345e8e0a68e3f6424dd2dfb_bigui255, + 0x100d221342e64ed7e4f1520be70f5b0134031f8a31b4790ebb8e0a89e50b42e2_bigui255, + 0x0e61bad85ce909438ecc028b55085ec2cee0dd3ac5a7bcaa79d96186747a4606_bigui255 }}, {{ - 0x570a2045ca0fa7288d7f372f36bd075c2517a9743c9baa46503c4396e1f316f4_cppui_modular255, - 0x1a64e108621e134020ea761d8f2c5bb42f24fab7641b095f1d164d1fc7b8be90_cppui_modular255, - 0x097f0f28fd299e3597ffd761e9ae8b0fa46526c9d78503dc9dd5f61df3a085d7_cppui_modular255, - 0x1d1063cb1be0f9f96aca5e5e39be9df69c96ff717c7d0c7cfe179cd6dce27505_cppui_modular255, - 0x3e30f5d48b3c2475b8f3ba08cba27caed32b1cf67f76ba9223803733e13ad863_cppui_modular255 + 0x570a2045ca0fa7288d7f372f36bd075c2517a9743c9baa46503c4396e1f316f4_bigui255, + 0x1a64e108621e134020ea761d8f2c5bb42f24fab7641b095f1d164d1fc7b8be90_bigui255, + 0x097f0f28fd299e3597ffd761e9ae8b0fa46526c9d78503dc9dd5f61df3a085d7_bigui255, + 0x1d1063cb1be0f9f96aca5e5e39be9df69c96ff717c7d0c7cfe179cd6dce27505_bigui255, + 0x3e30f5d48b3c2475b8f3ba08cba27caed32b1cf67f76ba9223803733e13ad863_bigui255 }}, {{ - 0x2b30db4198cd832506017fa26430d204476113cc791ee110cf5586af5ce3824c_cppui_modular255, - 0x2b520e374519be203c022ec51dcf8d972dd01abfaea371de9b1532647fca7bfd_cppui_modular255, - 0x183b9a8e45fd480e822f8a97a8d2f127d0ef561914903229fbc5602bea46cb37_cppui_modular255, - 0x4e01e6edf11ef4c94fe8589f9622a70709330a12e68591f6ea7dda994117bdc8_cppui_modular255, - 0x52ee256fb3031d20fc299de7fabd0d4ef2e7f12539760dafb0fbc8560a40ee16_cppui_modular255 + 0x2b30db4198cd832506017fa26430d204476113cc791ee110cf5586af5ce3824c_bigui255, + 0x2b520e374519be203c022ec51dcf8d972dd01abfaea371de9b1532647fca7bfd_bigui255, + 0x183b9a8e45fd480e822f8a97a8d2f127d0ef561914903229fbc5602bea46cb37_bigui255, + 0x4e01e6edf11ef4c94fe8589f9622a70709330a12e68591f6ea7dda994117bdc8_bigui255, + 0x52ee256fb3031d20fc299de7fabd0d4ef2e7f12539760dafb0fbc8560a40ee16_bigui255 }}, {{ - 0x327f5e141e4758d3d9a94c1628a57c817cf84fc0082b8dc098adbe84c1430979_cppui_modular255, - 0x3d0e12036899e5be167de13913901831a714ea5617b94de6de070ddc117bac71_cppui_modular255, - 0x1d9466d50efd1be3080d0aec4b81dd5cdf1ad4681e3ac04d08057f8fe49cdf0b_cppui_modular255, - 0x2360abd7728da2dcda3f495a9a4f0f2aaff1d2420b8f6a7fed6592e1463f3d00_cppui_modular255, - 0x23c1df4ddd6da863a1a2837e5222150278adfd4faf2fae7beaf64ed67a30736c_cppui_modular255 + 0x327f5e141e4758d3d9a94c1628a57c817cf84fc0082b8dc098adbe84c1430979_bigui255, + 0x3d0e12036899e5be167de13913901831a714ea5617b94de6de070ddc117bac71_bigui255, + 0x1d9466d50efd1be3080d0aec4b81dd5cdf1ad4681e3ac04d08057f8fe49cdf0b_bigui255, + 0x2360abd7728da2dcda3f495a9a4f0f2aaff1d2420b8f6a7fed6592e1463f3d00_bigui255, + 0x23c1df4ddd6da863a1a2837e5222150278adfd4faf2fae7beaf64ed67a30736c_bigui255 }}, {{ - 0x1e98ec3b325a2a11738273f94516a9d56107f33062661e571342bc043764cf77_cppui_modular255, - 0x431de5d108f8f7109df3059abcc16ccbd17e18676ef64f8998498e4a3f331fde_cppui_modular255, - 0x550937f2bf0f1adb53f412d49ffd2886158703c375f87d059461f740d655e3d0_cppui_modular255, - 0x1341fa99aca4bfc0f511dc9a9bc57c1e7aeb41ebb3a9140f5f93af1b3aeeb582_cppui_modular255, - 0x706889448219016f970b32463a87e355b55ce0a34401dbfe4dd19fb3f93dec2e_cppui_modular255 + 0x1e98ec3b325a2a11738273f94516a9d56107f33062661e571342bc043764cf77_bigui255, + 0x431de5d108f8f7109df3059abcc16ccbd17e18676ef64f8998498e4a3f331fde_bigui255, + 0x550937f2bf0f1adb53f412d49ffd2886158703c375f87d059461f740d655e3d0_bigui255, + 0x1341fa99aca4bfc0f511dc9a9bc57c1e7aeb41ebb3a9140f5f93af1b3aeeb582_bigui255, + 0x706889448219016f970b32463a87e355b55ce0a34401dbfe4dd19fb3f93dec2e_bigui255 }}, {{ - 0x28d6207e409ab1c6e8e196d9e363040070b6c6fc4685a5482f80ba38cb792dc5_cppui_modular255, - 0x6827087ecdf4e6bc7c396c59de859cbf08f92c361b5174e7f681ba0e72f83aaa_cppui_modular255, - 0x553e112dab620286f6cf2d31325b971a6516dc7776a6e5ef37bcb11d1785299d_cppui_modular255, - 0x40b44f7413d152f0d46460c54e9572fd91174b4b94a3595d709119e49925354c_cppui_modular255, - 0x4d324dd7dfdf2380ef9f6d3c4f4bc4c5f90dbbbf2f1fd923256913f33a45cc09_cppui_modular255 + 0x28d6207e409ab1c6e8e196d9e363040070b6c6fc4685a5482f80ba38cb792dc5_bigui255, + 0x6827087ecdf4e6bc7c396c59de859cbf08f92c361b5174e7f681ba0e72f83aaa_bigui255, + 0x553e112dab620286f6cf2d31325b971a6516dc7776a6e5ef37bcb11d1785299d_bigui255, + 0x40b44f7413d152f0d46460c54e9572fd91174b4b94a3595d709119e49925354c_bigui255, + 0x4d324dd7dfdf2380ef9f6d3c4f4bc4c5f90dbbbf2f1fd923256913f33a45cc09_bigui255 }}, {{ - 0x609b3ae79dcdc8a8379a690394c95805d862bc31068b572ac126bbc082ebf8b7_cppui_modular255, - 0x33973520a1d9fb67048d64a22ad1b75b081d88c135a556dbc1b6a8479f75eaa7_cppui_modular255, - 0x3bcb7630fc45d34b78fd253d0b5275ecfa85ce48125ef7275c3a9205d01b85d8_cppui_modular255, - 0x1287f419048e81322d73bb9333e9b854e4ceac4b993b5342547263a486b42e34_cppui_modular255, - 0x2a2f5a5a689471d5ef46d669e449ccdc1d37256618722f08cc2c7e75d06fc277_cppui_modular255 + 0x609b3ae79dcdc8a8379a690394c95805d862bc31068b572ac126bbc082ebf8b7_bigui255, + 0x33973520a1d9fb67048d64a22ad1b75b081d88c135a556dbc1b6a8479f75eaa7_bigui255, + 0x3bcb7630fc45d34b78fd253d0b5275ecfa85ce48125ef7275c3a9205d01b85d8_bigui255, + 0x1287f419048e81322d73bb9333e9b854e4ceac4b993b5342547263a486b42e34_bigui255, + 0x2a2f5a5a689471d5ef46d669e449ccdc1d37256618722f08cc2c7e75d06fc277_bigui255 }}, {{ - 0x38c913fdc729a28b7e354947f2b6449029976d442e349bc1c2acf3b0fa28bc92_cppui_modular255, - 0x421826bc690adac2b1f3637bc5e2333cb5e4bce3f9e8eac1a0a76df32a7ebff7_cppui_modular255, - 0x30ac2452c3a07bb924b6f7ed47cd6581499d532c5f90bf7fbc69556ff3bf6b09_cppui_modular255, - 0x40ce93f92b281e538efbe7cec9a22a9c005eef428dde3cdd46191630f563ba04_cppui_modular255, - 0x4fc3dd6720c87f672f7b6ff129e9b2a3236ec760a71f78aee84925d8e7616e97_cppui_modular255 + 0x38c913fdc729a28b7e354947f2b6449029976d442e349bc1c2acf3b0fa28bc92_bigui255, + 0x421826bc690adac2b1f3637bc5e2333cb5e4bce3f9e8eac1a0a76df32a7ebff7_bigui255, + 0x30ac2452c3a07bb924b6f7ed47cd6581499d532c5f90bf7fbc69556ff3bf6b09_bigui255, + 0x40ce93f92b281e538efbe7cec9a22a9c005eef428dde3cdd46191630f563ba04_bigui255, + 0x4fc3dd6720c87f672f7b6ff129e9b2a3236ec760a71f78aee84925d8e7616e97_bigui255 }}, {{ - 0x3f3ba6f9f12ca6f934f92b17f4f3bd8ec261e5870610557f687bc734eadaa2d4_cppui_modular255, - 0x11d9eedda8d94fcbed859f5787fe20b7d4483cd319d8215530e2e316c89ee635_cppui_modular255, - 0x29981cff92be6c882c89feb59849d014fcd163699b5b4fdafca335552c4581d1_cppui_modular255, - 0x4c4fe2838d175c666c0d3f20d8dfefdcbcdacebca86e013d8ad29b6a0cf6bb79_cppui_modular255, - 0x630428a99469c03f9027d3c601864185d360d920771ea950732cf000b869a09a_cppui_modular255 + 0x3f3ba6f9f12ca6f934f92b17f4f3bd8ec261e5870610557f687bc734eadaa2d4_bigui255, + 0x11d9eedda8d94fcbed859f5787fe20b7d4483cd319d8215530e2e316c89ee635_bigui255, + 0x29981cff92be6c882c89feb59849d014fcd163699b5b4fdafca335552c4581d1_bigui255, + 0x4c4fe2838d175c666c0d3f20d8dfefdcbcdacebca86e013d8ad29b6a0cf6bb79_bigui255, + 0x630428a99469c03f9027d3c601864185d360d920771ea950732cf000b869a09a_bigui255 }}, {{ - 0x46a776fbf1f36d7fdfa7a210cbb2ffa533540068c169e12f127cb14d9b587056_cppui_modular255, - 0x41a775960677e6c5fdf73c2a409b6e5c08e271cbb8c825f598a1801c84fde5ae_cppui_modular255, - 0x3086af931c41d791deb57f7f82dc511e4d349f42b52c3e0080097c4e44373dc8_cppui_modular255, - 0x155516da7a229b61392a39cc10a67112f512203cab706428f5fbbb3a9fd89fbd_cppui_modular255, - 0x41bdb1e32081ac55f42969658f78e308bdf50175b619c3ca8e3bfdf1ca984684_cppui_modular255 + 0x46a776fbf1f36d7fdfa7a210cbb2ffa533540068c169e12f127cb14d9b587056_bigui255, + 0x41a775960677e6c5fdf73c2a409b6e5c08e271cbb8c825f598a1801c84fde5ae_bigui255, + 0x3086af931c41d791deb57f7f82dc511e4d349f42b52c3e0080097c4e44373dc8_bigui255, + 0x155516da7a229b61392a39cc10a67112f512203cab706428f5fbbb3a9fd89fbd_bigui255, + 0x41bdb1e32081ac55f42969658f78e308bdf50175b619c3ca8e3bfdf1ca984684_bigui255 }}, {{ - 0x01344d21e02b9c20d0d886a02167cf8502c3614ab909ae2fa7929b12d3e88519_cppui_modular255, - 0x733a3e92f74b793915beab78e87bd88a2227aa5406df54dc9a2c5e80a11f71e5_cppui_modular255, - 0x6a6cc17a31ba2fe1411cdebeb0809bf4ff0069b0d6ac681edf816ef4c59b6f64_cppui_modular255, - 0x0a77e0a85b06c1b152098066bd36933264641627192e3acdbf611bd002918820_cppui_modular255, - 0x3efb107ebed9b44672f679bffec0121fb509d19e97ae1bac3a86384e274c8c94_cppui_modular255 + 0x01344d21e02b9c20d0d886a02167cf8502c3614ab909ae2fa7929b12d3e88519_bigui255, + 0x733a3e92f74b793915beab78e87bd88a2227aa5406df54dc9a2c5e80a11f71e5_bigui255, + 0x6a6cc17a31ba2fe1411cdebeb0809bf4ff0069b0d6ac681edf816ef4c59b6f64_bigui255, + 0x0a77e0a85b06c1b152098066bd36933264641627192e3acdbf611bd002918820_bigui255, + 0x3efb107ebed9b44672f679bffec0121fb509d19e97ae1bac3a86384e274c8c94_bigui255 }}, {{ - 0x3c0c4b441b0ea7ffe03c011db9aab4f86ec4849a0c783a3b7af21b05f5654482_cppui_modular255, - 0x28072c7bfa64f6cb97e4341cd18809ef5cd083374fbec26370c2b0ac02dcdafe_cppui_modular255, - 0x1962306e92b3c7295b2f7435ed8f67dda3a15ec6d8b0786d7727d071663ab22b_cppui_modular255, - 0x594dc533611f7f588838f894a26b1cd27432c63f9fbe03ef2d95d9a2d191ae3f_cppui_modular255, - 0x3e287fec491c686222949bc16c2308ade64e3a0a1dccdb25d64f9d5b94ead6e7_cppui_modular255 + 0x3c0c4b441b0ea7ffe03c011db9aab4f86ec4849a0c783a3b7af21b05f5654482_bigui255, + 0x28072c7bfa64f6cb97e4341cd18809ef5cd083374fbec26370c2b0ac02dcdafe_bigui255, + 0x1962306e92b3c7295b2f7435ed8f67dda3a15ec6d8b0786d7727d071663ab22b_bigui255, + 0x594dc533611f7f588838f894a26b1cd27432c63f9fbe03ef2d95d9a2d191ae3f_bigui255, + 0x3e287fec491c686222949bc16c2308ade64e3a0a1dccdb25d64f9d5b94ead6e7_bigui255 }}, {{ - 0x2a95d47fb725b3978a7f90e601f2a9ab39074b35594e0bd133f9c5f34d765d42_cppui_modular255, - 0x29c603ecc031a9750a4d826e4abf3874bc76c76cc7ea306b3b9636f9653ff58c_cppui_modular255, - 0x0bbff6ba283aa42f01172bb82a2838e50941227abc3a2a5b1215b9a6d68de07c_cppui_modular255, - 0x73c7ee55aaa453d36ed857353bc227375244a7e554ceeea2018eb9cb39a51e74_cppui_modular255, - 0x3ff41b13d4cb3140ac8426322e88ff6f16895d88e6de3336cc88c693e0d38175_cppui_modular255 + 0x2a95d47fb725b3978a7f90e601f2a9ab39074b35594e0bd133f9c5f34d765d42_bigui255, + 0x29c603ecc031a9750a4d826e4abf3874bc76c76cc7ea306b3b9636f9653ff58c_bigui255, + 0x0bbff6ba283aa42f01172bb82a2838e50941227abc3a2a5b1215b9a6d68de07c_bigui255, + 0x73c7ee55aaa453d36ed857353bc227375244a7e554ceeea2018eb9cb39a51e74_bigui255, + 0x3ff41b13d4cb3140ac8426322e88ff6f16895d88e6de3336cc88c693e0d38175_bigui255 }}, {{ - 0x03043688d4c991763362912a460be95b668fe9b1823fe90febfb3ffc7652ab24_cppui_modular255, - 0x33a29a0d56a7a64d36a67da2c691ff3eaf8ec7f0d78b357e7d2254c5b0e28f73_cppui_modular255, - 0x185db562fc75b43ba2710ad5e9114486b3e9712fe4c88f98b333c0c6211ac882_cppui_modular255, - 0x147b89a0cff9083b8952b3ef292c683f75d523f932711c6e1db3f28f5163b1fb_cppui_modular255, - 0x58ebc5d6b50bb1e4fdb4dcdfae1b69027978826f757ee4dc10d34f963f98fb59_cppui_modular255 + 0x03043688d4c991763362912a460be95b668fe9b1823fe90febfb3ffc7652ab24_bigui255, + 0x33a29a0d56a7a64d36a67da2c691ff3eaf8ec7f0d78b357e7d2254c5b0e28f73_bigui255, + 0x185db562fc75b43ba2710ad5e9114486b3e9712fe4c88f98b333c0c6211ac882_bigui255, + 0x147b89a0cff9083b8952b3ef292c683f75d523f932711c6e1db3f28f5163b1fb_bigui255, + 0x58ebc5d6b50bb1e4fdb4dcdfae1b69027978826f757ee4dc10d34f963f98fb59_bigui255 }}, {{ - 0x1318791367815809badf1f3ed677e50cef92021c65549b2dabaa52c7b424f5a9_cppui_modular255, - 0x5bce78553694ba32f793c8d7f8d09ac63d0d7ada32b888d61b87849f3eda9557_cppui_modular255, - 0x026bebcc38f0b2804ed21f2e2b16af2194375ff2559fbc588a8962caf0b684c0_cppui_modular255, - 0x494bceff689f9885a3998de0eaaa7ac71a04522700f2e067efdbb037c6e53c66_cppui_modular255, - 0x03ebaf5f0602347c4ed2bdb9a86eb955cb5cd5378f7a6f369dccb69792de8bd2_cppui_modular255 + 0x1318791367815809badf1f3ed677e50cef92021c65549b2dabaa52c7b424f5a9_bigui255, + 0x5bce78553694ba32f793c8d7f8d09ac63d0d7ada32b888d61b87849f3eda9557_bigui255, + 0x026bebcc38f0b2804ed21f2e2b16af2194375ff2559fbc588a8962caf0b684c0_bigui255, + 0x494bceff689f9885a3998de0eaaa7ac71a04522700f2e067efdbb037c6e53c66_bigui255, + 0x03ebaf5f0602347c4ed2bdb9a86eb955cb5cd5378f7a6f369dccb69792de8bd2_bigui255 }}, {{ - 0x3626d91f9f05334cb32d3a42eed03f7a553a0ed4cada2db08b45b548bd3b3655_cppui_modular255, - 0x63ee9e5c5cd3c83e93757ed93358ff0583d761e595b62f11df27bd4292ffb6e5_cppui_modular255, - 0x705dd80b2db4492c8b9984439b823681c4d9c8dcddcc04b9786a90051513a0e1_cppui_modular255, - 0x2636ac2ac559be8fe509641dbc67e55db47bb051e05ef06301020c9501f110f1_cppui_modular255, - 0x4781b8da302c7764951730e7ac0892de64537d94db2e19b84eec5a2d9539288e_cppui_modular255 + 0x3626d91f9f05334cb32d3a42eed03f7a553a0ed4cada2db08b45b548bd3b3655_bigui255, + 0x63ee9e5c5cd3c83e93757ed93358ff0583d761e595b62f11df27bd4292ffb6e5_bigui255, + 0x705dd80b2db4492c8b9984439b823681c4d9c8dcddcc04b9786a90051513a0e1_bigui255, + 0x2636ac2ac559be8fe509641dbc67e55db47bb051e05ef06301020c9501f110f1_bigui255, + 0x4781b8da302c7764951730e7ac0892de64537d94db2e19b84eec5a2d9539288e_bigui255 }}, {{ - 0x197852b9a62e16779725f35cd8daf52ffbc8cc9c902c16923f2ff8873795ca86_cppui_modular255, - 0x1c3e49f33fd73480b280dba7744cf67e244449048f8fc84f7b6e452b4ede9a35_cppui_modular255, - 0x41d20cdc6a15c07fd9735c89b155412fcbb7bd3cdfc27abaad2a3a8a90e99743_cppui_modular255, - 0x0c3a7aaeb5f65d907944d7aa48c27648be3d0371bd97a9c060e8ef4f573521b8_cppui_modular255, - 0x52ea7c3f75cba07991674295c4e1462108401b9a103736623943d42e4fbe334e_cppui_modular255 + 0x197852b9a62e16779725f35cd8daf52ffbc8cc9c902c16923f2ff8873795ca86_bigui255, + 0x1c3e49f33fd73480b280dba7744cf67e244449048f8fc84f7b6e452b4ede9a35_bigui255, + 0x41d20cdc6a15c07fd9735c89b155412fcbb7bd3cdfc27abaad2a3a8a90e99743_bigui255, + 0x0c3a7aaeb5f65d907944d7aa48c27648be3d0371bd97a9c060e8ef4f573521b8_bigui255, + 0x52ea7c3f75cba07991674295c4e1462108401b9a103736623943d42e4fbe334e_bigui255 }}, {{ - 0x1106537bf3150b442b0992ee517b69707c3042015e938f97a63d5c924e67f677_cppui_modular255, - 0x71de967042516a5b990ef18ae9956fab89f361b950e0639963017c237ee2a0cf_cppui_modular255, - 0x664a4487e02f7bfa07a1db6ab94a0d1ed0f9e74002bde9cfcbb65f6f74dbfca0_cppui_modular255, - 0x1023721fd7285260935b5a347f167ce721dd6ae5004c4debc68066bac8f2c467_cppui_modular255, - 0x2d52fbc95404515f5456c74b65186c860a89dcda8c84bf68fbf715f3d58fe3f2_cppui_modular255 + 0x1106537bf3150b442b0992ee517b69707c3042015e938f97a63d5c924e67f677_bigui255, + 0x71de967042516a5b990ef18ae9956fab89f361b950e0639963017c237ee2a0cf_bigui255, + 0x664a4487e02f7bfa07a1db6ab94a0d1ed0f9e74002bde9cfcbb65f6f74dbfca0_bigui255, + 0x1023721fd7285260935b5a347f167ce721dd6ae5004c4debc68066bac8f2c467_bigui255, + 0x2d52fbc95404515f5456c74b65186c860a89dcda8c84bf68fbf715f3d58fe3f2_bigui255 }}, {{ - 0x6d987c9de419fb6e075441fd99606303e765d8696bcfe01a0d11aa0bd47c8601_cppui_modular255, - 0x422016ce4d744029b1440a288d7988e43d0f29d616c47f70322ff87cfbc69301_cppui_modular255, - 0x1f82afe8eb16611abc6600f7dc2a72c8e1d39643c189f3caa1ead08241a896c4_cppui_modular255, - 0x3bb8684cf815ae6d8a789e0e488c6fb2ac46883fe1cfeb8cfa6f3dbca0f954bd_cppui_modular255, - 0x3d5a1a6e571306fac431b098cdb3c4518f5a8fc436535766fe9e1bb8bda95d1d_cppui_modular255 + 0x6d987c9de419fb6e075441fd99606303e765d8696bcfe01a0d11aa0bd47c8601_bigui255, + 0x422016ce4d744029b1440a288d7988e43d0f29d616c47f70322ff87cfbc69301_bigui255, + 0x1f82afe8eb16611abc6600f7dc2a72c8e1d39643c189f3caa1ead08241a896c4_bigui255, + 0x3bb8684cf815ae6d8a789e0e488c6fb2ac46883fe1cfeb8cfa6f3dbca0f954bd_bigui255, + 0x3d5a1a6e571306fac431b098cdb3c4518f5a8fc436535766fe9e1bb8bda95d1d_bigui255 }}, {{ - 0x5e36e175c5d7df42b86285f43b1e4c6bfbaca19f1019073d38d04de0d0647669_cppui_modular255, - 0x2c3b1b86ce90cb3fe74c5c99b20c3314e28e2f07ce8d932030caee4dfe5055f1_cppui_modular255, - 0x0bfba44d41c49044bce730d8af86fe0397fff85ec10288b847868d0e9834f754_cppui_modular255, - 0x0b79924b9e44662369c615cc8d7f36fe4a4b2a79045cee61c413eaf91d82e0c2_cppui_modular255, - 0x048a11ec75eb154b70223a40cc0db9104b13f6a4ca24e7b9707963ee6f9f74ef_cppui_modular255 + 0x5e36e175c5d7df42b86285f43b1e4c6bfbaca19f1019073d38d04de0d0647669_bigui255, + 0x2c3b1b86ce90cb3fe74c5c99b20c3314e28e2f07ce8d932030caee4dfe5055f1_bigui255, + 0x0bfba44d41c49044bce730d8af86fe0397fff85ec10288b847868d0e9834f754_bigui255, + 0x0b79924b9e44662369c615cc8d7f36fe4a4b2a79045cee61c413eaf91d82e0c2_bigui255, + 0x048a11ec75eb154b70223a40cc0db9104b13f6a4ca24e7b9707963ee6f9f74ef_bigui255 }}, {{ - 0x6dd58a400d366014e46b0b9785ce9d78516813ed2eb329dc4531bfbd8e80eec0_cppui_modular255, - 0x112844b7c50e7e676b616e72539d5751dec5a063456921b6b16f9e930cc35ebc_cppui_modular255, - 0x217b616b50e729547af8ceef5008d1edf8d90bc9a7f3ce7c9bc71867e1c06471_cppui_modular255, - 0x3f9a0b8402ffa291bccbb46dcd2522dea790b35a8503da46717c63917dcb7b79_cppui_modular255, - 0x42a44fc114c0cad9badf62b911610bdc4b1a0ba9f656f66173a5476e63dfce86_cppui_modular255 + 0x6dd58a400d366014e46b0b9785ce9d78516813ed2eb329dc4531bfbd8e80eec0_bigui255, + 0x112844b7c50e7e676b616e72539d5751dec5a063456921b6b16f9e930cc35ebc_bigui255, + 0x217b616b50e729547af8ceef5008d1edf8d90bc9a7f3ce7c9bc71867e1c06471_bigui255, + 0x3f9a0b8402ffa291bccbb46dcd2522dea790b35a8503da46717c63917dcb7b79_bigui255, + 0x42a44fc114c0cad9badf62b911610bdc4b1a0ba9f656f66173a5476e63dfce86_bigui255 }}, {{ - 0x294223972f4c7e9c9ebefebf059eb90f44479956f5337b12a2eb803e313e96cc_cppui_modular255, - 0x448101837874eb1bda92bc8a632cbf8f70a0664bbcf3a196609b14c53ee4dbcb_cppui_modular255, - 0x53a26c6e2b3df0b17faf6a259bc5531d3ae79da59eb8fc5f594e0b886d8d97be_cppui_modular255, - 0x207c7c32631a75fe8e0da895367176d24e32c5573ec91acf235f3c6c307807cd_cppui_modular255, - 0x20f955773b13b160d3575eb2380b466f7d38cb4a0e12a15d43d147645c3944ca_cppui_modular255 + 0x294223972f4c7e9c9ebefebf059eb90f44479956f5337b12a2eb803e313e96cc_bigui255, + 0x448101837874eb1bda92bc8a632cbf8f70a0664bbcf3a196609b14c53ee4dbcb_bigui255, + 0x53a26c6e2b3df0b17faf6a259bc5531d3ae79da59eb8fc5f594e0b886d8d97be_bigui255, + 0x207c7c32631a75fe8e0da895367176d24e32c5573ec91acf235f3c6c307807cd_bigui255, + 0x20f955773b13b160d3575eb2380b466f7d38cb4a0e12a15d43d147645c3944ca_bigui255 }} }}; }; diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp index 866e02bb15..03b2ca4bda 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp @@ -9,11 +9,11 @@ #ifndef CRYPTO3_HASH_POSEIDON_LFSR_HPP #define CRYPTO3_HASH_POSEIDON_LFSR_HPP -#include - #include #include +#include + namespace nil { namespace crypto3 { namespace hashes { @@ -21,8 +21,6 @@ namespace nil { template class poseidon_constants; - using namespace boost::multiprecision; - // Uses Grain-LFSR stream cipher for constants generation. template class poseidon_constants_generator { @@ -50,7 +48,7 @@ namespace nil { typedef typename poseidon_constants_type::state_vector_type state_vector_type; constexpr static const std::size_t lfsr_state_bits = 80; - typedef number> lfsr_state_type; + typedef nil::crypto3::multiprecision::big_uint lfsr_state_type; typedef typename poseidon_constants_type::round_constants_type round_constants_type; @@ -182,7 +180,7 @@ namespace nil { } static constexpr inline bool get_lfsr_state_bit(lfsr_state_type state, std::size_t pos) { - return bit_test(state, lfsr_state_bits - 1 - pos); + return state.bit_test(lfsr_state_bits - 1 - pos); } template diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp index aa4a003bfe..7cb0177ae6 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp @@ -33,7 +33,8 @@ #include #include #include -#include + +#include namespace nil { namespace crypto3 { @@ -140,10 +141,10 @@ namespace nil { std::cbegin(uniform_bytes) + elm_offset + L, std::back_inserter(imported_octets)); nil::marshalling::status_type status; - boost::multiprecision::number> tmp = + nil::crypto3::multiprecision::big_uint tmp = nil::marshalling::pack(imported_octets, status); THROW_IF_ERROR_STATUS(status, "h2f::process"); - coordinates[j] = modular_type(typename modular_type::backend_type(tmp.backend())); + coordinates[j] = modular_type(tmp); } result[i] = coordinates[0]; } @@ -169,10 +170,10 @@ namespace nil { std::cbegin(uniform_bytes) + elm_offset + L, std::back_inserter(imported_octets)); nil::marshalling::status_type status; - boost::multiprecision::number> tmp = + nil::crypto3::multiprecision::big_uint tmp = nil::marshalling::pack(imported_octets, status); THROW_IF_ERROR_STATUS(status, "h2f::process"); - coordinates[j] = modular_type(typename modular_type::backend_type(tmp.backend())); + coordinates[j] = modular_type(tmp); } result[i] = field_value_type(coordinates[0], coordinates[1]); } diff --git a/crypto3/libs/hash/test/hash_to_curve.cpp b/crypto3/libs/hash/test/hash_to_curve.cpp index f732f5e545..69c012f5d2 100644 --- a/crypto3/libs/hash/test/hash_to_curve.cpp +++ b/crypto3/libs/hash/test/hash_to_curve.cpp @@ -36,8 +36,6 @@ #include #include -#include - #include #include @@ -49,7 +47,6 @@ #include #include -using namespace boost::multiprecision; using namespace nil::crypto3; using namespace nil::crypto3::algebra; using namespace nil::crypto3::algebra::curves::detail; diff --git a/crypto3/libs/hash/test/poseidon.cpp b/crypto3/libs/hash/test/poseidon.cpp index 55f5b4ba0d..ee2f73eb00 100644 --- a/crypto3/libs/hash/test/poseidon.cpp +++ b/crypto3/libs/hash/test/poseidon.cpp @@ -105,110 +105,110 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) // We have NO TESTS for Vesta Field so far, since Mina code doesn't have tests and test vectors for it. BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_0) { test_mina_poseidon( - {}, 0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8_cppui_modular254); + {}, 0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8_bigui254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_1) { test_mina_poseidon( - {0x36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2_cppui_modular254}, - 0x3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FB_cppui_modular254 + {0x36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui254}, + 0x3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FB_bigui254 ); } // works up to this BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_2) { test_mina_poseidon( - {0x3793E30AC691700012BAF26BB813D6D70BD379BEED8050A1DEEE3C188F1C3FBD_cppui_modular254, - 0x2FC4C98E50E0B1AAE6ECB468E28C0B7D80A7E0EEC7136DB0BA0677B84AF0E465_cppui_modular254}, - 0x336C73D08AD408CEB7D1264867096F0817A1D0558B313312A1207602F23624FE_cppui_modular254 + {0x3793E30AC691700012BAF26BB813D6D70BD379BEED8050A1DEEE3C188F1C3FBD_bigui254, + 0x2FC4C98E50E0B1AAE6ECB468E28C0B7D80A7E0EEC7136DB0BA0677B84AF0E465_bigui254}, + 0x336C73D08AD408CEB7D1264867096F0817A1D0558B313312A1207602F23624FE_bigui254 ); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_3) { test_mina_poseidon( - {0x0024FB5773CAC987CF3A17DDD6134BA12D3E1CA4F6C43D3695347747CE61EAF5_cppui_modular254, - 0x18E0ED2B46ED1EC258DF721A1D3145B0AA6ABDD02EE851A14B8B659CF47385F2_cppui_modular254, - 0x1A842A688E600F012637FE181292F70C4347B5AE0D9EA9CE7CF18592C345CF73_cppui_modular254}, - 0x3F4B0EABB64E025F920457AF8D090A9F6472CAE11F3D62A749AF544A44941B9B_cppui_modular254); + {0x0024FB5773CAC987CF3A17DDD6134BA12D3E1CA4F6C43D3695347747CE61EAF5_bigui254, + 0x18E0ED2B46ED1EC258DF721A1D3145B0AA6ABDD02EE851A14B8B659CF47385F2_bigui254, + 0x1A842A688E600F012637FE181292F70C4347B5AE0D9EA9CE7CF18592C345CF73_bigui254}, + 0x3F4B0EABB64E025F920457AF8D090A9F6472CAE11F3D62A749AF544A44941B9B_bigui254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_4) { test_mina_poseidon( - {0x2059462D60621F70620EA697FA1382EC5553A3DADB3CF9072201E09871B8284C_cppui_modular254, - 0x2747337D1C4F9894747074C771E8EC7F570640E5D0CAF30FDDC446C00FA48707_cppui_modular254, - 0x2DD5047C3EEEF37930E8FA4AD9691B27CF86D3ED39D4DEC4FC6D4E8EE4FF0415_cppui_modular254, - 0x12C387C69BDD436F65AB607A4ED7C62714872EDBF800518B58E76F5106650B29_cppui_modular254}, - 0x165A8CECF6660C6E0054CB9B4DBA9D68047166D7F3CED2F8DC86ED2EBFD3EC47_cppui_modular254); + {0x2059462D60621F70620EA697FA1382EC5553A3DADB3CF9072201E09871B8284C_bigui254, + 0x2747337D1C4F9894747074C771E8EC7F570640E5D0CAF30FDDC446C00FA48707_bigui254, + 0x2DD5047C3EEEF37930E8FA4AD9691B27CF86D3ED39D4DEC4FC6D4E8EE4FF0415_bigui254, + 0x12C387C69BDD436F65AB607A4ED7C62714872EDBF800518B58E76F5106650B29_bigui254}, + 0x165A8CECF6660C6E0054CB9B4DBA9D68047166D7F3CED2F8DC86ED2EBFD3EC47_bigui254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_5) { test_mina_poseidon( - {0x3CF70C3A89749A45DB5236B8DE167A37762526C45270138A9FCDF2352B1899DA_cppui_modular254, - 0x1BDF55BC84C1A0E0F7F6834949FCF90279B9D21C17DBC9928202C49039570598_cppui_modular254, - 0x09441E95A82199EFC390152C5039C0D0566A90B7F6D1AA5813B2DAB90110FF90_cppui_modular254, - 0x375B4A9785503C24531723DB1F31B50B79C3D1EC9F95DB7645A3EDA03862B588_cppui_modular254, - 0x12688FE351ED01F3BB2EB6B0FA2A70FB232654F32B08990DC3A411E527776A89_cppui_modular254}, - 0x0CA2C3342C2959D7CD94B5C9D4DC55900F5F60B345F714827C8B907752D5A209_cppui_modular254); + {0x3CF70C3A89749A45DB5236B8DE167A37762526C45270138A9FCDF2352B1899DA_bigui254, + 0x1BDF55BC84C1A0E0F7F6834949FCF90279B9D21C17DBC9928202C49039570598_bigui254, + 0x09441E95A82199EFC390152C5039C0D0566A90B7F6D1AA5813B2DAB90110FF90_bigui254, + 0x375B4A9785503C24531723DB1F31B50B79C3D1EC9F95DB7645A3EDA03862B588_bigui254, + 0x12688FE351ED01F3BB2EB6B0FA2A70FB232654F32B08990DC3A411E527776A89_bigui254}, + 0x0CA2C3342C2959D7CD94B5C9D4DC55900F5F60B345F714827C8B907752D5A209_bigui254); } // Poseidon permutation test vectors are taken from: // https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/208b5a164c6a252b137997694d90931b2bb851c5/code/test_vectors.txt BOOST_AUTO_TEST_CASE(poseidon_permutation_254_2) { test_poseidon_permutation, 2>( - {0x0000000000000000000000000000000000000000000000000000000000000000_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000002_cppui_modular254 + {0x0000000000000000000000000000000000000000000000000000000000000000_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000002_bigui254 }, - {0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a_cppui_modular254, - 0x0fca49b798923ab0239de1c9e7a4a9a2210312b6a2f616d18b5a87f9b628ae29_cppui_modular254, - 0x0e7ae82e40091e63cbd4f16a6d16310b3729d4b6e138fcf54110e2867045a30c_cppui_modular254 + {0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a_bigui254, + 0x0fca49b798923ab0239de1c9e7a4a9a2210312b6a2f616d18b5a87f9b628ae29_bigui254, + 0x0e7ae82e40091e63cbd4f16a6d16310b3729d4b6e138fcf54110e2867045a30c_bigui254 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_254_4) { test_poseidon_permutation, 4>( - {0x0000000000000000000000000000000000000000000000000000000000000000_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000002_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular254, - 0x0000000000000000000000000000000000000000000000000000000000000004_cppui_modular254 + {0x0000000000000000000000000000000000000000000000000000000000000000_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000002_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000003_bigui254, + 0x0000000000000000000000000000000000000000000000000000000000000004_bigui254 }, - {0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465_cppui_modular254, - 0x1148aaef609aa338b27dafd89bb98862d8bb2b429aceac47d86206154ffe053d_cppui_modular254, - 0x24febb87fed7462e23f6665ff9a0111f4044c38ee1672c1ac6b0637d34f24907_cppui_modular254, - 0x0eb08f6d809668a981c186beaf6110060707059576406b248e5d9cf6e78b3d3e_cppui_modular254, - 0x07748bc6877c9b82c8b98666ee9d0626ec7f5be4205f79ee8528ef1c4a376fc7_cppui_modular254 + {0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465_bigui254, + 0x1148aaef609aa338b27dafd89bb98862d8bb2b429aceac47d86206154ffe053d_bigui254, + 0x24febb87fed7462e23f6665ff9a0111f4044c38ee1672c1ac6b0637d34f24907_bigui254, + 0x0eb08f6d809668a981c186beaf6110060707059576406b248e5d9cf6e78b3d3e_bigui254, + 0x07748bc6877c9b82c8b98666ee9d0626ec7f5be4205f79ee8528ef1c4a376fc7_bigui254 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_255_3) { test_poseidon_permutation, 2>( - {0x0000000000000000000000000000000000000000000000000000000000000000_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000002_cppui_modular255 + {0x0000000000000000000000000000000000000000000000000000000000000000_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000002_bigui255 }, - {0x28ce19420fc246a05553ad1e8c98f5c9d67166be2c18e9e4cb4b4e317dd2a78a_cppui_modular255, - 0x51f3e312c95343a896cfd8945ea82ba956c1118ce9b9859b6ea56637b4b1ddc4_cppui_modular255, - 0x3b2b69139b235626a0bfb56c9527ae66a7bf486ad8c11c14d1da0c69bbe0f79a_cppui_modular255 + {0x28ce19420fc246a05553ad1e8c98f5c9d67166be2c18e9e4cb4b4e317dd2a78a_bigui255, + 0x51f3e312c95343a896cfd8945ea82ba956c1118ce9b9859b6ea56637b4b1ddc4_bigui255, + 0x3b2b69139b235626a0bfb56c9527ae66a7bf486ad8c11c14d1da0c69bbe0f79a_bigui255 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_255_4) { test_poseidon_permutation, 4>( - {0x0000000000000000000000000000000000000000000000000000000000000000_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000002_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular255, - 0x0000000000000000000000000000000000000000000000000000000000000004_cppui_modular255 + {0x0000000000000000000000000000000000000000000000000000000000000000_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000002_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000003_bigui255, + 0x0000000000000000000000000000000000000000000000000000000000000004_bigui255 }, - {0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_cppui_modular255, - 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_cppui_modular255, - 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_cppui_modular255, - 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_cppui_modular255, - 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_cppui_modular255 + {0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_bigui255, + 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_bigui255, + 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_bigui255, + 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_bigui255, + 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_bigui255 } ); } @@ -224,7 +224,7 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) hash_t::digest_type s = extract::hash(acc); - BOOST_CHECK_EQUAL(s, 0x20CDA7B88718C51A894AE697F804FACD408616B1A7811A55023EA0E6060AA61C_cppui_modular255); + BOOST_CHECK_EQUAL(s, 0x20CDA7B88718C51A894AE697F804FACD408616B1A7811A55023EA0E6060AA61C_bigui255); } BOOST_AUTO_TEST_CASE(nil_poseidon_stream_255_4) { @@ -235,26 +235,26 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) using hash_t = hashes::poseidon; std::vector input = { - 0x0_cppui_modular255, - 0x0_cppui_modular255, - 0x0_cppui_modular255, - 0x0_cppui_modular255, - 0x0_cppui_modular255 + 0x0_bigui255, + 0x0_bigui255, + 0x0_bigui255, + 0x0_bigui255, + 0x0_bigui255 }; typename policy::digest_type d = hash(input); - BOOST_CHECK_EQUAL(d, 0x44753e7f86d80790e762345ff8cb156be18eb0318f8846641193f815fbd64038_cppui_modular255); + BOOST_CHECK_EQUAL(d, 0x44753e7f86d80790e762345ff8cb156be18eb0318f8846641193f815fbd64038_bigui255); input = { - 0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_cppui_modular255, - 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_cppui_modular255, - 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_cppui_modular255, - 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_cppui_modular255, - 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_cppui_modular255 + 0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_bigui255, + 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_bigui255, + 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_bigui255, + 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_bigui255, + 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_bigui255 }; d = hash(input); - BOOST_CHECK_EQUAL(d, 0x44bff12d3a4713b18bd79c17eaabf8e69e29ce45ca48d7afb702baa1c37f3695_cppui_modular255); + BOOST_CHECK_EQUAL(d, 0x44bff12d3a4713b18bd79c17eaabf8e69e29ce45ca48d7afb702baa1c37f3695_bigui255); } BOOST_AUTO_TEST_CASE(nil_poseidon_wrapped_255_4) { @@ -274,8 +274,8 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) }; std::vector field_input = { - 0x000123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCD_cppui_modular255, - 0x00000000000000000000000000000000000000000000000000000000000000EF_cppui_modular255, + 0x000123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCD_bigui255, + 0x00000000000000000000000000000000000000000000000000000000000000EF_bigui255, }; typename policy::digest_type d_uint8 = hash( diff --git a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/ed25519.hpp b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/ed25519.hpp index 415d68a5a2..0b1a6f7a9a 100644 --- a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/ed25519.hpp +++ b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/ed25519.hpp @@ -90,7 +90,7 @@ namespace nil { write_data(static_cast(point_affine.Y.data), tmp_iter); assert(!(encoded_value[encoded_size - 1] & 0x80)); - bool sign = (point_affine.X.data & 1) != 0u; + bool sign = (point_affine.X.data.base() & 1u) != 0u; encoded_value[encoded_size - 1] |= (static_cast(sign ? 1 : 0) << 7); diff --git a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/pallas.hpp b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/pallas.hpp index 8352df0da2..27445b0f13 100644 --- a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/pallas.hpp +++ b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/pallas.hpp @@ -110,7 +110,7 @@ namespace nil { typename group_type::curve_type::template g1_type::value_type point_affine = point.to_affine(); - *iter++ = (point_affine.Y.data & 1) == 0u ? 0x02 : 0x03; + *iter++ = (point_affine.Y.data.base() & 1u) == 0u ? 0x02 : 0x03; write_data( static_cast(point_affine.X.data), iter); @@ -167,7 +167,7 @@ namespace nil { g1_field_value_type y_mod = y2_mod.sqrt(); - const chunk_type expected_prefix = (y_mod.data & 1) == 0u ? 0x02 : 0x03; + const chunk_type expected_prefix = (y_mod.data.base() & 1u) == 0u ? 0x02 : 0x03; if (expected_prefix == prefix) { point = group_value_type(x_mod, y_mod); diff --git a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_k1.hpp b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_k1.hpp index 0ab5ca6d4f..89121617d8 100644 --- a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_k1.hpp +++ b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_k1.hpp @@ -115,7 +115,7 @@ namespace nil { typename group_type::curve_type::template g1_type::value_type point_affine = point.to_affine(); - *iter++ = (point_affine.Y.data & 1) == 0u ? 0x02 : 0x03; + *iter++ = (point_affine.Y.data.base() & 1u) == 0u ? 0x02 : 0x03; write_data( static_cast(point_affine.X.data), iter); @@ -171,7 +171,7 @@ namespace nil { g1_field_value_type y_mod = y2_mod.sqrt(); - const chunk_type expected_prefix = (y_mod.data & 1) == 0u ? 0x02 : 0x03; + const chunk_type expected_prefix = (y_mod.data.base() & 1u) == 0u ? 0x02 : 0x03; if (expected_prefix == prefix) { point = group_value_type(x_mod, y_mod); diff --git a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_r1.hpp b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_r1.hpp index bccaa173ab..562c6f6278 100644 --- a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_r1.hpp +++ b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/secp_r1.hpp @@ -115,7 +115,7 @@ namespace nil { typename group_type::curve_type::template g1_type::value_type point_affine = point.to_affine(); - *iter++ = (point_affine.Y.data & 1) == 0u ? 0x02 : 0x03; + *iter++ = (point_affine.Y.data.base() & 1u) == 0u ? 0x02 : 0x03; write_data( static_cast(point_affine.X.data), iter); @@ -171,7 +171,7 @@ namespace nil { g1_field_value_type y_mod = y2_mod.sqrt(); - const chunk_type expected_prefix = (y_mod.data & 1) == 0u ? 0x02 : 0x03; + const chunk_type expected_prefix = (y_mod.data.base() & 1u) == 0u ? 0x02 : 0x03; if (expected_prefix == prefix) { point = group_value_type(x_mod, y_mod); diff --git a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/vesta.hpp b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/vesta.hpp index 8b3afa47f4..0b3b865a3e 100644 --- a/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/vesta.hpp +++ b/crypto3/libs/marshalling/algebra/include/nil/crypto3/marshalling/algebra/processing/vesta.hpp @@ -110,7 +110,7 @@ namespace nil { typename group_type::curve_type::template g1_type::value_type point_affine = point.to_affine(); - *iter++ = (point_affine.Y.data & 1) == 0u ? 0x02 : 0x03; + *iter++ = (point_affine.Y.data.base() & 1u) == 0u ? 0x02 : 0x03; write_data( static_cast(point_affine.X.data), iter); @@ -167,7 +167,7 @@ namespace nil { g1_field_value_type y_mod = y2_mod.sqrt(); - const chunk_type expected_prefix = (y_mod.data & 1) == 0u ? 0x02 : 0x03; + const chunk_type expected_prefix = (y_mod.data.base() & 1u) == 0u ? 0x02 : 0x03; if (expected_prefix == prefix) { point = group_value_type(x_mod, y_mod); diff --git a/crypto3/libs/marshalling/algebra/test/curve_element.cpp b/crypto3/libs/marshalling/algebra/test/curve_element.cpp index 437be6ab9e..8c099ecf0f 100644 --- a/crypto3/libs/marshalling/algebra/test/curve_element.cpp +++ b/crypto3/libs/marshalling/algebra/test/curve_element.cpp @@ -43,7 +43,6 @@ #include #include #include -#include #include #include diff --git a/crypto3/libs/marshalling/algebra/test/field_element.cpp b/crypto3/libs/marshalling/algebra/test/field_element.cpp index 0aa93631c1..f435cdec08 100644 --- a/crypto3/libs/marshalling/algebra/test/field_element.cpp +++ b/crypto3/libs/marshalling/algebra/test/field_element.cpp @@ -36,9 +36,6 @@ #include #include -#include -#include - #include #include diff --git a/crypto3/libs/marshalling/algebra/test/field_element_non_fixed_size_container.cpp b/crypto3/libs/marshalling/algebra/test/field_element_non_fixed_size_container.cpp index 6d58bfceaf..a9c2d69fc2 100644 --- a/crypto3/libs/marshalling/algebra/test/field_element_non_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/algebra/test/field_element_non_fixed_size_container.cpp @@ -37,9 +37,6 @@ #include #include -#include -#include - #include #include diff --git a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt index 07dffa77af..a2367a8ced 100644 --- a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt @@ -53,7 +53,7 @@ endmacro() set(TESTS_NAMES "integral" "integral_fixed_size_container" - "integral_non_fixed_size_container" + #"integral_non_fixed_size_container" # TODO(ioxid): do we need this? ) foreach(TEST_NAME ${TESTS_NAMES}) diff --git a/crypto3/libs/marshalling/multiprecision/test/integral.cpp b/crypto3/libs/marshalling/multiprecision/test/integral.cpp index c81473555f..c981ad2ae5 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral.cpp @@ -37,8 +37,7 @@ #include #include -#include -#include +#include #include @@ -61,7 +60,8 @@ T generate_random() { // If we overflow the number, like it was 23 bits, but we filled 1 limb of 64 bits, // or it was 254 bits but we filled the upper 2 bits, the number will not complain. // Nothing will be thrown, but errors will happen. The caller is responsible to not do so. - val.backend().normalize(); + // TODO(ioxid): return this? + //val.normalize(); return val; } @@ -84,8 +84,8 @@ void test_round_trip_fixed_precision_big_endian(T val) { std::vector cv; cv.resize(unitblob_size, 0x00); - std::size_t begin_index = cv.size() - ((boost::multiprecision::msb(val) + 1) / units_bits + - (((boost::multiprecision::msb(val) + 1) % units_bits) ? 1 : 0)); + std::size_t begin_index = cv.size() - ((nil::crypto3::multiprecision::msb(val) + 1) / units_bits + + (((nil::crypto3::multiprecision::msb(val) + 1) % units_bits) ? 1 : 0)); export_bits(val, cv.begin() + begin_index, units_bits, true); @@ -195,19 +195,19 @@ void test_round_trip_non_fixed_precision() { BOOST_AUTO_TEST_SUITE(integral_test_suite) BOOST_AUTO_TEST_CASE(integral_checked_int1024) { - test_round_trip_fixed_precision(); + test_round_trip_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_cpp_uint512) { - test_round_trip_fixed_precision(); + test_round_trip_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_64) { - test_round_trip_fixed_precision>, unsigned char>(); + test_round_trip_fixed_precision, unsigned char>(); } BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_23) { - test_round_trip_fixed_precision>, unsigned char>(); + test_round_trip_fixed_precision, unsigned char>(); } BOOST_AUTO_TEST_SUITE_END() @@ -216,19 +216,19 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(integral_test_suite_bits) BOOST_AUTO_TEST_CASE(integral_checked_int1024_bits) { - test_round_trip_fixed_precision(); + test_round_trip_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_cpp_uint512_bits) { - test_round_trip_fixed_precision(); + test_round_trip_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_64_bits) { - test_round_trip_fixed_precision>, bool>(); + test_round_trip_fixed_precision, bool>(); } BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_23_bits) { - test_round_trip_fixed_precision>, bool>(); + test_round_trip_fixed_precision, bool>(); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp index b0037f50bf..0a58ca2795 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp @@ -39,8 +39,7 @@ #include #include -#include -#include +#include #include @@ -63,7 +62,8 @@ T generate_random() { // If we overflow the number, like it was 23 bits, but we filled 1 limb of 64 bits, // or it was 254 bits but we filled the upper 2 bits, the number will not complain. // Nothing will be thrown, but errors will happen. The caller is responsible to not do so. - val.backend().normalize(); + // TODO(ioxid): return? + // val.normalize(); return val; } @@ -97,8 +97,8 @@ void test_round_trip_fixed_size_container_fixed_precision_big_endian( for (std::size_t i = 0; i < TSize; i++) { std::size_t begin_index = - unitblob_size - ((boost::multiprecision::msb(val_container[i]) + 1) / units_bits + - (((boost::multiprecision::msb(val_container[i]) + 1) % units_bits) ? 1 : 0)); + unitblob_size - ((nil::crypto3::multiprecision::msb(val_container[i]) + 1) / units_bits + + (((nil::crypto3::multiprecision::msb(val_container[i]) + 1) % units_bits) ? 1 : 0)); export_bits(val_container[i], cv.begin() + unitblob_size * i + begin_index, units_bits, true); } @@ -173,21 +173,21 @@ void test_round_trip_fixed_size_container_fixed_precision() { BOOST_AUTO_TEST_SUITE(integral_fixed_test_suite) BOOST_AUTO_TEST_CASE(integral_fixed_uint1024) { - test_round_trip_fixed_size_container_fixed_precision(); + test_round_trip_fixed_size_container_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_uint512) { - test_round_trip_fixed_size_container_fixed_precision(); + test_round_trip_fixed_size_container_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_64) { test_round_trip_fixed_size_container_fixed_precision< - boost::multiprecision::number>, 128, unsigned char>(); + nil::crypto3::multiprecision::big_uint<64>, 128, unsigned char>(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_23) { test_round_trip_fixed_size_container_fixed_precision< - boost::multiprecision::number>, 128, unsigned char>(); + nil::crypto3::multiprecision::big_uint<23>, 128, unsigned char>(); } BOOST_AUTO_TEST_SUITE_END() @@ -196,21 +196,21 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(integral_fixed_test_suite_bits) BOOST_AUTO_TEST_CASE(integral_fixed_uint1024_bits) { - test_round_trip_fixed_size_container_fixed_precision(); + test_round_trip_fixed_size_container_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_uint512_bits) { - test_round_trip_fixed_size_container_fixed_precision(); + test_round_trip_fixed_size_container_fixed_precision(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_23_bits) { test_round_trip_fixed_size_container_fixed_precision< - boost::multiprecision::number>, 128, bool>(); + nil::crypto3::multiprecision::big_uint<23>, 128, bool>(); } BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_64_bits) { test_round_trip_fixed_size_container_fixed_precision< - boost::multiprecision::number>, 128, bool>(); + nil::crypto3::multiprecision::big_uint<64>, 128, bool>(); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/marshalling/zk/include/nil/crypto3/marshalling/zk/detail/random_test_data_generation.hpp b/crypto3/libs/marshalling/zk/include/nil/crypto3/marshalling/zk/detail/random_test_data_generation.hpp index bc3e6452b6..6ada4a132e 100644 --- a/crypto3/libs/marshalling/zk/include/nil/crypto3/marshalling/zk/detail/random_test_data_generation.hpp +++ b/crypto3/libs/marshalling/zk/include/nil/crypto3/marshalling/zk/detail/random_test_data_generation.hpp @@ -34,9 +34,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/accumulation_vector.cpp b/crypto3/libs/marshalling/zk/test/accumulation_vector.cpp index de88322a9b..556a674472 100644 --- a/crypto3/libs/marshalling/zk/test/accumulation_vector.cpp +++ b/crypto3/libs/marshalling/zk/test/accumulation_vector.cpp @@ -36,9 +36,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/fri_commitment.cpp b/crypto3/libs/marshalling/zk/test/fri_commitment.cpp index 086448fa83..4247cc25e8 100644 --- a/crypto3/libs/marshalling/zk/test/fri_commitment.cpp +++ b/crypto3/libs/marshalling/zk/test/fri_commitment.cpp @@ -40,9 +40,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/kzg_commitment.cpp b/crypto3/libs/marshalling/zk/test/kzg_commitment.cpp index f643c573cd..c4a9793e17 100644 --- a/crypto3/libs/marshalling/zk/test/kzg_commitment.cpp +++ b/crypto3/libs/marshalling/zk/test/kzg_commitment.cpp @@ -34,9 +34,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/merkle_proof.cpp b/crypto3/libs/marshalling/zk/test/merkle_proof.cpp index 613c8965d4..7b55539941 100644 --- a/crypto3/libs/marshalling/zk/test/merkle_proof.cpp +++ b/crypto3/libs/marshalling/zk/test/merkle_proof.cpp @@ -40,8 +40,6 @@ #include #include -#include -#include #include #include diff --git a/crypto3/libs/marshalling/zk/test/placeholder_common_data.cpp b/crypto3/libs/marshalling/zk/test/placeholder_common_data.cpp index 2ed081e0a9..3f44a54193 100644 --- a/crypto3/libs/marshalling/zk/test/placeholder_common_data.cpp +++ b/crypto3/libs/marshalling/zk/test/placeholder_common_data.cpp @@ -15,9 +15,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/placeholder_preprocessed_public_data.cpp b/crypto3/libs/marshalling/zk/test/placeholder_preprocessed_public_data.cpp index 7e2534c0f6..7358da3b5c 100644 --- a/crypto3/libs/marshalling/zk/test/placeholder_preprocessed_public_data.cpp +++ b/crypto3/libs/marshalling/zk/test/placeholder_preprocessed_public_data.cpp @@ -13,9 +13,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/placeholder_proof.cpp b/crypto3/libs/marshalling/zk/test/placeholder_proof.cpp index e208c03b69..0ff04084d7 100644 --- a/crypto3/libs/marshalling/zk/test/placeholder_proof.cpp +++ b/crypto3/libs/marshalling/zk/test/placeholder_proof.cpp @@ -42,9 +42,6 @@ #include #include -#include -#include - #include #include @@ -333,7 +330,10 @@ struct placeholder_lpc_proof_test_runner { random_test_initializer.alg_random_engines.template get_alg_engine(), random_test_initializer.generic_random_engine ); - test_placeholder_aggregated_proof( {partial_proofs, lpc_proof}, fri_params); + AggregatedProofType aggregated_proof; + aggregated_proof.partial_proofs = partial_proofs; + aggregated_proof.aggregated_proof = lpc_proof; + test_placeholder_aggregated_proof(aggregated_proof, fri_params); return true; } diff --git a/crypto3/libs/marshalling/zk/test/polys_evaluator.cpp b/crypto3/libs/marshalling/zk/test/polys_evaluator.cpp index afc94e19ad..67deb90625 100644 --- a/crypto3/libs/marshalling/zk/test/polys_evaluator.cpp +++ b/crypto3/libs/marshalling/zk/test/polys_evaluator.cpp @@ -39,9 +39,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/marshalling/zk/test/sparse_vector.cpp b/crypto3/libs/marshalling/zk/test/sparse_vector.cpp index 68d19600a6..48c7a02554 100644 --- a/crypto3/libs/marshalling/zk/test/sparse_vector.cpp +++ b/crypto3/libs/marshalling/zk/test/sparse_vector.cpp @@ -36,9 +36,6 @@ #include #include -#include -#include - #include #include #include diff --git a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp index c7f58c847a..3da2987b98 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp @@ -30,7 +30,8 @@ #include #include -#include + +#include #include #include @@ -88,20 +89,17 @@ namespace nil { * * @return a root of unity. */ - template - boost::multiprecision::number - unity_root(uint32_t m, const boost::multiprecision::number &modulo) { - using namespace boost::multiprecision; - - number M(m); + template + nil::crypto3::multiprecision::big_uint + unity_root(uint32_t m, const nil::crypto3::multiprecision::big_uint &modulo) { + nil::crypto3::multiprecision::big_uint M(m); - if ((modulo - number(1) % M) % M != 0) { + if ((modulo - nil::crypto3::multiprecision::big_uint(1) % M) % M != 0) { return {}; } - number>, ExpressionTemplates> - gen(find_generator(modulo), modulo), result = boost::multiprecision::pow(gen, (modulo - 1) / M); + nil::crypto3::multiprecision::big_mod_rt + gen(find_generator(modulo), modulo), result = nil::crypto3::multiprecision::powm(gen, (modulo - 1) / M); if (result == 1u) { result = unity_root(m, modulo); } @@ -121,20 +119,20 @@ namespace nil { * */ - boost::multiprecision::number mu = modulo.ComputeMu(); - boost::multiprecision::number x(1); + nil::crypto3::multiprecision::big_uint mu = modulo.ComputeMu(); + nil::crypto3::multiprecision::big_uint x(1); x.ModMulEq(result, modulo, mu); - boost::multiprecision::number minRU(x); - boost::multiprecision::number curPowIdx(1); - std::vector> coprimes = algebra::totient_list>( + nil::crypto3::multiprecision::big_uint minRU(x); + nil::crypto3::multiprecision::big_uint curPowIdx(1); + std::vector> coprimes = algebra::totient_list>( m); for (uint32_t i = 0; i < coprimes.size(); i++) { auto nextPowIdx = coprimes[i]; - boost::multiprecision::number diffPow(nextPowIdx - curPowIdx); + nil::crypto3::multiprecision::big_uint diffPow(nextPowIdx - curPowIdx); for (std::size_t j = 0; j < diffPow; j++) { x.ModMulEq(result, modulo, mu); } - if (x < minRU && x != boost::multiprecision::number(1)) { + if (x < minRU && x != nil::crypto3::multiprecision::big_uint(1)) { minRU = x; } curPowIdx = nextPowIdx; diff --git a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp index 7c95906ef3..446e468951 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp @@ -28,9 +28,10 @@ #include -#include #include +#include + namespace nil { namespace crypto3 { namespace math { @@ -55,7 +56,7 @@ namespace nil { * * (See the function get_evaluation_domain below.) */ - evaluation_domain(const std::size_t m) : m(m), log2_size(boost::multiprecision::msb(m)) {}; + evaluation_domain(const std::size_t m) : m(m), log2_size(nil::crypto3::multiprecision::msb(m)) {} inline std::size_t size() const { return m; diff --git a/crypto3/libs/math/test/polynomial_dfs.cpp b/crypto3/libs/math/test/polynomial_dfs.cpp index 2f049dbd5b..eb33c2d28f 100644 --- a/crypto3/libs/math/test/polynomial_dfs.cpp +++ b/crypto3/libs/math/test/polynomial_dfs.cpp @@ -51,23 +51,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; polynomial_dfs a1 = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; BOOST_CHECK_EQUAL(a, a1); } @@ -80,14 +80,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -102,13 +102,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -122,13 +122,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -142,38 +142,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -181,57 +181,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs b = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -240,27 +240,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253 + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253 } }, { 6, { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253 + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253 } } }; @@ -276,38 +276,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -315,57 +315,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs b = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -378,27 +378,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -408,14 +408,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -426,27 +426,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, - 0xa_cppui_modular253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0xa_bigui253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -455,14 +455,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_cppui_modular253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, + 0xb_bigui253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -473,27 +473,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -502,14 +502,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -523,27 +523,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; a -= b; @@ -551,14 +551,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -569,23 +569,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -594,14 +594,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_cppui_modular253, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_cppui_modular253, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_cppui_modular253, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_cppui_modular253, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_cppui_modular253, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_cppui_modular253, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_cppui_modular253 + 0xb_bigui253, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui253, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui253, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui253, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui253, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui253, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui253, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui253 }}; BOOST_CHECK_EQUAL(c_res, a); @@ -611,27 +611,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }}; a -= b; @@ -639,14 +639,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -659,40 +659,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs b = { 2, { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; + {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -702,44 +702,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs b = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -749,44 +749,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs b = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -795,38 +795,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_cppui_modular253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}}; + {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -839,40 +839,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs b = { 2, { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; + {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -881,44 +881,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs b = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -928,44 +928,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs b = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -974,38 +974,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_cppui_modular253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}}; + {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1019,25 +1019,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_cppui_modular253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }}; polynomial_dfs Q = a / b; @@ -1045,17 +1045,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_cppui_modular253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui_modular253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui_modular253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui_modular253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui_modular253}}; // {0, 0, 0, 1}; + {0x1_bigui253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253}}; //{5}; + {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1120,25 +1120,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x10_cppui_modular253; + typename FieldType::value_type c = 0x10_bigui253; polynomial_dfs c_res = { 5, - {0x23_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000015_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_cppui_modular253} + {0x23_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui253} }; polynomial_dfs c1 = a + c; @@ -1153,36 +1153,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x10_cppui_modular253; + typename FieldType::value_type c = 0x10_bigui253; polynomial_dfs c_res = { 5, - {0x3_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_cppui_modular253}}; + {0x3_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui253, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui253}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_cppui_modular253, - 0x19_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_cppui_modular253}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui253, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui253, + 0x19_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui253}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1197,26 +1197,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x123456789abcdef0_cppui_modular253; + typename FieldType::value_type c = 0x123456789abcdef0_bigui253; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_cppui_modular253, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_cppui_modular253, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_cppui_modular253, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_cppui_modular253, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_cppui_modular253, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_cppui_modular253, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_cppui_modular253 + {0x159e26af37c048bd0_bigui253, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui253, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui253, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui253, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui253, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui253, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui253 }}; polynomial_dfs c1 = a * c; @@ -1235,14 +1235,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs res = a; @@ -1261,17 +1261,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; - typename FieldType::value_type point = 0x10_cppui_modular253; + typename FieldType::value_type point = 0x10_bigui253; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1284,17 +1284,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; - typename FieldType::value_type point = 0x10_cppui_modular253; + typename FieldType::value_type point = 0x10_bigui253; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1308,14 +1308,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/crypto3/libs/math/test/polynomial_dfs_view.cpp b/crypto3/libs/math/test/polynomial_dfs_view.cpp index 32b0c0beb5..a175508e4c 100644 --- a/crypto3/libs/math/test/polynomial_dfs_view.cpp +++ b/crypto3/libs/math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, - 0xa_cppui_modular253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0xa_bigui253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_cppui_modular253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, + 0xb_bigui253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_cppui_modular253, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}; + 0x2f7_bigui253, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_cppui_modular253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}; + 0x60f_bigui253, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_cppui_modular253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}; + 0x60f_bigui253, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_cppui_modular253, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}; + 0x4f1_bigui253, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; + 0x13_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_cppui_modular253, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui_modular253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui_modular253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui_modular253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui_modular253}; + 0x1_bigui253, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; + 0x13_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253}; + std::vector r_v = {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp index fd0802f3e3..d4bf817984 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp @@ -1344,7 +1344,7 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator*(const T1& a, const T2& b) noexcept { big_uint() + detail::get_bits()> result; - decltype(result)::multiply(result, a, b); + decltype(result)::multiply(result, big_uint()>(a), big_uint()>(b)); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE diff --git a/crypto3/libs/random/include/nil/crypto3/random/hash.hpp b/crypto3/libs/random/include/nil/crypto3/random/hash.hpp index 1dba380483..a4a386e229 100644 --- a/crypto3/libs/random/include/nil/crypto3/random/hash.hpp +++ b/crypto3/libs/random/include/nil/crypto3/random/hash.hpp @@ -30,8 +30,6 @@ #include #include -#include - #include #include diff --git a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp index 4eb258c823..b1ae6df252 100644 --- a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp +++ b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp @@ -453,7 +453,7 @@ namespace nil { std::string result; std::vector v; if( term.get_coeff() != field_type::value_type::one() || term.get_vars().size() == 0) - v.push_back("pallas::base_field_type::value_type(0x" + to_hex_string(term.get_coeff()) + "_cppui_modular255)"); + v.push_back("pallas::base_field_type::value_type(0x" + to_hex_string(term.get_coeff()) + "_bigui255)"); for(auto& var: term.get_vars()){ v.push_back("z[" + to_string(_indices.at(var)) + "]"); } @@ -663,7 +663,7 @@ namespace nil { prepare_U_V_str << "\n"; } for( std::size_t j = 0; j < placeholder_info.batches_sizes[0]; j++){ - prepare_U_V_str << "\tU[unique_points] += theta_acc * pallas::base_field_type::value_type(0x"<< std::hex << common_data.commitment_scheme_data.at(0)[j] << std::dec << "_cppui_modular255); theta_acc *= challenges.lpc_theta;\n"; + prepare_U_V_str << "\tU[unique_points] += theta_acc * pallas::base_field_type::value_type(0x"<< std::hex << common_data.commitment_scheme_data.at(0)[j] << std::dec << "_bigui255); theta_acc *= challenges.lpc_theta;\n"; } std::stringstream lpc_y_computation; @@ -717,7 +717,7 @@ namespace nil { } start_position += batches_sizes[i]; if( i == 0 ) - initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == pallas::base_field_type::value_type(0x$VK1$_cppui_modular255));\n\n"; + initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == pallas::base_field_type::value_type(0x$VK1$_bigui255));\n\n"; else initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == proof.commitments[" + to_string(i-1) + "]);\n\n"; } @@ -1031,8 +1031,8 @@ namespace nil { reps["$QUOTIENT_POLYS_AMOUNT$"] = to_string(quotient_polys); reps["$D0_SIZE$"] = to_string(fri_params.D[0]->m); reps["$D0_LOG$"] = to_string(log2(fri_params.D[0]->m)); - reps["$D0_OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(fri_params.D[0]->get_domain_element(1)) + "_cppui_modular255)"; - reps["$OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(common_data.basic_domain->get_domain_element(1)) + "_cppui_modular255)"; + reps["$D0_OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(fri_params.D[0]->get_domain_element(1)) + "_bigui255)"; + reps["$OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(common_data.basic_domain->get_domain_element(1)) + "_bigui255)"; reps["$FRI_ROUNDS$"] = to_string(fri_params.r); reps["$UNIQUE_POINTS$"] = to_string(singles_strs.size()); reps["$SINGLES_AMOUNT$"] = to_string(singles_strs.size()); diff --git a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp index 4611ea046b..39c033b6ed 100644 --- a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp +++ b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp @@ -210,8 +210,8 @@ const std::array gates_sizes = {$GATES_SIZES$}; const size_t unique_points = $UNIQUE_POINTS$; const size_t singles_amount = $SINGLES_AMOUNT$; const std::array batches_amount_list = {$BATCHES_AMOUNT_LIST$}; -pallas::base_field_type::value_type vk0 = pallas::base_field_type::value_type(0x$VK0$_cppui_modular255); -pallas::base_field_type::value_type vk1 = pallas::base_field_type::value_type(0x$VK1$_cppui_modular255); +pallas::base_field_type::value_type vk0 = pallas::base_field_type::value_type(0x$VK0$_bigui255); +pallas::base_field_type::value_type vk1 = pallas::base_field_type::value_type(0x$VK1$_bigui255); $LOOKUP_VARS$ diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp index 19dc1db793..d40e5591e4 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp @@ -28,7 +28,7 @@ #include -#include +#include namespace nil { namespace crypto3 { @@ -187,20 +187,18 @@ namespace nil { template - element_kc operator*(const boost::multiprecision::number &lhs, + std::size_t Bits> + element_kc operator*(const nil::crypto3::multiprecision::big_uint &lhs, const element_kc &rhs) { return element_kc(lhs * rhs.g, lhs * rhs.h); } template + std::size_t Bits> element_kc operator*(const element_kc &lhs, - const boost::multiprecision::number &rhs) { + const nil::crypto3::multiprecision::big_uint &rhs) { return element_kc(rhs * lhs.g, rhs * lhs.h); } diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp index 50e0df3cbd..52fee0bb63 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp @@ -43,11 +43,10 @@ namespace nil { namespace crypto3 { namespace zk { namespace commitments { - template + template typename knowledge_commitment::value_type opt_window_wnaf_exp(const typename knowledge_commitment::value_type &base, - const boost::multiprecision::number &scalar, + const nil::crypto3::multiprecision::big_uint &scalar, const std::size_t scalar_bits) { return typename knowledge_commitment::value_type( opt_window_wnaf_exp(base.g, scalar, scalar_bits), diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp index 2f367b9e0f..6b34b9067e 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -115,8 +114,8 @@ namespace nil { } // Constructor for number>. - template - expression(const boost::multiprecision::number& coeff) + template + expression(const nil::crypto3::multiprecision::big_uint& coeff) : expr(term((assignment_type)coeff)) { update_hash(); } diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp index 5913688973..ab4d61d0ce 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp @@ -91,8 +91,8 @@ namespace nil { } // Constructor for number>. - template - plonk_constraint(const boost::multiprecision::number &coeff) + template + plonk_constraint(const nil::crypto3::multiprecision::big_uint &coeff) : math::expression(coeff) { } diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp index b6c9ba00d3..b7a3eb1351 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp @@ -136,7 +136,7 @@ namespace nil { struct fiat_shamir_heuristic_sequential { typedef Hash hash_type; - typedef typename boost::multiprecision::cpp_int_modular_backend modular_backend_of_hash_size; + typedef nil::crypto3::multiprecision::big_uint big_uint_of_hash_size; fiat_shamir_heuristic_sequential() : state(hash({0})) { } @@ -200,7 +200,7 @@ namespace nil { std::copy(state.begin(), state.begin() + count, data.begin() + data.size() - count); nil::marshalling::status_type status; - boost::multiprecision::number raw_result = + big_uint_of_hash_size raw_result = nil::marshalling::pack(state, status); THROW_IF_ERROR_STATUS(status, "fiat_shamir_heuristic_sequential::challenge"); return raw_result; @@ -210,7 +210,7 @@ namespace nil { Integral int_challenge() { state = hash(state); nil::marshalling::status_type status; - boost::multiprecision::number raw_result = nil::marshalling::pack(state, status); + big_uint_of_hash_size raw_result = nil::marshalling::pack(state, status); // If we remove the next line, raw_result is a much larger number, conversion to 'Integral' will overflow // and in debug mode an assert will fire. In release mode nothing will change. raw_result &= ~Integral(0); diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/transcript/kimchi_transcript.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/transcript/kimchi_transcript.hpp index a953d35d9f..474bf7cbd8 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/transcript/kimchi_transcript.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/transcript/kimchi_transcript.hpp @@ -7,9 +7,6 @@ #include #include -#include -#include - #include #include @@ -34,7 +31,7 @@ namespace nil { integral_type pack(std::vector limbs_lsb) { nil::marshalling::status_type status; std::size_t byte_size = - boost::multiprecision::backends::max_precision::value / + integral_type::Bits / // TODO(ioxid): should round up here CHAR_BIT; std::size_t size = byte_size / sizeof(uint64_t) + (byte_size % sizeof(uint64_t) ? 1 : 0); limbs_lsb.resize(size); diff --git a/crypto3/libs/zk/test/commitment/kzg.cpp b/crypto3/libs/zk/test/commitment/kzg.cpp index 2ca172bd12..17e5d9ab3b 100644 --- a/crypto3/libs/zk/test/commitment/kzg.cpp +++ b/crypto3/libs/zk/test/commitment/kzg.cpp @@ -220,13 +220,13 @@ BOOST_AUTO_TEST_CASE(kzg_test_mnt6_accumulated) { std::size_t n = 8; scalar_value_type z = 2u; const polynomial f = { - 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_cppui_modular298, - 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_cppui_modular298, - 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_cppui_modular298, - 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_cppui_modular298, - 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_cppui_modular298, - 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_cppui_modular298, - 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_cppui_modular298, + 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_bigui298, + 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_bigui298, + 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_bigui298, + 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_bigui298, + 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_bigui298, + 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_bigui298, + 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_bigui298, }; auto f_eval = f.evaluate(alpha); @@ -395,83 +395,83 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 0~-~-~-~ {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_cppui_modular298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_cppui_modular298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_cppui_modular298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_cppui_modular298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_cppui_modular298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_cppui_modular298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_cppui_modular298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_cppui_modular298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_cppui_modular298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_cppui_modular298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_cppui_modular298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_cppui_modular298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_cppui_modular298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_cppui_modular298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_cppui_modular298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_cppui_modular298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_cppui_modular298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_cppui_modular298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_cppui_modular298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_cppui_modular298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_cppui_modular298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_cppui_modular298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_cppui_modular298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_cppui_modular298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, }}, {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_cppui_modular298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_cppui_modular298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_cppui_modular298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_cppui_modular298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_cppui_modular298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_cppui_modular298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_cppui_modular298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_cppui_modular298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_cppui_modular298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_cppui_modular298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_cppui_modular298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_cppui_modular298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_cppui_modular298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_cppui_modular298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_cppui_modular298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_cppui_modular298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_cppui_modular298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_cppui_modular298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_cppui_modular298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_cppui_modular298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_cppui_modular298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_cppui_modular298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_cppui_modular298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_cppui_modular298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, }}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x0u, 0x0u,}}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x1u,}}, @@ -481,9 +481,9 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x1u, 0x0u, 0x0u, - 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_cppui_modular298, - 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_cppui_modular298, - 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_cppui_modular298, + 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_bigui298, + 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_bigui298, + 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_bigui298, }}, {8, { 0x0u, @@ -491,43 +491,43 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x0u, 0x1u, 0x1u, - 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_cppui_modular298, - 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_cppui_modular298, - 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_cppui_modular298, + 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_bigui298, + 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_bigui298, + 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_bigui298, }}, //~-~-~-~ commiting to batch: 1~-~-~-~ {8, { - 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_cppui_modular298, - 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_cppui_modular298, - 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_cppui_modular298, - 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_cppui_modular298, - 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_cppui_modular298, - 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_cppui_modular298, - 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_cppui_modular298, - 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_cppui_modular298, + 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_bigui298, + 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_bigui298, + 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_bigui298, + 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_bigui298, + 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_bigui298, + 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_bigui298, + 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_bigui298, + 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_bigui298, }}, {8, { - 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_cppui_modular298, - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_cppui_modular298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_cppui_modular298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, - 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_cppui_modular298, - 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_cppui_modular298, - 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_cppui_modular298, + 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_bigui298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_bigui298, + 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_bigui298, + 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_bigui298, }}, {8, { - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_cppui_modular298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_cppui_modular298, - 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_cppui_modular298, - 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_cppui_modular298, - 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_cppui_modular298, - 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_cppui_modular298, - 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_cppui_modular298, - 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_cppui_modular298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, + 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_bigui298, + 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_bigui298, + 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_bigui298, + 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_bigui298, + 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_bigui298, + 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_bigui298, }}, {8, { - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, 0x0u, 0x1u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, }}, @@ -536,24 +536,24 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 3~-~-~-~ {8, { - 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_cppui_modular298, - 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_cppui_modular298, - 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_cppui_modular298, - 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_cppui_modular298, - 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_cppui_modular298, - 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_cppui_modular298, - 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_cppui_modular298, - 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_cppui_modular298, + 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_bigui298, + 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_bigui298, + 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_bigui298, + 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_bigui298, + 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_bigui298, + 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_bigui298, + 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_bigui298, + 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_bigui298, }}, {8, { - 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_cppui_modular298, - 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_cppui_modular298, - 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_cppui_modular298, - 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_cppui_modular298, - 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_cppui_modular298, - 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_cppui_modular298, - 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_cppui_modular298, - 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_cppui_modular298, + 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_bigui298, + 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_bigui298, + 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_bigui298, + 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_bigui298, + 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_bigui298, + 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_bigui298, + 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_bigui298, + 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_bigui298, }}, math::polynomial_dfs::zero(), math::polynomial_dfs::zero(), @@ -579,39 +579,39 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { } std::vector> S = { - /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, + /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, }; std::vector T = zk::algorithms::merge_eval_points(S); { std::vector T_check = { - 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298, + 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298, }; std::sort(T.begin(), T.end()); BOOST_CHECK(T == T_check); diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp index 0f2bc627d3..72ca1167ad 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include #include #include @@ -64,9 +64,9 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) >; template - boost::multiprecision::uint256_modular_t get_cppui_modular256(Iterator it) { + nil::crypto3::multiprecision::uint256_t get_bigui256(Iterator it) { BOOST_ASSERT(it->second.template get_value() != ""); - return boost::multiprecision::uint256_modular_t(it->second.template get_value()); + return nil::crypto3::multiprecision::uint256_t(it->second.template get_value()); } // make_proof function name is similar to crypto3/marshalling naming style @@ -80,14 +80,14 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: best_chain.second.get_child(base_path + "messages.w_comm")) { auto it = row.second.get_child("").begin()->second.get_child("").begin(); - proof.commitments.w_comm[i].unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + proof.commitments.w_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); ++i; } auto it = best_chain.second.get_child(base_path + "messages.z_comm").begin()->second.get_child("").begin(); - proof.commitments.z_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + proof.commitments.z_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = best_chain.second.get_child(base_path + "messages.t_comm").begin()->second.get_child("").begin(); - proof.commitments.t_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + proof.commitments.t_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); // proof.commitments.lookup; // TODO: where it is? i = 0; @@ -96,18 +96,18 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) auto it1 = row.second.begin(); it1++; it1 = it1->second.begin(); - proof.proof.lr.push_back({{get_cppui_modular256(it0++), get_cppui_modular256(it0)}, - {get_cppui_modular256(it1++), get_cppui_modular256(it1)}}); + proof.proof.lr.push_back({{get_bigui256(it0++), get_bigui256(it0)}, + {get_bigui256(it1++), get_bigui256(it1)}}); ++i; } it = best_chain.second.get_child(base_path + "openings.proof.delta").begin(); - proof.proof.delta = {get_cppui_modular256(it++), get_cppui_modular256(it)}; + proof.proof.delta = {get_bigui256(it++), get_bigui256(it)}; it = best_chain.second.get_child(base_path + "openings.proof.sg").begin(); - proof.proof.sg = {get_cppui_modular256(it++), get_cppui_modular256(it)}; + proof.proof.sg = {get_bigui256(it++), get_bigui256(it)}; - proof.proof.z1 = boost::multiprecision::uint256_modular_t( + proof.proof.z1 = nil::crypto3::multiprecision::uint256_t( best_chain.second.get(base_path + "openings.proof.z_1")); - proof.proof.z2 = boost::multiprecision::uint256_modular_t( + proof.proof.z2 = nil::crypto3::multiprecision::uint256_t( best_chain.second.get(base_path + "openings.proof.z_2")); std::size_t ev_i = 0; @@ -116,37 +116,37 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: evals_it.second.get_child("w")) { for (auto &cell: row.second) { - proof.evals[ev_i].w[i].emplace_back(get_cppui_modular256(&cell)); + proof.evals[ev_i].w[i].emplace_back(get_bigui256(&cell)); } i++; } - //proof.evals[ev_i].z.size();= get_cppui_modular256(evals_it.second.get_child("z").begin()); + //proof.evals[ev_i].z.size();= get_bigui256(evals_it.second.get_child("z").begin()); for (auto z_it: evals_it.second.get_child("z")) { - proof.evals[ev_i].z.emplace_back(get_cppui_modular256(&z_it)); + proof.evals[ev_i].z.emplace_back(get_bigui256(&z_it)); } i = 0; for (auto &row: evals_it.second.get_child("s")) { for (auto &cell: row.second) { - proof.evals[ev_i].s[i].emplace_back(get_cppui_modular256(&cell)); + proof.evals[ev_i].s[i].emplace_back(get_bigui256(&cell)); } i++; } -// proof.evals[ev_i].generic_selector = get_cppui_modular256(evals_it.second.get_child("generic_selector").begin()); +// proof.evals[ev_i].generic_selector = get_bigui256(evals_it.second.get_child("generic_selector").begin()); for (auto s_it: evals_it.second.get_child("generic_selector")) { - proof.evals[ev_i].generic_selector.emplace_back(get_cppui_modular256(&s_it)); + proof.evals[ev_i].generic_selector.emplace_back(get_bigui256(&s_it)); } -// proof.evals[ev_i].poseidon_selector = get_cppui_modular256(evals_it.second.get_child("poseidon_selector").begin()); +// proof.evals[ev_i].poseidon_selector = get_bigui256(evals_it.second.get_child("poseidon_selector").begin()); for (auto p_it: evals_it.second.get_child("poseidon_selector")) { - proof.evals[ev_i].poseidon_selector.emplace_back(get_cppui_modular256(&p_it)); + proof.evals[ev_i].poseidon_selector.emplace_back(get_bigui256(&p_it)); } ev_i++; } - proof.ft_eval1 = boost::multiprecision::uint256_modular_t( + proof.ft_eval1 = nil::crypto3::multiprecision::uint256_t( best_chain.second.get(base_path + "openings.ft_eval1")); // // public // std::vector public_p; // TODO: where it is? @@ -168,7 +168,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) // TODO Is it right? Is it a good way to set domain generator? // We need to assert, need to check that the input is indeed the root of unity - auto d_gen = boost::multiprecision::uint256_modular_t( + auto d_gen = nil::crypto3::multiprecision::uint256_t( const_root.get("verify_index.domain.group_gen")); auto d_size = const_root.get("verify_index.domain.log_size_of_group"); // std::cout << d_gen << " " << d_size << std::endl; @@ -183,52 +183,52 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: root.get_child("data.blockchainVerificationKey.commitments.sigma_comm")) { auto it = row.second.begin(); - ver_index.sigma_comm[i].unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.sigma_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); ++i; } i = 0; for (auto &row: root.get_child("data.blockchainVerificationKey.commitments.coefficients_comm")) { auto it = row.second.begin(); - ver_index.coefficients_comm[i].unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.coefficients_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); ++i; } auto it = root.get_child("data.blockchainVerificationKey.commitments.generic_comm").begin(); - ver_index.generic_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.generic_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.psm_comm").begin(); - ver_index.psm_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.psm_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.complete_add_comm").begin(); - ver_index.complete_add_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.complete_add_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.mul_comm").begin(); - ver_index.mul_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.mul_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.emul_comm").begin(); - ver_index.emul_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.emul_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.endomul_scalar_comm").begin(); - ver_index.endomul_scalar_comm.unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + ver_index.endomul_scalar_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); // TODO: null in example // i = 0; // for (auto &row : root.get_child("data.blockchainVerificationKey.commitments.chacha_comm")) { // auto it = row.second.begin(); - // ver_index.chacha_comm[i].unshifted.emplace_back(get_cppui_modular256(it++), get_cppui_modular256(it)); + // ver_index.chacha_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); // ++i; // } //i = 0; // No member shifts //for (auto &row : root.get_child("data.blockchainVerificationKey.index.shifts")) { - // ver_index.shifts[i] = boost::multiprecision::cpp_int(row.second.get_value()); + // ver_index.shifts[i] = nil::crypto3::multiprecision::uint256_t(row.second.get_value()); // ++i; //} // Polynomial in coefficients form // Const - ver_index.zkpm = {0x2C46205451F6C3BBEA4BABACBEE609ECF1039A903C42BFF639EDC5BA33356332_cppui_modular256, - 0x1764D9CB4C64EBA9A150920807637D458919CB6948821F4D15EB1994EADF9CE3_cppui_modular256, - 0x0140117C8BBC4CE4644A58F7007148577782213065BB9699BF5C391FBE1B3E6D_cppui_modular256, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256}; - ver_index.w = boost::multiprecision::uint256_modular_t(const_root.get("verify_index.w")); - ver_index.endo = boost::multiprecision::uint256_modular_t(const_root.get("verify_index.endo")); + ver_index.zkpm = {0x2C46205451F6C3BBEA4BABACBEE609ECF1039A903C42BFF639EDC5BA33356332_bigui256, + 0x1764D9CB4C64EBA9A150920807637D458919CB6948821F4D15EB1994EADF9CE3_bigui256, + 0x0140117C8BBC4CE4644A58F7007148577782213065BB9699BF5C391FBE1B3E6D_bigui256, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256}; + ver_index.w = nil::crypto3::multiprecision::uint256_t(const_root.get("verify_index.w")); + ver_index.endo = nil::crypto3::multiprecision::uint256_t(const_root.get("verify_index.endo")); //ver_index.lookup_index = root.get_child("data.blockchainVerificationKey.index.lookup_index"); // TODO: null //ver_index.linearization; // TODO: where it is? @@ -240,7 +240,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fr_sponge_params.round_constants")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.round_constants[i].emplace_back(get_cppui_modular256(&cell)); + ver_index.fr_sponge_params.round_constants[i].emplace_back(get_bigui256(&cell)); j++; } i++; @@ -250,7 +250,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fr_sponge_params.mds")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.mds[i][j] = get_cppui_modular256(&cell); + ver_index.fr_sponge_params.mds[i][j] = get_bigui256(&cell); j++; } i++; @@ -262,7 +262,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fq_sponge_params.round_constants")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fq_sponge_params.round_constants[i].emplace_back(get_cppui_modular256(&cell)); + ver_index.fq_sponge_params.round_constants[i].emplace_back(get_bigui256(&cell)); j++; } i++; @@ -272,7 +272,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fq_sponge_params.mds")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.mds[i][j] = get_cppui_modular256(&cell); + ver_index.fr_sponge_params.mds[i][j] = get_bigui256(&cell); j++; } i++; diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp index 391c0bbe53..ac0b94a3db 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include @@ -64,21 +64,21 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { zk::snark::proof_type proof; zk::snark::verifier_index index; std::vector> w_comm_unshifted = {{ - {0x37D59F0CA7295B0B8C8A658A848933E8EE65F1524C1D2FAD1A2BBEBA01F34DB5_cppui_modular256, 0x38BE9AFC02BE5C46B256233C81A668AF9F96B8482E6DCC09C96A70DDDF442FEE_cppui_modular256}, - {0x2091BF5506C80B75CA58F2A7DB834C2EB165472D0B2A81BE8021BF9A9CCA5AA2_cppui_modular256, 0x39F8E74CCED923CC68A42FE5BADD44A606F0F534A52DB0931DECF6AC8DC11A39_cppui_modular256}, - {0x15D23E10A563E84D239600A75B11523D4522B2C251FD75B0BC517D62676EC397_cppui_modular256, 0x14978858398AF358CE60C21B331E58E7617A5FB7D3F3D25B0079945905FA152C_cppui_modular256}, - {0x3C2AE60A1169863541F6435E895B2BFED6BE488027489194B9060F246F228781_cppui_modular256, 0x0C593145B42D87F2F6BFA525E53F6F70BF70ABBDDAF7DC2328A7C4E62429DC2D_cppui_modular256}, - {0x1D66359053B1B305F65D69FEA147CF182C4D8E1130EA6F3D0224952AEB9A88CD_cppui_modular256, 0x28759D87B74BF16443700034A42A7E7AC307FE949992B59BD3C57A3A6B2F8EC2_cppui_modular256}, - {0x297F2B9076E473E9BF3A385F1BCE10480E65CA640B08587E059AF017AB8D4172_cppui_modular256, 0x12EB28BE66434FF49E5F897066CE07F492C21983DE7961575B894DE46DF0E341_cppui_modular256}, - {0x3D40963F63F238DCA50026C01F6A7A265165624E956FBC16578D8ED303A68EC0_cppui_modular256, 0x3E269040E3E7BDEF490CEE6B0CAA3425367E777A8E18E9B5641E6BB1931EE690_cppui_modular256}, - {0x238BD7EBC99EAB0458C81D7D2F3601F3F8F2DCE5D8C9ECFA84D9156B268920B9_cppui_modular256, 0x3E76531982AB5721C2A843667FEA035E5CF0CC46E09764E8CA0E490F5F71C616_cppui_modular256}, - {0x31A91EC4F6FBA9193F10385AFAAC0631A9E062426BED82DEE9F70464DAFEDB27_cppui_modular256, 0x364F995D1C7B1ACC8FEE6612FFA89B4499F3AC6B7A52898B99F2648F15116000_cppui_modular256}, - {0x3EBF8308C09A54C9F828658CE46562DAC696F0C455F5ADFA6437DAA49328AAC6_cppui_modular256, 0x177B5E81A8C2BCA234C1BE2D06A43463B41D58D8C8A1426B58FE8EF2CBD19E84_cppui_modular256}, - {0x02F7E5219B5F53DF4FE489F9827D79DCBBCBC43BC0F11403B6F9F9AB0F2D5287_cppui_modular256, 0x0F1326405C0DDE95C8DB9D90A8983CE7F549ACEE1791AEDD15794FA7FEDF56BB_cppui_modular256}, - {0x310126DE51CA0F4E88A15B5192F2E10645B3D3FFEF137609805B1D112ACEAD93_cppui_modular256, 0x2AA8D27909092417B8513EBF43E3B2F80D6212C845BFCD79C5E76343D1047581_cppui_modular256}, - {0x36FB4AF93A11A17EB064DE001D7BE84D6F957539B66243A31773CE1254672FD5_cppui_modular256, 0x3D750F7FD0EBF2A251C123870D94305A357A2AF90232FF3DD613B28B6C95B152_cppui_modular256}, - {0x14D1F0BEB1F9E03A7C0D2D137318E9EC825F445FD62E533C758C120597159648_cppui_modular256, 0x1829116C05DB93863741AFEF107AD3DD16CDEBAB91D0800E059D51696F4FB1F0_cppui_modular256}, - {0x1AFA3C262588E880CD82B938F1DC48E209A170562F480B9FFCA27B4CFFF9C5BD_cppui_modular256, 0x1EF02FAAC420520FAEEC93CE20A41639AE47B495035EB70A7E09953B9EB05E3C_cppui_modular256}, + {0x37D59F0CA7295B0B8C8A658A848933E8EE65F1524C1D2FAD1A2BBEBA01F34DB5_bigui256, 0x38BE9AFC02BE5C46B256233C81A668AF9F96B8482E6DCC09C96A70DDDF442FEE_bigui256}, + {0x2091BF5506C80B75CA58F2A7DB834C2EB165472D0B2A81BE8021BF9A9CCA5AA2_bigui256, 0x39F8E74CCED923CC68A42FE5BADD44A606F0F534A52DB0931DECF6AC8DC11A39_bigui256}, + {0x15D23E10A563E84D239600A75B11523D4522B2C251FD75B0BC517D62676EC397_bigui256, 0x14978858398AF358CE60C21B331E58E7617A5FB7D3F3D25B0079945905FA152C_bigui256}, + {0x3C2AE60A1169863541F6435E895B2BFED6BE488027489194B9060F246F228781_bigui256, 0x0C593145B42D87F2F6BFA525E53F6F70BF70ABBDDAF7DC2328A7C4E62429DC2D_bigui256}, + {0x1D66359053B1B305F65D69FEA147CF182C4D8E1130EA6F3D0224952AEB9A88CD_bigui256, 0x28759D87B74BF16443700034A42A7E7AC307FE949992B59BD3C57A3A6B2F8EC2_bigui256}, + {0x297F2B9076E473E9BF3A385F1BCE10480E65CA640B08587E059AF017AB8D4172_bigui256, 0x12EB28BE66434FF49E5F897066CE07F492C21983DE7961575B894DE46DF0E341_bigui256}, + {0x3D40963F63F238DCA50026C01F6A7A265165624E956FBC16578D8ED303A68EC0_bigui256, 0x3E269040E3E7BDEF490CEE6B0CAA3425367E777A8E18E9B5641E6BB1931EE690_bigui256}, + {0x238BD7EBC99EAB0458C81D7D2F3601F3F8F2DCE5D8C9ECFA84D9156B268920B9_bigui256, 0x3E76531982AB5721C2A843667FEA035E5CF0CC46E09764E8CA0E490F5F71C616_bigui256}, + {0x31A91EC4F6FBA9193F10385AFAAC0631A9E062426BED82DEE9F70464DAFEDB27_bigui256, 0x364F995D1C7B1ACC8FEE6612FFA89B4499F3AC6B7A52898B99F2648F15116000_bigui256}, + {0x3EBF8308C09A54C9F828658CE46562DAC696F0C455F5ADFA6437DAA49328AAC6_bigui256, 0x177B5E81A8C2BCA234C1BE2D06A43463B41D58D8C8A1426B58FE8EF2CBD19E84_bigui256}, + {0x02F7E5219B5F53DF4FE489F9827D79DCBBCBC43BC0F11403B6F9F9AB0F2D5287_bigui256, 0x0F1326405C0DDE95C8DB9D90A8983CE7F549ACEE1791AEDD15794FA7FEDF56BB_bigui256}, + {0x310126DE51CA0F4E88A15B5192F2E10645B3D3FFEF137609805B1D112ACEAD93_bigui256, 0x2AA8D27909092417B8513EBF43E3B2F80D6212C845BFCD79C5E76343D1047581_bigui256}, + {0x36FB4AF93A11A17EB064DE001D7BE84D6F957539B66243A31773CE1254672FD5_bigui256, 0x3D750F7FD0EBF2A251C123870D94305A357A2AF90232FF3DD613B28B6C95B152_bigui256}, + {0x14D1F0BEB1F9E03A7C0D2D137318E9EC825F445FD62E533C758C120597159648_bigui256, 0x1829116C05DB93863741AFEF107AD3DD16CDEBAB91D0800E059D51696F4FB1F0_bigui256}, + {0x1AFA3C262588E880CD82B938F1DC48E209A170562F480B9FFCA27B4CFFF9C5BD_bigui256, 0x1EF02FAAC420520FAEEC93CE20A41639AE47B495035EB70A7E09953B9EB05E3C_bigui256}, }}; std::vector w_comm_shifted(COLUMNS); @@ -90,259 +90,259 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { } // // z_comm proof.commitments.z_comm.unshifted.emplace_back( - 0x02D12945583E0CE5C20142E1DB4B19A8E644BCEE07F25516941DB26A38E1EA5D_cppui_modular256, - 0x36F230B302E081E88BAEB5B3FD213D99CAD1CD7E8B2A2483B05FBA2D414155DD_cppui_modular256); + 0x02D12945583E0CE5C20142E1DB4B19A8E644BCEE07F25516941DB26A38E1EA5D_bigui256, + 0x36F230B302E081E88BAEB5B3FD213D99CAD1CD7E8B2A2483B05FBA2D414155DD_bigui256); // t_comm proof.commitments.t_comm.unshifted.assign({ - {0x110D9EF8090D154F6EFF13AC56AABA47F74566FFE37ACD28620A2B20E4F6F103_cppui_modular256, - 0x26E410DBC25C6D70806230921A18EFCF8CB5118B86D107DF470B52CD3F886768_cppui_modular256}, - {0x01EE59DAF6AB1C13AF0D05909EFD17A1C032956371384A0AD9555E42A6E52AAF_cppui_modular256, - 0x2ABDF22ED010D9A34FCC62D43B3B06432976EAF2855A1AD2292F189E45E0A0F9_cppui_modular256}, - {0x3FA91D5BC8AC02F5E88CE34492E06354C8FB35E2FB635EC0D6E7DF97DB2FDAB2_cppui_modular256, - 0x30F90A99F0EA41BFA466310309F220FF4C3442878FBC6A0EDDCC1D1C1B5B9AEC_cppui_modular256}, - {0x37962BA26AB78DA50CD54712604EF151EB45AF2A3903D77129495E7ECD6CFF65_cppui_modular256, - 0x1BD455ED670C7C422A6A2B179411D014EC970B2AFB3491AEEC09DF613B47DB1D_cppui_modular256}, - {0x1EB582AA419C591322EA6295EE6E028CAB38DAF13F611EFFA7C605369253E561_cppui_modular256, - 0x0BEF30013E760029F68C81BCA30D73BC09F7F9BB8F632F2CB438783834D854A1_cppui_modular256}, - {0x2CEF8331B908170318C146626953800A8B0B3DDFA060B6BE9C1303903004A10D_cppui_modular256, - 0x1C381FC7E8A986E28DE8E254FE335019EF0B016E9EE74118FB1D38FBD6C611FF_cppui_modular256}, - {0x0A8C3CE07FC7DABF928F064376C201AF936AC5501AC32E08B87BC6C3D02B4703_cppui_modular256, - 0x14740C6D1C4984E1049CC26F7F1C8AD4605C3BB32C704214CBD9F845E8E24635_cppui_modular256}, + {0x110D9EF8090D154F6EFF13AC56AABA47F74566FFE37ACD28620A2B20E4F6F103_bigui256, + 0x26E410DBC25C6D70806230921A18EFCF8CB5118B86D107DF470B52CD3F886768_bigui256}, + {0x01EE59DAF6AB1C13AF0D05909EFD17A1C032956371384A0AD9555E42A6E52AAF_bigui256, + 0x2ABDF22ED010D9A34FCC62D43B3B06432976EAF2855A1AD2292F189E45E0A0F9_bigui256}, + {0x3FA91D5BC8AC02F5E88CE34492E06354C8FB35E2FB635EC0D6E7DF97DB2FDAB2_bigui256, + 0x30F90A99F0EA41BFA466310309F220FF4C3442878FBC6A0EDDCC1D1C1B5B9AEC_bigui256}, + {0x37962BA26AB78DA50CD54712604EF151EB45AF2A3903D77129495E7ECD6CFF65_bigui256, + 0x1BD455ED670C7C422A6A2B179411D014EC970B2AFB3491AEEC09DF613B47DB1D_bigui256}, + {0x1EB582AA419C591322EA6295EE6E028CAB38DAF13F611EFFA7C605369253E561_bigui256, + 0x0BEF30013E760029F68C81BCA30D73BC09F7F9BB8F632F2CB438783834D854A1_bigui256}, + {0x2CEF8331B908170318C146626953800A8B0B3DDFA060B6BE9C1303903004A10D_bigui256, + 0x1C381FC7E8A986E28DE8E254FE335019EF0B016E9EE74118FB1D38FBD6C611FF_bigui256}, + {0x0A8C3CE07FC7DABF928F064376C201AF936AC5501AC32E08B87BC6C3D02B4703_bigui256, + 0x14740C6D1C4984E1049CC26F7F1C8AD4605C3BB32C704214CBD9F845E8E24635_bigui256}, }); proof.proof.lr.assign({ - {{0x0097DDEE3FC1597E4CA77260AC311372574CD19B0E48466745DDA9A5927F9525_cppui_modular256, 0x114F2A66D1AAE2C1A0ADA357F7F454DD4BD6722A0C747C84712CD498EEC814D1_cppui_modular256}, - {0x30C7AE3DC6B1BA3E35385FEBCEFE39DA16D4ACF77780B098387B1450D4773D2E_cppui_modular256, 0x1F3CCD56C3D0523F675FA85361878ECC6A69C5D833408DB32E16F78C6733BA10_cppui_modular256}}, - {{0x17F3C28356AB5AF3FC69DF809114E10081FD01DAFE81F26A2538223033258FA2_cppui_modular256, 0x2361848DC301E6534FEECE2CCF9FF176BA15C57C5011EBCC05C8B663EB4D2D8F_cppui_modular256}, - {0x2F05F9AC607AB4E99E2B2A25D1B81A677FC58AE964B6C58F8DF7348F0798D28C_cppui_modular256, 0x3DFD1D28554A0787E24FCD989A3C0B8D957DB7094FE7CA54F849DCC7DDE42D0C_cppui_modular256}}, - {{0x2DC7573E0F46A4EA37CBECCAD3DE5C2E2150956C85111805C57EDA0F6B62F064_cppui_modular256, 0x33CA15AA795016559B5E00380D4931E35809D9A1F574063B7BEB6AC195CB9F8B_cppui_modular256}, - {0x24689817A7690449627E6FE240CBAFB2BEA71D2FC6825BD7EE4B29B5339AA457_cppui_modular256, 0x29308F028040D033813FBDF844C0512F4472440CE72C44B241B03D776AF8178C_cppui_modular256}}, - {{0x3C289CD39608326A27B949CA9332C4B7F3A9F82668E2A8DFC187952A6ECA4734_cppui_modular256, 0x2AB833558061F365CA621F5E570953AD5BBFBF45809B245C8D66D0CD00C9C8D6_cppui_modular256}, - {0x22A6D04A1964B9B54F5183648117CD67FCAF9AB2B0D926565D725B87108F586B_cppui_modular256, 0x36016051DA2BA6FE1D8BE3A614959AE431B3DC9F543D4CC3E6526A843FD3F668_cppui_modular256}}, - {{0x3C4DE244A5E4B969BBB3BA8A41FC1076FBF8FCD1174AB350AB9F414B2B5F02B7_cppui_modular256, 0x273F19EDC54275DF166E3A80D3F8BBCE48C67F49154C45D576F5838E59049401_cppui_modular256}, - {0x1A6C28E8E8679AE8998192577C2FA9B5ABC67FFE84ADB63D4F655960ADCA06C3_cppui_modular256, 0x16A0AD9FE756A1285C0F151EAB8E8C90A84862E3C3B552BF11BD473FDF42AEA5_cppui_modular256}}, - {{0x25DB17042CD86EFBF52B129CF874E093D0F6930D6D9B91A1874954B8E2F89DAC_cppui_modular256, 0x1790B39E7FF4D2C2D40ACF986D32EAC3D0C8CA6024555867BE258A9F581D68A4_cppui_modular256}, - {0x213853D57B0E3FD0D663149C5DE7A1CDC9B4796F946D33BCFC5731A1FE262D76_cppui_modular256, 0x0D6156942605E3AD61EAE4D43D60434B1351B2F1817C9E322F7A0BD78EA0E7FD_cppui_modular256}}, + {{0x0097DDEE3FC1597E4CA77260AC311372574CD19B0E48466745DDA9A5927F9525_bigui256, 0x114F2A66D1AAE2C1A0ADA357F7F454DD4BD6722A0C747C84712CD498EEC814D1_bigui256}, + {0x30C7AE3DC6B1BA3E35385FEBCEFE39DA16D4ACF77780B098387B1450D4773D2E_bigui256, 0x1F3CCD56C3D0523F675FA85361878ECC6A69C5D833408DB32E16F78C6733BA10_bigui256}}, + {{0x17F3C28356AB5AF3FC69DF809114E10081FD01DAFE81F26A2538223033258FA2_bigui256, 0x2361848DC301E6534FEECE2CCF9FF176BA15C57C5011EBCC05C8B663EB4D2D8F_bigui256}, + {0x2F05F9AC607AB4E99E2B2A25D1B81A677FC58AE964B6C58F8DF7348F0798D28C_bigui256, 0x3DFD1D28554A0787E24FCD989A3C0B8D957DB7094FE7CA54F849DCC7DDE42D0C_bigui256}}, + {{0x2DC7573E0F46A4EA37CBECCAD3DE5C2E2150956C85111805C57EDA0F6B62F064_bigui256, 0x33CA15AA795016559B5E00380D4931E35809D9A1F574063B7BEB6AC195CB9F8B_bigui256}, + {0x24689817A7690449627E6FE240CBAFB2BEA71D2FC6825BD7EE4B29B5339AA457_bigui256, 0x29308F028040D033813FBDF844C0512F4472440CE72C44B241B03D776AF8178C_bigui256}}, + {{0x3C289CD39608326A27B949CA9332C4B7F3A9F82668E2A8DFC187952A6ECA4734_bigui256, 0x2AB833558061F365CA621F5E570953AD5BBFBF45809B245C8D66D0CD00C9C8D6_bigui256}, + {0x22A6D04A1964B9B54F5183648117CD67FCAF9AB2B0D926565D725B87108F586B_bigui256, 0x36016051DA2BA6FE1D8BE3A614959AE431B3DC9F543D4CC3E6526A843FD3F668_bigui256}}, + {{0x3C4DE244A5E4B969BBB3BA8A41FC1076FBF8FCD1174AB350AB9F414B2B5F02B7_bigui256, 0x273F19EDC54275DF166E3A80D3F8BBCE48C67F49154C45D576F5838E59049401_bigui256}, + {0x1A6C28E8E8679AE8998192577C2FA9B5ABC67FFE84ADB63D4F655960ADCA06C3_bigui256, 0x16A0AD9FE756A1285C0F151EAB8E8C90A84862E3C3B552BF11BD473FDF42AEA5_bigui256}}, + {{0x25DB17042CD86EFBF52B129CF874E093D0F6930D6D9B91A1874954B8E2F89DAC_bigui256, 0x1790B39E7FF4D2C2D40ACF986D32EAC3D0C8CA6024555867BE258A9F581D68A4_bigui256}, + {0x213853D57B0E3FD0D663149C5DE7A1CDC9B4796F946D33BCFC5731A1FE262D76_bigui256, 0x0D6156942605E3AD61EAE4D43D60434B1351B2F1817C9E322F7A0BD78EA0E7FD_bigui256}}, }); - proof.proof.delta = {0x1841D56E15736C31F97ADAE3DCA7B0C7EFDDB800C6AD958C8C317206C00DC72D_cppui_modular256, - 0x371285C1D5F12E0C32C4913C64678ABC8947C5D61BE6C7D0AB102CBF4E955893_cppui_modular256}; - proof.proof.z1 = 0x0F55A25FD477DB4D5486AD5B7FDECD3BA87AEABD8FD8EB81158D68CE342AD400_cppui_modular256; - proof.proof.z2 = 0x35E29FC28BED57075811257A7182C30C0273CB460AF5212E14B5D47C6B820E9E_cppui_modular256; - proof.proof.sg = {0x22202A4EE86A05EAD5695178EC52EE4B27B162B4A41AA26D2181BC8BE7620F2F_cppui_modular256, - 0x195B0A20E4C1CD6840DF5B0937CB00CA9C10AEB7B2A05C8721D5571ECBECAA7D_cppui_modular256}; + proof.proof.delta = {0x1841D56E15736C31F97ADAE3DCA7B0C7EFDDB800C6AD958C8C317206C00DC72D_bigui256, + 0x371285C1D5F12E0C32C4913C64678ABC8947C5D61BE6C7D0AB102CBF4E955893_bigui256}; + proof.proof.z1 = 0x0F55A25FD477DB4D5486AD5B7FDECD3BA87AEABD8FD8EB81158D68CE342AD400_bigui256; + proof.proof.z2 = 0x35E29FC28BED57075811257A7182C30C0273CB460AF5212E14B5D47C6B820E9E_bigui256; + proof.proof.sg = {0x22202A4EE86A05EAD5695178EC52EE4B27B162B4A41AA26D2181BC8BE7620F2F_bigui256, + 0x195B0A20E4C1CD6840DF5B0937CB00CA9C10AEB7B2A05C8721D5571ECBECAA7D_bigui256}; - proof.evals[0].w[0] = {0x218C1B364EAB7D60FB30A1D1865BB51B9EC1BBD61308CAAE14244A054B122E93_cppui_modular256}; - proof.evals[0].w[1] = {0x3E72A7C4AB5A497B6B4C19E2F4BDBFDA667526DFF7310B59053536560A5B69B1_cppui_modular256}; - proof.evals[0].w[2] = {0x2E678A3459123FBCAB752483B33EE996CDE93AA456A77AA68EE2B392E85A8AD3_cppui_modular256}; - proof.evals[0].w[3] = {0x15051A7601CC5949B5CE177941BA55869E860C39C9DE872387958B8907979BCE_cppui_modular256}; - proof.evals[0].w[4] = {0x0485A39322005BF5C7A01501646A1CAED8BF7BDF3EBBF563D7E38DD59EED4C1F_cppui_modular256}; - proof.evals[0].w[5] = {0x0AC812E8C385BF25F1CB39E9F5081567AA21329558BE4DD1A9108344C23184BD_cppui_modular256}; - proof.evals[0].w[6] = {0x3FF83F99525275EFE8A9BA42F177E083ADDF4618AC5981BB99510FEE28384A24_cppui_modular256}; - proof.evals[0].w[7] = {0x14736CB71FEDE1E1F004BC88D20A9897F5DE9E48C06B22536450EA9CBE66BDF3_cppui_modular256}; - proof.evals[0].w[8] = {0x3E0A7FD54262D5A95C13E98950C29412D2D70C410F294958A2D3876C1C59B6BE_cppui_modular256}; - proof.evals[0].w[9] = {0x298284D82997B6D9814B8643C976B43601DE36E710C2A67CFDB83AADA8532744_cppui_modular256}; - proof.evals[0].w[10] = {0x0D478CF727DADD5E084A9077F49EEFFE9337E7FF43B079617BBAE51A67ABE0C6_cppui_modular256}; - proof.evals[0].w[11] = {0x3E25792FCB0C4C612C3BC6C772B7E8D74EB844F841D25C766406DD497D594EDF_cppui_modular256}; - proof.evals[0].w[12] = {0x33F1A21853B94B69C3838A5BB737F6795F927047521344F98A9C42EC62131941_cppui_modular256}; - proof.evals[0].w[13] = {0x29BDCB00DC664A725ACB4DEFFBB8041B706C9B9662542D7CB131A88F46CCE3A3_cppui_modular256}; - proof.evals[0].w[14] = {0x1F89F3E96513497AF2131184403811BD8146C6E5729515FFD7C70E322B86AE05_cppui_modular256}; - proof.evals[0].z = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_cppui_modular256}; - // proof.evals[0].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_cppui_modular256}; - // proof.evals[0].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_cppui_modular256}; - proof.evals[0].s[0] = {0x0284596D78C52B3B5BA71D1A9A173ABF9E63F9B848C39206169C36B878AF6DDA_cppui_modular256}; - proof.evals[0].s[1] = {0x0614A2627FBCD1D7356FB7BFB33DD7D7C81F761E421B12251672D250A0C2F5A5_cppui_modular256}; - proof.evals[0].s[2] = {0x06170D49F379823E790EE625247E2DCFD100B5B5ACF8A900D86405D09C480A72_cppui_modular256}; - proof.evals[0].s[3] = {0x2E1F15C0649E24B7F3AB4DA6E881866F2E74C11656850F1DDD9EA945B3BFA6A9_cppui_modular256}; - proof.evals[0].s[4] = {0x3725E0A20A90564DACEEBD1B8E4037D9A563AD0105BB87932846E5194F5853FF_cppui_modular256}; - proof.evals[0].s[5] = {0x315BC904B7DBD7D45780562C242882BF93CE41138876DA231D9D0AFB8036CF11_cppui_modular256}; + proof.evals[0].w[0] = {0x218C1B364EAB7D60FB30A1D1865BB51B9EC1BBD61308CAAE14244A054B122E93_bigui256}; + proof.evals[0].w[1] = {0x3E72A7C4AB5A497B6B4C19E2F4BDBFDA667526DFF7310B59053536560A5B69B1_bigui256}; + proof.evals[0].w[2] = {0x2E678A3459123FBCAB752483B33EE996CDE93AA456A77AA68EE2B392E85A8AD3_bigui256}; + proof.evals[0].w[3] = {0x15051A7601CC5949B5CE177941BA55869E860C39C9DE872387958B8907979BCE_bigui256}; + proof.evals[0].w[4] = {0x0485A39322005BF5C7A01501646A1CAED8BF7BDF3EBBF563D7E38DD59EED4C1F_bigui256}; + proof.evals[0].w[5] = {0x0AC812E8C385BF25F1CB39E9F5081567AA21329558BE4DD1A9108344C23184BD_bigui256}; + proof.evals[0].w[6] = {0x3FF83F99525275EFE8A9BA42F177E083ADDF4618AC5981BB99510FEE28384A24_bigui256}; + proof.evals[0].w[7] = {0x14736CB71FEDE1E1F004BC88D20A9897F5DE9E48C06B22536450EA9CBE66BDF3_bigui256}; + proof.evals[0].w[8] = {0x3E0A7FD54262D5A95C13E98950C29412D2D70C410F294958A2D3876C1C59B6BE_bigui256}; + proof.evals[0].w[9] = {0x298284D82997B6D9814B8643C976B43601DE36E710C2A67CFDB83AADA8532744_bigui256}; + proof.evals[0].w[10] = {0x0D478CF727DADD5E084A9077F49EEFFE9337E7FF43B079617BBAE51A67ABE0C6_bigui256}; + proof.evals[0].w[11] = {0x3E25792FCB0C4C612C3BC6C772B7E8D74EB844F841D25C766406DD497D594EDF_bigui256}; + proof.evals[0].w[12] = {0x33F1A21853B94B69C3838A5BB737F6795F927047521344F98A9C42EC62131941_bigui256}; + proof.evals[0].w[13] = {0x29BDCB00DC664A725ACB4DEFFBB8041B706C9B9662542D7CB131A88F46CCE3A3_bigui256}; + proof.evals[0].w[14] = {0x1F89F3E96513497AF2131184403811BD8146C6E5729515FFD7C70E322B86AE05_bigui256}; + proof.evals[0].z = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; + // proof.evals[0].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; + // proof.evals[0].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; + proof.evals[0].s[0] = {0x0284596D78C52B3B5BA71D1A9A173ABF9E63F9B848C39206169C36B878AF6DDA_bigui256}; + proof.evals[0].s[1] = {0x0614A2627FBCD1D7356FB7BFB33DD7D7C81F761E421B12251672D250A0C2F5A5_bigui256}; + proof.evals[0].s[2] = {0x06170D49F379823E790EE625247E2DCFD100B5B5ACF8A900D86405D09C480A72_bigui256}; + proof.evals[0].s[3] = {0x2E1F15C0649E24B7F3AB4DA6E881866F2E74C11656850F1DDD9EA945B3BFA6A9_bigui256}; + proof.evals[0].s[4] = {0x3725E0A20A90564DACEEBD1B8E4037D9A563AD0105BB87932846E5194F5853FF_bigui256}; + proof.evals[0].s[5] = {0x315BC904B7DBD7D45780562C242882BF93CE41138876DA231D9D0AFB8036CF11_bigui256}; - proof.evals[1].w[0] = {0x0CE4579CFE87F1D15160DDE1078E01AC2795B12A93D40263C613A3341EF2C27D_cppui_modular256}; - proof.evals[1].w[1] = {0x3728E63BF46BAA60AC6078292280E1FD7F4FB0F85BBD642CB62F4600737A6CAC_cppui_modular256}; - proof.evals[1].w[2] = {0x3C89AC7E8C016AF82E276185E310D5D36E0F3A14202A981C4F51D014569E458E_cppui_modular256}; - proof.evals[1].w[3] = {0x3099E164DFF4B7506A32E0D10119A74A0EE794BB1F4C488EBE192C37BC4E4E5C_cppui_modular256}; - proof.evals[1].w[4] = {0x1A8C403E7B17F751B6C9573DD36C1BFCE6FA6B0C1A51D5759184D63DFF2CB28A_cppui_modular256}; - proof.evals[1].w[5] = {0x092E41B804AA2C03F28EE41EBA2F370C6FD6C1ADBEA08D1C19C50DDF3D7E7154_cppui_modular256}; - proof.evals[1].w[6] = {0x208E4B0B4277B90CE839D21A96E3C68ECA076C6EC3992A7F0D2277E6CC4A9C55_cppui_modular256}; - proof.evals[1].w[7] = {0x3BF1050F00050486620C9ABC34863D8628AAC362EC76BA4234618EC7956EC9F2_cppui_modular256}; - proof.evals[1].w[8] = {0x04E39785D3438752F23993771796047837282E33171C5A62EF1E7B5141855829_cppui_modular256}; - proof.evals[1].w[9] = {0x1B5BA02A80313D49A8D2BFCE1E951A3C795EB2A01A65C193D92B46D61B26ACCF_cppui_modular256}; - proof.evals[1].w[10] = {0x327242E90C704A0EB53538A6F1311E6B8E1DBC86812246DA7597B3AC1A4FF8CD_cppui_modular256}; - proof.evals[1].w[11] = {0x109B911705D2385C5AD5B80ED76D78835971175398C34D2E962C49FB1F3F3FCE_cppui_modular256}; - proof.evals[1].w[12] = {0x39F57515F459363F447611DFF8F54D4A1AF705D7E477086F2154258DCCE6C991_cppui_modular256}; - proof.evals[1].w[13] = {0x234F5914E2E034222E166BB11A7D2210BA365B6026DDCA94134ED0337A8E5353_cppui_modular256}; - proof.evals[1].w[14] = {0x0CA93D13D167320517B6C5823C04F6D75975B0E869448CB905497AD92835DD15_cppui_modular256}; - proof.evals[1].z = {0x359872A0067A0765E595D6AFEB42B023EAC3EBC9735945F780A635A9CC256703_cppui_modular256}; - // proof.evals[1].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_cppui_modular256}; - // proof.evals[1].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_cppui_modular256}; - proof.evals[1].s[0] = {0x353E417DD92E1B8C4C2BB40358A4FF43CED6AFDF2218C49867D2C45D1DB174AF_cppui_modular256}; - proof.evals[1].s[1] = {0x109165335DD3FABD6AF198D5E7CC45B4E11356D1A4027B8BC01344356F7ADABB_cppui_modular256}; - proof.evals[1].s[2] = {0x177C41BBAE20A957704CBCD4777244F4BC252BEA68362D9F0B00A22267247C3A_cppui_modular256}; - proof.evals[1].s[3] = {0x34D9D201F2E42D5E3D86CD5C70DF153E472CD9401CE1E1FB9EC742EFF8BEDE2C_cppui_modular256}; - proof.evals[1].s[4] = {0x00C022C8689A0F23EFA00918CCA8ECCB106CB89037E7B034840DCD614E4DECF7_cppui_modular256}; - proof.evals[1].s[5] = {0x0E9A479740A633919DF200A1F25FF75982AFF0749111C1E87EBB69DC2B1A5BC7_cppui_modular256}; + proof.evals[1].w[0] = {0x0CE4579CFE87F1D15160DDE1078E01AC2795B12A93D40263C613A3341EF2C27D_bigui256}; + proof.evals[1].w[1] = {0x3728E63BF46BAA60AC6078292280E1FD7F4FB0F85BBD642CB62F4600737A6CAC_bigui256}; + proof.evals[1].w[2] = {0x3C89AC7E8C016AF82E276185E310D5D36E0F3A14202A981C4F51D014569E458E_bigui256}; + proof.evals[1].w[3] = {0x3099E164DFF4B7506A32E0D10119A74A0EE794BB1F4C488EBE192C37BC4E4E5C_bigui256}; + proof.evals[1].w[4] = {0x1A8C403E7B17F751B6C9573DD36C1BFCE6FA6B0C1A51D5759184D63DFF2CB28A_bigui256}; + proof.evals[1].w[5] = {0x092E41B804AA2C03F28EE41EBA2F370C6FD6C1ADBEA08D1C19C50DDF3D7E7154_bigui256}; + proof.evals[1].w[6] = {0x208E4B0B4277B90CE839D21A96E3C68ECA076C6EC3992A7F0D2277E6CC4A9C55_bigui256}; + proof.evals[1].w[7] = {0x3BF1050F00050486620C9ABC34863D8628AAC362EC76BA4234618EC7956EC9F2_bigui256}; + proof.evals[1].w[8] = {0x04E39785D3438752F23993771796047837282E33171C5A62EF1E7B5141855829_bigui256}; + proof.evals[1].w[9] = {0x1B5BA02A80313D49A8D2BFCE1E951A3C795EB2A01A65C193D92B46D61B26ACCF_bigui256}; + proof.evals[1].w[10] = {0x327242E90C704A0EB53538A6F1311E6B8E1DBC86812246DA7597B3AC1A4FF8CD_bigui256}; + proof.evals[1].w[11] = {0x109B911705D2385C5AD5B80ED76D78835971175398C34D2E962C49FB1F3F3FCE_bigui256}; + proof.evals[1].w[12] = {0x39F57515F459363F447611DFF8F54D4A1AF705D7E477086F2154258DCCE6C991_bigui256}; + proof.evals[1].w[13] = {0x234F5914E2E034222E166BB11A7D2210BA365B6026DDCA94134ED0337A8E5353_bigui256}; + proof.evals[1].w[14] = {0x0CA93D13D167320517B6C5823C04F6D75975B0E869448CB905497AD92835DD15_bigui256}; + proof.evals[1].z = {0x359872A0067A0765E595D6AFEB42B023EAC3EBC9735945F780A635A9CC256703_bigui256}; + // proof.evals[1].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; + // proof.evals[1].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; + proof.evals[1].s[0] = {0x353E417DD92E1B8C4C2BB40358A4FF43CED6AFDF2218C49867D2C45D1DB174AF_bigui256}; + proof.evals[1].s[1] = {0x109165335DD3FABD6AF198D5E7CC45B4E11356D1A4027B8BC01344356F7ADABB_bigui256}; + proof.evals[1].s[2] = {0x177C41BBAE20A957704CBCD4777244F4BC252BEA68362D9F0B00A22267247C3A_bigui256}; + proof.evals[1].s[3] = {0x34D9D201F2E42D5E3D86CD5C70DF153E472CD9401CE1E1FB9EC742EFF8BEDE2C_bigui256}; + proof.evals[1].s[4] = {0x00C022C8689A0F23EFA00918CCA8ECCB106CB89037E7B034840DCD614E4DECF7_bigui256}; + proof.evals[1].s[5] = {0x0E9A479740A633919DF200A1F25FF75982AFF0749111C1E87EBB69DC2B1A5BC7_bigui256}; - proof.ft_eval1 = 0x01AEC83A8925441906ED7C843289815B1F2098EBE21BA2EC9C9BDE738323A79C_cppui_modular256; + proof.ft_eval1 = 0x01AEC83A8925441906ED7C843289815B1F2098EBE21BA2EC9C9BDE738323A79C_bigui256; index.domain = math::basic_radix2_domain(64); - index.domain.omega = 0x1868CA50534A180D97FF23A878E088B0B9569C85B0A15D666C23DED157FCEEBA_cppui_modular256; + index.domain.omega = 0x1868CA50534A180D97FF23A878E088B0B9569C85B0A15D666C23DED157FCEEBA_bigui256; // std::cout << "index domain size " << index.domain.size() << '\n'; index.max_poly_size = 64; index.max_quot_size = 448; index.srs.g.assign({ - {0x121C4426885FD5A9701385AAF8D43E52E7660F1FC5AFC5F6468CC55312FC60F8_cppui_modular256, 0x21B439C01247EA3518C5DDEB324E4CB108AF617780DDF766D96D3FD8AB028B70_cppui_modular256}, - {0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_cppui_modular256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_cppui_modular256}, - {0x26985F27306586711466C5B2C28754AA62FE33516D75CEF1F7751F1A169713FD_cppui_modular256, 0x2E8930092FE6A18B331CE0E6E27B413AA18E76394F18A2835DA9FAE10AA3229D_cppui_modular256}, - {0x014B2DB7B753A74D454061FCB3AC537E1B4BA512F9ED258C996A59D9DACD13E5_cppui_modular256, 0x06F392D371494FC39174C4B70C692B96F3B7C42DA288F6B7AABF463334A952D0_cppui_modular256}, - {0x12CA0E2DBF286021CB76B7C12B6C9AD7FDF1D05F722F6EF14BD43E53E7B92120_cppui_modular256, 0x216A80B79D3995D1F39CE19855C475052D1148ACBDD379FE98961BFBD0A3E428_cppui_modular256}, - {0x1D257C1F4EC9872C9E06549BC910F7B7196F2E7CB120AEC3FDCEB049C7A0C9A5_cppui_modular256, 0x191CBEC20ED5EA342B6B395E92996215F7D93C675DA56A13D548EFB58524D336_cppui_modular256}, - {0x06236026ED7DC19C44540FBAF0C1C3498F82880A34422547FFF519FFF744BB48_cppui_modular256, 0x3A02C5410DABDE160BD09232A14F00B1EF6CD4D6285C90A8D41FA00BFF922F0A_cppui_modular256}, - {0x079333FDE60D3F670068B5A1D486EDDD87DDF91D1E1FC000F387991B4ED848B4_cppui_modular256, 0x3F7FC1A39FD74BDEDC129195080D298CFC2C2CF714BAD9F9334F0DAFB035C200_cppui_modular256}, - {0x069B398C2968553B7987FF840CF0B71359D10F249F08C40898550A63F196D856_cppui_modular256, 0x1B68BB879D6EC4EFAA2207E212B59BAD0D8E5E2493F99BE3F2F24764046CD277_cppui_modular256}, - {0x2CBD65973AE0BE0B9E652CEC35EFE509E1FA8DD8349DC1E644DB494DC2B4FD75_cppui_modular256, 0x1E27B8178E720407694F4EA1413B0CB87AF4058CB308BBD68FF42D5078DE243E_cppui_modular256}, - {0x0F29A22EF6949DE85427F72CCD04E3F8F56837BB56DA17D8FA5DE9025E6B9ED5_cppui_modular256, 0x26A2CD91BD2771E20DECAACDC6CA96E7759668F3D0B7E8810866D27737627A59_cppui_modular256}, - {0x300EE47C831AB28067BFE9364A819C894FA02155C5FC3E94E83A0EAD3110E9E5_cppui_modular256, 0x2D4FD253E12958FD548AC51E62F3158EB3EE8CB10F148F0A44D2C6E562D632CA_cppui_modular256}, - {0x2A9EA5BCE9D10ED951E11E4DE64DED939D1FC6B5DE07DFF33D49861B7DE2EE71_cppui_modular256, 0x0708F926C80F2A68C3F59C8C25D26F29FF90842A7C1BEDE0B1801D7DF258077B_cppui_modular256}, - {0x2DEA83FC8EA7A9727A5F2184EDCBF6A17083C10DACE4F45DADB330CE1624DC8B_cppui_modular256, 0x02DE1252440BF67F0B7A40DE4B7D9157993CE1D0DC47F8D4B3BCF126FBE00E2B_cppui_modular256}, - {0x341DE1D9B175235F492C6DAD8580443D11B12DF39EE95D497935BFF99D4E775F_cppui_modular256, 0x01177651EA542F5402CA5B075C5A2082F5F4EE1D3B054FC97CF7D30758D89841_cppui_modular256}, - {0x37D2BB9884B41B3125444D81C59E8EDA167284FB5D637C9D54B21753830F14A0_cppui_modular256, 0x0D5708EB79051B4704EDB309CDFCA38030CD8B656A5C9051B5C1AFA6B1C30D46_cppui_modular256}, - {0x026A67515EF102D65C7694144B457240C4E3270A0240640A5EAF9B3E7489C54E_cppui_modular256, 0x1B78FD66A3E4A168D0CEC1846F03B1624342491857F9204743A44DE2E90A42E2_cppui_modular256}, - {0x2E2489CBFD8534059574AACD43C137788C54D86B1292CF4B17850EE95F913198_cppui_modular256, 0x10D13EAD8E28E1493325B7DBB89025DA06A8867EE60BCADD1D794A847D871A46_cppui_modular256}, - {0x3FB39F7B1DBD63694D40FC6C105FBD8242908DB2CF82B5F0FACE46A7792CC0A0_cppui_modular256, 0x01DF2D8291BAA5ECFF544683F16F36D8C83078DFD24B5C8C93DFEDA524704750_cppui_modular256}, - {0x39DA705C7CD47D34F9B2E2A7F57200F656A229398E7A0F89A5534D72C8BAA2C7_cppui_modular256, 0x1C5E177C851121F1A90AC844245B7D7D5512C822ABF4AF37213AF5B2EBCED4F0_cppui_modular256}, - {0x0A35295A58443F71E676CE42BA6FC44D4EF1DEB8E9E9C7D537CE4CD453576521_cppui_modular256, 0x3600DA2E2E5D3674E13613871FA8B9A5D96F905DD69114FBF3F69F61D0C57263_cppui_modular256}, - {0x2879FDC5D79EC2FD73D8776DD5ED76F8BC6DA10D4501AA892D11CC02152E33C5_cppui_modular256, 0x06FC48C9C7CF8B4CD94812DC8EE2ABBC4A0775D52E01097E6877F2A1A7547786_cppui_modular256}, - {0x0A3499DB18871CBF14818C2D5152742B4457FDF30DF5936172EDE2FE9A537701_cppui_modular256, 0x0548D846722829A12B1C9C39411DE0AC8C5C2F97C1953432DF60251E0DAE91B2_cppui_modular256}, - {0x25A8F59C1D7C23576952D07640231EEBDE39D9F89BB85110966096D36043DB0A_cppui_modular256, 0x0F6EB10365B419FA5179D3278BC7F834D27AD930AE11674FFC5F00549556DBB8_cppui_modular256}, - {0x1F4A67F9C220741648FBACFAC1934B09C3E903EFBE12DECFA6820656D3778DAA_cppui_modular256, 0x3685316B926A7C4351AB8AB802174B11BF8EBD5999989F0343555D9575CFA3CC_cppui_modular256}, - {0x1ECC9BE71F9ACF900FA6CDCC452550C7991BFC25258CEFACBCF51D541DF2D819_cppui_modular256, 0x0FBDFA76ACB83F9C4DF9337FEC47F38672D31E9EB5406034812E5C21C6494BDD_cppui_modular256}, - {0x2E79A282F86F8FC1B2DB59443975544DD7C92883322C82C2C283DC51A0E34825_cppui_modular256, 0x0118E6A449918C38AA0D290373F1D605DC21B6B5F228C41BFF596C635AF7761E_cppui_modular256}, - {0x3FCD47170790B2A3E85CEAEE44940DACA0E11DD132960092FB2E1613B364849B_cppui_modular256, 0x2859254A7ABFB288138B64009A85178250FD120351634CCD41D9ECE993D9F6A3_cppui_modular256}, - {0x1A29CFD3AF8F7C0F19861362DAC9FD8034F82C2C1750A425B446461B5BC63E4B_cppui_modular256, 0x15E12C10AE7FFF431F6FAAB8EE607386AA85EB7AFB806E264B8952D51404E17D_cppui_modular256}, - {0x2EECD04E0E37FAF9C51C61249470F118C5C5EA8E6DDB4B645F99C47D3BA07F68_cppui_modular256, 0x33E6418DD36692F7EE870BB3577115F87D62E9D257374950A17A3B0154B8B35D_cppui_modular256}, - {0x3BADB4DCEADF739775588552805A959B7D216BFD86847BA54D662B777B2B1FCF_cppui_modular256, 0x0CB8DEE5BE3197C76685F25D4596C766A2DA3542BD89FD9633D7590EA2B68FD0_cppui_modular256}, - {0x3FC5DE9E2422625B53D18E55C069CBCEC9C2D2C4F8DAB5B1BC11D3702F3F5E22_cppui_modular256, 0x0EE46C6ABF41C33D66B60AA4E508CE43DFE02535EF19E158AB66B49D12BD171F_cppui_modular256}, - {0x0172960667016B5FFF7A489C3BC65F38A63FB833A16AC7AF4882A193A1B9E0DE_cppui_modular256, 0x241362235399643C11C8DA0E103B5F17975EB78BF493F02DC9749905CE1E7BA7_cppui_modular256}, - {0x060A1110F23BFB345A81751266E1394C0CF7939CB382AD2387FC0F43B83E330C_cppui_modular256, 0x0403BDFA41BAD631ADE30CFE0EF41ABE17E3F4F02BE4F4394D680BD287D4152E_cppui_modular256}, - {0x0C0411B3AC12207D214F1749F3EB08746DEF500AFD2288417A03CB8C64ADCFDC_cppui_modular256, 0x05A41050D3CC198441E920E2B1D07E9B50E082B65911F4305533BE021269AC45_cppui_modular256}, - {0x136245F44B95D1AC824C6C7F385F8260F6D5C4970FE7AE3C170A37AE6622EB28_cppui_modular256, 0x197FC03FCD4758E4B7D3B28CAF5A94911DB2993EFC37F29DAF39853F58AFC559_cppui_modular256}, - {0x3C542327CCAAFA02BCE394AD125622601ADB4DDF55FF9608F31E352B57BAA272_cppui_modular256, 0x201A3AF528EDABBA05CC0B972DA2EDC9C645596ED0C89306516C93C3724C17E1_cppui_modular256}, - {0x0CBA8DE360D3EF1E92303DAEC903351A356881500BF66686F7990B0BFC9CC4D9_cppui_modular256, 0x33DADFB27017F21BAC0F56BD9AD5A7BE0A5A19A714C4DC982FB480D5186EBBD2_cppui_modular256}, - {0x3BD1FDD3FA99286EC812DBE11FD2B988AE6132BDF17A85C80ED2FD3751A6841E_cppui_modular256, 0x105AFCE44F11C190275BB98AEBFB482BCC0021812EAEA404961584C07660FE1F_cppui_modular256}, - {0x07CFF56D62EEBE6F42B55715F8982558E9F252ACBD39D30362D103EF3C98223E_cppui_modular256, 0x084950454C739DF8CC80BCF70D8B95A0ADF5843244DD1CE5D6A083E993F25E18_cppui_modular256}, - {0x1FBB25E4665F8BAB853FA6F5D416757573D546EF597E5F0479293CF2C2A94A6A_cppui_modular256, 0x197C835ECE76501982D3FC07CF8668B416738EABA5A2B7D47B670A9EF6F1F9CC_cppui_modular256}, - {0x0F9348EE41AD355E13B8EA3E11E9C3310A9BE6202C1A5AD59F644F959A51C2C7_cppui_modular256, 0x0A951D45F026168B6BBE24F6DC2C06E1E835877590215529CCA99ECCB4B22782_cppui_modular256}, - {0x146E17ACFCBFCAEA52213C07111BE2749CEF66F8659DC5C06DD0B03231A92BC3_cppui_modular256, 0x3C43FA8A983391EDFBE6756FE64AA67919BBB049323BF191962A0825B909D86D_cppui_modular256}, - {0x3A1ED0BBD35E9AFBAA00826D113E54F9823AE6344728F4A42BBC9EFFD7074832_cppui_modular256, 0x3C20D27B56210D0FE45A7AC692FE929E0768305A1790DA1E8CB5BBAE24B906BE_cppui_modular256}, - {0x171063605C748AFDF525BE0BBE745017A1105871B955BFD210F56E7AA76852E6_cppui_modular256, 0x07687195D7A46F80CE26DADA430C7824F537641F6C654033A418358383427EB6_cppui_modular256}, - {0x363E263819EEB4997CD47FA7FBC35B47FF78D551BD6ABAB919C8996A63A188BC_cppui_modular256, 0x2334D5A3A1685AA651A300835BE4D863AF5512DAE6A7971465937627C9DDD35A_cppui_modular256}, - {0x19C69BC40754819BE0BE01E22A097FB3911E061F8B1818A55B0FF2BA6952A2B5_cppui_modular256, 0x3B6BCF2566E3A1C894C6AEB801B740F767A51B5F7E931002F5AE385A601129C0_cppui_modular256}, - {0x3471FB5C070BD548AD32FEF8CB1F3F9F0E22CD7380FC7E9739D80304EFE69331_cppui_modular256, 0x3B1B5D6A11C58B24B1E6E69628C50C8894FEDCF4EA42190BB1188803D45F9D44_cppui_modular256}, - {0x177D76562D402928EA6EE3838C20AD6426841D2167307EEC3058C85481DBFFAB_cppui_modular256, 0x3E38C317E2E2B5035DC2E80653768DFC5CA8088DD8C7F2EA04861CF3CDFB6E62_cppui_modular256}, - {0x28BCEA14F64CFD5162DE1066DD22B68A20D49A1BC6FC16E71449573E1B9DC8B0_cppui_modular256, 0x21884B615876855022D0B96B1FDE642B96A11D08D90A23BC96A78BE5D1386AF9_cppui_modular256}, - {0x01EBE18E65A82CD77E7F442D534D2DA483BB6723E0B5D4B874A67E318532B0E1_cppui_modular256, 0x14E7278F16C6153C09706C2CC1D608FA47253B5F2AE0900574FEAFBE1378E26D_cppui_modular256}, - {0x366A1904B0AF71A6AFD2AA761C79B98985F39F6097CA440F5CE65563FE0B1E06_cppui_modular256, 0x2A00227D98A2C2E75EB8FA537141585C13181744CA41680F12B9703B5187AADD_cppui_modular256}, - {0x21DF93F25B9A4383F9004C8252C2D0AE2BAE44E7A6D2611D737D85FDF0F5FEAB_cppui_modular256, 0x05D8D88A4A1A9F22FD14BF7D5EC1C10ABE794B84C3871028A3DF69AF48F19193_cppui_modular256}, - {0x3A25707AA4604A4E0DB2E250BF60008BC5E3F33C77B8DF183F7AEE9294504B91_cppui_modular256, 0x2870F2ED277AA0CFBD81A4EAF3E8737589B15ECB81B0FA063656D5C445795646_cppui_modular256}, - {0x2653831E973B7D7C77C45F31C2A7209B2F6C353C731EB9128B692E5447EF42F2_cppui_modular256, 0x3C9017F46FD225938BD8F7DEE085C42C069905C4F9AD7612EFB2997C95E5238E_cppui_modular256}, - {0x08A413C57382ACF055DB927E2ED34CCB8259C7290FF8400EACFD6BF16308BC6F_cppui_modular256, 0x398990AF4D3FEC325BE1E6A3D0A8AB183D494112B9B0FD8A7AA92E2FD7741794_cppui_modular256}, - {0x02E242BDEA7226C5ADAFCC278015F469301BF4C9A4F8687FF9CDE09EF3D8BC38_cppui_modular256, 0x279D5FA5CD209F89675257B185659B89F548EBEE2865A0DAE1D12929DDD36DA8_cppui_modular256}, - {0x3C58D4342E718537E4231F3502A39F3724A03C07E5B3D68AC291E645BD4EA9C3_cppui_modular256, 0x314E911944450CE2050DD050EA72550D64F0A7FD9F1C47CD31EB1E4D19DAA8F2_cppui_modular256}, - {0x3DCE5FCF09DE55C8BC95BBDB2EF08BCD558361AE86455746DCBA6FD142513627_cppui_modular256, 0x1D461F17B4A16512A3908E117011D151E8A15354AEEF357652A7B541C9FA220F_cppui_modular256}, - {0x1371BAD9CCDDA06E18DCD9C23551DC89CCEB8D323395D8B3D83B3D0950B4A20D_cppui_modular256, 0x3CE57B893A3BD3666EAD668622B901F6E25A1B3D359642251438CEC04BB38570_cppui_modular256}, - {0x2102942CA851EF0ED89CE016C172D6EBFB72C7110A04D50B27EC230143914714_cppui_modular256, 0x02E9DBF7C11BC61F61ABE7648195F851543040551808C81E6DFE424D2D701F40_cppui_modular256}, - {0x33F626F2BDDF65045480FDF7CD921CA42254B8F4FBEEDC68D751D7DFF48AAF9A_cppui_modular256, 0x3640D5780FE1EFC6391F777B6ED6B09B7EBFAAA9B2CC0B6AF6E3BF7B572EBB79_cppui_modular256}, - {0x221F9081BAED33F9B610EBBA00D87F33A0E2F209C333E31BE17BE83B87AC838A_cppui_modular256, 0x01098EEAE4534F394020A9F2E3A9408BF2B88151D23CB87D9A7D0F306D694658_cppui_modular256}, - {0x018E6B0BEBB52C9F275C971F2FF0FCE922435A309DC9A15FD4CEC218D3700B59_cppui_modular256, 0x3B61D8723EFE39A06E9ACC7D0A2C67DCAC479479934F5593E7E9542E64B3FDA6_cppui_modular256}, + {0x121C4426885FD5A9701385AAF8D43E52E7660F1FC5AFC5F6468CC55312FC60F8_bigui256, 0x21B439C01247EA3518C5DDEB324E4CB108AF617780DDF766D96D3FD8AB028B70_bigui256}, + {0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_bigui256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_bigui256}, + {0x26985F27306586711466C5B2C28754AA62FE33516D75CEF1F7751F1A169713FD_bigui256, 0x2E8930092FE6A18B331CE0E6E27B413AA18E76394F18A2835DA9FAE10AA3229D_bigui256}, + {0x014B2DB7B753A74D454061FCB3AC537E1B4BA512F9ED258C996A59D9DACD13E5_bigui256, 0x06F392D371494FC39174C4B70C692B96F3B7C42DA288F6B7AABF463334A952D0_bigui256}, + {0x12CA0E2DBF286021CB76B7C12B6C9AD7FDF1D05F722F6EF14BD43E53E7B92120_bigui256, 0x216A80B79D3995D1F39CE19855C475052D1148ACBDD379FE98961BFBD0A3E428_bigui256}, + {0x1D257C1F4EC9872C9E06549BC910F7B7196F2E7CB120AEC3FDCEB049C7A0C9A5_bigui256, 0x191CBEC20ED5EA342B6B395E92996215F7D93C675DA56A13D548EFB58524D336_bigui256}, + {0x06236026ED7DC19C44540FBAF0C1C3498F82880A34422547FFF519FFF744BB48_bigui256, 0x3A02C5410DABDE160BD09232A14F00B1EF6CD4D6285C90A8D41FA00BFF922F0A_bigui256}, + {0x079333FDE60D3F670068B5A1D486EDDD87DDF91D1E1FC000F387991B4ED848B4_bigui256, 0x3F7FC1A39FD74BDEDC129195080D298CFC2C2CF714BAD9F9334F0DAFB035C200_bigui256}, + {0x069B398C2968553B7987FF840CF0B71359D10F249F08C40898550A63F196D856_bigui256, 0x1B68BB879D6EC4EFAA2207E212B59BAD0D8E5E2493F99BE3F2F24764046CD277_bigui256}, + {0x2CBD65973AE0BE0B9E652CEC35EFE509E1FA8DD8349DC1E644DB494DC2B4FD75_bigui256, 0x1E27B8178E720407694F4EA1413B0CB87AF4058CB308BBD68FF42D5078DE243E_bigui256}, + {0x0F29A22EF6949DE85427F72CCD04E3F8F56837BB56DA17D8FA5DE9025E6B9ED5_bigui256, 0x26A2CD91BD2771E20DECAACDC6CA96E7759668F3D0B7E8810866D27737627A59_bigui256}, + {0x300EE47C831AB28067BFE9364A819C894FA02155C5FC3E94E83A0EAD3110E9E5_bigui256, 0x2D4FD253E12958FD548AC51E62F3158EB3EE8CB10F148F0A44D2C6E562D632CA_bigui256}, + {0x2A9EA5BCE9D10ED951E11E4DE64DED939D1FC6B5DE07DFF33D49861B7DE2EE71_bigui256, 0x0708F926C80F2A68C3F59C8C25D26F29FF90842A7C1BEDE0B1801D7DF258077B_bigui256}, + {0x2DEA83FC8EA7A9727A5F2184EDCBF6A17083C10DACE4F45DADB330CE1624DC8B_bigui256, 0x02DE1252440BF67F0B7A40DE4B7D9157993CE1D0DC47F8D4B3BCF126FBE00E2B_bigui256}, + {0x341DE1D9B175235F492C6DAD8580443D11B12DF39EE95D497935BFF99D4E775F_bigui256, 0x01177651EA542F5402CA5B075C5A2082F5F4EE1D3B054FC97CF7D30758D89841_bigui256}, + {0x37D2BB9884B41B3125444D81C59E8EDA167284FB5D637C9D54B21753830F14A0_bigui256, 0x0D5708EB79051B4704EDB309CDFCA38030CD8B656A5C9051B5C1AFA6B1C30D46_bigui256}, + {0x026A67515EF102D65C7694144B457240C4E3270A0240640A5EAF9B3E7489C54E_bigui256, 0x1B78FD66A3E4A168D0CEC1846F03B1624342491857F9204743A44DE2E90A42E2_bigui256}, + {0x2E2489CBFD8534059574AACD43C137788C54D86B1292CF4B17850EE95F913198_bigui256, 0x10D13EAD8E28E1493325B7DBB89025DA06A8867EE60BCADD1D794A847D871A46_bigui256}, + {0x3FB39F7B1DBD63694D40FC6C105FBD8242908DB2CF82B5F0FACE46A7792CC0A0_bigui256, 0x01DF2D8291BAA5ECFF544683F16F36D8C83078DFD24B5C8C93DFEDA524704750_bigui256}, + {0x39DA705C7CD47D34F9B2E2A7F57200F656A229398E7A0F89A5534D72C8BAA2C7_bigui256, 0x1C5E177C851121F1A90AC844245B7D7D5512C822ABF4AF37213AF5B2EBCED4F0_bigui256}, + {0x0A35295A58443F71E676CE42BA6FC44D4EF1DEB8E9E9C7D537CE4CD453576521_bigui256, 0x3600DA2E2E5D3674E13613871FA8B9A5D96F905DD69114FBF3F69F61D0C57263_bigui256}, + {0x2879FDC5D79EC2FD73D8776DD5ED76F8BC6DA10D4501AA892D11CC02152E33C5_bigui256, 0x06FC48C9C7CF8B4CD94812DC8EE2ABBC4A0775D52E01097E6877F2A1A7547786_bigui256}, + {0x0A3499DB18871CBF14818C2D5152742B4457FDF30DF5936172EDE2FE9A537701_bigui256, 0x0548D846722829A12B1C9C39411DE0AC8C5C2F97C1953432DF60251E0DAE91B2_bigui256}, + {0x25A8F59C1D7C23576952D07640231EEBDE39D9F89BB85110966096D36043DB0A_bigui256, 0x0F6EB10365B419FA5179D3278BC7F834D27AD930AE11674FFC5F00549556DBB8_bigui256}, + {0x1F4A67F9C220741648FBACFAC1934B09C3E903EFBE12DECFA6820656D3778DAA_bigui256, 0x3685316B926A7C4351AB8AB802174B11BF8EBD5999989F0343555D9575CFA3CC_bigui256}, + {0x1ECC9BE71F9ACF900FA6CDCC452550C7991BFC25258CEFACBCF51D541DF2D819_bigui256, 0x0FBDFA76ACB83F9C4DF9337FEC47F38672D31E9EB5406034812E5C21C6494BDD_bigui256}, + {0x2E79A282F86F8FC1B2DB59443975544DD7C92883322C82C2C283DC51A0E34825_bigui256, 0x0118E6A449918C38AA0D290373F1D605DC21B6B5F228C41BFF596C635AF7761E_bigui256}, + {0x3FCD47170790B2A3E85CEAEE44940DACA0E11DD132960092FB2E1613B364849B_bigui256, 0x2859254A7ABFB288138B64009A85178250FD120351634CCD41D9ECE993D9F6A3_bigui256}, + {0x1A29CFD3AF8F7C0F19861362DAC9FD8034F82C2C1750A425B446461B5BC63E4B_bigui256, 0x15E12C10AE7FFF431F6FAAB8EE607386AA85EB7AFB806E264B8952D51404E17D_bigui256}, + {0x2EECD04E0E37FAF9C51C61249470F118C5C5EA8E6DDB4B645F99C47D3BA07F68_bigui256, 0x33E6418DD36692F7EE870BB3577115F87D62E9D257374950A17A3B0154B8B35D_bigui256}, + {0x3BADB4DCEADF739775588552805A959B7D216BFD86847BA54D662B777B2B1FCF_bigui256, 0x0CB8DEE5BE3197C76685F25D4596C766A2DA3542BD89FD9633D7590EA2B68FD0_bigui256}, + {0x3FC5DE9E2422625B53D18E55C069CBCEC9C2D2C4F8DAB5B1BC11D3702F3F5E22_bigui256, 0x0EE46C6ABF41C33D66B60AA4E508CE43DFE02535EF19E158AB66B49D12BD171F_bigui256}, + {0x0172960667016B5FFF7A489C3BC65F38A63FB833A16AC7AF4882A193A1B9E0DE_bigui256, 0x241362235399643C11C8DA0E103B5F17975EB78BF493F02DC9749905CE1E7BA7_bigui256}, + {0x060A1110F23BFB345A81751266E1394C0CF7939CB382AD2387FC0F43B83E330C_bigui256, 0x0403BDFA41BAD631ADE30CFE0EF41ABE17E3F4F02BE4F4394D680BD287D4152E_bigui256}, + {0x0C0411B3AC12207D214F1749F3EB08746DEF500AFD2288417A03CB8C64ADCFDC_bigui256, 0x05A41050D3CC198441E920E2B1D07E9B50E082B65911F4305533BE021269AC45_bigui256}, + {0x136245F44B95D1AC824C6C7F385F8260F6D5C4970FE7AE3C170A37AE6622EB28_bigui256, 0x197FC03FCD4758E4B7D3B28CAF5A94911DB2993EFC37F29DAF39853F58AFC559_bigui256}, + {0x3C542327CCAAFA02BCE394AD125622601ADB4DDF55FF9608F31E352B57BAA272_bigui256, 0x201A3AF528EDABBA05CC0B972DA2EDC9C645596ED0C89306516C93C3724C17E1_bigui256}, + {0x0CBA8DE360D3EF1E92303DAEC903351A356881500BF66686F7990B0BFC9CC4D9_bigui256, 0x33DADFB27017F21BAC0F56BD9AD5A7BE0A5A19A714C4DC982FB480D5186EBBD2_bigui256}, + {0x3BD1FDD3FA99286EC812DBE11FD2B988AE6132BDF17A85C80ED2FD3751A6841E_bigui256, 0x105AFCE44F11C190275BB98AEBFB482BCC0021812EAEA404961584C07660FE1F_bigui256}, + {0x07CFF56D62EEBE6F42B55715F8982558E9F252ACBD39D30362D103EF3C98223E_bigui256, 0x084950454C739DF8CC80BCF70D8B95A0ADF5843244DD1CE5D6A083E993F25E18_bigui256}, + {0x1FBB25E4665F8BAB853FA6F5D416757573D546EF597E5F0479293CF2C2A94A6A_bigui256, 0x197C835ECE76501982D3FC07CF8668B416738EABA5A2B7D47B670A9EF6F1F9CC_bigui256}, + {0x0F9348EE41AD355E13B8EA3E11E9C3310A9BE6202C1A5AD59F644F959A51C2C7_bigui256, 0x0A951D45F026168B6BBE24F6DC2C06E1E835877590215529CCA99ECCB4B22782_bigui256}, + {0x146E17ACFCBFCAEA52213C07111BE2749CEF66F8659DC5C06DD0B03231A92BC3_bigui256, 0x3C43FA8A983391EDFBE6756FE64AA67919BBB049323BF191962A0825B909D86D_bigui256}, + {0x3A1ED0BBD35E9AFBAA00826D113E54F9823AE6344728F4A42BBC9EFFD7074832_bigui256, 0x3C20D27B56210D0FE45A7AC692FE929E0768305A1790DA1E8CB5BBAE24B906BE_bigui256}, + {0x171063605C748AFDF525BE0BBE745017A1105871B955BFD210F56E7AA76852E6_bigui256, 0x07687195D7A46F80CE26DADA430C7824F537641F6C654033A418358383427EB6_bigui256}, + {0x363E263819EEB4997CD47FA7FBC35B47FF78D551BD6ABAB919C8996A63A188BC_bigui256, 0x2334D5A3A1685AA651A300835BE4D863AF5512DAE6A7971465937627C9DDD35A_bigui256}, + {0x19C69BC40754819BE0BE01E22A097FB3911E061F8B1818A55B0FF2BA6952A2B5_bigui256, 0x3B6BCF2566E3A1C894C6AEB801B740F767A51B5F7E931002F5AE385A601129C0_bigui256}, + {0x3471FB5C070BD548AD32FEF8CB1F3F9F0E22CD7380FC7E9739D80304EFE69331_bigui256, 0x3B1B5D6A11C58B24B1E6E69628C50C8894FEDCF4EA42190BB1188803D45F9D44_bigui256}, + {0x177D76562D402928EA6EE3838C20AD6426841D2167307EEC3058C85481DBFFAB_bigui256, 0x3E38C317E2E2B5035DC2E80653768DFC5CA8088DD8C7F2EA04861CF3CDFB6E62_bigui256}, + {0x28BCEA14F64CFD5162DE1066DD22B68A20D49A1BC6FC16E71449573E1B9DC8B0_bigui256, 0x21884B615876855022D0B96B1FDE642B96A11D08D90A23BC96A78BE5D1386AF9_bigui256}, + {0x01EBE18E65A82CD77E7F442D534D2DA483BB6723E0B5D4B874A67E318532B0E1_bigui256, 0x14E7278F16C6153C09706C2CC1D608FA47253B5F2AE0900574FEAFBE1378E26D_bigui256}, + {0x366A1904B0AF71A6AFD2AA761C79B98985F39F6097CA440F5CE65563FE0B1E06_bigui256, 0x2A00227D98A2C2E75EB8FA537141585C13181744CA41680F12B9703B5187AADD_bigui256}, + {0x21DF93F25B9A4383F9004C8252C2D0AE2BAE44E7A6D2611D737D85FDF0F5FEAB_bigui256, 0x05D8D88A4A1A9F22FD14BF7D5EC1C10ABE794B84C3871028A3DF69AF48F19193_bigui256}, + {0x3A25707AA4604A4E0DB2E250BF60008BC5E3F33C77B8DF183F7AEE9294504B91_bigui256, 0x2870F2ED277AA0CFBD81A4EAF3E8737589B15ECB81B0FA063656D5C445795646_bigui256}, + {0x2653831E973B7D7C77C45F31C2A7209B2F6C353C731EB9128B692E5447EF42F2_bigui256, 0x3C9017F46FD225938BD8F7DEE085C42C069905C4F9AD7612EFB2997C95E5238E_bigui256}, + {0x08A413C57382ACF055DB927E2ED34CCB8259C7290FF8400EACFD6BF16308BC6F_bigui256, 0x398990AF4D3FEC325BE1E6A3D0A8AB183D494112B9B0FD8A7AA92E2FD7741794_bigui256}, + {0x02E242BDEA7226C5ADAFCC278015F469301BF4C9A4F8687FF9CDE09EF3D8BC38_bigui256, 0x279D5FA5CD209F89675257B185659B89F548EBEE2865A0DAE1D12929DDD36DA8_bigui256}, + {0x3C58D4342E718537E4231F3502A39F3724A03C07E5B3D68AC291E645BD4EA9C3_bigui256, 0x314E911944450CE2050DD050EA72550D64F0A7FD9F1C47CD31EB1E4D19DAA8F2_bigui256}, + {0x3DCE5FCF09DE55C8BC95BBDB2EF08BCD558361AE86455746DCBA6FD142513627_bigui256, 0x1D461F17B4A16512A3908E117011D151E8A15354AEEF357652A7B541C9FA220F_bigui256}, + {0x1371BAD9CCDDA06E18DCD9C23551DC89CCEB8D323395D8B3D83B3D0950B4A20D_bigui256, 0x3CE57B893A3BD3666EAD668622B901F6E25A1B3D359642251438CEC04BB38570_bigui256}, + {0x2102942CA851EF0ED89CE016C172D6EBFB72C7110A04D50B27EC230143914714_bigui256, 0x02E9DBF7C11BC61F61ABE7648195F851543040551808C81E6DFE424D2D701F40_bigui256}, + {0x33F626F2BDDF65045480FDF7CD921CA42254B8F4FBEEDC68D751D7DFF48AAF9A_bigui256, 0x3640D5780FE1EFC6391F777B6ED6B09B7EBFAAA9B2CC0B6AF6E3BF7B572EBB79_bigui256}, + {0x221F9081BAED33F9B610EBBA00D87F33A0E2F209C333E31BE17BE83B87AC838A_bigui256, 0x01098EEAE4534F394020A9F2E3A9408BF2B88151D23CB87D9A7D0F306D694658_bigui256}, + {0x018E6B0BEBB52C9F275C971F2FF0FCE922435A309DC9A15FD4CEC218D3700B59_bigui256, 0x3B61D8723EFE39A06E9ACC7D0A2C67DCAC479479934F5593E7E9542E64B3FDA6_bigui256}, }); std::unordered_map > lb; lb[64] = { - {0x3C89BC840A9BFA941E3795587975566DE58A27D3D437C50C38F2617E22A39C83_cppui_modular256, 0x037A0EEEB2D1297911993DC43C13A6784351957A116C1A66D0748242690CF999_cppui_modular256}, - {0x311B73AC73D24F10E03F64D457B8FCC469CA69A718031DE58D754745447381E3_cppui_modular256, 0x3D5F15A562AFE60D10EEDCC494E91029156D901A5366814B5019FAD10767E308_cppui_modular256}, - {0x17FAAA160C38DE2C4F890E8E9F9D0CC55CF655400AD1F6D9BE86718DEA48A634_cppui_modular256, 0x2FF9EA226552FB4B51796F638C35D335A41F80B1AD2D7D665BD92907C5CBCEDD_cppui_modular256}, - {0x24FEBDFCBDC67B69F1899A665D6D1D2C210B63452B3F85D8D1B139D766DEDD8B_cppui_modular256, 0x09CFE9337A2A9095F46A0B43D2E6C28A055BBDCDB1314F71131022880D3C16F0_cppui_modular256}, - {0x0136DAD72EBCE55FA8F3763293D74D6360CACFE6C1E2E49B1932B45F0C45FB52_cppui_modular256, 0x2F149D6CF6936BB6F04E15CC317B7D847AD3C6364743077F8DD813378E4D8958_cppui_modular256}, - {0x0804A76DA2C0326D97EAEBC790CF96FFAD0511F8AAD2322448B2E61D3DB1832C_cppui_modular256, 0x0C7ABD82BA04EDE7FFFF200360F13E79A64F51DE5B2B48D88829F9BE7FDC0B7D_cppui_modular256}, - {0x38A6EFBB2BB65133E17DBE78A32DD92D2CC7203F9F170F5557EB7B8D8D4A0286_cppui_modular256, 0x145532FAA79ED6F2ABA0C8BA0A0FBCCC34A4960E44B6B522BC1D8988DAD201E6_cppui_modular256}, - {0x04D4CFA5D074EAD706F31AF4988023B9B785F1140A19D01D8A69817ECFBC0771_cppui_modular256, 0x0E74A9CE01A11DF980FA7BDD75981EE0583E31796AE55DFD222609FAA8C02731_cppui_modular256}, - {0x1F48A4346711E5FAA4487B424AA17AE53E6D4104414F9ED47E47FE663E3017C0_cppui_modular256, 0x0F934EA50068A5F16B15BCF2F95FA7B708640149AACA3AA9B3557AE7C111E4EE_cppui_modular256}, - {0x1ACDF9E08E6D7FDB7F359034A7055D54B5FDB5F04546B9886FA43A56CE224F13_cppui_modular256, 0x0511C6980AFE051256A6F0CEAF1D391F4634C307AC432CAD6694899E88700A6F_cppui_modular256}, - {0x263AAA4441BB60272EEF0774918FB22DA9BB2D40893ED3C95397266DD2646F46_cppui_modular256, 0x14AFC51B9C097EBC59187FA9B5C5E0E3D370A33D4D95D8B00D0AD1D4EF16C644_cppui_modular256}, - {0x00FB91CCBD9B18645BDC0B54096458F20A286CFDC7271E79C1102E3AF6D20A4D_cppui_modular256, 0x02EB26A22949C21D5015E9CD09A4723EB3EC0D5F03D86D80648F96D2AC8AE68F_cppui_modular256}, - {0x2DF6658AB48DA915166CB36E301D39FCDC4C22FF3BC729858F4D832E2437713F_cppui_modular256, 0x371210957FE84FA3861700AD6565AF2B5255E1615E13C035595A884DB4D17F1D_cppui_modular256}, - {0x222C42D9F0E4B95745B4942D329E9F175E98045286D7043FA927087B977D471D_cppui_modular256, 0x2918339EBEA41F2BA9AAF690CB4DBC23A6B73441A4394B9F4A4D6909F38ACA0C_cppui_modular256}, - {0x3624A396CB168A1203C991119ECBBC6198722121298DC4B3ED0C5815BC5CF25A_cppui_modular256, 0x3FD7696D730E57FFD17411388C1394F00B0ED51BED3949D6E8104DF6E7051034_cppui_modular256}, - {0x15FDB7C4200AFE05277EE9BAEFA8A35DBD6B2064DFFD19BBADF0451C87737CB4_cppui_modular256, 0x1679DF1E82C8D7B213CA50AE4FB4C01B451C35FB9773D1AFCA88F4036E7DE6B5_cppui_modular256}, - {0x168C859A6F15D8FCF7F04CD64CCB765E40D5133230772A96D5794F345339056F_cppui_modular256, 0x12DBDEDA81DC4F3BFF48DED7ED60871EBDCE3F645230430F854532FDC7669EF5_cppui_modular256}, - {0x29BCFC91A2A6AD3A0967E2B413A426C8B55105479AB3D7E5A6E1F6E14112042D_cppui_modular256, 0x0B838A8D03F7A7E4CAF0FAA27CF26298380D8877C22AB47D226EC6C94ED1D41E_cppui_modular256}, - {0x107059654B51B4DE00EA74A04AEB2F1D262BB0ADBC1F74886098152FC1D42C21_cppui_modular256, 0x2007CF92469A2E935A5B6849146B974AE49F5A226FD0FF348C9BBA3E49D03F77_cppui_modular256}, - {0x320E00A7C54FDD11AFDC1CFFCE893A578B89EC7929A369735387503CBD7BAD56_cppui_modular256, 0x18516D9F2EEF18B9CD474EAB18E58F08C8FF7A647514D212E617343CFA8E4BFD_cppui_modular256}, - {0x3352BB1A90CF8A7250183BA1AE95644B390C8429F2D3CB0A1F9A0B8FA69C12D8_cppui_modular256, 0x0906450E7D4AC8394CC2723FDA6A84D9BD2DD83F65F19D93D85C3B14970AFAF1_cppui_modular256}, - {0x2080B1B270D63DF226EE44C5E03036656B437F88E972061E3D26A190A3427FCB_cppui_modular256, 0x34D9BA01F40B2E521EA0A7493ED7B7AD7F419634BDE91809BB747981F4BA4691_cppui_modular256}, - {0x1B72B4BD6713F958EAEB8F91A1DB37D245B0B31E43C98282DE58DA424D0E7CDC_cppui_modular256, 0x3B36009A35DED46973B3E2BF4BB64EE3406916D927F8A00E452FAE381D3C2AD6_cppui_modular256}, - {0x3AD4D7F604FC1261F3AA227E61ABFD3DB766B9CADF07660471289264682633BD_cppui_modular256, 0x2C87A76A484DF472917476A5ABCC8FE7324123F4365B176391A5F65A3D4EE47F_cppui_modular256}, - {0x3E0A9D8A6BD0DF3C64D8964829CA93FB70B400344BB0AB6E117874F4DDE6DF6A_cppui_modular256, 0x311DED62A49E2E452C9B96350E45B2C52AA2951F09321652B255703AFD213FE6_cppui_modular256}, - {0x3E4C3344680BDE8FCD5E7934067D0642C178BAD402F2CD554DC15C7E29D9982B_cppui_modular256, 0x2A92BBC7B9DC4A592BDEBC06510476FDAB5B5AC2BF28984A27C4ADA37CE39D97_cppui_modular256}, - {0x0F429110528C4DCBA1E59682B9467A30C6F366F0BE8FC2FC597DE75A4447FDAC_cppui_modular256, 0x0813847967DB68D88DA632E74A3E1D2C7C09E775719F48D802D6A2546B122DFE_cppui_modular256}, - {0x3AB2F27A8040747A3D0A74B9F45AF533DAD6D79103D5B7EF02D4A0EB09C9B91B_cppui_modular256, 0x11EE126988D11C7232E60D920B51B7CC2391AD5324AF32AEC1EAC8C485FABEBC_cppui_modular256}, - {0x20CBDB07812379E2074B969E43A22699FA6B2803FC00087BBDA531E5C6D14B39_cppui_modular256, 0x15A465EDDC45B8EB428E9B23B14D3084F99096AF3E5988E1098A5957F9937BB4_cppui_modular256}, - {0x23CF677347411249DB6BC8853AB2B562229E7B773C4E18AFEFB57A5123B5EDC5_cppui_modular256, 0x03A2CF573B4EB51DEB58A057A611B8A641FA3C4B78B039BC1D25522F1F4E152B_cppui_modular256}, - {0x0A844BAB65A39230B31A1F8339D275C932BDC044F3E45C20118F2CB0A3585F49_cppui_modular256, 0x154E9EA6E40A8F5243BACC1D5613300F2D709AE0E8958FD3CC47143BD5C532B5_cppui_modular256}, - {0x0D072415CB893496134E551EE4C4582262FB1B8E37AFD1BF6C7CD57E33115B7F_cppui_modular256, 0x3804E5B57477FB43239378D6C220EF0930C6732CCC242ABC6A9368C0664AAD7A_cppui_modular256}, - {0x1E7B4D1881A5BB64CAA8FB1E2815A8CDC8AFEF00649BDECE17596554C636AA9C_cppui_modular256, 0x177CC53E9B41D37E5058B9AE33D82413F32F535DA37444B212CB4B3BC221F9AF_cppui_modular256}, - {0x3F43332116BD7C42986271B0C98066D0A5F5A2B5FC9DB32F3F8E272BF7EB9FF2_cppui_modular256, 0x0C827C6BDB35BCE4F8DD289056AA2F1B95F9A7BFBA3116B20CFE98E894682092_cppui_modular256}, - {0x28CA8B3695515D80A55CB135B42DC68B11204EDEC6E1E57B90763D8B764D4E4A_cppui_modular256, 0x2366E50F7EBBE57A68E0320B0CF43615A1A038F56885FAF4D4F08390518A31F1_cppui_modular256}, - {0x28BA918C4AFDAA3E87F07B1DBA299F849C323C66463B81E7D29381532DA03DCC_cppui_modular256, 0x21C5E945F8877E52CDAF2B7D37AAD1F895F1F23C853FB5F36B7E822611284F82_cppui_modular256}, - {0x3FCFA209B59D36F244DFDBB45C667CD518B58D21DD042B76785F4FBA80F4B7EA_cppui_modular256, 0x1DAA63C559BF92982E773F16524722CFEF8384A1CB7DB8FD500847EAFA2386E0_cppui_modular256}, - {0x1C52D056521BC5AAB401F489B5A099BC4E2FF9112E8E89F79ABFA83F6141B1E7_cppui_modular256, 0x3975139F4FF73871BA2D1B228135C1ED6F807FD4729BFD25773DCD0CA0567AEC_cppui_modular256}, - {0x39CA6B9121820798E4F8C9E56FAA19F6C6186E91FB58B9219A57CF946EB4404C_cppui_modular256, 0x00F36DE792588AE497FC844588103E3EF3AEC5378443D5CF4D8A31924B15F409_cppui_modular256}, - {0x366276BAC098B06CCB3BF10CDD74AE208A6F72DD295A439481F3FF0F19EA4472_cppui_modular256, 0x05682488CC82C1C4B963B0F4B696574B216D10E3DEF1970E7DD6EF1D4D9DC95E_cppui_modular256}, - {0x3E6E698789A213627EEF178DCCE852BBDCDE95F2FEF6F99ADB54BA91A4DBD633_cppui_modular256, 0x3D1BCC88A6C0F515C42AD2FF96B4485580D8900B53CBD1E9D9B6C874012DA1CA_cppui_modular256}, - {0x06FDA94AC505426D3D5C8B82B96A1512E44F4A84849178753BE8346EB068E4C9_cppui_modular256, 0x1EB1DB4AA54111F8105904ACE22576022989821736A3273ADAA71E561717B410_cppui_modular256}, - {0x340DCBE21EA8A8F1D9DF1F07E51B3CB97D8284F28ACCE8497E445C259F213BB4_cppui_modular256, 0x2DA0ABCF3573491D505CC5F619523BD2453FD67287A6109EAEDF00E5A2906740_cppui_modular256}, - {0x1AF462A6713530F9C71A555363B5199F839B8B39154663C67264F3B5DC6F9691_cppui_modular256, 0x209E3B30E10ABE2F47D0D28E56BC22E4F7FD746D9BFEF7CD5093880D4A32BDD8_cppui_modular256}, - {0x0A5A714A06E8CEF3695DC12B7BB2CE62682EF127A922E1941595EEA4521DAA9B_cppui_modular256, 0x083549F026A2C593AD6A21B5B18546AD77B8999C8EC48FBB90F4A7A5CBF4BBE6_cppui_modular256}, - {0x319D8AAF8C24EB1067A600FEDD5E89DF9141395BF1C51E0145ACD251A375C616_cppui_modular256, 0x1231B2BCE3B7E245A93682F5C776B387F0AAB9637E984C8C9023E27F60DCBD85_cppui_modular256}, - {0x2839EA83958EB5C4018A2618FA89A78C99E905A49A119A4DECD2FC80319C3E5F_cppui_modular256, 0x1D74130ED38B699544BA43687070012EE571009FEB480B15346104AE1A5E910A_cppui_modular256}, - {0x24914C51064F1BEEF7A723A34A26709AA02BC4CE8D44FB4ED3F31356838A095F_cppui_modular256, 0x152137EC9B4777B8C6F913E3268E2261B44C41B8DA89A7BCF1BCB24711CA45F1_cppui_modular256}, - {0x2E1B58CC9A736C19547D35B15B88E4A5C6852B93B9FA079A564B25F63608B97C_cppui_modular256, 0x267DBE881E33F759E3CA043DC58991CDE682DDF3D52A2C9C6C743369CF34D52C_cppui_modular256}, - {0x1997469E9AFCE26367CBFAEAB96C25BC79B36EFDA34885B2E9EEBD16EF5F7E1D_cppui_modular256, 0x1538A3F7C25841AC797CF7E25EEEFCA7F41C071CC306728F174A4ED211FE6ACD_cppui_modular256}, - {0x32BE50F7D0C1E119F925FFECB9D6EDF01F2051628EA6B8D473A1E3813E39A6CD_cppui_modular256, 0x2819810C3D069979C7BDD4DF764E7E5EB21CDC68C4C6D856D7FFC35EE5A35615_cppui_modular256}, - {0x2C29D5A8980BDACE5708A7D42C4EE5900C14638D63B5E4A56D2A525384ECEB0D_cppui_modular256, 0x14097A6815520C3EC8B0D61CF6E1ACBFC37B3FBB9CC588F04DFD4F8F3DB0C8B3_cppui_modular256}, - {0x02DE03DB892A85BD073B31F33E4F7DA209AF0F66A7185A23C537C453A152292F_cppui_modular256, 0x3A31D9BB9A44A12E2685C23AB864490D0A7943187BDD31F87FE9E6E787448E0E_cppui_modular256}, - {0x37E39B187FF0747D2CCAD7092AA9CB24A6AE2DB7CF17BFD23D3DA657FCCA695D_cppui_modular256, 0x2CE80F107CCB457C9E78CE10B4BA5BE5623DA20C1ED45BB00E6780C6A767CC83_cppui_modular256}, - {0x3B593FA9CB5848054B88DF7A09E84F97F999545DD30524BA158D1C77144A7D14_cppui_modular256, 0x0F0A7E093F5DA7C75DFC238BC36125F02ED97BD79C425B1A77B740467D379509_cppui_modular256}, - {0x056338F486ACBC5048CB96BE50676D31DBA01F962FBF177A9E9F3112671AD51D_cppui_modular256, 0x0C8EC6604982DF2AF84709DCD16FD7EF89CCE63EED31868106E0FE53478F5EE3_cppui_modular256}, - {0x123E53A4A256FD4711C68003B0F17D90708976723116BF1972B10643BACCFB06_cppui_modular256, 0x23F176C9D80799DB9F7396E649517B942747AB57F79E2CCBCC9A46BD954BAACE_cppui_modular256}, - {0x3237CF192BD09509F090E30147FDE7877BC2214DA7CD4524E6D46F4AA24422F8_cppui_modular256, 0x0489D219C52A9912C4DDF4713F8E2B5D7D1470AFAF7DD1D31206C0549DDFCB3B_cppui_modular256}, - {0x19029EB9DEC80B3A35F875F806C621E19938211623B0CA7325F092A091A8ED4A_cppui_modular256, 0x38EC6FA4220CBFB39BA2ABB78861FD1B293D1147833BF7C19430E8CEE4DDB688_cppui_modular256}, - {0x2B3C070B9B85E1723CEB55DE10A309F0E948F1A8507134DD7188024F8DE12BA9_cppui_modular256, 0x3F2992F73FECA28A841A4F51662BF667B2B8CE49DEE75C7B51AEE082FB050FCF_cppui_modular256}, - {0x227D4B9A0C21B7CDA0D85E91AFFD9D8E38B51CBD0BC877B92A7EC1B315B3B24D_cppui_modular256, 0x39E7154095B659B654F69BE25AD02188536ADDD0F30C4235C22282847E809B8C_cppui_modular256}, - {0x20C8053B87A050C01008750EFC18489AA56C138743769A4AD7553D29F2531AE7_cppui_modular256, 0x2F46839877B7DB1EC2689916B93533D60F4F6E6C583A2CBB43879695E059B4FE_cppui_modular256}, - {0x21533DF31582C49F0534D6B39711EF3FCE360E85354949F4E717F337F3EA3024_cppui_modular256, 0x064F8D082581EBAE41A3BCB4BB388941EA3B679E2DF0E6D6F5F4D9E21A508E8A_cppui_modular256}, - {0x318F8D6E431858DE00CAD3B9EDDFA82B9AA5332DDFE90DD511D13405BEBC45D5_cppui_modular256, 0x1CD48075F42F46FA8E87CF3D326CE480DB2BBDFE144FBC75AD0A2409E6C91406_cppui_modular256}, + {0x3C89BC840A9BFA941E3795587975566DE58A27D3D437C50C38F2617E22A39C83_bigui256, 0x037A0EEEB2D1297911993DC43C13A6784351957A116C1A66D0748242690CF999_bigui256}, + {0x311B73AC73D24F10E03F64D457B8FCC469CA69A718031DE58D754745447381E3_bigui256, 0x3D5F15A562AFE60D10EEDCC494E91029156D901A5366814B5019FAD10767E308_bigui256}, + {0x17FAAA160C38DE2C4F890E8E9F9D0CC55CF655400AD1F6D9BE86718DEA48A634_bigui256, 0x2FF9EA226552FB4B51796F638C35D335A41F80B1AD2D7D665BD92907C5CBCEDD_bigui256}, + {0x24FEBDFCBDC67B69F1899A665D6D1D2C210B63452B3F85D8D1B139D766DEDD8B_bigui256, 0x09CFE9337A2A9095F46A0B43D2E6C28A055BBDCDB1314F71131022880D3C16F0_bigui256}, + {0x0136DAD72EBCE55FA8F3763293D74D6360CACFE6C1E2E49B1932B45F0C45FB52_bigui256, 0x2F149D6CF6936BB6F04E15CC317B7D847AD3C6364743077F8DD813378E4D8958_bigui256}, + {0x0804A76DA2C0326D97EAEBC790CF96FFAD0511F8AAD2322448B2E61D3DB1832C_bigui256, 0x0C7ABD82BA04EDE7FFFF200360F13E79A64F51DE5B2B48D88829F9BE7FDC0B7D_bigui256}, + {0x38A6EFBB2BB65133E17DBE78A32DD92D2CC7203F9F170F5557EB7B8D8D4A0286_bigui256, 0x145532FAA79ED6F2ABA0C8BA0A0FBCCC34A4960E44B6B522BC1D8988DAD201E6_bigui256}, + {0x04D4CFA5D074EAD706F31AF4988023B9B785F1140A19D01D8A69817ECFBC0771_bigui256, 0x0E74A9CE01A11DF980FA7BDD75981EE0583E31796AE55DFD222609FAA8C02731_bigui256}, + {0x1F48A4346711E5FAA4487B424AA17AE53E6D4104414F9ED47E47FE663E3017C0_bigui256, 0x0F934EA50068A5F16B15BCF2F95FA7B708640149AACA3AA9B3557AE7C111E4EE_bigui256}, + {0x1ACDF9E08E6D7FDB7F359034A7055D54B5FDB5F04546B9886FA43A56CE224F13_bigui256, 0x0511C6980AFE051256A6F0CEAF1D391F4634C307AC432CAD6694899E88700A6F_bigui256}, + {0x263AAA4441BB60272EEF0774918FB22DA9BB2D40893ED3C95397266DD2646F46_bigui256, 0x14AFC51B9C097EBC59187FA9B5C5E0E3D370A33D4D95D8B00D0AD1D4EF16C644_bigui256}, + {0x00FB91CCBD9B18645BDC0B54096458F20A286CFDC7271E79C1102E3AF6D20A4D_bigui256, 0x02EB26A22949C21D5015E9CD09A4723EB3EC0D5F03D86D80648F96D2AC8AE68F_bigui256}, + {0x2DF6658AB48DA915166CB36E301D39FCDC4C22FF3BC729858F4D832E2437713F_bigui256, 0x371210957FE84FA3861700AD6565AF2B5255E1615E13C035595A884DB4D17F1D_bigui256}, + {0x222C42D9F0E4B95745B4942D329E9F175E98045286D7043FA927087B977D471D_bigui256, 0x2918339EBEA41F2BA9AAF690CB4DBC23A6B73441A4394B9F4A4D6909F38ACA0C_bigui256}, + {0x3624A396CB168A1203C991119ECBBC6198722121298DC4B3ED0C5815BC5CF25A_bigui256, 0x3FD7696D730E57FFD17411388C1394F00B0ED51BED3949D6E8104DF6E7051034_bigui256}, + {0x15FDB7C4200AFE05277EE9BAEFA8A35DBD6B2064DFFD19BBADF0451C87737CB4_bigui256, 0x1679DF1E82C8D7B213CA50AE4FB4C01B451C35FB9773D1AFCA88F4036E7DE6B5_bigui256}, + {0x168C859A6F15D8FCF7F04CD64CCB765E40D5133230772A96D5794F345339056F_bigui256, 0x12DBDEDA81DC4F3BFF48DED7ED60871EBDCE3F645230430F854532FDC7669EF5_bigui256}, + {0x29BCFC91A2A6AD3A0967E2B413A426C8B55105479AB3D7E5A6E1F6E14112042D_bigui256, 0x0B838A8D03F7A7E4CAF0FAA27CF26298380D8877C22AB47D226EC6C94ED1D41E_bigui256}, + {0x107059654B51B4DE00EA74A04AEB2F1D262BB0ADBC1F74886098152FC1D42C21_bigui256, 0x2007CF92469A2E935A5B6849146B974AE49F5A226FD0FF348C9BBA3E49D03F77_bigui256}, + {0x320E00A7C54FDD11AFDC1CFFCE893A578B89EC7929A369735387503CBD7BAD56_bigui256, 0x18516D9F2EEF18B9CD474EAB18E58F08C8FF7A647514D212E617343CFA8E4BFD_bigui256}, + {0x3352BB1A90CF8A7250183BA1AE95644B390C8429F2D3CB0A1F9A0B8FA69C12D8_bigui256, 0x0906450E7D4AC8394CC2723FDA6A84D9BD2DD83F65F19D93D85C3B14970AFAF1_bigui256}, + {0x2080B1B270D63DF226EE44C5E03036656B437F88E972061E3D26A190A3427FCB_bigui256, 0x34D9BA01F40B2E521EA0A7493ED7B7AD7F419634BDE91809BB747981F4BA4691_bigui256}, + {0x1B72B4BD6713F958EAEB8F91A1DB37D245B0B31E43C98282DE58DA424D0E7CDC_bigui256, 0x3B36009A35DED46973B3E2BF4BB64EE3406916D927F8A00E452FAE381D3C2AD6_bigui256}, + {0x3AD4D7F604FC1261F3AA227E61ABFD3DB766B9CADF07660471289264682633BD_bigui256, 0x2C87A76A484DF472917476A5ABCC8FE7324123F4365B176391A5F65A3D4EE47F_bigui256}, + {0x3E0A9D8A6BD0DF3C64D8964829CA93FB70B400344BB0AB6E117874F4DDE6DF6A_bigui256, 0x311DED62A49E2E452C9B96350E45B2C52AA2951F09321652B255703AFD213FE6_bigui256}, + {0x3E4C3344680BDE8FCD5E7934067D0642C178BAD402F2CD554DC15C7E29D9982B_bigui256, 0x2A92BBC7B9DC4A592BDEBC06510476FDAB5B5AC2BF28984A27C4ADA37CE39D97_bigui256}, + {0x0F429110528C4DCBA1E59682B9467A30C6F366F0BE8FC2FC597DE75A4447FDAC_bigui256, 0x0813847967DB68D88DA632E74A3E1D2C7C09E775719F48D802D6A2546B122DFE_bigui256}, + {0x3AB2F27A8040747A3D0A74B9F45AF533DAD6D79103D5B7EF02D4A0EB09C9B91B_bigui256, 0x11EE126988D11C7232E60D920B51B7CC2391AD5324AF32AEC1EAC8C485FABEBC_bigui256}, + {0x20CBDB07812379E2074B969E43A22699FA6B2803FC00087BBDA531E5C6D14B39_bigui256, 0x15A465EDDC45B8EB428E9B23B14D3084F99096AF3E5988E1098A5957F9937BB4_bigui256}, + {0x23CF677347411249DB6BC8853AB2B562229E7B773C4E18AFEFB57A5123B5EDC5_bigui256, 0x03A2CF573B4EB51DEB58A057A611B8A641FA3C4B78B039BC1D25522F1F4E152B_bigui256}, + {0x0A844BAB65A39230B31A1F8339D275C932BDC044F3E45C20118F2CB0A3585F49_bigui256, 0x154E9EA6E40A8F5243BACC1D5613300F2D709AE0E8958FD3CC47143BD5C532B5_bigui256}, + {0x0D072415CB893496134E551EE4C4582262FB1B8E37AFD1BF6C7CD57E33115B7F_bigui256, 0x3804E5B57477FB43239378D6C220EF0930C6732CCC242ABC6A9368C0664AAD7A_bigui256}, + {0x1E7B4D1881A5BB64CAA8FB1E2815A8CDC8AFEF00649BDECE17596554C636AA9C_bigui256, 0x177CC53E9B41D37E5058B9AE33D82413F32F535DA37444B212CB4B3BC221F9AF_bigui256}, + {0x3F43332116BD7C42986271B0C98066D0A5F5A2B5FC9DB32F3F8E272BF7EB9FF2_bigui256, 0x0C827C6BDB35BCE4F8DD289056AA2F1B95F9A7BFBA3116B20CFE98E894682092_bigui256}, + {0x28CA8B3695515D80A55CB135B42DC68B11204EDEC6E1E57B90763D8B764D4E4A_bigui256, 0x2366E50F7EBBE57A68E0320B0CF43615A1A038F56885FAF4D4F08390518A31F1_bigui256}, + {0x28BA918C4AFDAA3E87F07B1DBA299F849C323C66463B81E7D29381532DA03DCC_bigui256, 0x21C5E945F8877E52CDAF2B7D37AAD1F895F1F23C853FB5F36B7E822611284F82_bigui256}, + {0x3FCFA209B59D36F244DFDBB45C667CD518B58D21DD042B76785F4FBA80F4B7EA_bigui256, 0x1DAA63C559BF92982E773F16524722CFEF8384A1CB7DB8FD500847EAFA2386E0_bigui256}, + {0x1C52D056521BC5AAB401F489B5A099BC4E2FF9112E8E89F79ABFA83F6141B1E7_bigui256, 0x3975139F4FF73871BA2D1B228135C1ED6F807FD4729BFD25773DCD0CA0567AEC_bigui256}, + {0x39CA6B9121820798E4F8C9E56FAA19F6C6186E91FB58B9219A57CF946EB4404C_bigui256, 0x00F36DE792588AE497FC844588103E3EF3AEC5378443D5CF4D8A31924B15F409_bigui256}, + {0x366276BAC098B06CCB3BF10CDD74AE208A6F72DD295A439481F3FF0F19EA4472_bigui256, 0x05682488CC82C1C4B963B0F4B696574B216D10E3DEF1970E7DD6EF1D4D9DC95E_bigui256}, + {0x3E6E698789A213627EEF178DCCE852BBDCDE95F2FEF6F99ADB54BA91A4DBD633_bigui256, 0x3D1BCC88A6C0F515C42AD2FF96B4485580D8900B53CBD1E9D9B6C874012DA1CA_bigui256}, + {0x06FDA94AC505426D3D5C8B82B96A1512E44F4A84849178753BE8346EB068E4C9_bigui256, 0x1EB1DB4AA54111F8105904ACE22576022989821736A3273ADAA71E561717B410_bigui256}, + {0x340DCBE21EA8A8F1D9DF1F07E51B3CB97D8284F28ACCE8497E445C259F213BB4_bigui256, 0x2DA0ABCF3573491D505CC5F619523BD2453FD67287A6109EAEDF00E5A2906740_bigui256}, + {0x1AF462A6713530F9C71A555363B5199F839B8B39154663C67264F3B5DC6F9691_bigui256, 0x209E3B30E10ABE2F47D0D28E56BC22E4F7FD746D9BFEF7CD5093880D4A32BDD8_bigui256}, + {0x0A5A714A06E8CEF3695DC12B7BB2CE62682EF127A922E1941595EEA4521DAA9B_bigui256, 0x083549F026A2C593AD6A21B5B18546AD77B8999C8EC48FBB90F4A7A5CBF4BBE6_bigui256}, + {0x319D8AAF8C24EB1067A600FEDD5E89DF9141395BF1C51E0145ACD251A375C616_bigui256, 0x1231B2BCE3B7E245A93682F5C776B387F0AAB9637E984C8C9023E27F60DCBD85_bigui256}, + {0x2839EA83958EB5C4018A2618FA89A78C99E905A49A119A4DECD2FC80319C3E5F_bigui256, 0x1D74130ED38B699544BA43687070012EE571009FEB480B15346104AE1A5E910A_bigui256}, + {0x24914C51064F1BEEF7A723A34A26709AA02BC4CE8D44FB4ED3F31356838A095F_bigui256, 0x152137EC9B4777B8C6F913E3268E2261B44C41B8DA89A7BCF1BCB24711CA45F1_bigui256}, + {0x2E1B58CC9A736C19547D35B15B88E4A5C6852B93B9FA079A564B25F63608B97C_bigui256, 0x267DBE881E33F759E3CA043DC58991CDE682DDF3D52A2C9C6C743369CF34D52C_bigui256}, + {0x1997469E9AFCE26367CBFAEAB96C25BC79B36EFDA34885B2E9EEBD16EF5F7E1D_bigui256, 0x1538A3F7C25841AC797CF7E25EEEFCA7F41C071CC306728F174A4ED211FE6ACD_bigui256}, + {0x32BE50F7D0C1E119F925FFECB9D6EDF01F2051628EA6B8D473A1E3813E39A6CD_bigui256, 0x2819810C3D069979C7BDD4DF764E7E5EB21CDC68C4C6D856D7FFC35EE5A35615_bigui256}, + {0x2C29D5A8980BDACE5708A7D42C4EE5900C14638D63B5E4A56D2A525384ECEB0D_bigui256, 0x14097A6815520C3EC8B0D61CF6E1ACBFC37B3FBB9CC588F04DFD4F8F3DB0C8B3_bigui256}, + {0x02DE03DB892A85BD073B31F33E4F7DA209AF0F66A7185A23C537C453A152292F_bigui256, 0x3A31D9BB9A44A12E2685C23AB864490D0A7943187BDD31F87FE9E6E787448E0E_bigui256}, + {0x37E39B187FF0747D2CCAD7092AA9CB24A6AE2DB7CF17BFD23D3DA657FCCA695D_bigui256, 0x2CE80F107CCB457C9E78CE10B4BA5BE5623DA20C1ED45BB00E6780C6A767CC83_bigui256}, + {0x3B593FA9CB5848054B88DF7A09E84F97F999545DD30524BA158D1C77144A7D14_bigui256, 0x0F0A7E093F5DA7C75DFC238BC36125F02ED97BD79C425B1A77B740467D379509_bigui256}, + {0x056338F486ACBC5048CB96BE50676D31DBA01F962FBF177A9E9F3112671AD51D_bigui256, 0x0C8EC6604982DF2AF84709DCD16FD7EF89CCE63EED31868106E0FE53478F5EE3_bigui256}, + {0x123E53A4A256FD4711C68003B0F17D90708976723116BF1972B10643BACCFB06_bigui256, 0x23F176C9D80799DB9F7396E649517B942747AB57F79E2CCBCC9A46BD954BAACE_bigui256}, + {0x3237CF192BD09509F090E30147FDE7877BC2214DA7CD4524E6D46F4AA24422F8_bigui256, 0x0489D219C52A9912C4DDF4713F8E2B5D7D1470AFAF7DD1D31206C0549DDFCB3B_bigui256}, + {0x19029EB9DEC80B3A35F875F806C621E19938211623B0CA7325F092A091A8ED4A_bigui256, 0x38EC6FA4220CBFB39BA2ABB78861FD1B293D1147833BF7C19430E8CEE4DDB688_bigui256}, + {0x2B3C070B9B85E1723CEB55DE10A309F0E948F1A8507134DD7188024F8DE12BA9_bigui256, 0x3F2992F73FECA28A841A4F51662BF667B2B8CE49DEE75C7B51AEE082FB050FCF_bigui256}, + {0x227D4B9A0C21B7CDA0D85E91AFFD9D8E38B51CBD0BC877B92A7EC1B315B3B24D_bigui256, 0x39E7154095B659B654F69BE25AD02188536ADDD0F30C4235C22282847E809B8C_bigui256}, + {0x20C8053B87A050C01008750EFC18489AA56C138743769A4AD7553D29F2531AE7_bigui256, 0x2F46839877B7DB1EC2689916B93533D60F4F6E6C583A2CBB43879695E059B4FE_bigui256}, + {0x21533DF31582C49F0534D6B39711EF3FCE360E85354949F4E717F337F3EA3024_bigui256, 0x064F8D082581EBAE41A3BCB4BB388941EA3B679E2DF0E6D6F5F4D9E21A508E8A_bigui256}, + {0x318F8D6E431858DE00CAD3B9EDDFA82B9AA5332DDFE90DD511D13405BEBC45D5_bigui256, 0x1CD48075F42F46FA8E87CF3D326CE480DB2BBDFE144FBC75AD0A2409E6C91406_bigui256}, }; index.srs.lagrange_bases = lb; - index.srs.h = {0x092060386301C999AAB4F263757836369CA27975E28BC7A8E5B2CE5B26262201_cppui_modular256, - 0x314FC4D83AE66A509F9D41BE6165F2606A209A9B5805EE85CE20249C5EBCBE26_cppui_modular256}; + index.srs.h = {0x092060386301C999AAB4F263757836369CA27975E28BC7A8E5B2CE5B26262201_bigui256, + 0x314FC4D83AE66A509F9D41BE6165F2606A209A9B5805EE85CE20249C5EBCBE26_bigui256}; - index.srs.endo_q = 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_cppui_modular256; - index.srs.endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular256; + index.srs.endo_q = 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_bigui256; + index.srs.endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui256; std::vector> sigma_commitments_unshifted = { - {{0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_cppui_modular256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_cppui_modular256}}, - {{0x35AF80504B4DBF58CE3535F3E159BD407695088EFBF1EF56D4597A7F1CBEF531_cppui_modular256, 0x2D36B9BCB23702DF2F4A2C9E60ABBB81C2BE261D227AF025DDDE4FFF354727CB_cppui_modular256}}, - {{0x1CFDC82F8279850B957D0BDE2A188AD5060D80A97EF8B4E56CD17CFE1067CBD9_cppui_modular256, 0x2863D1D7D5EFC2155B2BCCB849B6EA6738E2705A4DC63115045B797E2CFA6511_cppui_modular256}}, - {{0x262ABA0787800EF4CBD18688A534659AB77861C373006A4E0E42BC06D85F9E79_cppui_modular256, 0x150A55D182F3B621B10774BD11C8B8198048DEE7C535DDD08992B41928E45DC3_cppui_modular256}}, - {{0x0C51759D046C2382B5800C5CAA9D9DF74636E1FE0671DF237CD2AC771D56436D_cppui_modular256, 0x39AE43E4BE7084DB9EFDCA61204B29929A2C242605FEFE95F41F0D5DD286DA38_cppui_modular256}}, - {{0x18819B168F851F614CF0DD2F4C30030C1267688C1723BF68293324770AB41DE3_cppui_modular256, 0x1E03B384B597E7A9F17F1B7E36A0B1179291AD17F30C8871379318BADEC65C8C_cppui_modular256}}, - {{0x12D8B90170966FA0956A13A852F52EA682F50A66738527AD24827CAC02A7EDF0_cppui_modular256, 0x3566FB28328CAA573331BECEAE6CED6440F32CD9191FA3DFC7A97BBC681DFF30_cppui_modular256}}, + {{0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_bigui256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_bigui256}}, + {{0x35AF80504B4DBF58CE3535F3E159BD407695088EFBF1EF56D4597A7F1CBEF531_bigui256, 0x2D36B9BCB23702DF2F4A2C9E60ABBB81C2BE261D227AF025DDDE4FFF354727CB_bigui256}}, + {{0x1CFDC82F8279850B957D0BDE2A188AD5060D80A97EF8B4E56CD17CFE1067CBD9_bigui256, 0x2863D1D7D5EFC2155B2BCCB849B6EA6738E2705A4DC63115045B797E2CFA6511_bigui256}}, + {{0x262ABA0787800EF4CBD18688A534659AB77861C373006A4E0E42BC06D85F9E79_bigui256, 0x150A55D182F3B621B10774BD11C8B8198048DEE7C535DDD08992B41928E45DC3_bigui256}}, + {{0x0C51759D046C2382B5800C5CAA9D9DF74636E1FE0671DF237CD2AC771D56436D_bigui256, 0x39AE43E4BE7084DB9EFDCA61204B29929A2C242605FEFE95F41F0D5DD286DA38_bigui256}}, + {{0x18819B168F851F614CF0DD2F4C30030C1267688C1723BF68293324770AB41DE3_bigui256, 0x1E03B384B597E7A9F17F1B7E36A0B1179291AD17F30C8871379318BADEC65C8C_bigui256}}, + {{0x12D8B90170966FA0956A13A852F52EA682F50A66738527AD24827CAC02A7EDF0_bigui256, 0x3566FB28328CAA573331BECEAE6CED6440F32CD9191FA3DFC7A97BBC681DFF30_bigui256}}, }; for(int i = 0; i < index.sigma_comm.size(); ++i){ @@ -350,29 +350,29 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { } index.complete_add_comm.unshifted = { - {0x0A4A178180BC6805CE9A4EBD32096780850C51CCC28D177FD967545D2B258B7F_cppui_modular256, - 0x0FEE8D807491B9385C499C3FC4048B076FFA334C5D14E19FFCF4A3AA26391F91_cppui_modular256} + {0x0A4A178180BC6805CE9A4EBD32096780850C51CCC28D177FD967545D2B258B7F_bigui256, + 0x0FEE8D807491B9385C499C3FC4048B076FFA334C5D14E19FFCF4A3AA26391F91_bigui256} }; index.shift = { - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256, - 0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3_cppui_modular256, - 0x0033BFCF8112720332825BD83D44D92CADC0C30466E8102C419C30FA2665695A_cppui_modular256, - 0x0087F4BB29954E16960F2DE3A1FA5AC7B62146DB348C7C9F0E8BF10B2C8E8411_cppui_modular256, - 0x00EC71373B9F6CF15ED1949647365DB60B2E26C3A8ABBA5BB06BF23E9DBE5893_cppui_modular256, - 0x00F39197CC4C55084C68D31F64F1A172406B585CB86445F00C248C721C496D10_cppui_modular256, - 0x00B8DD039799DBEE12D2E6A4299A83E067353C0143C5DFD203190C239159EEA3_cppui_modular256, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256, + 0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3_bigui256, + 0x0033BFCF8112720332825BD83D44D92CADC0C30466E8102C419C30FA2665695A_bigui256, + 0x0087F4BB29954E16960F2DE3A1FA5AC7B62146DB348C7C9F0E8BF10B2C8E8411_bigui256, + 0x00EC71373B9F6CF15ED1949647365DB60B2E26C3A8ABBA5BB06BF23E9DBE5893_bigui256, + 0x00F39197CC4C55084C68D31F64F1A172406B585CB86445F00C248C721C496D10_bigui256, + 0x00B8DD039799DBEE12D2E6A4299A83E067353C0143C5DFD203190C239159EEA3_bigui256, }; index.zkpm = { - 0x09A34F1BBA67AF009244016BF35AC10B2E69F4D0CCD1D4DC3224A0EB1B74A8B0_cppui_modular256, - 0x0C8A48BFC715E34B967F6C3AC31D85365479365291235AEFB8FD6316EE248595_cppui_modular256, - 0x3F325BBF0B081782F305686C3A74163236DBB334B393D9B7AF4B577B6CE6EDBB_cppui_modular256, - 0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256, + 0x09A34F1BBA67AF009244016BF35AC10B2E69F4D0CCD1D4DC3224A0EB1B74A8B0_bigui256, + 0x0C8A48BFC715E34B967F6C3AC31D85365479365291235AEFB8FD6316EE248595_bigui256, + 0x3F325BBF0B081782F305686C3A74163236DBB334B393D9B7AF4B577B6CE6EDBB_bigui256, + 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256, }; - index.w = 0x3DFB4B65F2CDFB71DF8EAFB896CAE55375F24670939CE3BD5EBCB1BB6D3421E9_cppui_modular256; - index.endo = 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_cppui_modular256; + index.w = 0x3DFB4B65F2CDFB71DF8EAFB896CAE55375F24670939CE3BD5EBCB1BB6D3421E9_bigui256; + index.endo = 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui256; index.linearization.constant_term = { PolishToken(Variable(Column(gate_type::Poseidon))), // @@ -665,7 +665,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 3), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -673,7 +673,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 6), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -681,7 +681,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -689,7 +689,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 5), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -697,7 +697,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -758,14 +758,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -773,14 +773,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -788,14 +788,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -803,14 +803,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -818,14 +818,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -833,14 +833,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -848,14 +848,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -863,14 +863,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_cppui_modular256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_cppui_modular256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_cppui_modular256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -886,112 +886,112 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 0), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 2), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 3), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 4), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 5), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 6), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 7), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), @@ -1002,15 +1002,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 3), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1019,15 +1019,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1036,15 +1036,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 5), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1053,15 +1053,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 6), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1070,15 +1070,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1087,15 +1087,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 8), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1104,15 +1104,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 9), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1121,15 +1121,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_cppui_modular256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1140,7 +1140,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1179,10 +1179,10 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::EndoCoefficient), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(token_type::Mul), PolishToken(token_type::Add), @@ -1196,7 +1196,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1256,10 +1256,10 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::EndoCoefficient), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(token_type::Mul), PolishToken(token_type::Add), @@ -1273,7 +1273,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 14), CurrOrNext:: Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1359,7 +1359,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1367,7 +1367,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1375,7 +1375,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 2), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1383,7 +1383,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 8), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1394,7 +1394,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Sub), PolishToken(token_type::Store), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Sub), PolishToken(token_type::Sub), @@ -1423,7 +1423,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Load, 1), PolishToken(token_type::Sub), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Sub), PolishToken(token_type::Load, 0), @@ -1485,14 +1485,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { })), std::make_tuple(Column(column_type::Coefficient, 0), std::vector>({ PolishToken(Variable(Column(gate_type::Poseidon))), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), })), std::make_tuple(Column(column_type::Coefficient, 1), std::vector>({ PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1540,7 +1540,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1617,7 +1617,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 3), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 3), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1694,7 +1694,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 4), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 4), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1771,7 +1771,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 5), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 5), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1848,7 +1848,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_cppui_modular256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1910,7 +1910,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1918,7 +1918,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1926,7 +1926,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 9), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_cppui_modular256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp index 7ce23a565a..36316db906 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp @@ -52,10 +52,10 @@ BOOST_AUTO_TEST_CASE(pickles_kimchi_to_field_vesta_test) { using curve_type = algebra::curves::vesta; using field_type = curve_type::scalar_field_type; - typename field_type::value_type endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_cppui_modular256; - std::vector inputs = {0, 0x00000000000000000000000000000000347936BC4A445B92516BE8A8EAB7D2B9_cppui_modular256}; - std::vector expected_results = {0x1955ABB8AF556360261C069D1C8AEB8444BD73BE7B3163ADBE2E2610A9922C78_cppui_modular256, - 0x01FD131CD87BB2DDCF0D446F7E0EEBCDCE145EE5CA5C7851FC5D22AC186BDDBB_cppui_modular256}; + typename field_type::value_type endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui256; + std::vector inputs = {0, 0x00000000000000000000000000000000347936BC4A445B92516BE8A8EAB7D2B9_bigui256}; + std::vector expected_results = {0x1955ABB8AF556360261C069D1C8AEB8444BD73BE7B3163ADBE2E2610A9922C78_bigui256, + 0x01FD131CD87BB2DDCF0D446F7E0EEBCDCE145EE5CA5C7851FC5D22AC186BDDBB_bigui256}; for (std::size_t i = 0; i < inputs.size(); i++) { typename field_type::value_type res = to_field(endo_r, inputs[i]); BOOST_CHECK(res == expected_results[i]); diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp index d4a659958d..ed31f4745e 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp @@ -22,10 +22,10 @@ BOOST_AUTO_TEST_CASE(pickles_kimchi_to_field_test_case_1){ zk::snark::group_map map; - field_type::value_type value = field_type::value_type(0x2060BAF54AE1E0CE2BA2AA4B7629A41FE5768E1BAB024882BAC729FF5747F100_cppui_modular256); + field_type::value_type value = field_type::value_type(0x2060BAF54AE1E0CE2BA2AA4B7629A41FE5768E1BAB024882BAC729FF5747F100_bigui256); auto result = map.to_group(value); - BOOST_CHECK(result.X == field_type::value_type(0x344483C5EC8A0B6619CD78B13B20A32E68064ACC43DA911EF5FDD8DF8EB15CA9_cppui_modular256)); - BOOST_CHECK(result.Y == field_type::value_type(0x184C418DCCDD4751FF8F2FA1ADC1E617F8BAC4FDA7C177B42F3863A957B7EAA8_cppui_modular256)); + BOOST_CHECK(result.X == field_type::value_type(0x344483C5EC8A0B6619CD78B13B20A32E68064ACC43DA911EF5FDD8DF8EB15CA9_bigui256)); + BOOST_CHECK(result.Y == field_type::value_type(0x184C418DCCDD4751FF8F2FA1ADC1E617F8BAC4FDA7C177B42F3863A957B7EAA8_bigui256)); } diff --git a/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp b/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp index 8295b5444f..5b0e56ac39 100644 --- a/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp +++ b/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp @@ -66,50 +66,50 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[15]; g[0] = group_type::value_type( - 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_cppui_modular256, - 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_cppui_modular256); + 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_bigui256, + 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_bigui256); g[1] = group_type::value_type( - 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_cppui_modular256, - 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_cppui_modular256); + 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_bigui256, + 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_bigui256); g[2] = group_type::value_type( - 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_cppui_modular256, - 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_cppui_modular256); + 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_bigui256, + 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_bigui256); g[3] = group_type::value_type( - 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_cppui_modular256, - 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_cppui_modular256); + 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_bigui256, + 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_bigui256); g[4] = group_type::value_type( - 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_cppui_modular256, - 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_cppui_modular256); + 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_bigui256, + 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_bigui256); g[5] = group_type::value_type( - 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_cppui_modular256, - 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_cppui_modular256); + 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_bigui256, + 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_bigui256); g[6] = group_type::value_type( - 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_cppui_modular256, - 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_cppui_modular256); + 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_bigui256, + 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_bigui256); g[7] = group_type::value_type( - 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_cppui_modular256, - 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_cppui_modular256); + 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_bigui256, + 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_bigui256); g[8] = group_type::value_type( - 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_cppui_modular256, - 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_cppui_modular256); + 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_bigui256, + 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_bigui256); g[9] = group_type::value_type( - 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_cppui_modular256, - 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_cppui_modular256); + 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_bigui256, + 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_bigui256); g[10] = group_type::value_type( - 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_cppui_modular256, - 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_cppui_modular256); + 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_bigui256, + 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_bigui256); g[11] = group_type::value_type( - 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_cppui_modular256, - 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_cppui_modular256); + 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_bigui256, + 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_bigui256); g[12] = group_type::value_type( - 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_cppui_modular256, - 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_cppui_modular256); + 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_bigui256, + 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_bigui256); g[13] = group_type::value_type( - 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_cppui_modular256, - 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_cppui_modular256); + 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_bigui256, + 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_bigui256); g[14] = group_type::value_type( - 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_cppui_modular256, - 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_cppui_modular256); + 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_bigui256, + 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_bigui256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -117,7 +117,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } auto check1 = spng.challenge(); - scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_cppui_modular256; + scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_bigui256; BOOST_CHECK(check1 == chal1); } @@ -126,50 +126,50 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[15]; g[0] = group_type::value_type( - 0x0A0C2BD5D6D122644F29A3AD675F1EB7BA01AE9D9EBC323086E3BDED095987D4_cppui_modular256, - 0x273211F773739D39B20CCD4D5EB77479115769B4742F2FB03A4F3ED1A1EC22D4_cppui_modular256); + 0x0A0C2BD5D6D122644F29A3AD675F1EB7BA01AE9D9EBC323086E3BDED095987D4_bigui256, + 0x273211F773739D39B20CCD4D5EB77479115769B4742F2FB03A4F3ED1A1EC22D4_bigui256); g[1] = group_type::value_type( - 0x220593B5A19D0A67847BBF80DB81F49D6CF8F9591B9E8C9A2F32670DDA1D8AC6_cppui_modular256, - 0x07211D7F83661CB78042848839E2DBD04B101F157A7DA31B30A3DB8886E9B7B0_cppui_modular256); + 0x220593B5A19D0A67847BBF80DB81F49D6CF8F9591B9E8C9A2F32670DDA1D8AC6_bigui256, + 0x07211D7F83661CB78042848839E2DBD04B101F157A7DA31B30A3DB8886E9B7B0_bigui256); g[2] = group_type::value_type( - 0x02D77AF331102A224026E24CA18EE6B7B0D5D7709527D066F1FE5FABE4CE85D1_cppui_modular256, - 0x0845660D92C66C0462CF57ADA39E558E0AD9ECC2359F0332901B1D2FE98A10D6_cppui_modular256); + 0x02D77AF331102A224026E24CA18EE6B7B0D5D7709527D066F1FE5FABE4CE85D1_bigui256, + 0x0845660D92C66C0462CF57ADA39E558E0AD9ECC2359F0332901B1D2FE98A10D6_bigui256); g[3] = group_type::value_type( - 0x0639954FFC6E0B2CCD1929139BE3105E15252BC2FA0A36024455525E659B7D88_cppui_modular256, - 0x15A3400CC3658E630DDBAA76288D06ADFC22DA21C84575D444D633F8DA6DC932_cppui_modular256); + 0x0639954FFC6E0B2CCD1929139BE3105E15252BC2FA0A36024455525E659B7D88_bigui256, + 0x15A3400CC3658E630DDBAA76288D06ADFC22DA21C84575D444D633F8DA6DC932_bigui256); g[4] = group_type::value_type( - 0x2CB8A1CA2F4340039B7912FED931EF963E442CE9920FB0A3126E25BD83E598B6_cppui_modular256, - 0x37651EF464571CEF0E7F6DC731365AFDEF8216C6D253DD2BA93A2AFB676C04E2_cppui_modular256); + 0x2CB8A1CA2F4340039B7912FED931EF963E442CE9920FB0A3126E25BD83E598B6_bigui256, + 0x37651EF464571CEF0E7F6DC731365AFDEF8216C6D253DD2BA93A2AFB676C04E2_bigui256); g[5] = group_type::value_type( - 0x3A427D5DBECF18AB05809180B1F80E7509BCD963FBA6217E2E9A3292513F2049_cppui_modular256, - 0x1E66FA970D768A59A53D6349E03A4C8D7A93316D08572A133CDE18C2FE64AA03_cppui_modular256); + 0x3A427D5DBECF18AB05809180B1F80E7509BCD963FBA6217E2E9A3292513F2049_bigui256, + 0x1E66FA970D768A59A53D6349E03A4C8D7A93316D08572A133CDE18C2FE64AA03_bigui256); g[6] = group_type::value_type( - 0x31525F1FEC6FB330DAB5CEFEC348E7221108CF82F543DA0A8E512F3A390AE5E1_cppui_modular256, - 0x1CFCABDD222DBFD199A208CFCF97FA22627E03B878AE4FD1284AF1CCDFE48384_cppui_modular256); + 0x31525F1FEC6FB330DAB5CEFEC348E7221108CF82F543DA0A8E512F3A390AE5E1_bigui256, + 0x1CFCABDD222DBFD199A208CFCF97FA22627E03B878AE4FD1284AF1CCDFE48384_bigui256); g[7] = group_type::value_type( - 0x20BCF66A9DBB51680B5976759A9B9BABC07153E95978C3571B85DAE260326428_cppui_modular256, - 0x0FC9D105713B9FD6CC8587E84D1521BBF3737834FE5384AD76D98051619F7813_cppui_modular256); + 0x20BCF66A9DBB51680B5976759A9B9BABC07153E95978C3571B85DAE260326428_bigui256, + 0x0FC9D105713B9FD6CC8587E84D1521BBF3737834FE5384AD76D98051619F7813_bigui256); g[8] = group_type::value_type( - 0x31975A5C9BD269C5B7B115205B63A9F82C9E5FAFB789FC0E3A1D9F6D1698FCFF_cppui_modular256, - 0x2B3B885F8AB568D02E0DE2BCADDBD2D9B6EDE04AA3DEC5ABB8B53913F6EE0E35_cppui_modular256); + 0x31975A5C9BD269C5B7B115205B63A9F82C9E5FAFB789FC0E3A1D9F6D1698FCFF_bigui256, + 0x2B3B885F8AB568D02E0DE2BCADDBD2D9B6EDE04AA3DEC5ABB8B53913F6EE0E35_bigui256); g[9] = group_type::value_type( - 0x380C43392B70A7370D69266BFFC5D21825D80F34EB6DD165BF300618E0871AE7_cppui_modular256, - 0x267301AFABFE44E37DD209B0C38D662582F7CF13EE036BD77576767A70D07B88_cppui_modular256); + 0x380C43392B70A7370D69266BFFC5D21825D80F34EB6DD165BF300618E0871AE7_bigui256, + 0x267301AFABFE44E37DD209B0C38D662582F7CF13EE036BD77576767A70D07B88_bigui256); g[10] = group_type::value_type( - 0x1458C0D03E1240A352ACDF0B8858993ACF8F4D4EC4091E695C69A1F5CE30D939_cppui_modular256, - 0x1EDB145A8D6C3EDF28A85B0B7CCD77792C06AD3B787394BD0D98B3B453CE634A_cppui_modular256); + 0x1458C0D03E1240A352ACDF0B8858993ACF8F4D4EC4091E695C69A1F5CE30D939_bigui256, + 0x1EDB145A8D6C3EDF28A85B0B7CCD77792C06AD3B787394BD0D98B3B453CE634A_bigui256); g[11] = group_type::value_type( - 0x20E6522DB98F94CD90E75B74AE0F038C245BD8FACDF94652B4220B139F9A8E36_cppui_modular256, - 0x133B8A97B147D68805619B1579DD49A6B898F713DC63EBCDBD311C1B99F4CED9_cppui_modular256); + 0x20E6522DB98F94CD90E75B74AE0F038C245BD8FACDF94652B4220B139F9A8E36_bigui256, + 0x133B8A97B147D68805619B1579DD49A6B898F713DC63EBCDBD311C1B99F4CED9_bigui256); g[12] = group_type::value_type( - 0x00203F56944A4BA0454C150B4922711F88B429B8304DE1D7AFA3AF26BBAB84A5_cppui_modular256, - 0x1371005325482F9B36105AD5C548CB5B16B94B55876F22AE1B396744C76AA548_cppui_modular256); + 0x00203F56944A4BA0454C150B4922711F88B429B8304DE1D7AFA3AF26BBAB84A5_bigui256, + 0x1371005325482F9B36105AD5C548CB5B16B94B55876F22AE1B396744C76AA548_bigui256); g[13] = group_type::value_type( - 0x27E71C246DEB9222E939D9994A010A063231BA76DAE041FB38C0DEF3E5A8E92D_cppui_modular256, - 0x17A6FF821B3E498999B1500CE2C3CDFB1B44691B990585B0522B6548BDDAAA83_cppui_modular256); + 0x27E71C246DEB9222E939D9994A010A063231BA76DAE041FB38C0DEF3E5A8E92D_bigui256, + 0x17A6FF821B3E498999B1500CE2C3CDFB1B44691B990585B0522B6548BDDAAA83_bigui256); g[14] = group_type::value_type( - 0x0E86C27EF127EFDF0374B82A92D675AF7A0A02EC8A8D0EF2F9BA888427E6CFAB_cppui_modular256, - 0x2A14FA11389648694F68426BDA965E8380C1B155B277467B0C96C5EC73CE17EB_cppui_modular256); + 0x0E86C27EF127EFDF0374B82A92D675AF7A0A02EC8A8D0EF2F9BA888427E6CFAB_bigui256, + 0x2A14FA11389648694F68426BDA965E8380C1B155B277467B0C96C5EC73CE17EB_bigui256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -177,7 +177,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } typename scalar_field_type::value_type chal1( - 0x000000000000000000000000000000006586A4AF99E47C9EA8C7AD23A9E42247_cppui_modular256); + 0x000000000000000000000000000000006586A4AF99E47C9EA8C7AD23A9E42247_bigui256); BOOST_CHECK(spng.challenge() == chal1); } @@ -186,74 +186,74 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[23]; g[0] = group_type::value_type( - 0x27CCCDE41398B04DD09FAEEFB7B78767B51BB2AFC6587838D0F5A43C43A4A218_cppui_modular256, - 0x1728B31CFD99AD2D3DA948387D407DC6F61CD630758344996E05C21B89B4FF7E_cppui_modular256); + 0x27CCCDE41398B04DD09FAEEFB7B78767B51BB2AFC6587838D0F5A43C43A4A218_bigui256, + 0x1728B31CFD99AD2D3DA948387D407DC6F61CD630758344996E05C21B89B4FF7E_bigui256); g[1] = group_type::value_type( - 0x2AEF45CFCF1C7A3AB0437D11B00089226C1EAD9F65D17B02EBFBEEDD6ED8FFFB_cppui_modular256, - 0x354C1269DA294634A5E6E3C6D85F5068044BE97B9A41E47CFFD096AA3991D61F_cppui_modular256); + 0x2AEF45CFCF1C7A3AB0437D11B00089226C1EAD9F65D17B02EBFBEEDD6ED8FFFB_bigui256, + 0x354C1269DA294634A5E6E3C6D85F5068044BE97B9A41E47CFFD096AA3991D61F_bigui256); g[2] = group_type::value_type( - 0x01B21F2FBE8FADFD3CF5ADA9332F17B86DE9AF278982CC4E1E5CEDBC6ADFB5C5_cppui_modular256, - 0x11FFAFCFDE4766A966DCB1083C422E8A863BB1871EA5657E79149504BDF4C3F7_cppui_modular256); + 0x01B21F2FBE8FADFD3CF5ADA9332F17B86DE9AF278982CC4E1E5CEDBC6ADFB5C5_bigui256, + 0x11FFAFCFDE4766A966DCB1083C422E8A863BB1871EA5657E79149504BDF4C3F7_bigui256); g[3] = group_type::value_type( - 0x10B268CA02F1CCC0A9179B4DC8678E0E5E63B04D8149E8A85515B81529AD04F5_cppui_modular256, - 0x1DD587777C89876DFAF9135F7F58D4A1B37DE6F6B610043C231E23BEAAA84CF6_cppui_modular256); + 0x10B268CA02F1CCC0A9179B4DC8678E0E5E63B04D8149E8A85515B81529AD04F5_bigui256, + 0x1DD587777C89876DFAF9135F7F58D4A1B37DE6F6B610043C231E23BEAAA84CF6_bigui256); g[4] = group_type::value_type( - 0x13C0DC5466D51C6852266A549093DA4F59C1B06B278ABEBB85519F07D75972ED_cppui_modular256, - 0x109EA2EA135BC41544A6892C17E0F4202C6E8EA4E75E0202436104F1D2DD0AEC_cppui_modular256); + 0x13C0DC5466D51C6852266A549093DA4F59C1B06B278ABEBB85519F07D75972ED_bigui256, + 0x109EA2EA135BC41544A6892C17E0F4202C6E8EA4E75E0202436104F1D2DD0AEC_bigui256); g[5] = group_type::value_type( - 0x30F72723AC67E979D3956C3CDFE0662D0A515C3EA6D257F24BD292DB5E0450F4_cppui_modular256, - 0x1E021A1B6BF8A365E8251A51B430C39F3F1B9E08E3A13B5DCC641094EEA10A0E_cppui_modular256); + 0x30F72723AC67E979D3956C3CDFE0662D0A515C3EA6D257F24BD292DB5E0450F4_bigui256, + 0x1E021A1B6BF8A365E8251A51B430C39F3F1B9E08E3A13B5DCC641094EEA10A0E_bigui256); g[6] = group_type::value_type( - 0x04F8423216ED528B6ACB493F9E122F8E88BB173037489185ADED577FB35DD4C8_cppui_modular256, - 0x0568CBE5D3AF7A1DC593E160088A1438B8570A87E1A40AFF548F19AB88246186_cppui_modular256); + 0x04F8423216ED528B6ACB493F9E122F8E88BB173037489185ADED577FB35DD4C8_bigui256, + 0x0568CBE5D3AF7A1DC593E160088A1438B8570A87E1A40AFF548F19AB88246186_bigui256); g[7] = group_type::value_type( - 0x3C276D9F50711A0FADC6C9215B7FE55772D8854ED88055B61D624D50A46BF2D1_cppui_modular256, - 0x064EC8440A5C9EE94D2E495DD697031A0FFAB03AD8AF8653B083B024EC2E0947_cppui_modular256); + 0x3C276D9F50711A0FADC6C9215B7FE55772D8854ED88055B61D624D50A46BF2D1_bigui256, + 0x064EC8440A5C9EE94D2E495DD697031A0FFAB03AD8AF8653B083B024EC2E0947_bigui256); g[8] = group_type::value_type( - 0x37F0A0BFF99A231FBEB6FA8BF1BAC5D27D681D96A3BFE439526E8E36DC3F456B_cppui_modular256, - 0x05438AD52E7ED1CADD62053822F42888E4F4027A009541D26BBB8A3277747690_cppui_modular256); + 0x37F0A0BFF99A231FBEB6FA8BF1BAC5D27D681D96A3BFE439526E8E36DC3F456B_bigui256, + 0x05438AD52E7ED1CADD62053822F42888E4F4027A009541D26BBB8A3277747690_bigui256); g[9] = group_type::value_type( - 0x21EF274FA84AD809DDE6858504CB06764F23349E9AD698AB06C7C88AB9938F10_cppui_modular256, - 0x22BB862C8B9C96A349540FF9127984EDEB425FA7727A86A33F0521A36F385567_cppui_modular256); + 0x21EF274FA84AD809DDE6858504CB06764F23349E9AD698AB06C7C88AB9938F10_bigui256, + 0x22BB862C8B9C96A349540FF9127984EDEB425FA7727A86A33F0521A36F385567_bigui256); g[10] = group_type::value_type( - 0x339487A2AE045A6CE9B13B548CAF8C9580B1216EC279026A9EA12E5685745822_cppui_modular256, - 0x019050F98DE9302849A3C7F024544DD6D73FC5A174D0A1D3D7FED3E8612C0BDF_cppui_modular256); + 0x339487A2AE045A6CE9B13B548CAF8C9580B1216EC279026A9EA12E5685745822_bigui256, + 0x019050F98DE9302849A3C7F024544DD6D73FC5A174D0A1D3D7FED3E8612C0BDF_bigui256); g[11] = group_type::value_type( - 0x11FD07718FACABBFA2B0FDB6D559EECE04406643C11AE03228A6A55C0199B78F_cppui_modular256, - 0x1B3F5E6BDB2CFC18947322EB26A6A89E1CE0B3BCB79EE30245FCA702CE174390_cppui_modular256); + 0x11FD07718FACABBFA2B0FDB6D559EECE04406643C11AE03228A6A55C0199B78F_bigui256, + 0x1B3F5E6BDB2CFC18947322EB26A6A89E1CE0B3BCB79EE30245FCA702CE174390_bigui256); g[12] = group_type::value_type( - 0x3393E80C17EB7DF85CA4FAD7F6043A084773ACD3B5ED712030E4B2000FF5086F_cppui_modular256, - 0x033B8C65937B8EE3B1DC600E4BA1FD9EBD851D29590C16379BEEFB93A6F6226E_cppui_modular256); + 0x3393E80C17EB7DF85CA4FAD7F6043A084773ACD3B5ED712030E4B2000FF5086F_bigui256, + 0x033B8C65937B8EE3B1DC600E4BA1FD9EBD851D29590C16379BEEFB93A6F6226E_bigui256); g[13] = group_type::value_type( - 0x15E069E1CFD96C634513360C4BED63D8D22D32947BC156649D447BFA415D9D25_cppui_modular256, - 0x3F183AD1D896978D1AB0568AF4AA91CF413A2E011352B7692E17E5C0157619EF_cppui_modular256); + 0x15E069E1CFD96C634513360C4BED63D8D22D32947BC156649D447BFA415D9D25_bigui256, + 0x3F183AD1D896978D1AB0568AF4AA91CF413A2E011352B7692E17E5C0157619EF_bigui256); g[14] = group_type::value_type( - 0x1D42ED837696F2A777E7C1FF0436D46E96878B624ECDE039732E37AFCD409C88_cppui_modular256, - 0x1DD9078FBA2CE4F2ECE3D8374E805A0494D5F6FF85B7B1A0F255F91C79F08929_cppui_modular256); + 0x1D42ED837696F2A777E7C1FF0436D46E96878B624ECDE039732E37AFCD409C88_bigui256, + 0x1DD9078FBA2CE4F2ECE3D8374E805A0494D5F6FF85B7B1A0F255F91C79F08929_bigui256); g[15] = group_type::value_type( - 0x0A4020BF547A53FAF4DA99584BBAC1FD5D878D264A99BDF19710748597362B9B_cppui_modular256, - 0x179AFDC1C16BD21205B6B9E487799A032BE077512F18F1DD3215250F0C67FC64_cppui_modular256); + 0x0A4020BF547A53FAF4DA99584BBAC1FD5D878D264A99BDF19710748597362B9B_bigui256, + 0x179AFDC1C16BD21205B6B9E487799A032BE077512F18F1DD3215250F0C67FC64_bigui256); g[16] = group_type::value_type( - 0x363AA1A805E5BAFF2DB4BDD817E60CCC546DE456367677C5ECD48CAC2675E21F_cppui_modular256, - 0x1638CDF842DB7274F494B0DC06D9CD0B2565666F7C9E4330A21412F216227FEC_cppui_modular256); + 0x363AA1A805E5BAFF2DB4BDD817E60CCC546DE456367677C5ECD48CAC2675E21F_bigui256, + 0x1638CDF842DB7274F494B0DC06D9CD0B2565666F7C9E4330A21412F216227FEC_bigui256); g[17] = group_type::value_type( - 0x39A5B4737045A5192E159C13092B428E3AED966EE0A4DDA365F54AA14D17674E_cppui_modular256, - 0x052FBAB263CAC3E2B7C701B154F8F621A9BE5390D5795A3D7622C57536A30ACB_cppui_modular256); + 0x39A5B4737045A5192E159C13092B428E3AED966EE0A4DDA365F54AA14D17674E_bigui256, + 0x052FBAB263CAC3E2B7C701B154F8F621A9BE5390D5795A3D7622C57536A30ACB_bigui256); g[18] = group_type::value_type( - 0x3A90A56D28DC7E01F9384207FAE64E783C7A628048F155C8D14ECB1CD53C93A8_cppui_modular256, - 0x17A22DB9090348E8C363B687BF96EC25CCA79BA366F28F176097BF5474D8C32C_cppui_modular256); + 0x3A90A56D28DC7E01F9384207FAE64E783C7A628048F155C8D14ECB1CD53C93A8_bigui256, + 0x17A22DB9090348E8C363B687BF96EC25CCA79BA366F28F176097BF5474D8C32C_bigui256); g[19] = group_type::value_type( - 0x02790E33CB485684C1D1CB250DBA08DE299C27F4CD340AC03720983FBF9441BE_cppui_modular256, - 0x30022C5A33C30487C1B375625E5317A351C2E5498C27B39FB0DF2DE8E95036FA_cppui_modular256); + 0x02790E33CB485684C1D1CB250DBA08DE299C27F4CD340AC03720983FBF9441BE_bigui256, + 0x30022C5A33C30487C1B375625E5317A351C2E5498C27B39FB0DF2DE8E95036FA_bigui256); g[20] = group_type::value_type( - 0x1E98D2E550D673BF3B2CEEC098C5319494441382C9427F71557B82187A1F6E72_cppui_modular256, - 0x0D336D94B3CE0D0C30073BDE4C3044F458A598B6B50A1FD1944D29C9F681EB60_cppui_modular256); + 0x1E98D2E550D673BF3B2CEEC098C5319494441382C9427F71557B82187A1F6E72_bigui256, + 0x0D336D94B3CE0D0C30073BDE4C3044F458A598B6B50A1FD1944D29C9F681EB60_bigui256); g[21] = group_type::value_type( - 0x0E826DABA538B6DFDFBC0133093600E5FB812F513D0FCC04106CB4BD3F32FAD3_cppui_modular256, - 0x282038D2B42F1EEF395753E663C6C62523F3C22857CFD6BCFF83B1B0F130B320_cppui_modular256); + 0x0E826DABA538B6DFDFBC0133093600E5FB812F513D0FCC04106CB4BD3F32FAD3_bigui256, + 0x282038D2B42F1EEF395753E663C6C62523F3C22857CFD6BCFF83B1B0F130B320_bigui256); g[22] = group_type::value_type( - 0x0557F05F4FE835D81BF63FFA8E35B5C014E2A4828AC3E5AEE216F11F4662D8F3_cppui_modular256, - 0x22083FE3C84501B1C06B8BF9EDC10783523E080B10B41106555D3994B42DE333_cppui_modular256); + 0x0557F05F4FE835D81BF63FFA8E35B5C014E2A4828AC3E5AEE216F11F4662D8F3_bigui256, + 0x22083FE3C84501B1C06B8BF9EDC10783523E080B10B41106555D3994B42DE333_bigui256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -261,17 +261,17 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } typename scalar_field_type::value_type chal1( - 0x000000000000000000000000000000005D6E02ED382BBF4A9FF5C2C13A1F0E3D_cppui_modular256); + 0x000000000000000000000000000000005D6E02ED382BBF4A9FF5C2C13A1F0E3D_bigui256); BOOST_CHECK(spng.challenge() == chal1); typename scalar_field_type::value_type chal2( - 0x0000000000000000000000000000000058C638E4FE632BB34E9D712D10953688_cppui_modular256); + 0x0000000000000000000000000000000058C638E4FE632BB34E9D712D10953688_bigui256); BOOST_CHECK(spng.challenge() == chal2); std::vector input({g[15]}); spng.absorb_g(input); typename scalar_field_type::value_type chal3( - 0x0000000000000000000000000000000072D58D72518968134276BCBD15848A54_cppui_modular256); + 0x0000000000000000000000000000000072D58D72518968134276BCBD15848A54_bigui256); BOOST_CHECK(spng.challenge() == chal3); for (int i = 16; i < 23; ++i) { @@ -279,7 +279,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) spng.absorb_g(input); } typename scalar_field_type::value_type chal4( - 0x00000000000000000000000000000000126C2E2D31FBDDB543E4FE174987EDBC_cppui_modular256); + 0x00000000000000000000000000000000126C2E2D31FBDDB543E4FE174987EDBC_bigui256); BOOST_CHECK(spng.challenge() == chal4); } @@ -287,36 +287,36 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) fq_sponge_type spng; // fq_sponge_type2 spng2; scalar_field_type::value_type g[30] = { - 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_cppui_modular256, - 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_cppui_modular256, - 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_cppui_modular256, - 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_cppui_modular256, - 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_cppui_modular256, - 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_cppui_modular256, - 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_cppui_modular256, - 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_cppui_modular256, - 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_cppui_modular256, - 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_cppui_modular256, - 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_cppui_modular256, - 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_cppui_modular256, - 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_cppui_modular256, - 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_cppui_modular256, - 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_cppui_modular256, - 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_cppui_modular256, - 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_cppui_modular256, - 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_cppui_modular256, - 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_cppui_modular256, - 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_cppui_modular256, - 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_cppui_modular256, - 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_cppui_modular256, - 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_cppui_modular256, - 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_cppui_modular256, - 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_cppui_modular256, - 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_cppui_modular256, - 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_cppui_modular256, - 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_cppui_modular256, - 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_cppui_modular256, - 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_cppui_modular256}; + 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_bigui256, + 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_bigui256, + 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_bigui256, + 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_bigui256, + 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_bigui256, + 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_bigui256, + 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_bigui256, + 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_bigui256, + 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_bigui256, + 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_bigui256, + 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_bigui256, + 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_bigui256, + 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_bigui256, + 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_bigui256, + 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_bigui256, + 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_bigui256, + 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_bigui256, + 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_bigui256, + 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_bigui256, + 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_bigui256, + 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_bigui256, + 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_bigui256, + 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_bigui256, + 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_bigui256, + 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_bigui256, + 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_bigui256, + 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_bigui256, + 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_bigui256, + 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_bigui256, + 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_bigui256}; for (int i = 0; i < 30; ++i) { std::vector input({g[i]}); @@ -324,7 +324,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } auto check1 = spng.challenge(); - scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_cppui_modular256; + scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_bigui256; BOOST_CHECK(check1 == chal1); } @@ -338,13 +338,13 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) using fq_sponge_type = zk::transcript::DefaultFqSponge; std::vector input_values = { - 0x3AA52C0B2BC507CEC6CEEDBFD2C02B9C74CFA1043847011BA789D6F871201A52_cppui_modular256}; + 0x3AA52C0B2BC507CEC6CEEDBFD2C02B9C74CFA1043847011BA789D6F871201A52_bigui256}; fq_sponge_type spng; spng.absorb_fr(input_values); base_field_type::value_type real_value = spng.challenge_fq(); algebra::fields::detail::element_fp> real_inputs( - 0x1D52960595E283E7636776DFE96015CE3A67D0821C23808DD3C4EB7C38900D29_cppui_modular256); + 0x1D52960595E283E7636776DFE96015CE3A67D0821C23808DD3C4EB7C38900D29_bigui256); fq_sponge_type spng_real; spng_real.sponge.absorb(real_inputs); base_field_type::value_type expected_value = spng_real.challenge_fq(); @@ -354,132 +354,132 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) BOOST_AUTO_TEST_CASE(zk_sponge_test_real_case) { fq_sponge_type spng; - spng.absorb_fr(value_type(0x1B76B0452DBEE0301162D6D04350DDC0361222FEF7467C285DB383D51E043D83_cppui_modular256)); + spng.absorb_fr(value_type(0x1B76B0452DBEE0301162D6D04350DDC0361222FEF7467C285DB383D51E043D83_bigui256)); BOOST_CHECK( spng.challenge_fq() == base_field_type::value_type( - 0x23A5199486C064AC4CB9D8BBD59B20EB2A2B1A3CA77DFA6E9DAB7C387D270E23_cppui_modular256)); + 0x23A5199486C064AC4CB9D8BBD59B20EB2A2B1A3CA77DFA6E9DAB7C387D270E23_bigui256)); spng.absorb_g(group_type::value_type( - 0x1757CFBC6F79F5DA18CAD5BFE889D8BB11A04BEFD2F5F4ECA71CDF1541FD6A10_cppui_modular256, - 0x3440D97DA37051ACEA71310B6A9519E8989E86DE57D324745616A3BA065F2272_cppui_modular256)); + 0x1757CFBC6F79F5DA18CAD5BFE889D8BB11A04BEFD2F5F4ECA71CDF1541FD6A10_bigui256, + 0x3440D97DA37051ACEA71310B6A9519E8989E86DE57D324745616A3BA065F2272_bigui256)); spng.absorb_g(group_type::value_type( - 0x2D47BB4464D0A3788F10C5D70FC35BF750246155649C6B6690F657D372CCE6FF_cppui_modular256, - 0x1A86D626C558F0BC02FA5F89A591DD8392DA153EB457611BA1B3A40AE3E68BD8_cppui_modular256)); + 0x2D47BB4464D0A3788F10C5D70FC35BF750246155649C6B6690F657D372CCE6FF_bigui256, + 0x1A86D626C558F0BC02FA5F89A591DD8392DA153EB457611BA1B3A40AE3E68BD8_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000005A694EDCBC5D63D83F6E14016563BD69_cppui_modular256)); + value_type(0x000000000000000000000000000000005A694EDCBC5D63D83F6E14016563BD69_bigui256)); spng.absorb_g(group_type::value_type( - 0x3FCEA348F31BE8357433DBC714AAB303EE1477D6BCFFEC816D45199D004EA0EB_cppui_modular256, - 0x37851472B67A5A35A8F54A001659CB995C7C501CEFF4BE5448D7250508A14FBC_cppui_modular256)); + 0x3FCEA348F31BE8357433DBC714AAB303EE1477D6BCFFEC816D45199D004EA0EB_bigui256, + 0x37851472B67A5A35A8F54A001659CB995C7C501CEFF4BE5448D7250508A14FBC_bigui256)); spng.absorb_g(group_type::value_type( - 0x32ACB0BD9286BDE74B949BEFA7224706890479EF2B3AE5BD11B977910D1B7478_cppui_modular256, - 0x2FB122CE2BFC57B5FF1D2CDB673D3328B6770C065E8253E90980A283AF8EBB15_cppui_modular256)); + 0x32ACB0BD9286BDE74B949BEFA7224706890479EF2B3AE5BD11B977910D1B7478_bigui256, + 0x2FB122CE2BFC57B5FF1D2CDB673D3328B6770C065E8253E90980A283AF8EBB15_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000063597BF8593B53D1BEA983CAE5AA0140_cppui_modular256)); + value_type(0x0000000000000000000000000000000063597BF8593B53D1BEA983CAE5AA0140_bigui256)); spng.absorb_g(group_type::value_type( - 0x1012AEEE4AB904D4A3B47AACDD04BD8D119B3A8015F76DF7F24AD13B7C06BB90_cppui_modular256, - 0x03428FD045BAA622B9F7EEB54E8321D96EE1CC04CEFB26F1AEB3D6D40A4DED20_cppui_modular256)); + 0x1012AEEE4AB904D4A3B47AACDD04BD8D119B3A8015F76DF7F24AD13B7C06BB90_bigui256, + 0x03428FD045BAA622B9F7EEB54E8321D96EE1CC04CEFB26F1AEB3D6D40A4DED20_bigui256)); spng.absorb_g(group_type::value_type( - 0x184F8EA7DFF1970F52E5A75BC74D8F0FAF76BEB2C56A42D44CB96CCCA895870A_cppui_modular256, - 0x110904EE3F6325E6D3D591FC6D1EAE61D43ACDB54357A7F76AD4FD6DFA59FCB8_cppui_modular256)); + 0x184F8EA7DFF1970F52E5A75BC74D8F0FAF76BEB2C56A42D44CB96CCCA895870A_bigui256, + 0x110904EE3F6325E6D3D591FC6D1EAE61D43ACDB54357A7F76AD4FD6DFA59FCB8_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000027ABB6B27E12348F52A181F17FE29F41_cppui_modular256)); + value_type(0x0000000000000000000000000000000027ABB6B27E12348F52A181F17FE29F41_bigui256)); spng.absorb_g(group_type::value_type( - 0x22F5F9CD40DE3BA2268208BAC69D839A0EFF28C445FFC36C21EA64FCC62A7FC5_cppui_modular256, - 0x35FF2C0CAB2901382134A1862322C212A143237419EE758AE4CB6B02FF1BA141_cppui_modular256)); + 0x22F5F9CD40DE3BA2268208BAC69D839A0EFF28C445FFC36C21EA64FCC62A7FC5_bigui256, + 0x35FF2C0CAB2901382134A1862322C212A143237419EE758AE4CB6B02FF1BA141_bigui256)); spng.absorb_g(group_type::value_type( - 0x1E0518490D0DD242420C8786B744E444FF09E2ECB44217B3FC2323BF739BE8A0_cppui_modular256, - 0x00A9F106114217ECA4313604AA123351DEC9EE0B6C42624270CA9390D34DD0F1_cppui_modular256)); + 0x1E0518490D0DD242420C8786B744E444FF09E2ECB44217B3FC2323BF739BE8A0_bigui256, + 0x00A9F106114217ECA4313604AA123351DEC9EE0B6C42624270CA9390D34DD0F1_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000000B79378485D93E3A44F4E3EAEF25D3DA_cppui_modular256)); + value_type(0x000000000000000000000000000000000B79378485D93E3A44F4E3EAEF25D3DA_bigui256)); spng.absorb_g(group_type::value_type( - 0x14309CF280C4C82C856B17A808A2E5A583DA7EEB1C385F3B4EB12039EA76AE83_cppui_modular256, - 0x241285C939BD25A6CA34D6F347596BD110FE55AF173A0EBBFB659630A4C96B99_cppui_modular256)); + 0x14309CF280C4C82C856B17A808A2E5A583DA7EEB1C385F3B4EB12039EA76AE83_bigui256, + 0x241285C939BD25A6CA34D6F347596BD110FE55AF173A0EBBFB659630A4C96B99_bigui256)); spng.absorb_g(group_type::value_type( - 0x09DA297567A8850406E640FF07BC76CCB9A4FA5C11F328EF03708414CBC1F4B9_cppui_modular256, - 0x3BE674505BBBD0F9ED806218258E029084BAECD51ABE6F9264E80C1899307ED6_cppui_modular256)); + 0x09DA297567A8850406E640FF07BC76CCB9A4FA5C11F328EF03708414CBC1F4B9_bigui256, + 0x3BE674505BBBD0F9ED806218258E029084BAECD51ABE6F9264E80C1899307ED6_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000003CBCF6C44411CE451A33BAB179026502_cppui_modular256)); + value_type(0x000000000000000000000000000000003CBCF6C44411CE451A33BAB179026502_bigui256)); spng.absorb_g(group_type::value_type( - 0x1DA94235A1E998434A93578409C4EB18BD82A01EC5A25E5D7C7C7C5E001F18FB_cppui_modular256, - 0x04A566923D712C1CEBF2DBE553DD185F8FDACF604E50948925264D3A49C037EA_cppui_modular256)); + 0x1DA94235A1E998434A93578409C4EB18BD82A01EC5A25E5D7C7C7C5E001F18FB_bigui256, + 0x04A566923D712C1CEBF2DBE553DD185F8FDACF604E50948925264D3A49C037EA_bigui256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000072FF5A26FAF972660330A5D0CC5C4700_cppui_modular256)); + value_type(0x0000000000000000000000000000000072FF5A26FAF972660330A5D0CC5C4700_bigui256)); } BOOST_AUTO_TEST_CASE(zk_fr_sponge_test_real_case) { // using value_type = base_field_type::value_type; fr_sponge_type spng; - spng.absorb(value_type(0x0ACB65E0765F80498D643313EAAEBFBC7899766A4A337EAF61261344E8C2C551_cppui_modular256)); - - spng.absorb(value_type(0x1480D3E4FD095CEC3688F88B105EE6F2365DCFAAA28CCB6B87DAB7E71E58010B_cppui_modular256)); - spng.absorb(value_type(0x0C2F522FB163AE4A8D2890C57ABF95E55EF7DDD27A928EFAD0D3FA447D40BC29_cppui_modular256)); - spng.absorb(value_type(0x3F0169364239FF2352BFFEF6D2A206A6DC8FAA526C51EB51FC7610F6E73DFAE5_cppui_modular256)); - spng.absorb(value_type(0x2BCBED001BA14933A1766C68E09BF19C133AB20B87A9D0DB68321A99C4C7A157_cppui_modular256)); - spng.absorb(value_type(0x1430DC77EBF0048A4E26DDB817DD34D3F253AA9894C7D442B8BC06C7683D0188_cppui_modular256)); - spng.absorb(value_type(0x3B79EBE49FAEF6F123C168CF484296A84186EF1FB9FFFA528B0AAC0761F535AD_cppui_modular256)); - spng.absorb(value_type(0x16C6D43CFFB252215D05E1A05DBA2EEAADB3FAAF88B8AABDBD4E8860B9623530_cppui_modular256)); - spng.absorb(value_type(0x1C0801C94EA28AAD68CEA9C9524106D39DC1A3491435A23D35EEBE56DB3AB116_cppui_modular256)); - spng.absorb(value_type(0x21545E083F1282D939751D5E0D4EF173C7528C9E38349FE5E02BAB4686B542D4_cppui_modular256)); - spng.absorb(value_type(0x2E8F53F919EBB22022424A175A051F6FBDB2B57E06E1AC8A8201FBDD02CEE2FD_cppui_modular256)); - spng.absorb(value_type(0x1B5A53763A06BFAF8BAAF566FE885CD31355B2AC4F0F04B13F05610DE1EBAB5E_cppui_modular256)); - spng.absorb(value_type(0x212CC53B694BA1B3ED2D6C514B97325D62BF301F18E76B7DF94F04B7875C7E64_cppui_modular256)); - spng.absorb(value_type(0x22C1E6932B0336B13262867483DEE4C6B8E798C24F4245051254A64C61EAC604_cppui_modular256)); - spng.absorb(value_type(0x356428F289E597185A60ED494351FF93B5802480DC375E4B2C6ECAB816B69524_cppui_modular256)); - spng.absorb(value_type(0x08066B51E8C7F77F825F541E02C51A608FD217435FDF7E75AD5BBE36CB826443_cppui_modular256)); - spng.absorb(value_type(0x1AA8ADB147AA57E6AA5DBAF2C238352D8C6AA301ECD497BBC775E2A2804E3363_cppui_modular256)); - spng.absorb(value_type(0x03D8C35D2E1466E8514E20A8E658F4E2B1116AB123F7BF53F9A1C7376F788EB1_cppui_modular256)); - spng.absorb(value_type(0x05EDDC1E6C268DF398F068F06C51794D6F672E27FB800DFF6C5C35E5C3D84207_cppui_modular256)); - spng.absorb(value_type(0x1B03A1DBEA987367FDEF97CC27F7441C4845E93AD1583167DA4A1A9CCFFB1E71_cppui_modular256)); - spng.absorb(value_type(0x11347E33DF1631D59D66F6149D99DD22FD23B185D7D89CFE0909877C494D7916_cppui_modular256)); - spng.absorb(value_type(0x0E1372B72364C37883171F80BC89F2AC7043464C8C30E1D2B5D94105035A6C6E_cppui_modular256)); - spng.absorb(value_type(0x336A5683971A09A68D33D77B41947F8CAFFE3923190B51D443E515761A32889B_cppui_modular256)); + spng.absorb(value_type(0x0ACB65E0765F80498D643313EAAEBFBC7899766A4A337EAF61261344E8C2C551_bigui256)); + + spng.absorb(value_type(0x1480D3E4FD095CEC3688F88B105EE6F2365DCFAAA28CCB6B87DAB7E71E58010B_bigui256)); + spng.absorb(value_type(0x0C2F522FB163AE4A8D2890C57ABF95E55EF7DDD27A928EFAD0D3FA447D40BC29_bigui256)); + spng.absorb(value_type(0x3F0169364239FF2352BFFEF6D2A206A6DC8FAA526C51EB51FC7610F6E73DFAE5_bigui256)); + spng.absorb(value_type(0x2BCBED001BA14933A1766C68E09BF19C133AB20B87A9D0DB68321A99C4C7A157_bigui256)); + spng.absorb(value_type(0x1430DC77EBF0048A4E26DDB817DD34D3F253AA9894C7D442B8BC06C7683D0188_bigui256)); + spng.absorb(value_type(0x3B79EBE49FAEF6F123C168CF484296A84186EF1FB9FFFA528B0AAC0761F535AD_bigui256)); + spng.absorb(value_type(0x16C6D43CFFB252215D05E1A05DBA2EEAADB3FAAF88B8AABDBD4E8860B9623530_bigui256)); + spng.absorb(value_type(0x1C0801C94EA28AAD68CEA9C9524106D39DC1A3491435A23D35EEBE56DB3AB116_bigui256)); + spng.absorb(value_type(0x21545E083F1282D939751D5E0D4EF173C7528C9E38349FE5E02BAB4686B542D4_bigui256)); + spng.absorb(value_type(0x2E8F53F919EBB22022424A175A051F6FBDB2B57E06E1AC8A8201FBDD02CEE2FD_bigui256)); + spng.absorb(value_type(0x1B5A53763A06BFAF8BAAF566FE885CD31355B2AC4F0F04B13F05610DE1EBAB5E_bigui256)); + spng.absorb(value_type(0x212CC53B694BA1B3ED2D6C514B97325D62BF301F18E76B7DF94F04B7875C7E64_bigui256)); + spng.absorb(value_type(0x22C1E6932B0336B13262867483DEE4C6B8E798C24F4245051254A64C61EAC604_bigui256)); + spng.absorb(value_type(0x356428F289E597185A60ED494351FF93B5802480DC375E4B2C6ECAB816B69524_bigui256)); + spng.absorb(value_type(0x08066B51E8C7F77F825F541E02C51A608FD217435FDF7E75AD5BBE36CB826443_bigui256)); + spng.absorb(value_type(0x1AA8ADB147AA57E6AA5DBAF2C238352D8C6AA301ECD497BBC775E2A2804E3363_bigui256)); + spng.absorb(value_type(0x03D8C35D2E1466E8514E20A8E658F4E2B1116AB123F7BF53F9A1C7376F788EB1_bigui256)); + spng.absorb(value_type(0x05EDDC1E6C268DF398F068F06C51794D6F672E27FB800DFF6C5C35E5C3D84207_bigui256)); + spng.absorb(value_type(0x1B03A1DBEA987367FDEF97CC27F7441C4845E93AD1583167DA4A1A9CCFFB1E71_bigui256)); + spng.absorb(value_type(0x11347E33DF1631D59D66F6149D99DD22FD23B185D7D89CFE0909877C494D7916_bigui256)); + spng.absorb(value_type(0x0E1372B72364C37883171F80BC89F2AC7043464C8C30E1D2B5D94105035A6C6E_bigui256)); + spng.absorb(value_type(0x336A5683971A09A68D33D77B41947F8CAFFE3923190B51D443E515761A32889B_bigui256)); // BOOST_CHECK(spng.challenge().value() == - // value_type(0x0000000000000000000000000000000000F9B1BCD2BB1DE25807BE9313410D43_cppui_modular256)); - - spng.absorb(value_type(0x1635A182C3B5623D5E7CF31D244F389FB478B0612B27937A39D48B473DB68931_cppui_modular256)); - spng.absorb(value_type(0x144FF7F30B8C75C60E63614EA792F9A41E41C2DBE40F816A602160960C071F56_cppui_modular256)); - spng.absorb(value_type(0x114768369E43EA7A13DE72AC855AE7D31DC52B34EB45BB96EA1BDFF54FEC4AB8_cppui_modular256)); - spng.absorb(value_type(0x006259A5F4A9A82296077396D476F9E59392BDDA93E63B9A582EF9BBA452A7A2_cppui_modular256)); - spng.absorb(value_type(0x3F9EBB3D514729A24B0C87FB434FC043F48195FA45E510BA5817F0ED05DED76B_cppui_modular256)); - spng.absorb(value_type(0x06F0CA9962E207949F85C22ADCBE8F27E632D14B843F2C65E264752B6100049E_cppui_modular256)); - spng.absorb(value_type(0x3885B6A574C4B6B89867EE499534E0F4937C7D71BA724A857F5E7F797059E879_cppui_modular256)); - spng.absorb(value_type(0x0554E97666ABA1659D7D107E3F709F546625481B1A5684BE24EFE9B3CBBC300F_cppui_modular256)); - spng.absorb(value_type(0x06C748D2C049B08C50633EBF7F7A0C68A03677CE382BF6697B7D285F30215616_cppui_modular256)); - spng.absorb(value_type(0x0B252004A6768951624E56F1D98B1DDB006B2284FE1C08B258D95B92BF40266F_cppui_modular256)); - spng.absorb(value_type(0x029236F173E5278B30CB9DAD8C87CEDE865AD1293B9BBF991F1743E8D1FD6638_cppui_modular256)); - spng.absorb(value_type(0x28C63DB702FFC629457818259603A154886B11D1D1FB7065037F51212E5BE2D3_cppui_modular256)); - spng.absorb(value_type(0x0219DC4D947F1109C90CD6C0112559A5D04528C2B264062A98DC5E7BBF85F269_cppui_modular256)); - spng.absorb(value_type(0x246CB73F3BB0A9AC5FA65DED8A1617E0CB8231146F0DF67467ED5E85242DF2B6_cppui_modular256)); - spng.absorb(value_type(0x06BF9230E2E2424EF63FE51B0306D61BA478A06A226AEDA29DD12DA188D5F302_cppui_modular256)); - spng.absorb(value_type(0x29126D228A13DAF18CD96C487BF794569FB5A8BBDF14DDEC6CE22DAAED7DF34F_cppui_modular256)); - spng.absorb(value_type(0x069DE7D0EBB1985B05DAB9E13348C12530D374BAD474C76C4AB9FAC8EB557332_cppui_modular256)); - spng.absorb(value_type(0x177B2B5F39976BE667F5D6768480F1555F52395613AF100529C99844DA28DCC9_cppui_modular256)); - spng.absorb(value_type(0x2941C2A82AC0067D3DD6A2C47EDD675D5B7BA071414A8324BA4CFAA1816B163F_cppui_modular256)); - spng.absorb(value_type(0x05EA2B93EF3D2CD3E8DDDA175F2446A8390E35219DFBA39111C8CDBFA3038FCE_cppui_modular256)); - spng.absorb(value_type(0x15C6FB1ACD775DF5E860906CDDF37C4E6B82CDC1A67F02F129DEAE98A11620D6_cppui_modular256)); - spng.absorb(value_type(0x338D629CA1F64B37674CA7B5AF91015CA50A5D335E7076E25D9F4C230C99395D_cppui_modular256)); + // value_type(0x0000000000000000000000000000000000F9B1BCD2BB1DE25807BE9313410D43_bigui256)); + + spng.absorb(value_type(0x1635A182C3B5623D5E7CF31D244F389FB478B0612B27937A39D48B473DB68931_bigui256)); + spng.absorb(value_type(0x144FF7F30B8C75C60E63614EA792F9A41E41C2DBE40F816A602160960C071F56_bigui256)); + spng.absorb(value_type(0x114768369E43EA7A13DE72AC855AE7D31DC52B34EB45BB96EA1BDFF54FEC4AB8_bigui256)); + spng.absorb(value_type(0x006259A5F4A9A82296077396D476F9E59392BDDA93E63B9A582EF9BBA452A7A2_bigui256)); + spng.absorb(value_type(0x3F9EBB3D514729A24B0C87FB434FC043F48195FA45E510BA5817F0ED05DED76B_bigui256)); + spng.absorb(value_type(0x06F0CA9962E207949F85C22ADCBE8F27E632D14B843F2C65E264752B6100049E_bigui256)); + spng.absorb(value_type(0x3885B6A574C4B6B89867EE499534E0F4937C7D71BA724A857F5E7F797059E879_bigui256)); + spng.absorb(value_type(0x0554E97666ABA1659D7D107E3F709F546625481B1A5684BE24EFE9B3CBBC300F_bigui256)); + spng.absorb(value_type(0x06C748D2C049B08C50633EBF7F7A0C68A03677CE382BF6697B7D285F30215616_bigui256)); + spng.absorb(value_type(0x0B252004A6768951624E56F1D98B1DDB006B2284FE1C08B258D95B92BF40266F_bigui256)); + spng.absorb(value_type(0x029236F173E5278B30CB9DAD8C87CEDE865AD1293B9BBF991F1743E8D1FD6638_bigui256)); + spng.absorb(value_type(0x28C63DB702FFC629457818259603A154886B11D1D1FB7065037F51212E5BE2D3_bigui256)); + spng.absorb(value_type(0x0219DC4D947F1109C90CD6C0112559A5D04528C2B264062A98DC5E7BBF85F269_bigui256)); + spng.absorb(value_type(0x246CB73F3BB0A9AC5FA65DED8A1617E0CB8231146F0DF67467ED5E85242DF2B6_bigui256)); + spng.absorb(value_type(0x06BF9230E2E2424EF63FE51B0306D61BA478A06A226AEDA29DD12DA188D5F302_bigui256)); + spng.absorb(value_type(0x29126D228A13DAF18CD96C487BF794569FB5A8BBDF14DDEC6CE22DAAED7DF34F_bigui256)); + spng.absorb(value_type(0x069DE7D0EBB1985B05DAB9E13348C12530D374BAD474C76C4AB9FAC8EB557332_bigui256)); + spng.absorb(value_type(0x177B2B5F39976BE667F5D6768480F1555F52395613AF100529C99844DA28DCC9_bigui256)); + spng.absorb(value_type(0x2941C2A82AC0067D3DD6A2C47EDD675D5B7BA071414A8324BA4CFAA1816B163F_bigui256)); + spng.absorb(value_type(0x05EA2B93EF3D2CD3E8DDDA175F2446A8390E35219DFBA39111C8CDBFA3038FCE_bigui256)); + spng.absorb(value_type(0x15C6FB1ACD775DF5E860906CDDF37C4E6B82CDC1A67F02F129DEAE98A11620D6_bigui256)); + spng.absorb(value_type(0x338D629CA1F64B37674CA7B5AF91015CA50A5D335E7076E25D9F4C230C99395D_bigui256)); // BOOST_CHECK(spng.challenge().value() == - // value_type(0x00000000000000000000000000000000578543A9BA83C66925F5301C187FBF94_cppui_modular256)); + // value_type(0x00000000000000000000000000000000578543A9BA83C66925F5301C187FBF94_bigui256)); - spng.absorb(value_type(0x16FE1AE7F56997161DB512632BE7BFA337F47F422E0D01AF06DE298DD8C429D5_cppui_modular256)); + spng.absorb(value_type(0x16FE1AE7F56997161DB512632BE7BFA337F47F422E0D01AF06DE298DD8C429D5_bigui256)); auto squeezed_val1 = spng.challenge().value(); // std::cout << std::hex << squeezed_val1.data << '\n'; BOOST_CHECK(squeezed_val1 == - value_type(0x0000000000000000000000000000000070BB1327D20E6ADBCA0F584AEC2D4D0C_cppui_modular256)); + value_type(0x0000000000000000000000000000000070BB1327D20E6ADBCA0F584AEC2D4D0C_bigui256)); squeezed_val1 = spng.challenge().value(); // std::cout << std::hex << squeezed_val1.data << '\n'; BOOST_CHECK(squeezed_val1 == - value_type(0x0000000000000000000000000000000062BE7EB9CB6245B29DF02D68B4B51EC5_cppui_modular256)); + value_type(0x0000000000000000000000000000000062BE7EB9CB6245B29DF02D68B4B51EC5_bigui256)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/zk/test/transcript/transcript.cpp b/crypto3/libs/zk/test/transcript/transcript.cpp index 5f5535199d..7d5cfd3cbd 100644 --- a/crypto3/libs/zk/test/transcript/transcript.cpp +++ b/crypto3/libs/zk/test/transcript/transcript.cpp @@ -63,12 +63,12 @@ BOOST_AUTO_TEST_CASE(zk_transcript_manual_test) { auto ch2 = tr.challenge(); auto ch_n = tr.challenges(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_cppui_modular254).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_bigui254).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_cppui_modular254).data); + BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_bigui254).data); } BOOST_AUTO_TEST_SUITE_END() @@ -90,8 +90,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0x6296); init_blob = {}; @@ -100,8 +100,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { ch2 = tr.challenge(); ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0xC92); } @@ -115,8 +115,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_no_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0xc92); } @@ -141,20 +141,20 @@ void test_transcript(typename curve_type::base_field_type::value_type const& exp BOOST_AUTO_TEST_CASE(mnt4_keccak) { test_transcript> - (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_cppui_modular298); + (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_bigui298); } BOOST_AUTO_TEST_CASE(mnt6_keccak) { test_transcript> - (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_cppui_modular298); + (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_bigui298); } BOOST_AUTO_TEST_CASE(bls12_keccak) { test_transcript> - (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_cppui_modular381); + (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_bigui381); /* TODO: no marshalling for bls12-377 curve test_transcript> - (0x0_cppui_modular377); + (0x0_bigui377); */ } @@ -164,7 +164,7 @@ BOOST_AUTO_TEST_CASE(pallas_poseidon) { using hash_type = hashes::poseidon>; test_transcript - (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_cppui_modular256); + (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_bigui256); } BOOST_AUTO_TEST_SUITE_END() diff --git a/proof-producer/bin/proof-producer/include/nil/proof-generator/file_operations.hpp b/proof-producer/bin/proof-producer/include/nil/proof-generator/file_operations.hpp index 43e496c0cd..feea0767b6 100644 --- a/proof-producer/bin/proof-producer/include/nil/proof-generator/file_operations.hpp +++ b/proof-producer/bin/proof-producer/include/nil/proof-generator/file_operations.hpp @@ -18,6 +18,7 @@ #define PROOF_GENERATOR_FILE_OPERATIONS_HPP #include +#include #include #include #include diff --git a/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp b/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp index 42fcf9cdee..b3008c7898 100644 --- a/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp +++ b/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp @@ -92,7 +92,7 @@ namespace nil { case copy_operand_type::calldata: case copy_operand_type::returndata: case copy_operand_type::log: - id.assign(pb_participant.call_id()); + id = pb_participant.call_id(); break; case copy_operand_type::bytecode: id = blueprint::zkevm_word_from_string(pb_participant.bytecode_hash()); diff --git a/proof-producer/tests/libs/output_artifacts/test_assignment_table_writer.cpp b/proof-producer/tests/libs/output_artifacts/test_assignment_table_writer.cpp index a457f00739..4a34122f23 100644 --- a/proof-producer/tests/libs/output_artifacts/test_assignment_table_writer.cpp +++ b/proof-producer/tests/libs/output_artifacts/test_assignment_table_writer.cpp @@ -147,28 +147,28 @@ TEST_F(AssignmentTableWriterTest, WriteFullTextAssignment) for (auto col = 0; col < table_.witnesses_amount(); col++) { auto expected = table_.witness(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); for (auto col = 0; col < table_.public_inputs_amount(); col++) { auto expected = table_.public_input(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); for (auto col = 0; col < table_.constants_amount(); col++) { auto expected = table_.constant(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); for (auto col = 0; col < table_.selectors_amount(); col++) { auto expected = table_.selector(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_rest_of_line(mem_stream); } @@ -191,7 +191,7 @@ TEST_F(AssignmentTableWriterTest, WritePartialColumns) for (auto col = 0; col <= WitnessColumnsToDump; col++) { auto expected = table_.witness(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); // witnesses @@ -231,14 +231,14 @@ TEST_F(AssignmentTableWriterTest, TextWrite_Smoke) for (auto col = 0; col <= 2; col++) { auto expected = table_.witness(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); // witnesses for (auto col = 0; col < table_.public_inputs_amount(); col++) { auto expected = table_.public_input(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); // public inputs @@ -246,12 +246,12 @@ TEST_F(AssignmentTableWriterTest, TextWrite_Smoke) for (auto col = 1; col <= 3; col++) { auto expected = table_.constant(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } for (auto col = 5; col <= 7; col++) { auto expected = table_.constant(col)[row]; auto str = read_stringified_field(mem_stream); - ASSERT_EQ(expected.data.str(str.size(), std::ios_base::hex), str) << "row: " << row << " col: " << col; + ASSERT_EQ(expected.data.str(std::ios_base::hex), str) << "row: " << row << " col: " << col; } read_separator(mem_stream); // constants From e62fb4c13da0531f41986ec6a57b2543ecf6300a Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Tue, 26 Nov 2024 14:39:06 +0000 Subject: [PATCH 06/18] marshalling::multiprecision refactor --- .../include/nil/blueprint/bbf/exp.hpp | 1 - .../detail/constraints/rpn_expression.hpp | 2 +- .../nil/blueprint/zkevm/copy_event.hpp | 2 +- .../include/nil/blueprint/zkevm/memory.hpp | 2 +- .../nil/blueprint/zkevm/operations/addmod.hpp | 5 +- .../nil/blueprint/zkevm/operations/byte.hpp | 3 +- .../nil/blueprint/zkevm/operations/cmp.hpp | 3 +- .../blueprint/zkevm/operations/div_mod.hpp | 5 +- .../nil/blueprint/zkevm/operations/err0.hpp | 2 +- .../nil/blueprint/zkevm/operations/err1.hpp | 2 +- .../nil/blueprint/zkevm/operations/mulmod.hpp | 4 +- .../nil/blueprint/zkevm/operations/not.hpp | 3 +- .../nil/blueprint/zkevm/operations/pushx.hpp | 2 +- .../nil/blueprint/zkevm/operations/sar.hpp | 5 +- .../blueprint/zkevm/operations/sdiv_smod.hpp | 5 +- .../nil/blueprint/zkevm/operations/shl.hpp | 3 +- .../nil/blueprint/zkevm/operations/shr.hpp | 5 +- .../blueprint/zkevm/operations/signextend.hpp | 3 +- .../include/nil/blueprint/zkevm/rw.hpp | 2 +- .../zkevm/zkevm_machine_interface.hpp | 5 +- .../nil/blueprint/zkevm/zkevm_word.hpp | 22 +- .../include/nil/blueprint/zkevm_bbf/copy.hpp | 2 +- .../hardhat_input_generator.hpp | 2 +- .../opcode_tester_input_generator.hpp | 4 +- .../blueprint/zkevm_bbf/opcodes/addmod.hpp | 2 +- .../include/nil/blueprint/zkevm_bbf/rw.hpp | 2 +- .../zkevm_bbf/subcomponents/copy_table.hpp | 2 +- .../zkevm_bbf/subcomponents/exp_table.hpp | 1 - .../zkevm_bbf/subcomponents/rw_table.hpp | 2 +- .../marshalling/multiprecision/CMakeLists.txt | 2 + .../marshalling/multiprecision/inference.hpp | 9 +- .../multiprecision/processing/integral.hpp | 23 +- .../integral/basic_fixed_precision_type.hpp | 171 --- .../basic_non_fixed_precision_type.hpp | 163 --- .../types/detail/integral/basic_type.hpp | 129 +- .../multiprecision/types/integral.hpp | 60 +- .../multiprecision/test/CMakeLists.txt | 2 +- .../multiprecision/test/integral.cpp | 16 +- .../test/integral_fixed_size_container.cpp | 41 +- .../integral_non_fixed_size_container.cpp | 100 +- .../multiprecision/big_int/big_uint_impl.hpp | 1 + .../nil/crypto3/zk/math/expression.hpp | 4 +- .../arithmetization/plonk/constraint.hpp | 2 +- .../lib/assigner/test/assigner_test.cpp | 4 +- .../test/merkle/merkle.cpp | 18 +- .../crypto3/math/algorithms/unity_root.hpp | 31 +- .../math/domains/evaluation_domain.hpp | 3 +- .../parallel-math/test/polynomial_dfs.cpp | 1234 ++++++++--------- .../test/polynomial_dfs_view.cpp | 590 ++++---- .../element_knowledge_commitment.hpp | 12 +- .../knowledge_commitment_multiexp.hpp | 5 +- .../nil/crypto3/zk/math/expression.hpp | 8 +- .../arithmetization/plonk/constraint.hpp | 6 +- .../nil/crypto3/zk/transcript/fiat_shamir.hpp | 7 +- .../libs/parallel-zk/test/commitment/kzg.cpp | 276 ++-- .../test/transcript/transcript.cpp | 32 +- 56 files changed, 1385 insertions(+), 1667 deletions(-) delete mode 100644 crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_fixed_precision_type.hpp delete mode 100644 crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_non_fixed_precision_type.hpp diff --git a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp index 0c11d000e6..94ca4af02a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp @@ -27,7 +27,6 @@ #ifndef CRYPTO3_BLUEPRINT_PLONK_BBF_EXP_COMPONENT_HPP #define CRYPTO3_BLUEPRINT_PLONK_BBF_EXP_COMPONENT_HPP -#include #include #include #include diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/constraints/rpn_expression.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/constraints/rpn_expression.hpp index 9b1360a52b..152ab03734 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/constraints/rpn_expression.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/constraints/rpn_expression.hpp @@ -305,7 +305,7 @@ namespace nil { std::size_t value_end_pos = token_str.find(";", value_start_pos); std::string value_str = token_str.substr(value_start_pos, value_end_pos - value_start_pos); - token.value.first = multiprecision::cpp_int("0x" + value_str); + token.value.first = "0x" + value_str; } else if (token_str.find("Cell") != std::string::npos) { token.type = token_type::cell; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/copy_event.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/copy_event.hpp index 8191faa81d..fba8f1a827 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/copy_event.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/copy_event.hpp @@ -207,7 +207,7 @@ namespace nil { std::size_t transaction_id = 0, std::size_t initial_rw_counter = 0 ){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; boost::property_tree::ptree ptrace = pt.get_child("result.structLogs"); boost::property_tree::ptree pstack; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/memory.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/memory.hpp index d2f552476e..e9b368eec6 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/memory.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/memory.hpp @@ -150,7 +150,7 @@ namespace nil { const std::map &storage,// Storage state before operation const std::map &storage_next// Storage state before operation ){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; // Opcode is not presented in RW lookup table. We just take it from json // // std::cout << opcode << std::endl; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp index 2ab25cf6b8..d187c45dff 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp @@ -326,8 +326,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type a = machine.stack_top(); word_type b = machine.stack_top(1); @@ -339,7 +338,7 @@ namespace nil { integral_type r_integral = N != 0u ? s_integral / integral_type(N) : 0u; bool r_overflow = (r_integral >= zkevm_modulus); - word_type r = word_type::backend_type(r_integral.backend()); + word_type r = r_integral; // word_type q = N != 0u ? s % N : s; word_type q = word_type(s_integral - r_integral*integral_type(N)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/byte.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/byte.hpp index 5edc33aa4f..052de4cc0e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/byte.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/byte.hpp @@ -131,8 +131,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type i = machine.stack_top(); word_type x = machine.stack_top(1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/cmp.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/cmp.hpp index 41e39073e0..30688dd154 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/cmp.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/cmp.hpp @@ -175,8 +175,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; auto is_negative = [](word_type x) { return (integral_type(x) > zkevm_modulus/2 - 1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp index 84d6aa0edd..f22f28c89a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp @@ -278,10 +278,9 @@ namespace nil { using word_type = typename zkevm_stack::word_type; word_type a = machine.stack_top(); word_type b = machine.stack_top(1); - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - word_type r = word_type::backend_type(r_integral.backend()); + word_type r = r_integral; word_type q = b != 0u ? a % b : a; word_type q_out = b != 0u ? q : 0; // according to EVM spec a % 0 = 0 diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err0.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err0.hpp index 5587b0318a..e445d98d3b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err0.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err0.hpp @@ -146,7 +146,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine, zkevm_word_type additional_input) { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; using circuit_integral_type = typename BlueprintFieldType::integral_type; zkevm_opcode opcode_mnemo = machine.error_opcode(); std::size_t opcode_num = zkevm_table.get_opcodes_info().get_opcode_number(opcode_mnemo); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err1.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err1.hpp index 3b454dddee..8b9adb460b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err1.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/err1.hpp @@ -145,7 +145,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine, zkevm_word_type additional_input) { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; using circuit_integral_type = typename BlueprintFieldType::integral_type; assignment_type &assignment = zkevm_table.get_assignment(); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp index 7cdc788613..1268f7c42a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp @@ -455,8 +455,8 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number>; - using extended_integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<512>; word_type input_a = machine.stack_top(); word_type b = machine.stack_top(1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/not.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/not.hpp index b1c02e721e..4d3ca8a780 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/not.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/not.hpp @@ -122,8 +122,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type a = machine.stack_top(); word_type result = word_type((~integral_type(a)) % zkevm_modulus); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pushx.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pushx.hpp index 5b307e0c04..2997486386 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pushx.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pushx.hpp @@ -110,7 +110,7 @@ namespace nil { zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine, zkevm_word_type bytecode_input ) { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; zkevm_word_type a = word_type(integral_type(bytecode_input) & ((integral_type(1) << (8*byte_count)) - 1)); // use only byte_count lowest bytes diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp index 13d4127eaf..af0c84993f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp @@ -432,8 +432,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type input_b = machine.stack_top(); word_type input_a = machine.stack_top(1); @@ -459,7 +458,7 @@ namespace nil { word_type b = word_type(integral_type(1) << shift); - word_type r = word_type::backend_type(r_integral.backend()); + word_type r = r_integral; word_type q = b != 0u ? a % b : a; bool t_last = integral_type(q) < integral_type(b); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp index 5b3d682166..e6170a7867 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp @@ -479,8 +479,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type a = machine.stack_top(); word_type b_input = machine.stack_top(1); @@ -504,7 +503,7 @@ namespace nil { b_abs = abs_word(b); integral_type r_integral = (b != 0u)? integral_type(a_abs) / integral_type(b_abs) : 0u; - word_type r_abs = word_type::backend_type(r_integral.backend()), + word_type r_abs = r_integral, q_abs = b != 0u ? a_abs % b_abs : a_abs, r = (is_negative(a) == is_negative(b)) ? r_abs : negate_word(r_abs), q = is_negative(a)? negate_word(q_abs) : q_abs; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp index 7906772db5..70947ba43b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp @@ -223,8 +223,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type a = machine.stack_top(); word_type input_b = machine.stack_top(1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp index 167a809752..3e60e19ff4 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp @@ -329,8 +329,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type input_b = machine.stack_top(); word_type a = machine.stack_top(1); @@ -340,7 +339,7 @@ namespace nil { word_type b = word_type(integral_type(1) << shift); - word_type result = word_type::backend_type(r_integral.backend()); + word_type result = r_integral; word_type q = b != 0u ? a % b : a; bool t_last = integral_type(q) < integral_type(b); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/signextend.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/signextend.hpp index 0e67aa5cb5..5e8d55a5c5 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/signextend.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/signextend.hpp @@ -157,8 +157,7 @@ namespace nil { void generate_assignments(zkevm_table_type &zkevm_table, const zkevm_machine_interface &machine) override { using word_type = typename zkevm_stack::word_type; - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; word_type b = machine.stack_top(); word_type x = machine.stack_top(1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp index bef856b259..10d89862d8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/rw.hpp @@ -246,7 +246,7 @@ namespace nil { using var = typename component_type::var; using constraint_type = crypto3::zk::snark::plonk_constraint; using lookup_constraint_type = crypto3::zk::snark::plonk_lookup_constraint; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; std::cout << "Generate assignments" << std::endl; std::cout << "Start row index: " << start_row_index << std::endl; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp index 897551c625..aa825f6f82 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp @@ -78,8 +78,7 @@ namespace nil { } void run_opcode(){ - using integral_type = boost::multiprecision::number< - boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; switch(opcode) { case zkevm_opcode::PUSH0: stack.push(0); @@ -331,7 +330,7 @@ namespace nil { int shift = (integral_type(input_b) < 256) ? int(integral_type(input_b)) : 256; integral_type r_integral = integral_type(a) << shift; word_type b = word_type(integral_type(1) << shift); - stack.push(word_type::backend_type(r_integral.backend())); + stack.push(r_integral); pc++; gas -= 3; break; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp index e3f880026b..ece67066f7 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp @@ -105,7 +105,7 @@ namespace nil { template typename BlueprintFieldType::value_type w_hi(const zkevm_word_type &val){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_bigui257; return (integral_type(val) & mask) >> 128; @@ -113,14 +113,14 @@ namespace nil { template typename BlueprintFieldType::value_type w_lo(const zkevm_word_type &val){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257; return integral_type(val) & mask; } std::array w_to_8(const zkevm_word_type &val){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; std::array result; integral_type tmp(val); @@ -131,7 +131,7 @@ namespace nil { } std::array w_to_16(const zkevm_word_type &val){ - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; std::array result; integral_type tmp(val); @@ -151,25 +151,25 @@ namespace nil { // Return a/b, a%b std::pair eth_div(const zkevm_word_type &a, const zkevm_word_type &b){ - using integral_type = boost::multiprecision::number < boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - zkevm_word_type r = zkevm_word_type::backend_type(r_integral.backend()); + zkevm_word_type r = r_integral; zkevm_word_type q = b != 0u ? a % b : 0; return {r, q}; } bool is_negative(zkevm_word_type x){ - using integral_type = boost::multiprecision::number < boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; return (integral_type(x) > zkevm_modulus/2 - 1); } zkevm_word_type negate_word(zkevm_word_type x){ - using integral_type = boost::multiprecision::number < boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; return zkevm_word_type(zkevm_modulus - integral_type(x)); } zkevm_word_type abs_word(zkevm_word_type x){ - using integral_type = boost::multiprecision::number < boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; return is_negative(x)? negate_word(x) : x; } @@ -183,14 +183,14 @@ namespace nil { // Return a/b, a%b std::pair eth_signed_div(const zkevm_word_type &a, const zkevm_word_type &b_input){ - using integral_type = boost::multiprecision::number < boost::multiprecision::backends::cpp_int_modular_backend<257>>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; zkevm_word_type b = (integral_type(a) == zkevm_modulus - 1) && (integral_type(b_input) == zkevm_modulus/2) ? 1 : b_input; zkevm_word_type a_abs = abs_word(a), b_abs = abs_word(b); integral_type r_integral = (b != 0u)? integral_type(a_abs) / integral_type(b_abs) : 0u; - zkevm_word_type r_abs = zkevm_word_type::backend_type(r_integral.backend()), + zkevm_word_type r_abs = r_integral, q_abs = b != 0u ? a_abs % b_abs : a_abs, r = (is_negative(a) == is_negative(b)) ? r_abs : negate_word(r_abs), q = is_negative(a)? negate_word(q_abs) : q_abs; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/copy.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/copy.hpp index 660f8df99a..c1bdfcd27c 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/copy.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/copy.hpp @@ -41,7 +41,7 @@ namespace nil { using generic_component::lookup_table; public: using typename generic_component::TYPE; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; struct input_type{ TYPE rlc_challenge; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/hardhat_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/hardhat_input_generator.hpp index 280b6637e9..526c6e3355 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/hardhat_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/hardhat_input_generator.hpp @@ -75,7 +75,7 @@ namespace nil { memory_next = byte_vector_from_ptree(std::next(it)->second.get_child("memory")); storage_next = key_value_storage_from_ptree(it->second.get_child("storage")); } - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; zkevm_state state; // TODO:optimize state.tx_hash = 0; // TODO: change it diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp index 7802c9421d..f4dfa57a07 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp @@ -53,8 +53,8 @@ namespace nil { apply_tester(tester); } - using integral_type = boost::multiprecision::number>; - using extended_integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; + using extended_integral_type = nil::crypto3::multiprecision::big_uint<512>; void apply_tester(const zkevm_opcode_tester &tester, std::size_t initial_gas = 30000000){ transactions_amount++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp index 29c889381e..d7bb1bf234 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp @@ -172,7 +172,7 @@ namespace nil { s_overflow = (s_integral >= zkevm_modulus); integral_type r_integral = N != 0u ? s_integral / integral_type(N) : 0u; r_overflow = (r_integral >= zkevm_modulus); - zkevm_word_type r = zkevm_word_type::backend_type(r_integral.backend()); + zkevm_word_type r = r_integral; // word_type q = N != 0u ? s % N : s; zkevm_word_type q = zkevm_word_type(s_integral - r_integral * integral_type(N)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp index a3c01d2e3f..d01fa2b947 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/rw.hpp @@ -49,7 +49,7 @@ namespace nil { using rw_table_type = rw_table; using input_type = typename rw_table_type::input_type; using value = typename FieldType::value_type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; public: static constexpr std::size_t op_bits_amount = 4; static constexpr std::size_t diff_index_bits_amount = 5; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/copy_table.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/copy_table.hpp index 406e79b9bf..32f22fc847 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/copy_table.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/copy_table.hpp @@ -38,7 +38,7 @@ namespace nil { public: using typename generic_component::TYPE; using input_type = typename std::conditional, std::nullptr_t>::type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; public: // For connection with upper-level circuits std::vector is_first; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/exp_table.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/exp_table.hpp index 4e2f66c3f7..5e833c99a0 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/exp_table.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/exp_table.hpp @@ -26,7 +26,6 @@ #pragma once -#include #include #include #include diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/rw_table.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/rw_table.hpp index cacf182028..676af32d01 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/rw_table.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/subcomponents/rw_table.hpp @@ -39,7 +39,7 @@ namespace nil { public: using typename generic_component::TYPE; using input_type = typename std::conditional::type; - using integral_type = boost::multiprecision::number>; + using integral_type = nil::crypto3::multiprecision::big_uint<257>; public: // For connection with upper-level circuits std::vector op; diff --git a/crypto3/libs/marshalling/multiprecision/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/CMakeLists.txt index d3f32f2aa8..d5cd627942 100644 --- a/crypto3/libs/marshalling/multiprecision/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/CMakeLists.txt @@ -18,6 +18,8 @@ cm_setup_version(VERSION 0.1.0 PREFIX ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_ add_library(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} INTERFACE) add_library(${CMAKE_WORKSPACE_NAME}::${CURRENT_PROJECT_NAME} ALIAS ${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME}) +set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES CXX_STANDARD 20) + set_target_properties(${CMAKE_WORKSPACE_NAME}_${CURRENT_PROJECT_NAME} PROPERTIES EXPORT_NAME ${CURRENT_PROJECT_NAME}) diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp index 93add2e5b6..bf8b375b2d 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp @@ -26,6 +26,8 @@ #ifndef CRYPTO3_MARSHALLING_MULTIPRECISION_INFERENCE_TYPE_TRAITS_HPP #define CRYPTO3_MARSHALLING_MULTIPRECISION_INFERENCE_TYPE_TRAITS_HPP +#include + namespace nil { namespace crypto3 { namespace marshalling { @@ -40,14 +42,13 @@ namespace nil { template class is_compatible; - template - class is_compatible , void> { + template + class is_compatible , void> { using default_endianness = option::big_endian; public: template using type = typename nil::crypto3::marshalling::types::integral, - boost::multiprecision::number, TOptions...>; + nil::crypto3::multiprecision::big_uint, TOptions...>; static const bool value = true; static const bool fixed_size = true; }; diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp index 685b3f8a70..e0111e8f64 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp @@ -28,12 +28,11 @@ #include #include -#include #include -#include -#include -#include +#include +#include + #include namespace nil { @@ -77,8 +76,8 @@ namespace nil { if (value > 0) { std::size_t begin_index = - chunks_count - ((boost::multiprecision::msb(value) + 1) / chunk_bits + - (((boost::multiprecision::msb(value) + 1) % chunk_bits) ? 1 : 0)); + chunks_count - ((nil::crypto3::multiprecision::msb(value) + 1) / chunk_bits + + (((nil::crypto3::multiprecision::msb(value) + 1) % chunk_bits) ? 1 : 0)); std::fill(iter, iter + begin_index, 0); @@ -106,7 +105,7 @@ namespace nil { std::size_t chunk_bits = sizeof(typename std::iterator_traits::value_type) * units_bits; std::size_t chunks_count = (value_size / chunk_bits) + ((value_size % chunk_bits) ? 1 : 0); - boost::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, true); + nil::crypto3::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, true); return serializedValue; } @@ -128,7 +127,7 @@ namespace nil { std::size_t chunk_bits = sizeof(typename std::iterator_traits::value_type) * units_bits; std::size_t chunks_count = (TSize / chunk_bits) + ((TSize % chunk_bits) ? 1 : 0); - boost::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, true); + nil::crypto3::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, true); return serializedValue; } @@ -163,8 +162,8 @@ namespace nil { std::size_t chunks_count = (TSize / chunk_bits) + ((TSize % chunk_bits) ? 1 : 0); if (value > 0) { - std::size_t begin_index = ((boost::multiprecision::msb(value) + 1) / chunk_bits + - (((boost::multiprecision::msb(value) + 1) % chunk_bits) ? 1 : 0)); + std::size_t begin_index = ((nil::crypto3::multiprecision::msb(value) + 1) / chunk_bits + + (((nil::crypto3::multiprecision::msb(value) + 1) % chunk_bits) ? 1 : 0)); if (begin_index < chunks_count) { std::fill(iter + begin_index, iter + chunks_count, 0x00); @@ -192,7 +191,7 @@ namespace nil { std::size_t chunk_bits = sizeof(typename std::iterator_traits::value_type) * units_bits; std::size_t chunks_count = (value_size / chunk_bits) + ((value_size % chunk_bits) ? 1 : 0); - boost::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, false); + nil::crypto3::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, false); return serializedValue; } @@ -212,7 +211,7 @@ namespace nil { std::size_t chunk_bits = sizeof(typename std::iterator_traits::value_type) * units_bits; std::size_t chunks_count = (TSize / chunk_bits) + ((TSize % chunk_bits) ? 1 : 0); - boost::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, false); + nil::crypto3::multiprecision::import_bits(serializedValue, iter, iter + chunks_count, chunk_bits, false); return serializedValue; } diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_fixed_precision_type.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_fixed_precision_type.hpp deleted file mode 100644 index 3d27f0391f..0000000000 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_fixed_precision_type.hpp +++ /dev/null @@ -1,171 +0,0 @@ -//---------------------------------------------------------------------------// -// Copyright (c) 2017-2021 Mikhail Komarov -// Copyright (c) 2020-2021 Nikita Kaskov -// -// MIT License -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. -//---------------------------------------------------------------------------// - -#ifndef CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP -#define CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP - -#include - -#include - -#include - -#include -#include -#include - -#include -#include - -namespace nil { - namespace crypto3 { - namespace marshalling { - namespace types { - namespace detail { - template - class basic_integral : public TTypeBase { - - using backend_type = Backend; - using T = boost::multiprecision::number; - - using base_impl_type = TTypeBase; - - public: - using value_type = T; - using serialized_type = value_type; - - basic_integral() = default; - - explicit basic_integral(value_type val) : value_(val) { - } - - basic_integral(const basic_integral &) = default; - - basic_integral(basic_integral &&) = default; - - ~basic_integral() noexcept = default; - - basic_integral &operator=(const basic_integral &) = default; - - basic_integral &operator=(basic_integral &&) = default; - - const value_type &value() const { - return value_; - } - - value_type &value() { - return value_; - } - - static constexpr std::size_t length() { - return max_length(); - } - - static constexpr std::size_t min_length() { - return min_bit_length() / 8 + ((min_bit_length() % 8) ? 1 : 0); - } - - static constexpr std::size_t max_length() { - return max_bit_length() / 8 + ((max_bit_length() % 8) ? 1 : 0); - } - - static constexpr std::size_t bit_length() { - return max_bit_length(); - } - - static constexpr std::size_t min_bit_length() { - return boost::multiprecision::backends::min_precision::value == - UINT_MAX ? - INT_MAX : - boost::multiprecision::backends::min_precision::value; - } - - static constexpr std::size_t max_bit_length() { - return boost::multiprecision::backends::max_precision::value == - UINT_MAX ? - INT_MAX : - boost::multiprecision::backends::max_precision::value; - } - - static constexpr serialized_type to_serialized(value_type val) { - return static_cast(val); - } - - static constexpr value_type from_serialized(serialized_type val) { - return val; - } - - template - nil::marshalling::status_type read(TIter &iter, std::size_t size) { - - if (size < (std::is_same::value_type, bool>::value ? - bit_length() : length())) { - return nil::marshalling::status_type::not_enough_data; - } - - read_no_status(iter); - iter += (std::is_same::value_type, bool>::value ? - max_bit_length() : max_length()); - return nil::marshalling::status_type::success; - } - - template - void read_no_status(TIter &iter) { - value_ = crypto3::marshalling::processing:: - read_data(iter); - } - - template - nil::marshalling::status_type write(TIter &iter, std::size_t size) const { - if (size < (std::is_same::value_type, bool>::value ? - bit_length() : length())) { - return nil::marshalling::status_type::buffer_overflow; - } - - write_no_status(iter); - - iter += (std::is_same::value_type, bool>::value ? - max_bit_length() : max_length()); - return nil::marshalling::status_type::success; - } - - template - void write_no_status(TIter &iter) const { - crypto3::marshalling::processing::write_data(value_, - iter); - } - - private: - value_type value_ = static_cast(0); - }; - } // namespace detail - } // namespace types - } // namespace marshalling - } // namespace crypto3 -} // namespace nil -#endif // CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_non_fixed_precision_type.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_non_fixed_precision_type.hpp deleted file mode 100644 index bc512b4a14..0000000000 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_non_fixed_precision_type.hpp +++ /dev/null @@ -1,163 +0,0 @@ -//---------------------------------------------------------------------------// -// Copyright (c) 2017-2021 Mikhail Komarov -// Copyright (c) 2020-2021 Nikita Kaskov -// -// MIT License -// -// Permission is hereby granted, free of charge, to any person obtaining a copy -// of this software and associated documentation files (the "Software"), to deal -// in the Software without restriction, including without limitation the rights -// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -// copies of the Software, and to permit persons to whom the Software is -// furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in all -// copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -// SOFTWARE. -//---------------------------------------------------------------------------// - -#ifndef CRYPTO3_MARSHALLING_BASIC_INTEGRAL_NON_FIXED_PRECISION_HPP -#define CRYPTO3_MARSHALLING_BASIC_INTEGRAL_NON_FIXED_PRECISION_HPP - -#include - -#include - -#include - -#include -#include - -#include -#include - -namespace nil { - namespace crypto3 { - namespace marshalling { - namespace types { - namespace detail { - template - class basic_integral : public TTypeBase { - using T = boost::multiprecision::number; - - using base_impl_type = TTypeBase; - - std::size_t cur_length = 0; - public: - using value_type = T; - using serialized_type = value_type; - - basic_integral() = default; - - explicit basic_integral(value_type val) : value_(val) { - - std::size_t bits_count = boost::multiprecision::msb(val) + 1; - - cur_length = bits_count / 8 + (bits_count%8?1:0); - } - - basic_integral(const basic_integral &) = default; - - basic_integral(basic_integral &&) = default; - - ~basic_integral() noexcept = default; - - basic_integral &operator=(const basic_integral &) = default; - - basic_integral &operator=(basic_integral &&) = default; - - const value_type &value() const { - return value_; - } - - value_type &value() { - return value_; - } - - std::size_t length() { - return cur_length; - } - - static constexpr std::size_t min_length() { - return 0; - } - - constexpr std::size_t bit_length() { - return boost::multiprecision::msb(value_) + 1; - } - - // static constexpr std::size_t max_length() { - // return length(); - // } - - static constexpr serialized_type to_serialized(value_type val) { - return static_cast(val); - } - - static constexpr value_type from_serialized(serialized_type val) { - return val; - } - - template - nil::marshalling::status_type read(TIter &iter, std::size_t size) { - // if (size < length()) { - // return nil::marshalling::status_type::not_enough_data; - // } - - read_no_status(iter, size); - iter += size; - cur_length += size; - return nil::marshalling::status_type::success; - } - - // template - // void read_no_status(TIter &iter) { - // read_no_status(length()); - // } - - private: - template - void read_no_status(TIter &iter, std::size_t size) { - size = std::is_same_v::value_type, bool> ? - size : size * 8; - value_ = - crypto3::marshalling::processing::read_data( - iter, size); - } - - public: - template - nil::marshalling::status_type write(TIter &iter, std::size_t size) const { - // if (size < length()) { - // return nil::marshalling::status_type::buffer_overflow; - // } - - write_no_status(iter); - iter += size; - return nil::marshalling::status_type::success; - } - - template - void write_no_status(TIter &iter) const { - crypto3::marshalling::processing::write_data(value_, - iter); - } - - private: - value_type value_ = static_cast(0); - }; - } // namespace detail - } // namespace types - } // namespace marshalling - } // namespace crypto3 -} // namespace nil -#endif // CRYPTO3_MARSHALLING_BASIC_INTEGRAL_NON_FIXED_PRECISION_HPP diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp index 9179fff62e..94d74c1aac 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp @@ -23,27 +23,138 @@ // SOFTWARE. //---------------------------------------------------------------------------// -#ifndef CRYPTO3_MARSHALLING_BASIC_INTEGRAL_DEFINITION_HPP -#define CRYPTO3_MARSHALLING_BASIC_INTEGRAL_DEFINITION_HPP +#ifndef CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP +#define CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP +#include +#include #include -#include -#include +#include + +#include + +#include namespace nil { namespace crypto3 { namespace marshalling { namespace types { namespace detail { - template::value> - class basic_integral { }; + template + class basic_integral : public TTypeBase { + + using T = nil::crypto3::multiprecision::big_uint; + + using base_impl_type = TTypeBase; + + public: + using value_type = T; + using serialized_type = value_type; + + basic_integral() = default; + + explicit basic_integral(value_type val) : value_(val) { + } + + basic_integral(const basic_integral &) = default; + + basic_integral(basic_integral &&) = default; + + ~basic_integral() noexcept = default; + + basic_integral &operator=(const basic_integral &) = default; + + basic_integral &operator=(basic_integral &&) = default; + + const value_type &value() const { + return value_; + } + + value_type &value() { + return value_; + } + + static constexpr std::size_t length() { + return max_length(); + } + + static constexpr std::size_t min_length() { + return min_bit_length() / 8 + ((min_bit_length() % 8) ? 1 : 0); + } + + static constexpr std::size_t max_length() { + return max_bit_length() / 8 + ((max_bit_length() % 8) ? 1 : 0); + } + + static constexpr std::size_t bit_length() { + return max_bit_length(); + } + + static constexpr std::size_t min_bit_length() { + return T::Bits; + } + + static constexpr std::size_t max_bit_length() { + return T::Bits; + } + + static constexpr serialized_type to_serialized(value_type val) { + return static_cast(val); + } + + static constexpr value_type from_serialized(serialized_type val) { + return val; + } + + template + nil::marshalling::status_type read(TIter &iter, std::size_t size) { + + if (size < (std::is_same::value_type, bool>::value ? + bit_length() : length())) { + return nil::marshalling::status_type::not_enough_data; + } + + read_no_status(iter); + iter += (std::is_same::value_type, bool>::value ? + max_bit_length() : max_length()); + return nil::marshalling::status_type::success; + } + + template + void read_no_status(TIter &iter) { + value_ = crypto3::marshalling::processing:: + read_data(iter); + } + + template + nil::marshalling::status_type write(TIter &iter, std::size_t size) const { + if (size < (std::is_same::value_type, bool>::value ? + bit_length() : length())) { + return nil::marshalling::status_type::buffer_overflow; + } + + write_no_status(iter); + + iter += (std::is_same::value_type, bool>::value ? + max_bit_length() : max_length()); + return nil::marshalling::status_type::success; + } + + template + void write_no_status(TIter &iter) const { + crypto3::marshalling::processing::write_data(value_, + iter); + } + private: + value_type value_ = static_cast(0); + }; } // namespace detail } // namespace types } // namespace marshalling } // namespace crypto3 } // namespace nil -#endif // CRYPTO3_MARSHALLING_BASIC_INTEGRAL_DEFINITION_HPP +#endif // CRYPTO3_MARSHALLING_BASIC_INTEGRAL_FIXED_PRECISION_HPP diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp index f9bb282310..6cd3acef5d 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp @@ -26,13 +26,12 @@ #ifndef CRYPTO3_MARSHALLING_INTEGRAL_HPP #define CRYPTO3_MARSHALLING_INTEGRAL_HPP +#include #include #include #include -#include - -#include +#include #include #include @@ -42,9 +41,9 @@ #include #include -#include -#include +#include #include +#include namespace nil { namespace crypto3 { @@ -58,13 +57,10 @@ namespace nil { /// @tparam TOptions Zero or more options that modify/refine default behaviour /// of the field. If no option is provided The field's value is serialized as is. /// @code - /// using MyFieldBase = nil::marshalling::field_type; + /// using MyFieldBase = nil::marshalling::field_type; /// /// constexpr static const std::size_t modulus_bits = 381; - /// using modulus_type = - /// boost::multiprecision::number>; + /// using modulus_type = nil::crypto3::multiprecision::big_uint; /// using MyField = nil::crypto3::marshalling::types::integral; /// @endcode /// In the example above it will @@ -97,16 +93,15 @@ namespace nil { class integral; template - class integral, TOptions...> + class integral, TOptions...> : public ::nil::marshalling::types::detail::adapt_basic_field_type< - crypto3::marshalling::types::detail::basic_integral, + crypto3::marshalling::types::detail::basic_integral, TOptions...> { using base_impl_type = ::nil::marshalling::types::detail::adapt_basic_field_type< - crypto3::marshalling::types::detail::basic_integral, + crypto3::marshalling::types::detail::basic_integral, TOptions...>; public: @@ -327,13 +322,12 @@ namespace nil { /// @return true in case fields are equal, false otherwise. /// @related integral template bool operator==( - const integral, TOptions...> + const integral, TOptions...> &field1, - const integral, TOptions...> + const integral, TOptions...> &field2) { return field1.value() == field2.value(); } @@ -344,13 +338,12 @@ namespace nil { /// @return true in case fields are NOT equal, false otherwise. /// @related integral template bool operator!=( - const integral, TOptions...> + const integral, TOptions...> &field1, - const integral, TOptions...> + const integral, TOptions...> &field2) { return field1.value() != field2.value(); } @@ -361,13 +354,12 @@ namespace nil { /// @return true in case value of the first field is lower than than the value of the second. /// @related integral template bool operator<( - const integral, TOptions...> + const integral, TOptions...> &field1, - const integral, TOptions...> + const integral, TOptions...> &field2) { return field1.value() < field2.value(); } @@ -376,12 +368,11 @@ namespace nil { /// in order to have access to its internal types. /// @related nil::marshalling::types::integral template - inline integral, TOptions...> & + inline integral, TOptions...> & to_field_base( - integral, TOptions...> &field) { + integral, TOptions...> &field) { return field; } @@ -389,12 +380,11 @@ namespace nil { /// in order to have access to its internal types. /// @related nil::marshalling::types::integral template - inline const integral, TOptions...> & + inline const integral, TOptions...> & to_field_base( - const integral, TOptions...> + const integral, TOptions...> &field) { return field; } diff --git a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt index a2367a8ced..07dffa77af 100644 --- a/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/marshalling/multiprecision/test/CMakeLists.txt @@ -53,7 +53,7 @@ endmacro() set(TESTS_NAMES "integral" "integral_fixed_size_container" - #"integral_non_fixed_size_container" # TODO(ioxid): do we need this? + "integral_non_fixed_size_container" ) foreach(TEST_NAME ${TESTS_NAMES}) diff --git a/crypto3/libs/marshalling/multiprecision/test/integral.cpp b/crypto3/libs/marshalling/multiprecision/test/integral.cpp index c981ad2ae5..9510dfa1f8 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral.cpp @@ -194,19 +194,19 @@ void test_round_trip_non_fixed_precision() { BOOST_AUTO_TEST_SUITE(integral_test_suite) -BOOST_AUTO_TEST_CASE(integral_checked_int1024) { +BOOST_AUTO_TEST_CASE(integral_big_uint_1024) { test_round_trip_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_cpp_uint512) { +BOOST_AUTO_TEST_CASE(integral_big_uint_512) { test_round_trip_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_64) { +BOOST_AUTO_TEST_CASE(integral_big_uint_64) { test_round_trip_fixed_precision, unsigned char>(); } -BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_23) { +BOOST_AUTO_TEST_CASE(integral_big_uint_23) { test_round_trip_fixed_precision, unsigned char>(); } @@ -215,19 +215,19 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(integral_test_suite_bits) -BOOST_AUTO_TEST_CASE(integral_checked_int1024_bits) { +BOOST_AUTO_TEST_CASE(integral_big_uint_1024_bits) { test_round_trip_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_cpp_uint512_bits) { +BOOST_AUTO_TEST_CASE(integral_big_uint_512_bits) { test_round_trip_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_64_bits) { +BOOST_AUTO_TEST_CASE(integral_big_uint_64_bits) { test_round_trip_fixed_precision, bool>(); } -BOOST_AUTO_TEST_CASE(integral_cpp_int_backend_23_bits) { +BOOST_AUTO_TEST_CASE(integral_big_uint_23_bits) { test_round_trip_fixed_precision, bool>(); } diff --git a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp index 0a58ca2795..46be1638fb 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp @@ -47,25 +47,16 @@ template T generate_random() { - static const unsigned limbs = std::numeric_limits::is_specialized && std::numeric_limits::is_bounded ? - std::numeric_limits::digits / std::numeric_limits::digits + 3 : - 20; + static_assert(std::numeric_limits::is_specialized + && std::numeric_limits::is_bounded + && std::numeric_limits::is_integer + && std::numeric_limits::radix == 2, "Only integer types are supported"); - static boost::random::uniform_int_distribution ui(0, limbs); + static boost::random::uniform_int_distribution len_distr(1, std::numeric_limits::digits); static boost::random::mt19937 gen; - T val = gen(); - unsigned lim = ui(gen); - for (unsigned i = 0; i < lim; ++i) { - val *= (gen.max)(); - val += gen(); - } - // If we overflow the number, like it was 23 bits, but we filled 1 limb of 64 bits, - // or it was 254 bits but we filled the upper 2 bits, the number will not complain. - // Nothing will be thrown, but errors will happen. The caller is responsible to not do so. - // TODO(ioxid): return? - // val.normalize(); - - return val; + std::size_t len = len_distr(gen); + boost::random::uniform_int_distribution num_distr(T(1) << (len - 1), len == std::numeric_limits::digits ? ~T(0) : (T(1) << len) - 1); + return num_distr(gen); } template @@ -172,20 +163,20 @@ void test_round_trip_fixed_size_container_fixed_precision() { BOOST_AUTO_TEST_SUITE(integral_fixed_test_suite) -BOOST_AUTO_TEST_CASE(integral_fixed_uint1024) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_1024) { test_round_trip_fixed_size_container_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_uint512) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_512) { test_round_trip_fixed_size_container_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_64) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_64) { test_round_trip_fixed_size_container_fixed_precision< nil::crypto3::multiprecision::big_uint<64>, 128, unsigned char>(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_23) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_23) { test_round_trip_fixed_size_container_fixed_precision< nil::crypto3::multiprecision::big_uint<23>, 128, unsigned char>(); } @@ -195,20 +186,20 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(integral_fixed_test_suite_bits) -BOOST_AUTO_TEST_CASE(integral_fixed_uint1024_bits) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_1024_bits) { test_round_trip_fixed_size_container_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_uint512_bits) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_512_bits) { test_round_trip_fixed_size_container_fixed_precision(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_23_bits) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_23_bits) { test_round_trip_fixed_size_container_fixed_precision< nil::crypto3::multiprecision::big_uint<23>, 128, bool>(); } -BOOST_AUTO_TEST_CASE(integral_fixed_cpp_int_backend_64_bits) { +BOOST_AUTO_TEST_CASE(integral_fixed_big_uint_64_bits) { test_round_trip_fixed_size_container_fixed_precision< nil::crypto3::multiprecision::big_uint<64>, 128, bool>(); } diff --git a/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp b/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp index 88887067c2..def6cf7ddd 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp @@ -33,8 +33,6 @@ #include #include -#include - #include #include @@ -44,30 +42,22 @@ #include #include -#include +#include #include template T generate_random() { - static const unsigned limbs = std::numeric_limits::is_specialized && std::numeric_limits::is_bounded ? - std::numeric_limits::digits / std::numeric_limits::digits + 3 : - 20; + static_assert(std::numeric_limits::is_specialized + && std::numeric_limits::is_bounded + && std::numeric_limits::is_integer + && std::numeric_limits::radix == 2, "Only integer types are supported"); - static boost::random::uniform_int_distribution ui(0, limbs); + static boost::random::uniform_int_distribution len_distr(1, std::numeric_limits::digits); static boost::random::mt19937 gen; - T val = gen(); - unsigned lim = ui(gen); - for (unsigned i = 0; i < lim; ++i) { - val *= boost::random::mt19937::max(); - val += gen(); - } - // If we overflow the number, like it was 23 bits, but we filled 1 limb of 64 bits, - // or it was 254 bits but we filled the upper 2 bits, the number will not complain. - // Nothing will be thrown, but errors will happen. The caller is responsible to not do so. - val.backend().normalize(); - - return val; + std::size_t len = len_distr(gen); + boost::random::uniform_int_distribution num_distr(T(1) << (len - 1), len == std::numeric_limits::digits ? ~T(0) : (T(1) << len) - 1); + return num_distr(gen); } template @@ -116,59 +106,55 @@ void test_round_trip_non_fixed_size_container_fixed_precision() { BOOST_AUTO_TEST_SUITE(integral_non_fixed_test_suite) - BOOST_AUTO_TEST_CASE(integral_non_fixed_checked_int1024_be) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_1024_be) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_checked_int1024_le) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_1024_le) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_uint512_be) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_512_be) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_uint512_le) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_512_le) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_64_be) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_64_be) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::big_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<64>>, + nil::crypto3::multiprecision::big_uint<64>, 128, unsigned char>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_64_le) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_64_le) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::little_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<64>>, + nil::crypto3::multiprecision::big_uint<64>, 128, unsigned char>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_23_be) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_23_be) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::big_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<23>>, + nil::crypto3::multiprecision::big_uint<23>, 128, unsigned char>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_23_le) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_23_le) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::little_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<23>>, + nil::crypto3::multiprecision::big_uint<23>, 128, unsigned char>(); } @@ -177,59 +163,55 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(integral_non_fixed_test_suite_bits) - BOOST_AUTO_TEST_CASE(integral_non_fixed_checked_int1024_be_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_1024_be_bits) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_checked_int1024_le_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_1024_le_bits) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_uint512_be_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_512_be_bits) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_uint512_le_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_512_le_bits) { test_round_trip_non_fixed_size_container_fixed_precision(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_64_be_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_64_be_bits) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::big_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<64>>, + nil::crypto3::multiprecision::big_uint<64>, 128, bool>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_64_le_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_64_le_bits) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::little_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<64>>, + nil::crypto3::multiprecision::big_uint<64>, 128, bool>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_23_be_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_23_be_bits) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::big_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<23>>, + nil::crypto3::multiprecision::big_uint<23>, 128, bool>(); } - BOOST_AUTO_TEST_CASE(integral_non_fixed_cpp_int_backend_23_le_bits) { + BOOST_AUTO_TEST_CASE(integral_non_fixed_big_uint_23_le_bits) { test_round_trip_non_fixed_size_container_fixed_precision< nil::marshalling::option::little_endian, - boost::multiprecision::number< - boost::multiprecision::cpp_int_modular_backend<23>>, + nil::crypto3::multiprecision::big_uint<23>, 128, bool>(); } diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp index d4bf817984..21f5f41f55 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp @@ -1351,6 +1351,7 @@ namespace nil::crypto3::multiprecision { constexpr auto& operator*=(big_uint_t& a, const T& b) noexcept { big_uint() + detail::get_bits()> result; decltype(result)::multiply(result, a, static_cast(b)); + // NB: this asserts on overflow, this is expected a = result; return a; } diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp index 6b34b9067e..c8500ea4fb 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/math/expression.hpp @@ -113,7 +113,7 @@ namespace nil { update_hash(); } - // Constructor for number>. + // Constructor for big_uint. template expression(const nil::crypto3::multiprecision::big_uint& coeff) : expr(term((assignment_type)coeff)) { @@ -209,7 +209,7 @@ namespace nil { // Every number type will be accepted here, // if it can be converted to 'assignment_type'. - // This will include integral types and number> + // This will include integral types and big_uint template term(const NumberType &field_val) : coeff(field_val) { update_hash(); diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp index ab4d61d0ce..7e13296cba 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp @@ -90,7 +90,7 @@ namespace nil { : math::expression(coeff) { } - // Constructor for number>. + // Constructor for big_uint. template plonk_constraint(const nil::crypto3::multiprecision::big_uint &coeff) : math::expression(coeff) { diff --git a/evm-assigner/lib/assigner/test/assigner_test.cpp b/evm-assigner/lib/assigner/test/assigner_test.cpp index 2f0bc39ec0..61d022237a 100644 --- a/evm-assigner/lib/assigner/test/assigner_test.cpp +++ b/evm-assigner/lib/assigner/test/assigner_test.cpp @@ -267,7 +267,7 @@ TEST_F(AssignerTest, field_bitwise_and) { BlueprintFieldType::integral_type tmp = 0; for (unsigned bit_number : bits) { - boost::multiprecision::bit_set(tmp, bit_number); + tmp.bit_set(bit_number); } return tmp; }; @@ -275,7 +275,7 @@ TEST_F(AssignerTest, field_bitwise_and) { std::unordered_set bits) { for (unsigned bit_number = 0; bit_number < BlueprintFieldType::number_bits; ++bit_number) { - EXPECT_EQ(boost::multiprecision::bit_test(val, bit_number), bits.contains(bit_number)); + EXPECT_EQ(val.bit_test(bit_number), bits.contains(bit_number)); } }; std::initializer_list init_bits = {1, 12, 42, 77, 136, 201, 222}; diff --git a/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp b/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp index f4f59eeb08..9f16209c64 100644 --- a/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp +++ b/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp @@ -285,14 +285,14 @@ BOOST_AUTO_TEST_CASE(merkletree_validate_test_1) { BOOST_STATIC_ASSERT_MSG(algebra::is_field_element::value, "Expecting Poseidon to consume field elements"); std::vector> v_field = { - {0x0_cppui_modular255}, - {0x1_cppui_modular255}, - {0x2_cppui_modular255}, - {0x3_cppui_modular255}, - {0x4_cppui_modular255}, - {0x5_cppui_modular255}, - {0x6_cppui_modular255}, - {0x7_cppui_modular255} + {0x0_bigui255}, + {0x1_bigui255}, + {0x2_bigui255}, + {0x3_bigui255}, + {0x4_bigui255}, + {0x5_bigui255}, + {0x6_bigui255}, + {0x7_bigui255} }; testing_validate_template(v_field); testing_validate_template(v_field); @@ -355,7 +355,7 @@ BOOST_AUTO_TEST_CASE(merkletree_hash_test_1) { wrappers.emplace_back(inner_containers); } merkle_tree tree = make_merkle_tree(wrappers.begin(), wrappers.end()); - BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_cppui_modular255); + BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_bigui255); } BOOST_AUTO_TEST_CASE(merkletree_hash_test_2) { diff --git a/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/algorithms/unity_root.hpp b/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/algorithms/unity_root.hpp index e59437a706..c0b58598cf 100644 --- a/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/algorithms/unity_root.hpp +++ b/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/algorithms/unity_root.hpp @@ -34,7 +34,6 @@ #include #include -#include #include #include @@ -92,20 +91,16 @@ namespace nil { * * @return a root of unity. */ - template - boost::multiprecision::number - unity_root(uint32_t m, const boost::multiprecision::number &modulo) { - using namespace boost::multiprecision; + template + nil::crypto3::multiprecision::big_uint + unity_root(uint32_t m, const nil::crypto3::multiprecision::big_uint &modulo) { + nil::crypto3::multiprecision::big_uint M(m); - number M(m); - - if ((modulo - number(1) % M) % M != 0) { + if ((modulo - nil::crypto3::multiprecision::big_uint(1) % M) % M != 0) { return {}; } - number>, ExpressionTemplates> - gen(find_generator(modulo), modulo), result = boost::multiprecision::pow(gen, (modulo - 1) / M); + nil::crypto3::multiprecision::big_mod_rt gen(find_generator(modulo), modulo), result = nil::crypto3::multiprecision::powm(gen, (modulo - 1) / M); if (result == 1u) { result = unity_root(m, modulo); } @@ -125,20 +120,20 @@ namespace nil { * */ - boost::multiprecision::number mu = modulo.ComputeMu(); - boost::multiprecision::number x(1); + nil::crypto3::multiprecision::big_uint mu = modulo.ComputeMu(); + nil::crypto3::multiprecision::big_uint x(1); x.ModMulEq(result, modulo, mu); - boost::multiprecision::number minRU(x); - boost::multiprecision::number curPowIdx(1); - std::vector> coprimes = algebra::totient_list>( + nil::crypto3::multiprecision::big_uint minRU(x); + nil::crypto3::multiprecision::big_uint curPowIdx(1); + std::vector> coprimes = algebra::totient_list>( m); for (uint32_t i = 0; i < coprimes.size(); i++) { auto nextPowIdx = coprimes[i]; - boost::multiprecision::number diffPow(nextPowIdx - curPowIdx); + nil::crypto3::multiprecision::big_uint diffPow(nextPowIdx - curPowIdx); for (std::size_t j = 0; j < diffPow; j++) { x.ModMulEq(result, modulo, mu); } - if (x < minRU && x != boost::multiprecision::number(1)) { + if (x < minRU && x != nil::crypto3::multiprecision::big_uint(1)) { minRU = x; } curPowIdx = nextPowIdx; diff --git a/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/domains/evaluation_domain.hpp b/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/domains/evaluation_domain.hpp index e8aedadc31..ec1e676b7e 100644 --- a/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/domains/evaluation_domain.hpp +++ b/parallel-crypto3/libs/parallel-math/include/nil/crypto3/math/domains/evaluation_domain.hpp @@ -32,7 +32,6 @@ #include -#include #include namespace nil { @@ -59,7 +58,7 @@ namespace nil { * * (See the function get_evaluation_domain below.) */ - evaluation_domain(const std::size_t m) : m(m), log2_size(boost::multiprecision::msb(m)) {}; + evaluation_domain(const std::size_t m) : m(m), log2_size(nil::crypto3::multiprecision::msb(m)) {}; inline std::size_t size() const { return m; diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp index b3a1ab59b8..150df47a22 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp @@ -52,23 +52,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; polynomial_dfs a1 = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; BOOST_CHECK_EQUAL(a, a1); } @@ -81,14 +81,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -103,13 +103,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; + {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -123,13 +123,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -143,38 +143,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -182,57 +182,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs b = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -241,27 +241,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253 + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253 } }, { 6, { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253 + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253 } } }; @@ -277,38 +277,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -316,57 +316,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs b = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; + {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -379,27 +379,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -409,14 +409,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -427,27 +427,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, - 0xa_cppui_modular253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0xa_bigui253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -456,14 +456,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_cppui_modular253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, + 0xb_bigui253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -474,27 +474,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -503,14 +503,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -524,27 +524,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }}; a -= b; @@ -552,14 +552,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -570,23 +570,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -595,14 +595,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_cppui_modular253, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_cppui_modular253, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_cppui_modular253, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_cppui_modular253, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_cppui_modular253, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_cppui_modular253, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_cppui_modular253 + 0xb_bigui253, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui253, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui253, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui253, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui253, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui253, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui253, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui253 }}; BOOST_CHECK_EQUAL(c_res, a); @@ -612,27 +612,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }}; a -= b; @@ -640,14 +640,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -660,40 +660,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs b = { 2, { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; + {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -703,44 +703,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs b = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -750,44 +750,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs b = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -796,38 +796,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_cppui_modular253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}}; + {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -840,40 +840,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs b = { 2, { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; + {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -882,44 +882,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; polynomial_dfs b = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -929,44 +929,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }}; polynomial_dfs b = { 3, { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_cppui_modular253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}}; + {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -975,38 +975,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; polynomial_dfs b = { 2, - {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; + {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_cppui_modular253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}}; + {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1020,25 +1020,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_cppui_modular253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }}; polynomial_dfs Q = a / b; @@ -1046,17 +1046,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_cppui_modular253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui_modular253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui_modular253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui_modular253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui_modular253}}; // {0, 0, 0, 1}; + {0x1_bigui253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253}}; //{5}; + {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1121,25 +1121,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x10_cppui_modular253; + typename FieldType::value_type c = 0x10_bigui253; polynomial_dfs c_res = { 5, - {0x23_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000015_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_cppui_modular253} + {0x23_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui253} }; polynomial_dfs c1 = a + c; @@ -1154,36 +1154,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x10_cppui_modular253; + typename FieldType::value_type c = 0x10_bigui253; polynomial_dfs c_res = { 5, - {0x3_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_cppui_modular253}}; + {0x3_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui253, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui253}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_cppui_modular253, - 0x19_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_cppui_modular253}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui253, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui253, + 0x19_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui253}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1198,26 +1198,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; + {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; - typename FieldType::value_type c = 0x123456789abcdef0_cppui_modular253; + typename FieldType::value_type c = 0x123456789abcdef0_bigui253; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_cppui_modular253, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_cppui_modular253, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_cppui_modular253, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_cppui_modular253, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_cppui_modular253, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_cppui_modular253, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_cppui_modular253 + {0x159e26af37c048bd0_bigui253, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui253, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui253, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui253, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui253, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui253, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui253 }}; polynomial_dfs c1 = a * c; @@ -1236,14 +1236,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs res = a; @@ -1262,17 +1262,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; - typename FieldType::value_type point = 0x10_cppui_modular253; + typename FieldType::value_type point = 0x10_bigui253; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1285,17 +1285,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; - typename FieldType::value_type point = 0x10_cppui_modular253; + typename FieldType::value_type point = 0x10_bigui253; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1309,14 +1309,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp index 32b0c0beb5..a175508e4c 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_cppui_modular253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; + 0x35_bigui253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_cppui_modular253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, + 0x71_bigui253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_cppui_modular253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; + 0x4e_bigui253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_cppui_modular253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, - 0x6_cppui_modular253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, + 0x3a_bigui253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, + 0x6_bigui253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_cppui_modular253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, + 0x37_bigui253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_cppui_modular253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, - 0xa_cppui_modular253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, + 0x2c_bigui253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0xa_bigui253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_cppui_modular253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, + 0xb_bigui253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, - 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, + 0x27_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, + 0xc250799be244269f448420036244200000016000000000003_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_cppui_modular253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, - 0xe_cppui_modular253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, + 0x32_bigui253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, + 0xe_bigui253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_cppui_modular253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, + 0x21_bigui253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_cppui_modular253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, - 0x11_cppui_modular253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, + 0x17_bigui253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, + 0x11_bigui253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_cppui_modular253, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}; + 0x2f7_bigui253, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, + 0x13522f003a2269a89044690056226900000023000000000048_bigui253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_cppui_modular253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}; + 0x60f_bigui253, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_cppui_modular253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, - 0xd_cppui_modular253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, + 0x2f_bigui253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, + 0xd_bigui253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x21_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_cppui_modular253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui_modular253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui_modular253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui_modular253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui_modular253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui_modular253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui_modular253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui_modular253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui_modular253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui_modular253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui_modular253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui_modular253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui_modular253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui_modular253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui_modular253}; + 0x60f_bigui253, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_cppui_modular253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; + 0x37_bigui253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; + 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_cppui_modular253, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui_modular253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui_modular253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui_modular253, - 0xc250799be244269f44842003624420000001600000000003b_cppui_modular253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui_modular253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui_modular253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui_modular253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui_modular253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui_modular253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui_modular253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui_modular253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui_modular253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui_modular253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui_modular253}; + 0x4f1_bigui253, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, + 0xc250799be244269f44842003624420000001600000000003b_bigui253, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; + 0x13_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_cppui_modular253, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui_modular253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui_modular253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui_modular253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui_modular253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui_modular253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui_modular253}; + 0x1_bigui253, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_cppui_modular253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; + 0x13_bigui253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, - 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, - 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, + 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, - 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253, 0x5_cppui_modular253}; + std::vector r_v = {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, + 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); diff --git a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp index 78ca7656c8..371048605f 100644 --- a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp +++ b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp @@ -32,8 +32,6 @@ #include -#include - namespace nil { namespace crypto3 { namespace zk { @@ -191,20 +189,18 @@ namespace nil { template - element_kc operator*(const boost::multiprecision::number &lhs, + std::size_t Bits> + element_kc operator*(const nil::crypto3::multiprecision::big_uint &lhs, const element_kc &rhs) { return element_kc(lhs * rhs.g, lhs * rhs.h); } template + std::size_t Bits> element_kc operator*(const element_kc &lhs, - const boost::multiprecision::number &rhs) { + const nil::crypto3::multiprecision::big_uint &rhs) { return element_kc(rhs * lhs.g, rhs * lhs.h); } diff --git a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp index 074f2ab4cb..640106782c 100644 --- a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp +++ b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/commitments/polynomial/knowledge_commitment_multiexp.hpp @@ -47,11 +47,10 @@ namespace nil { namespace crypto3 { namespace zk { namespace commitments { - template + template typename knowledge_commitment::value_type opt_window_wnaf_exp(const typename knowledge_commitment::value_type &base, - const boost::multiprecision::number &scalar, + const nil::crypto3::multiprecision::big_uint &scalar, const std::size_t scalar_bits) { return typename knowledge_commitment::value_type( opt_window_wnaf_exp(base.g, scalar, scalar_bits), diff --git a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/math/expression.hpp b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/math/expression.hpp index ea36ea997a..3ed0fed1b9 100644 --- a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/math/expression.hpp +++ b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/math/expression.hpp @@ -117,9 +117,9 @@ namespace nil { update_hash(); } - // Constructor for number>. - template - expression(const boost::multiprecision::number& coeff) + // Constructor for big_uint. + template + expression(const nil::crypto3::multiprecision::big_uint& coeff) : expr(term((assignment_type)coeff)) { update_hash(); } @@ -213,7 +213,7 @@ namespace nil { // Every number type will be accepted here, // if it can be converted to 'assignment_type'. - // This will include integral types and number> + // This will include integral types and big_uint template term(const NumberType &field_val) : coeff(field_val) { update_hash(); diff --git a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp index 5f28963a5d..3f3e7217ad 100644 --- a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp +++ b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/snark/arithmetization/plonk/constraint.hpp @@ -94,9 +94,9 @@ namespace nil { : math::expression(coeff) { } - // Constructor for number>. - template - plonk_constraint(const boost::multiprecision::number &coeff) + // Constructor for big_uint. + template + plonk_constraint(const nil::crypto3::multiprecision::big_uint &coeff) : math::expression(coeff) { } diff --git a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp index 6feb6e9275..a6680b2ba3 100644 --- a/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp +++ b/parallel-crypto3/libs/parallel-zk/include/nil/crypto3/zk/transcript/fiat_shamir.hpp @@ -140,7 +140,7 @@ namespace nil { struct fiat_shamir_heuristic_sequential { typedef Hash hash_type; - typedef typename boost::multiprecision::cpp_int_modular_backend modular_backend_of_hash_size; + typedef nil::crypto3::multiprecision::big_uint big_uint_of_hash_size; fiat_shamir_heuristic_sequential() : state(hash({0})) { } @@ -204,8 +204,7 @@ namespace nil { std::copy(state.begin(), state.begin() + count, data.begin() + data.size() - count); nil::marshalling::status_type status; - boost::multiprecision::number raw_result = - nil::marshalling::pack(state, status); + big_uint_of_hash_size raw_result = nil::marshalling::pack(state, status); THROW_IF_ERROR_STATUS(status, "fiat_shamir_heuristic_sequential::challenge"); return raw_result; } @@ -214,7 +213,7 @@ namespace nil { Integral int_challenge() { state = hash(state); nil::marshalling::status_type status; - boost::multiprecision::number raw_result = nil::marshalling::pack(state, status); + big_uint_of_hash_size raw_result = nil::marshalling::pack(state, status); // If we remove the next line, raw_result is a much larger number, conversion to 'Integral' will overflow // and in debug mode an assert will fire. In release mode nothing will change. raw_result &= ~Integral(0); diff --git a/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp b/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp index c9a1fe78d7..9910a037ba 100644 --- a/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp +++ b/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp @@ -219,13 +219,13 @@ BOOST_AUTO_TEST_CASE(kzg_test_mnt6_accumulated) { std::size_t n = 8; scalar_value_type z = 2u; const polynomial f = { - 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_cppui_modular298, - 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_cppui_modular298, - 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_cppui_modular298, - 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_cppui_modular298, - 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_cppui_modular298, - 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_cppui_modular298, - 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_cppui_modular298, + 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_bigui298, + 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_bigui298, + 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_bigui298, + 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_bigui298, + 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_bigui298, + 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_bigui298, + 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_bigui298, }; auto f_eval = f.evaluate(alpha); @@ -394,83 +394,83 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 0~-~-~-~ {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_cppui_modular298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_cppui_modular298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_cppui_modular298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_cppui_modular298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_cppui_modular298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_cppui_modular298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_cppui_modular298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_cppui_modular298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_cppui_modular298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_cppui_modular298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_cppui_modular298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_cppui_modular298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_cppui_modular298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_cppui_modular298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_cppui_modular298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_cppui_modular298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_cppui_modular298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_cppui_modular298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_cppui_modular298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_cppui_modular298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_cppui_modular298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_cppui_modular298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_cppui_modular298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_cppui_modular298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, }}, {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_cppui_modular298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_cppui_modular298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_cppui_modular298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_cppui_modular298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_cppui_modular298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_cppui_modular298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_cppui_modular298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_cppui_modular298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_cppui_modular298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_cppui_modular298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_cppui_modular298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_cppui_modular298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_cppui_modular298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_cppui_modular298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_cppui_modular298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_cppui_modular298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_cppui_modular298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_cppui_modular298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_cppui_modular298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_cppui_modular298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_cppui_modular298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_cppui_modular298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_cppui_modular298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_cppui_modular298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_cppui_modular298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, }}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x0u, 0x0u,}}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x1u,}}, @@ -480,9 +480,9 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x1u, 0x0u, 0x0u, - 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_cppui_modular298, - 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_cppui_modular298, - 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_cppui_modular298, + 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_bigui298, + 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_bigui298, + 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_bigui298, }}, {8, { 0x0u, @@ -490,43 +490,43 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x0u, 0x1u, 0x1u, - 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_cppui_modular298, - 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_cppui_modular298, - 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_cppui_modular298, + 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_bigui298, + 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_bigui298, + 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_bigui298, }}, //~-~-~-~ commiting to batch: 1~-~-~-~ {8, { - 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_cppui_modular298, - 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_cppui_modular298, - 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_cppui_modular298, - 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_cppui_modular298, - 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_cppui_modular298, - 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_cppui_modular298, - 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_cppui_modular298, - 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_cppui_modular298, + 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_bigui298, + 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_bigui298, + 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_bigui298, + 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_bigui298, + 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_bigui298, + 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_bigui298, + 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_bigui298, + 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_bigui298, }}, {8, { - 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_cppui_modular298, - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_cppui_modular298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_cppui_modular298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, - 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_cppui_modular298, - 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_cppui_modular298, - 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_cppui_modular298, + 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_bigui298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_bigui298, + 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_bigui298, + 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_bigui298, }}, {8, { - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_cppui_modular298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_cppui_modular298, - 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_cppui_modular298, - 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_cppui_modular298, - 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_cppui_modular298, - 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_cppui_modular298, - 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_cppui_modular298, - 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_cppui_modular298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, + 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_bigui298, + 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_bigui298, + 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_bigui298, + 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_bigui298, + 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_bigui298, + 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_bigui298, }}, {8, { - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_cppui_modular298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, 0x0u, 0x1u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, }}, @@ -535,24 +535,24 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 3~-~-~-~ {8, { - 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_cppui_modular298, - 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_cppui_modular298, - 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_cppui_modular298, - 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_cppui_modular298, - 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_cppui_modular298, - 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_cppui_modular298, - 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_cppui_modular298, - 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_cppui_modular298, + 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_bigui298, + 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_bigui298, + 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_bigui298, + 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_bigui298, + 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_bigui298, + 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_bigui298, + 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_bigui298, + 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_bigui298, }}, {8, { - 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_cppui_modular298, - 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_cppui_modular298, - 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_cppui_modular298, - 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_cppui_modular298, - 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_cppui_modular298, - 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_cppui_modular298, - 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_cppui_modular298, - 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_cppui_modular298, + 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_bigui298, + 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_bigui298, + 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_bigui298, + 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_bigui298, + 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_bigui298, + 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_bigui298, + 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_bigui298, + 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_bigui298, }}, math::polynomial_dfs::zero(), math::polynomial_dfs::zero(), @@ -578,39 +578,39 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { } std::vector> S = { - /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298,}, - /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, - /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298,}, + /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, + /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, }; std::vector T = zk::algorithms::merge_eval_points(S); { std::vector T_check = { - 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_cppui_modular298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_cppui_modular298, + 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298, }; std::sort(T.begin(), T.end()); BOOST_CHECK(T == T_check); diff --git a/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp b/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp index e8c4e2ff3a..94b983a1cd 100644 --- a/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp +++ b/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp @@ -62,12 +62,12 @@ BOOST_AUTO_TEST_CASE(zk_transcript_manual_test) { auto ch2 = tr.challenge(); auto ch_n = tr.challenges(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_cppui_modular254).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_bigui254).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_cppui_modular254).data); - BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_cppui_modular254).data); + BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_bigui254).data); } BOOST_AUTO_TEST_SUITE_END() @@ -89,8 +89,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0x6296); init_blob = {}; @@ -99,8 +99,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { ch2 = tr.challenge(); ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0xC92); } @@ -114,8 +114,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_no_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_cppui_modular255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_cppui_modular255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_bigui255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_bigui255).data); BOOST_CHECK_EQUAL(ch_int, 0xc92); } @@ -140,20 +140,20 @@ void test_transcript(typename curve_type::base_field_type::value_type const& exp BOOST_AUTO_TEST_CASE(mnt4_keccak) { test_transcript> - (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_cppui_modular298); + (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_bigui298); } BOOST_AUTO_TEST_CASE(mnt6_keccak) { test_transcript> - (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_cppui_modular298); + (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_bigui298); } BOOST_AUTO_TEST_CASE(bls12_keccak) { test_transcript> - (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_cppui_modular381); + (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_bigui381); /* TODO: no marshalling for bls12-377 curve test_transcript> - (0x0_cppui_modular377); + (0x0_bigui377); */ } @@ -163,7 +163,7 @@ BOOST_AUTO_TEST_CASE(pallas_poseidon) { using hash_type = hashes::poseidon>; test_transcript - (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_cppui_modular256); + (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_bigui256); } BOOST_AUTO_TEST_SUITE_END() From 9acc0aa4f11244b106ac5dbb7bca888dc0f35a54 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Mon, 25 Nov 2024 18:25:37 +0000 Subject: [PATCH 07/18] Refactor big_int for algebra --- .../algebra/fields/detail/element/fp.hpp | 2 +- .../algebra/fields/detail/exponentiation.hpp | 2 +- .../include/nil/crypto3/algebra/primes.hpp | 10 +- crypto3/libs/algebra/test/curves.cpp | 20 +- crypto3/libs/algebra/test/fields.cpp | 4 +- crypto3/libs/algebra/test/pairing.cpp | 2 +- .../test/short_weierstrass_coordinates.cpp | 4 +- .../sha2/plonk/detail/split_functions.hpp | 2 +- .../opcode_tester_input_generator.hpp | 6 +- .../multiprecision/processing/integral.hpp | 2 +- .../crypto3/math/algorithms/unity_root.hpp | 2 +- .../math/domains/evaluation_domain.hpp | 2 +- .../multiprecision/big_int/big_int.hpp | 19 +- .../multiprecision/big_int/big_uint.hpp | 11 +- .../multiprecision/big_int/big_uint_impl.hpp | 272 +++++++++++++-- .../big_int/detail/constexpr_support.hpp | 11 + .../multiprecision/big_int/integer.hpp | 4 + .../big_int/integer_ops_base.hpp | 31 ++ .../big_int/integer_ops_powm.hpp | 20 ++ .../multiprecision/big_int/literals.hpp | 22 +- .../multiprecision/big_int/miller_rabin.hpp | 157 +++++++++ .../big_int/modular/big_mod.hpp | 3 +- .../big_int/modular/big_mod_impl.hpp | 326 +++++++++--------- .../big_int/modular/modular_ops.hpp | 167 +++++---- .../big_int/modular/modular_ops_storage.hpp | 2 +- .../big_int/modular/ops/inverse.hpp | 14 +- .../big_int/modular/ops/pow.hpp | 33 ++ .../modular/ops/{misc.hpp => ressol.hpp} | 12 +- .../ops/{inverse.hpp => gcd_inverse.hpp} | 13 +- .../big_int/ops/import_export.hpp | 5 +- .../multiprecision/big_int/ops/jacobi.hpp | 4 +- .../multiprecision/big_int/ops/misc.hpp | 123 ------- .../multiprecision/big_int/ops/powm.hpp | 32 ++ .../multiprecision/big_int/ops/ressol.hpp | 24 +- .../multiprecision/big_int/ops/wnaf.hpp | 8 +- .../libs/multiprecision/test/CMakeLists.txt | 1 + crypto3/libs/multiprecision/test/big_int.cpp | 22 +- .../multiprecision/test/big_int_inverse.cpp | 5 +- .../test/big_int_miller_rabin.cpp | 41 +++ .../multiprecision/test/big_int_modular.cpp | 22 +- .../test/big_int_modular_comprehensive.cpp | 4 +- 41 files changed, 987 insertions(+), 479 deletions(-) create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/{misc.hpp => ressol.hpp} (72%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/{inverse.hpp => gcd_inverse.hpp} (86%) delete mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp create mode 100644 crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp index f761509092..0c11773ed5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp @@ -228,7 +228,7 @@ namespace nil { template constexpr element_fp pow(const PowerType &pwr) const { - return element_fp(nil::crypto3::multiprecision::powm(data, pwr)); + return element_fp(nil::crypto3::multiprecision::pow(data, pwr)); } }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp index 39b12c2474..60d09feb00 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp @@ -29,7 +29,7 @@ #include -#include +#include namespace nil { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp index 79e3474bea..303d1237ab 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp @@ -29,9 +29,9 @@ #include -#include #include #include +#include #include "random_element.hpp" @@ -71,7 +71,7 @@ namespace nil { void prime_factorize(IntegerType n, std::set &prime_factors) { if (n == 0 || n == 1) return; - if (boost::multiprecision::miller_rabin_test(n, 100)) { + if (nil::crypto3::multiprecision::miller_rabin_test(n, 100)) { prime_factors.insert(n); return; } @@ -91,7 +91,7 @@ namespace nil { if (r > IntegerType(0)) qNew2 += (mi - r); BOOST_ASSERT_MSG(qNew2 >= qNew, "FirstPrime parameters overflow this integer implementation"); - while (!boost::multiprecision::miller_rabin_test((qNew = qNew2), 100)) { + while (!nil::crypto3::multiprecision::miller_rabin_test((qNew = qNew2), 100)) { qNew2 = qNew + mi; BOOST_ASSERT_MSG(qNew2 >= qNew, "FirstPrime overflow growing candidate"); } @@ -101,7 +101,7 @@ namespace nil { template IntegerType next_prime(const IntegerType &q, uint64_t m) { IntegerType M(m), qNew(q + M); - while (!boost::multiprecision::miller_rabin_test(qNew, 100)) { + while (!nil::crypto3::multiprecision::miller_rabin_test(qNew, 100)) { BOOST_VERIFY_MSG((qNew += M) >= q, "NextPrime overflow growing candidate"); } return qNew; @@ -110,7 +110,7 @@ namespace nil { template IntegerType previous_prime(const IntegerType &q, uint64_t m) { IntegerType M(m), qNew(q - M); - while (!boost::multiprecision::miller_rabin_test(qNew, 100)) { + while (!nil::crypto3::multiprecision::miller_rabin_test(qNew, 100)) { BOOST_VERIFY_MSG((qNew -= M) <= q, "Moduli size is not sufficient! Must be increased."); } return qNew; diff --git a/crypto3/libs/algebra/test/curves.cpp b/crypto3/libs/algebra/test/curves.cpp index ddcbf9f035..68e51063f6 100644 --- a/crypto3/libs/algebra/test/curves.cpp +++ b/crypto3/libs/algebra/test/curves.cpp @@ -215,7 +215,7 @@ void fp_curve_test_init(std::vector &points, for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); } if (p1_to_affine == p) { @@ -231,7 +231,7 @@ void fp_curve_test_init(std::vector &points, } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoul(constant.second.data().c_str())); + constants.emplace_back(std::stoul(constant.second.data())); } } @@ -250,7 +250,7 @@ void fp_curve_twisted_edwards_test_init( for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); } typename FpCurveGroup::value_type curve_element(coordinates[0], coordinates[1]); BOOST_CHECK_MESSAGE(curve_element.is_well_formed(), "point " << p << " is not well-formed"); @@ -259,7 +259,7 @@ void fp_curve_twisted_edwards_test_init( } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(integral_type(constant.second.data().c_str()))); + constants.emplace_back(scalar_value_type(integral_type(constant.second.data()))); } } @@ -282,7 +282,7 @@ void fp_extended_curve_twisted_edwards_test_init( for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); } typename group_affine_type::value_type curve_element_affine(coordinates[0], coordinates[1]); BOOST_CHECK_MESSAGE(curve_element_affine.is_well_formed(), "point " << p << " is not well-formed"); @@ -293,7 +293,7 @@ void fp_extended_curve_twisted_edwards_test_init( } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(integral_type(constant.second.data().c_str()))); + constants.emplace_back(scalar_value_type(integral_type(constant.second.data()))); } } @@ -314,7 +314,7 @@ void fp2_curve_test_init(std::vector &points auto i = 0; for (auto &coordinate_pairs : point.second) { for (auto &coordinate : coordinate_pairs.second) { - coordinates[i++] = integral_type(coordinate.second.data().c_str()); + coordinates[i++] = integral_type(coordinate.second.data()); } } typename Fp2CurveGroup::value_type curve_element( @@ -327,7 +327,7 @@ void fp2_curve_test_init(std::vector &points } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data().c_str()))); + constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data()))); } } @@ -348,7 +348,7 @@ void fp3_curve_test_init(std::vector &points auto i = 0; for (auto &coordinate_pairs : point.second) { for (auto &coordinate : coordinate_pairs.second) { - coordinates[i++] = integral_type(coordinate.second.data().c_str()); + coordinates[i++] = integral_type(coordinate.second.data()); } } typename Fp3CurveGroup::value_type curve_element( @@ -361,7 +361,7 @@ void fp3_curve_test_init(std::vector &points } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data().c_str()))); + constants.emplace_back(scalar_value_type(scalar_integral_type(constant.second.data()))); } } diff --git a/crypto3/libs/algebra/test/fields.cpp b/crypto3/libs/algebra/test/fields.cpp index ce3659c068..01bf777df4 100644 --- a/crypto3/libs/algebra/test/fields.cpp +++ b/crypto3/libs/algebra/test/fields.cpp @@ -122,7 +122,7 @@ struct field_element_init> { template static inline element_type process(const ElementData &element_data) { - return element_type(typename element_type::integral_type(element_data.second.data().c_str())); + return element_type(typename element_type::integral_type(element_data.second.data())); } }; @@ -315,7 +315,7 @@ void field_test_init(std::vector &elements, } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoll(constant.second.data().c_str())); + constants.emplace_back(std::stoll(constant.second.data())); } } diff --git a/crypto3/libs/algebra/test/pairing.cpp b/crypto3/libs/algebra/test/pairing.cpp index 07eb3d1af1..f9db4e0452 100644 --- a/crypto3/libs/algebra/test/pairing.cpp +++ b/crypto3/libs/algebra/test/pairing.cpp @@ -198,7 +198,7 @@ struct field_element_init> { template static inline element_type process(const ElementData &element_data) { - return element_type(typename element_type::integral_type(element_data.second.data().c_str())); + return element_type(typename element_type::integral_type(element_data.second.data())); } }; diff --git a/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp b/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp index f898c463e1..ba145be196 100644 --- a/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp +++ b/crypto3/libs/algebra/test/short_weierstrass_coordinates.cpp @@ -105,13 +105,13 @@ void fp_curve_test_init(std::vector &points, for (auto &point : test_set.second.get_child("point_coordinates")) { auto i = 0; for (auto &coordinate : point.second) { - coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data().c_str())); + coordinates[i++] = field_value_type(typename field_value_type::integral_type(coordinate.second.data())); } points.emplace_back(typename FpCurveGroup::value_type(coordinates[0], coordinates[1], coordinates[2])); } for (auto &constant : test_set.second.get_child("constants")) { - constants.emplace_back(std::stoul(constant.second.data().c_str())); + constants.emplace_back(std::stoul(constant.second.data())); } } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp index 2ccb96418c..f42731b9f9 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp @@ -36,7 +36,7 @@ #include #include -#include +#include namespace nil { namespace blueprint { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp index f4dfa57a07..a17fd9bb1a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp @@ -388,7 +388,7 @@ namespace nil { zkevm_word_type b = stack.back(); stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, b)); - zkevm_word_type result = a & b; + zkevm_word_type result = a.base() & b.base(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; @@ -401,7 +401,7 @@ namespace nil { zkevm_word_type b = stack.back(); stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, b)); - zkevm_word_type result = a | b; + zkevm_word_type result = a.base() & b.base(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; @@ -414,7 +414,7 @@ namespace nil { zkevm_word_type b = stack.back(); stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, b)); - zkevm_word_type result = a ^ b; + zkevm_word_type result = a.base() & b.base(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp index e0111e8f64..ffe291f235 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp index 3da2987b98..930e538774 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp @@ -99,7 +99,7 @@ namespace nil { } nil::crypto3::multiprecision::big_mod_rt - gen(find_generator(modulo), modulo), result = nil::crypto3::multiprecision::powm(gen, (modulo - 1) / M); + gen(find_generator(modulo), modulo), result = nil::crypto3::multiprecision::pow(gen, (modulo - 1) / M); if (result == 1u) { result = unity_root(m, modulo); } diff --git a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp index 446e468951..1346c2964d 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp @@ -30,7 +30,7 @@ #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp index cbfcdd3fc2..7a34358c67 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp @@ -115,12 +115,12 @@ namespace nil::crypto3::multiprecision { constexpr bool negative() const { return m_negative; } - constexpr int sign() const noexcept { return negative() ? -1 : (is_zero(m_abs) ? 0 : 1); } + constexpr int sign() const noexcept { return negative() ? -1 : (m_abs.is_zero() ? 0 : 1); } constexpr const unsigned_type& abs() const { return m_abs; } constexpr void negate() { - if (is_zero(m_abs)) { + if (m_abs.is_zero()) { return; } m_negative = !m_negative; @@ -216,9 +216,15 @@ namespace nil::crypto3::multiprecision { return result; } + // Misc ops + + NIL_CO3_MP_FORCEINLINE constexpr bool is_zero() const noexcept { + return abs().is_zero(); + } + private: constexpr void normalize() noexcept { - if (is_zero(m_abs)) { + if (m_abs.is_zero()) { m_negative = false; } } @@ -241,11 +247,6 @@ namespace nil::crypto3::multiprecision { big_uint m_abs; }; - template - NIL_CO3_MP_FORCEINLINE constexpr bool is_zero(const big_int& val) noexcept { - return is_zero(val.abs()); - } - namespace detail { template constexpr bool is_big_int_v = false; @@ -382,7 +383,7 @@ namespace nil::crypto3::multiprecision { template constexpr std::size_t hash_value(const big_int& val) noexcept { std::size_t result = 0; - boost::hash_combine(result, hash_value(val.abs())); + boost::hash_combine(result, val.abs()); boost::hash_combine(result, val.negative()); return result; } diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp index 2b0e388c07..f006c8851f 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp @@ -2,9 +2,16 @@ #include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/limits.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/ops/import_export.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/inverse.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/misc.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/ops/powm.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/ops/ressol.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/ops/wnaf.hpp" // IWYU pragma: export + +namespace nil::crypto3::multiprecision { + using uint128_t = big_uint<128>; + using uint256_t = big_uint<256>; + using uint512_t = big_uint<512>; + using uint1024_t = big_uint<1024>; +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp index 21f5f41f55..d6aa999e07 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp @@ -10,8 +10,8 @@ #include #include #include +#include #include -#include #include #include #include @@ -158,9 +158,11 @@ namespace nil::crypto3::multiprecision { pr[i] = 0; } } - constexpr void normalize() noexcept { limbs()[internal_limb_count - 1] &= upper_limb_mask; } public: + // TODO(ioxid): this should be private + constexpr void normalize() noexcept { limbs()[internal_limb_count - 1] &= upper_limb_mask; } + constexpr bool has_carry() const noexcept { return m_carry; } constexpr void set_carry(bool carry) noexcept { m_carry = carry; } @@ -170,17 +172,20 @@ namespace nil::crypto3::multiprecision { constexpr big_uint(const char* str) { *this = str; } - template /*&& std::is_unsigned_v*/, int> = 0> + constexpr big_uint(std::string_view str) { *this = str; } + + template && std::is_signed_v, int> = 0> constexpr big_uint(T val) noexcept { - if (val < 0) { - std::cerr << "big_uint: assignment from negative integer" << std::endl; - std::terminate(); - } + NIL_CO3_MP_ASSERT_MSG(val >= 0, "big_uint: assignment from negative integer"); do_assign_integral(static_cast>(val)); } - // This should be implicit even for Bits2 < Bits because it's used in boost random + template && std::is_unsigned_v, int> = 0> + constexpr big_uint(T val) noexcept { + do_assign_integral(val); + } + + // TODO(ioxid): make this explicit for the case when Bits2 > Bits template constexpr big_uint(const big_uint& other) noexcept { do_assign(other); @@ -189,6 +194,11 @@ namespace nil::crypto3::multiprecision { } } + template + constexpr big_uint(const std::array& bytes) noexcept { + *this = bytes; + } + // Assignment constexpr big_uint& operator=(const char* str) { @@ -196,6 +206,26 @@ namespace nil::crypto3::multiprecision { return *this; } + constexpr big_uint& operator=(std::string_view str) { + *this = detail::parse_int(str); + return *this; + } + + template && std::is_signed_v, int> = 0> + constexpr big_uint& operator=(T val) noexcept { + NIL_CO3_MP_ASSERT_MSG(val >= 0, "big_uint: assignment from negative integer"); + do_assign_integral(static_cast>(val)); + return *this; + } + + template && std::is_unsigned_v, int> = 0> + constexpr big_uint& operator=(T val) noexcept { + do_assign_integral(val); + return *this; + } + template constexpr big_uint& operator=(const big_uint& other) noexcept { do_assign(other); @@ -205,18 +235,50 @@ namespace nil::crypto3::multiprecision { return *this; } - template /*&& std::is_unsigned_v*/, int> = 0> - constexpr big_uint& operator=(T val) noexcept { - NIL_CO3_MP_ASSERT_MSG(val >= 0, "big_uint: assignment from negative integer"); - do_assign_integral(static_cast>(val)); + template + constexpr big_uint& operator=(const std::array& bytes) { + std::size_t bits = 0; + for (std::size_t i = 0; i < bytes.size(); ++i) { + *this <<= 8; + if (bits != 0) { + bits += 8; + } + unsigned b = bytes[i]; + *this += b; + if (bits == 0 && b != 0) { + bits += std::bit_width(b); + } + } + if (bits > Bits) { + throw std::invalid_argument("not enough bits"); + } return *this; } - constexpr std::string str() const { + // String conversion + + constexpr std::string str(std::ios_base::fmtflags flags = std::ios_base::hex | + std::ios_base::showbase | + std::ios_base::uppercase) const { + if (flags & std::ios_base::dec) { + // TODO(ioxid): this is inefficient + std::string result; + auto copy = *this; + while (!copy.is_zero()) { + result += static_cast(static_cast(copy % 10) + '0'); + copy /= 10; + } + std::reverse(result.begin(), result.end()); + if (result.empty()) { + result += '0'; + } + return result; + } + if (!(flags & std::ios_base::hex)) { + throw std::invalid_argument("big_uint: unsupported format flags"); + } std::string result; - result.reserve(order() * limb_bits / 4 + 2); - result += "0x"; + result.reserve(used_limbs() * limb_bits / 4); bool found_first = false; for (int i = internal_limb_count - 1; i >= 0; --i) { auto limb = limbs()[i]; @@ -239,12 +301,18 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_ASSERT(ec == std::errc{}); } } - for (std::size_t i = 2; i < result.size(); ++i) { - result[i] = static_cast(std::toupper(static_cast(result[i]))); + if (flags & std::ios_base::uppercase) { + for (std::size_t i = 0; i < result.size(); ++i) { + result[i] = + static_cast(std::toupper(static_cast(result[i]))); + } } - if (result.size() == 2) { + if (result.size() == 0) { result += '0'; } + if (flags & std::ios_base::showbase) { + result = "0x" + result; + } return result; } @@ -257,8 +325,9 @@ namespace nil::crypto3::multiprecision { // Cast to integral types - template && std::is_unsigned_v, int> = 0> + template && std::is_integral_v && + std::is_unsigned_v, + int> = 0> explicit constexpr operator T() const { if constexpr (sizeof(T) <= sizeof(limb_type)) { return static_cast(this->limbs()[0]); @@ -274,6 +343,14 @@ namespace nil::crypto3::multiprecision { } } + template && std::is_signed_v, int> = 0> + explicit constexpr operator T() const { + return static_cast(static_cast>(*this)); + } + + explicit constexpr operator bool() const { return !is_zero(); } + // Comparisions constexpr int compare(const big_uint& b) const noexcept { @@ -931,14 +1008,14 @@ namespace nil::crypto3::multiprecision { and avoids the normalisation step which would require extra storage. */ - if (is_zero(y)) { + if (y.is_zero()) { throw std::overflow_error("integer division by zero"); } const_limb_pointer px = x.limbs(); const_limb_pointer py = y.limbs(); - if (is_zero(x)) { + if (x.is_zero()) { // x is zero, so is the result: rem = x; if (div) { @@ -1115,7 +1192,7 @@ namespace nil::crypto3::multiprecision { // // We now just have to normalise the result: // - if (rem_neg && !is_zero(rem)) { + if (rem_neg && !rem.is_zero()) { // We have one too many in the result: if (div) { --*div; @@ -1176,6 +1253,95 @@ namespace nil::crypto3::multiprecision { result.normalize(); } + // Misc ops + + NIL_CO3_MP_FORCEINLINE constexpr bool is_zero() const noexcept { + for (std::size_t i = 0; i < limbs_count(); ++i) { + if (limbs()[i] != 0) { + return false; + } + } + return true; + } + + constexpr std::size_t lsb() const { + // + // Find the index of the least significant limb that is non-zero: + // + std::size_t index = 0; + while ((index < limbs_count()) && !limbs()[index]) { + ++index; + } + + if (index == limbs_count()) { + throw std::invalid_argument("zero has no lsb"); + } + + // + // Find the index of the least significant bit within that limb: + // + std::size_t result = std::countr_zero(limbs()[index]); + + return result + index * limb_bits; + } + + constexpr std::size_t msb() const { + // + // Find the index of the most significant bit that is non-zero: + // + for (std::size_t i = limbs_count() - 1; i > 0; --i) { + if (limbs()[i] != 0) { + return i * limb_bits + std::bit_width(limbs()[i]) - 1; + } + } + if (limbs()[0] == 0) { + throw std::invalid_argument("zero has no msb"); + } + return std::bit_width(limbs()[0]) - 1; + } + + constexpr bool bit_test(std::size_t index) const { + if (index >= Bits) { + return false; + // TODO(ioxid): this throws in multiexp tests + // throw std::invalid_argument("fixed precision overflow"); + } + std::size_t offset = index / limb_bits; + std::size_t shift = index % limb_bits; + limb_type mask = limb_type(1u) << shift; + return static_cast(limbs()[offset] & mask); + } + + constexpr void bit_set(std::size_t index) { + if (index >= Bits) { + throw std::invalid_argument("fixed precision overflow"); + } + std::size_t offset = index / limb_bits; + std::size_t shift = index % limb_bits; + limb_type mask = limb_type(1u) << shift; + limbs()[offset] |= mask; + } + + constexpr void bit_unset(std::size_t index) { + if (index >= Bits) { + throw std::invalid_argument("fixed precision overflow"); + } + std::size_t offset = index / limb_bits; + std::size_t shift = index % limb_bits; + limb_type mask = limb_type(1u) << shift; + limbs()[offset] &= ~mask; + } + + constexpr void bit_flip(big_uint& val, std::size_t index) { + if (index >= Bits) { + throw std::invalid_argument("fixed precision overflow"); + } + std::size_t offset = index / limb_bits; + std::size_t shift = index % limb_bits; + limb_type mask = limb_type(1u) << shift; + val.limbs()[offset] ^= mask; + } + private: // Assignment @@ -1290,7 +1456,7 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator+(const T1& a, const T2& b) noexcept { - big_uint result = a; + big_uint result = a; decltype(result)::add(result, result, b); return result; } @@ -1316,12 +1482,12 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator-(const T1& a, const T2& b) noexcept { T1 result; - T1::subtract(result, a, b); + T1::subtract(result, a, static_cast(b)); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE constexpr auto& operator-=(big_uint_t& a, const T& b) { - big_uint_t::subtract(a, a, b); + big_uint_t::subtract(a, a, static_cast(b)); return a; } NIL_CO3_MP_BIG_UINT_UNARY_TEMPLATE @@ -1344,15 +1510,15 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator*(const T1& a, const T2& b) noexcept { big_uint() + detail::get_bits()> result; - decltype(result)::multiply(result, big_uint()>(a), big_uint()>(b)); - return result; + decltype(result)::multiply(result, big_uint()>(a), + big_uint()>(b)); + return result.template truncate(); } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE constexpr auto& operator*=(big_uint_t& a, const T& b) noexcept { big_uint() + detail::get_bits()> result; decltype(result)::multiply(result, a, static_cast(b)); - // NB: this asserts on overflow, this is expected - a = result; + a = result.template truncate(); return a; } @@ -1360,14 +1526,14 @@ namespace nil::crypto3::multiprecision { constexpr auto operator/(const T1& a, const T2& b) noexcept { largest_t result; largest_t modulus; - largest_t::divide(&result, a, b, modulus); + largest_t::divide(&result, a, static_cast()>>(b), modulus); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE constexpr auto& operator/=(big_uint_t& a, const T& b) noexcept { big_uint_t result; big_uint_t modulus; - big_uint_t::divide(&result, a, b, modulus); + big_uint_t::divide(&result, a, static_cast()>>(b), modulus); a = result; return a; } @@ -1389,7 +1555,7 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator&(const T1& a, const T2& b) noexcept { largest_t result = a; - T1::bitwise_and(result, b); + largest_t::bitwise_and(result, b); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE @@ -1401,7 +1567,7 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator|(const T1& a, const T2& b) noexcept { largest_t result = a; - T1::bitwise_or(result, b); + largest_t::bitwise_or(result, b); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE @@ -1413,7 +1579,7 @@ namespace nil::crypto3::multiprecision { NIL_CO3_MP_BIG_UINT_INTEGRAL_TEMPLATE constexpr auto operator^(const T1& a, const T2& b) noexcept { largest_t result = a; - T1::bitwise_xor(result, b); + largest_t::bitwise_xor(result, b); return result; } NIL_CO3_MP_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE @@ -1472,7 +1638,37 @@ namespace nil::crypto3::multiprecision { template std::ostream& operator<<(std::ostream& os, const big_uint& value) { - os << value.str(); + os << value.str(os.flags()); return os; } + + // Common ops + + template + constexpr std::size_t msb(const big_uint& a) { + return a.msb(); + } + + template + constexpr std::size_t lsb(const big_uint& a) { + return a.lsb(); + } + + template + constexpr bool bit_test(const big_uint& a, std::size_t index) { + return a.bit_test(index); + } + + template + constexpr bool is_zero(const big_uint& a) { + return a.is_zero(); + } + + template + constexpr void divide_qr(big_uint a, big_uint b, big_uint& q, + big_uint& r) { + // TODO(ioxid): make this efficient by using private `divide` + q = a / b; + r = a % b; + } } // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp new file mode 100644 index 0000000000..d580a4a840 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp @@ -0,0 +1,11 @@ +#pragma once + +#include + +namespace nil::crypto3::multiprecision::detail::constexpr_support { + // std::abs is constexpr only in C++23 + template && std::is_signed_v, int> = 0> + constexpr T abs(T val) { + return val < 0 ? -val : val; + } +} // namespace nil::crypto3::multiprecision::detail::constexpr_support diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp new file mode 100644 index 0000000000..0209065099 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp @@ -0,0 +1,4 @@ +#pragma once + +#include "nil/crypto3/multiprecision/big_int/integer_ops_base.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp" // IWYU pragma: export \ No newline at end of file diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp new file mode 100644 index 0000000000..448e52b22a --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp @@ -0,0 +1,31 @@ +#pragma once + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" + +namespace nil::crypto3::multiprecision { + template, int> = 0> + constexpr std::size_t msb(T a) { + // TODO(ioxid): optimize + return static_cast()>>(a).msb(); + } + + template, int> = 0> + constexpr std::size_t lsb(T a) { + // TODO(ioxid): optimize + return static_cast()>>(a).lsb(); + } + + template, int> = 0> + constexpr bool bit_test(T a, std::size_t index) { + // TODO(ioxid): optimize + return static_cast()>>(a).bit_test(index); + } + + template, int> = 0> + constexpr bool is_zero(T a) { + return a == 0; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp new file mode 100644 index 0000000000..172765125d --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp @@ -0,0 +1,20 @@ +#pragma once + +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/ops/powm.hpp" + +namespace nil::crypto3::multiprecision { + template>::is_integer && + std::numeric_limits>::is_integer && + std::is_integral_v, + int> = 0> + constexpr T3 powm(T1 &&b, T2 &&e, T3 m) { + // TODO(ioxid): optimize + return static_cast(nil::crypto3::multiprecision::powm( + std::forward(b), std::forward(e), big_uint()>(m))); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp index 845d3900d1..285bf3f29c 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp @@ -22,16 +22,16 @@ namespace nil::crypto3::multiprecision::literals { } } // namespace nil::crypto3::multiprecision::literals -#define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ - namespace nil::crypto3::multiprecision::literals { \ - template \ - constexpr auto operator"" _bigui##Bits() { \ - constexpr std::size_t N = sizeof...(C); \ - constexpr std::array str{C...}; \ - constexpr auto result = \ - nil::crypto3::multiprecision::detail::parse_int_hex({str.data(), N}); \ - return result; \ - } \ +#define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ + namespace nil::crypto3::multiprecision::literals { \ + template \ + constexpr auto operator"" _bigui##Bits() { \ + constexpr std::size_t N = sizeof...(C); \ + constexpr std::array str{C...}; \ + constexpr auto result = \ + nil::crypto3::multiprecision::detail::parse_int({str.data(), N}); \ + return result; \ + } \ } // This is a comprehensive list of all bitlengths we use in algebra. @@ -145,3 +145,5 @@ NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4269) NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4314) NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(6144) NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8192) + +using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp new file mode 100644 index 0000000000..2c253c4a80 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp @@ -0,0 +1,157 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2012 John Maddock. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + +#pragma once + +#include +#include +#include +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/integer.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" + +namespace nil::crypto3::multiprecision { + namespace detail { + template + T2 integer_modulus(const T1& n, const T2& m) { + // TODO(ioxid): optimize this + return static_cast(n % m); + } + + template + bool check_small_factors(const I& n) { + constexpr std::uint32_t small_factors1[] = {3u, 5u, 7u, 11u, 13u, 17u, 19u, 23u}; + constexpr std::uint32_t pp1 = 223092870u; + + std::uint32_t m1 = integer_modulus(n, pp1); + + for (std::size_t i = 0; i < sizeof(small_factors1) / sizeof(small_factors1[0]); ++i) { + NIL_CO3_MP_ASSERT(pp1 % small_factors1[i] == 0); + if (m1 % small_factors1[i] == 0) return false; + } + + constexpr std::uint32_t small_factors2[] = {29u, 31u, 37u, 41u, 43u, 47u}; + constexpr std::uint32_t pp2 = 2756205443u; + + m1 = integer_modulus(n, pp2); + + for (std::size_t i = 0; i < sizeof(small_factors2) / sizeof(small_factors2[0]); ++i) { + NIL_CO3_MP_ASSERT(pp2 % small_factors2[i] == 0); + if (m1 % small_factors2[i] == 0) return false; + } + + constexpr std::uint32_t small_factors3[] = {53u, 59u, 61u, 67u, 71u}; + constexpr std::uint32_t pp3 = 907383479u; + + m1 = integer_modulus(n, pp3); + + for (std::size_t i = 0; i < sizeof(small_factors3) / sizeof(small_factors3[0]); ++i) { + NIL_CO3_MP_ASSERT(pp3 % small_factors3[i] == 0); + if (m1 % small_factors3[i] == 0) return false; + } + + constexpr std::uint32_t small_factors4[] = {73u, 79u, 83u, 89u, 97u}; + constexpr std::uint32_t pp4 = 4132280413u; + + m1 = integer_modulus(n, pp4); + + for (std::size_t i = 0; i < sizeof(small_factors4) / sizeof(small_factors4[0]); ++i) { + NIL_CO3_MP_ASSERT(pp4 % small_factors4[i] == 0); + if (m1 % small_factors4[i] == 0) return false; + } + + constexpr std::uint32_t small_factors5[6][4] = { + {101u, 103u, 107u, 109u}, {113u, 127u, 131u, 137u}, {139u, 149u, 151u, 157u}, + {163u, 167u, 173u, 179u}, {181u, 191u, 193u, 197u}, {199u, 211u, 223u, 227u}}; + constexpr std::uint32_t pp5[6] = {121330189u, + 113u * 127u * 131u * 137u, + 139u * 149u * 151u * 157u, + 163u * 167u * 173u * 179u, + 181u * 191u * 193u * 197u, + 199u * 211u * 223u * 227u}; + + for (std::size_t k = 0; k < sizeof(pp5) / sizeof(*pp5); ++k) { + m1 = integer_modulus(n, pp5[k]); + + for (std::size_t i = 0; i < 4; ++i) { + NIL_CO3_MP_ASSERT(pp5[k] % small_factors5[k][i] == 0); + if (m1 % small_factors5[k][i] == 0) return false; + } + } + return true; + } + + inline bool is_small_prime(std::size_t n) { + constexpr unsigned char p[] = { + 3u, 5u, 7u, 11u, 13u, 17u, 19u, 23u, 29u, 31u, 37u, 41u, + 43u, 47u, 53u, 59u, 61u, 67u, 71u, 73u, 79u, 83u, 89u, 97u, + 101u, 103u, 107u, 109u, 113u, 127u, 131u, 137u, 139u, 149u, 151u, 157u, + 163u, 167u, 173u, 179u, 181u, 191u, 193u, 197u, 199u, 211u, 223u, 227u}; + for (std::size_t i = 0; i < sizeof(p) / sizeof(*p); ++i) { + if (n == p[i]) return true; + } + return false; + } + } // namespace detail + + template + typename std::enable_if::is_integer, bool>::type miller_rabin_test( + const I& n, std::size_t trials, Engine& gen) { + using number_type = I; + + if (n == 2) return true; // Trivial special case. + if (bit_test(n, 0) == 0) return false; // n is even + if (n <= 227) return detail::is_small_prime(static_cast(n)); + + if (!detail::check_small_factors(n)) return false; + + number_type nm1 = n - 1; + // + // Begin with a single Fermat test - it excludes a lot of candidates: + // + number_type q(228), x, + y; // We know n is greater than this, as we've excluded small factors + x = powm(q, nm1, n); + if (x != 1u) return false; + + q = n - 1; + std::size_t k = lsb(q); + q >>= k; + + // Declare our random number generator: + boost::random::uniform_int_distribution dist(2, n - 2); + + // + // Execute the trials: + // + for (std::size_t i = 0; i < trials; ++i) { + x = dist(gen); + y = powm(x, q, n); + std::size_t j = 0; + while (true) { + if (y == nm1) break; + if (y == 1) { + if (j == 0) break; + return false; // test failed + } + if (++j == k) return false; // failed + y = powm(y, 2, n); + } + } + return true; // Yeheh! probably prime. + } + + template + typename std::enable_if::is_integer, bool>::type miller_rabin_test( + const I& x, std::size_t trials) { + static std::mt19937 gen; + return miller_rabin_test(x, trials, gen); + } + +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp index b45864e0e5..8fd13199de 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp @@ -2,4 +2,5 @@ #include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" // IWYU pragma: export #include "nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/big_int/modular/ops/ressol.hpp" // IWYU pragma: export diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp index b9af43b7ad..ae4dd6facf 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp @@ -15,6 +15,8 @@ #include #include +#include +#include #include #include #include @@ -26,51 +28,63 @@ namespace nil::crypto3::multiprecision { namespace detail { - template + template class big_mod_impl { public: static constexpr std::size_t Bits = Bits_; using big_uint_t = big_uint; + using modular_ops_storage_t = modular_ops_storage_t_; using modular_ops_t = typename modular_ops_storage_t::modular_ops_t; // Constructors protected: - template - constexpr big_mod_impl(const big_uint& x, - modular_ops_storage_t&& modular_ops_storage) - : m_modular_ops_storage(std::move(modular_ops_storage)) { - ops().adjust_modular(m_raw_base, x); + template + constexpr big_mod_impl(const T& b, const modular_ops_storage_t& modular_ops_storage) + : m_modular_ops_storage(modular_ops_storage) { + init_raw_base(m_raw_base, b, ops()); } public: - // Comparison + // Components - constexpr bool compare_eq(const big_mod_impl& o) const { - return ops().compare_eq(o.ops()) && m_raw_base == o.m_raw_base; + constexpr big_uint_t base() const { + big_uint_t result; + ops().adjust_regular(result, m_raw_base); + return result; } - constexpr big_uint_t base() const { return ops().adjusted_regular(m_raw_base); } constexpr const big_uint_t& mod() const { return ops().mod(); } + explicit constexpr operator big_uint_t() const { return base(); } + + explicit constexpr operator bool() const { return !is_zero(); } + // String conversion - constexpr std::string str() const { return base().str() + " mod " + mod().str(); } + constexpr std::string str( + std::ios_base::fmtflags flags = std::ios_base::hex | std::ios_base::showbase | + std::ios_base::uppercase) const { + return base().str(flags); + } // Mathemetical operations - constexpr void negate() { - if (!is_zero(m_raw_base)) { - auto initial_m_base = m_raw_base; - m_raw_base = mod(); - m_raw_base -= initial_m_base; - } + constexpr void negate() { ops().negate(m_raw_base); } + + // Misc ops + + constexpr bool is_zero() const noexcept { + // In barrett form raw_base is the same as base + // In montgomery form raw_base is base multiplied by r, so it is zero iff base is + return raw_base().is_zero(); } // Accessing raw base value. Should only be used internally by multiprecision library. constexpr auto& raw_base() { return m_raw_base; } constexpr const auto& raw_base() const { return m_raw_base; } + constexpr const auto& ops_storage() const { return m_modular_ops_storage; } constexpr const auto& ops() const { return m_modular_ops_storage.ops(); } protected: @@ -88,35 +102,18 @@ namespace nil::crypto3::multiprecision { detail::modular_ops_storage_ct>; using typename base_type::big_uint_t; + using typename base_type::modular_ops_storage_t; + using typename base_type::modular_ops_t; - constexpr big_mod_ct_impl() : base_type(big_uint_t(0u), {}) {} - - template - constexpr big_mod_ct_impl(const big_uint& b) : base_type(b, {}) { - this->ops().adjust_modular(this->m_raw_base, b); - } - - // A method for converting a signed integer to a modular adaptor. - // - // TODO: We are not supposed to have this, but in the code we already have conversions from - // 'int' into modular type. In the future we must remove this. - template && std::is_signed_v, int> = 0> - constexpr big_mod_ct_impl(SI b) - : base_type(big_uint(std::abs(b)), {}) { - if (b < 0) { - this->negate(); - } - } + constexpr big_mod_ct_impl() : base_type(big_uint_t{}, {}) {} - template && std::is_unsigned_v, int> = 0> - constexpr big_mod_ct_impl(UI b) : base_type(big_uint(b), {}) {} + template, int> = 0> + constexpr big_mod_ct_impl(const T& b) : base_type(b, {}) {} - template - constexpr big_mod_ct_impl with_replaced_base(const big_uint& b) const { - return big_mod_ct_impl(b); - } + // For generic code + template, int> = 0> + constexpr big_mod_ct_impl(const T& b, const modular_ops_storage_t& ops_storage) + : base_type(b, ops_storage) {} }; template typename modular_ops_template> @@ -127,36 +124,17 @@ namespace nil::crypto3::multiprecision { detail::big_mod_impl>; using typename base_type::big_uint_t; + using typename base_type::modular_ops_storage_t; + using typename base_type::modular_ops_t; - // A method for converting a signed integer to a modular adaptor. - // - // TODO: We are not supposed to have this, but in the code we already have conversions from - // 'int' into modular type. In the future we must remove this. - template && std::is_signed_v, int> = 0> - constexpr big_mod_rt_impl(SI b, const big_uint_t& m) - : base_type(big_uint(std::abs(b)), m) { - if (b < 0) { - this->negate(); - } - } + template && detail::is_integral_v, int> = 0> + constexpr big_mod_rt_impl(const T1& b, const T2& m) : base_type(b, m) {} - template - constexpr big_mod_rt_impl(const big_uint& b, const big_uint_t& m) - : base_type(b, m) {} - - template && std::is_unsigned_v, int> = 0> - constexpr big_mod_rt_impl(UI b, const big_uint_t& m) - : base_type(big_uint(b), m) {} - - template - constexpr big_mod_rt_impl with_replaced_base(const big_uint& b) const { - auto copy = *this; - copy.m_raw_base = b; - copy.ops().adjust_modular(copy.m_raw_base); - return copy; - } + // For generic code + template, int> = 0> + constexpr big_mod_rt_impl(const T& b, const modular_ops_storage_t& ops_storage) + : base_type(b, ops_storage) {} }; namespace detail { @@ -177,100 +155,125 @@ namespace nil::crypto3::multiprecision { constexpr std::size_t get_bits() { return T::Bits; } + + template, int> = 0> + typename modular_ops_t::big_uint_t convert_to_raw_base(const S& s, + const modular_ops_t& ops) { + typename modular_ops_t::big_uint_t result; + init_raw_base(result, s, ops); + return result; + } + + template, int> = 0> + constexpr typename T::big_uint_t convert_to_raw_base( + const T& s, const typename T::modular_ops_t& /*ops*/) { + return s.raw_base(); + } + + template + constexpr void assert_equal_ops_in_operands(const T1& a, const T2& b) { + if constexpr (detail::is_big_mod_v && detail::is_big_mod_v) { + NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); + } + } + + template + constexpr const auto& get_ops_storage_from_operands(const T1& a, const T2& b) { + assert_equal_ops_in_operands(a, b); + if constexpr (detail::is_big_mod_v) { + return a.ops_storage(); + } else if constexpr (detail::is_big_mod_v) { + return b.ops_storage(); + } else { + static_assert(false, "none of the types are big_mod"); + } + } + + template + constexpr bool are_valid_operand_types() { + if (detail::is_big_mod_v && detail::is_big_mod_v) { + return std::is_same_v; + } + return detail::is_modular_integral_v && detail::is_modular_integral_v && + (detail::is_big_mod_v || detail::is_big_mod_v); + } } // namespace detail // Comparison -#define NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(op) \ - template && detail::is_big_mod_v, int> = 0> \ - constexpr bool operator op(const T1& a, const T2& b) noexcept { \ - return a.compare_eq(b) op true; \ +#define NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(OP_) \ + template(), int> = 0> \ + constexpr bool operator OP_(const T1& a, const T2& b) noexcept { \ + const auto& ops_storage = detail::get_ops_storage_from_operands(a, b); \ + return detail::convert_to_raw_base(a, ops_storage.ops()) \ + OP_ detail::convert_to_raw_base(b, ops_storage.ops()); \ } NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(==) NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(!=) + // TODO(ioxid) remove these + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(<) + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(<=) + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(>) + NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL(>=) #undef NIL_CO3_MP_MODULAR_BIG_UINT_COMPARISON_IMPL // Arithmetic operations -#define NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE \ - template && detail::is_big_mod_v, int> = 0, \ - typename largest_t = T1> - -#define NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE \ - template && std::is_same_v, \ - int> = 0> +#define NIL_CO3_MP_MODULAR_BIG_UINT_OPERATOR_IMPL(OP_, OP_ASSIGN_, METHOD_) \ + template(), int> = 0, \ + typename big_mod_t = std::conditional_t, T1, T2>> \ + constexpr auto operator OP_(const T1& a, const T2& b) noexcept { \ + const auto& ops_storage = detail::get_ops_storage_from_operands(a, b); \ + big_mod_t result(0u, ops_storage); \ + result.raw_base() = detail::convert_to_raw_base(a, ops_storage.ops()); \ + ops_storage.ops().METHOD_(result.raw_base(), \ + detail::convert_to_raw_base(b, ops_storage.ops())); \ + return result; \ + } \ + template && \ + (std::is_same_v || detail::is_integral_v), \ + int> = 0> \ + constexpr auto& operator OP_ASSIGN_(big_mod_t & a, const T & b) noexcept { \ + detail::assert_equal_ops_in_operands(a, b); \ + a.ops().METHOD_(a.raw_base(), detail::convert_to_raw_base(b, a.ops())); \ + return a; \ + } #define NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE \ template, int> = 0> - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE - constexpr auto operator+(const T1& a, const T2& b) noexcept { - NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); - largest_t result = a; - a.ops().add(result.raw_base(), b.raw_base()); - return result; - } - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE - constexpr auto& operator+=(big_mod_t& a, const T& b) noexcept { - NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); - a.ops().add(a.raw_base(), b.raw_base()); - return a; - } + NIL_CO3_MP_MODULAR_BIG_UINT_OPERATOR_IMPL(+, +=, add) + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE constexpr auto& operator++(big_mod_t& a) noexcept { - ++a.raw_base(); - if (a.raw_base() == a.mod()) { - a.raw_base() = 0u; - } + a.ops().increment(a.raw_base()); return a; } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE constexpr auto operator++(big_mod_t& a, int) noexcept { auto copy = a; ++a; return copy; } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE constexpr auto operator+(const big_mod_t& a) noexcept { return a; } - namespace detail { - template - constexpr void subtract(big_mod_impl& result, - const big_mod_impl& o) { - if (result.raw_base() < o.raw_base()) { - auto v = result.mod(); - v -= o.raw_base(); - result.raw_base() += v; - } else { - result.raw_base() -= o.raw_base(); - } - } - } // namespace detail + NIL_CO3_MP_MODULAR_BIG_UINT_OPERATOR_IMPL(-, -=, subtract) - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE - constexpr auto operator-(const T1& a, const T2& b) noexcept { - largest_t result = a; - detail::subtract(result, b); - return result; - } - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE - constexpr auto& operator-=(big_mod_t& a, const T& b) { - detail::subtract(a, b); - return a; - } NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE constexpr auto& operator--(big_mod_t& a) noexcept { - if (is_zero(a.raw_base())) { - a.raw_base() = a.mod(); - } - --a.raw_base(); + a.ops().decrement(a.raw_base()); return a; } + NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE constexpr auto operator--(big_mod_t& a, int) noexcept { auto copy = a; @@ -285,46 +288,33 @@ namespace nil::crypto3::multiprecision { return result; } - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE - constexpr auto operator*(const T1& a, const T2& b) noexcept { - NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); - largest_t result = a; - a.ops().mul(result.raw_base(), b.raw_base()); - return result; - } - NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE - constexpr auto& operator*=(big_mod_t& a, const T& b) noexcept { - NIL_CO3_MP_ASSERT(a.ops().compare_eq(b.ops())); - a.ops().mul(a.raw_base(), b.raw_base()); - return a; - } + NIL_CO3_MP_MODULAR_BIG_UINT_OPERATOR_IMPL(*, *=, mul) #undef NIL_CO3_MP_MODULAR_BIG_UINT_UNARY_TEMPLATE -#undef NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_ASSIGNMENT_TEMPLATE -#undef NIL_CO3_MP_MODULAR_BIG_UINT_INTEGRAL_TEMPLATE - - // Additional operations - - template - constexpr bool is_zero(const detail::big_mod_impl& val) noexcept { - // In barrett form raw_base is the same as base - // In montgomery form raw_base is base multiplied by r, so it is zero iff base is - return is_zero(val.raw_base()); - } +#undef NIL_CO3_MP_MODULAR_BIG_UINT_OPERATOR_IMPL // Hash - template + template typename modular_ops_template> constexpr std::size_t hash_value( - const detail::big_mod_impl& val) noexcept { + const big_mod_ct_impl& val) noexcept { return hash_value(val.raw_base()); } + template typename modular_ops_template> + constexpr std::size_t hash_value( + const big_mod_rt_impl& val) noexcept { + std::size_t result = 0; + boost::hash_combine(result, val.base()); + boost::hash_combine(result, val.mod()); + return result; + } + // IO template, int> = 0> std::ostream& operator<<(std::ostream& os, const T& value) { - os << value.str(); + os << value.str(os.flags()); return os; } @@ -361,3 +351,25 @@ namespace nil::crypto3::multiprecision { using auto_big_mod = std::conditional_t, big_mod>; } // namespace nil::crypto3::multiprecision + +// std::hash specializations + +template typename modular_ops_template> +struct std::hash> { + std::size_t operator()( + const nil::crypto3::multiprecision::big_mod_ct_impl& a) + const noexcept { + return boost::hash< + nil::crypto3::multiprecision::big_mod_ct_impl>{}(a); + } +}; + +template typename modular_ops_template> +struct std::hash> { + std::size_t operator()( + const nil::crypto3::multiprecision::big_mod_rt_impl& a) + const noexcept { + return boost::hash< + nil::crypto3::multiprecision::big_mod_rt_impl>{}(a); + } +}; diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp index d4a945bd7a..6ccfdadede 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp @@ -21,13 +21,15 @@ #include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" #include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp" +#include "nil/crypto3/multiprecision/big_int/integer_ops_base.hpp" #include "nil/crypto3/multiprecision/big_int/storage.hpp" namespace nil::crypto3::multiprecision::detail { template constexpr bool check_montgomery_constraints(const big_uint &m) { // Check m % 2 == 0 - return bit_test(m, 0u); + return m.bit_test(0u); } template @@ -70,8 +72,8 @@ namespace nil::crypto3::multiprecision::detail { static constexpr std::size_t limb_bits = policy_type::limb_bits; constexpr barrett_modular_ops(const big_uint_t &m) : m_mod(m), m_barrett_mu(0u) { - std::size_t bit = 2u * (1u + msb(m_mod)); - bit_set(m_barrett_mu, bit); + std::size_t bit = 2u * (1u + m_mod.msb()); + m_barrett_mu.bit_set(bit); m_barrett_mu /= m_mod; @@ -82,8 +84,63 @@ namespace nil::crypto3::multiprecision::detail { m_mod_compliment = compliment; } + // Common public methods + constexpr const auto &mod() const { return m_mod; } + constexpr bool compare_eq(const barrett_modular_ops &o) const { return mod() == o.mod(); } + + template= Bits3, int> = 0> + constexpr void add(big_uint &result, const big_uint &y) const { + NIL_CO3_MP_ASSERT(result < mod() && y < mod()); + + result += y; + // If we overflow and set the carry, we need to subtract the modulus, which is + // the same as adding 2 ^ Bits - Modulus to the remaining part of the number. + // After this we know for sure that the result < Modulus, do not waste time on + // checking again. + if (result.has_carry()) { + result += mod_compliment(); + result.set_carry(false); + } else if (result >= mod()) { + result -= mod(); + } + } + + constexpr void negate(big_uint_t &raw_base) const { + if (!raw_base.is_zero()) { + auto initial_raw_base = raw_base; + raw_base = mod(); + raw_base -= initial_raw_base; + } + } + + constexpr void subtract(big_uint_t &a, const big_uint_t &b) const { + if (a < b) { + auto v = mod(); + v -= b; + a += v; + } else { + a -= b; + } + } + + constexpr void increment(big_uint_t &a) const { + ++a; + if (a == mod()) { + a = 0u; + } + } + + constexpr void decrement(big_uint_t &a) const { + ++a; + if (a == mod()) { + a = 0u; + } + } + protected: constexpr const auto &mod_compliment() const { return m_mod_compliment; } @@ -101,12 +158,12 @@ namespace nil::crypto3::multiprecision::detail { /// result should fit in the output parameter Bits2 >= big_uint_t::Bits, int> = 0> constexpr void barrett_reduce(big_uint &result, big_uint input) const { - if (!is_zero(input)) { - if (msb(input) < 2u * msb(mod()) + 1u) { + if (!input.is_zero()) { + if (input.msb() < 2u * mod().msb() + 1u) { big_uint_quadruple_1 t1(input); t1 *= m_barrett_mu; - std::size_t shift_size = 2u * (1u + msb(mod())); + std::size_t shift_size = 2u * (1u + mod().msb()); t1 >>= shift_size; t1 *= mod(); @@ -122,24 +179,7 @@ namespace nil::crypto3::multiprecision::detail { result = input; } - template= Bits3, int> = 0> - constexpr void add(big_uint &result, const big_uint &y) const { - NIL_CO3_MP_ASSERT(result < mod() && y < mod()); - - result += y; - // If we overflow and set the carry, we need to subtract the modulus, which is - // the same as adding 2 ^ Bits - Modulus to the remaining part of the number. - // After this we know for sure that the result < Modulus, do not waste time on - // checking again. - if (result.has_carry()) { - result += mod_compliment(); - result.set_carry(false); - } else if (result >= mod()) { - result -= mod(); - } - } + // Methods which are customized: mul and exp template::Bits >= big_uint_t::Bits, int> = 0> - constexpr void exp(big_uint &result, const big_uint &a, - big_uint exp) const { + std::enable_if_t::Bits >= big_uint_t::Bits && + std::numeric_limits::is_integer, + int> = 0> + constexpr void exp(big_uint &result, const big_uint &a, T exp) const { NIL_CO3_MP_ASSERT(a < mod()); - if (exp == 0u) { + if (is_zero(exp)) { result = 1u; return; } @@ -169,7 +210,7 @@ namespace nil::crypto3::multiprecision::detail { big_uint_doubled_limbs base(a), res(1u); while (true) { - bool lsb = bit_test(exp, 0); + bool lsb = bit_test(exp, 0u); exp >>= 1u; if (lsb) { res *= base; @@ -190,26 +231,17 @@ namespace nil::crypto3::multiprecision::detail { template constexpr void adjust_modular(big_uint_t &result, big_uint input) const { - big_uint_doubled_limbs tmp; - barrett_reduce(tmp, input); - result = tmp; - } - - [[nodiscard]] constexpr big_uint_t adjusted_regular(const big_uint_t &a) const { - big_uint_t result; - adjust_regular(result, a); - return result; + barrett_reduce(result, input); } template= Bits3, int> = 0> constexpr void adjust_regular(big_uint &result, const big_uint &input) const { + NIL_CO3_MP_ASSERT(input < mod()); result = input; } - constexpr bool compare_eq(const barrett_modular_ops &o) const { return mod() == o.mod(); } - protected: big_uint_t m_mod; // This is 2^Bits - m_mod, precomputed. @@ -238,10 +270,10 @@ namespace nil::crypto3::multiprecision::detail { throw std::invalid_argument("module not usable with montgomery"); } - m_montgomery_p_dash = this->monty_inverse(this->m_mod.limbs()[0]); + m_montgomery_p_dash = monty_inverse(this->m_mod.limbs()[0]); big_uint_doubled_padded_limbs r; - bit_set(r, 2 * this->m_mod.limbs_count() * limb_bits); + r.bit_set(2 * this->m_mod.limbs_count() * limb_bits); this->barrett_reduce(r); // Here we are intentionally throwing away half of the bits of r, it's @@ -257,7 +289,7 @@ namespace nil::crypto3::multiprecision::detail { * is even. If input is odd, then input and 2^n are relatively prime * and an inverse exists. */ - constexpr limb_type monty_inverse(const limb_type &a) { + constexpr static limb_type monty_inverse(const limb_type &a) { if (a % 2 == 0) { throw std::invalid_argument("inverse does not exist"); } @@ -292,9 +324,7 @@ namespace nil::crypto3::multiprecision::detail { for (std::size_t i = 0; i < this->mod().limbs_count(); ++i) { limb_type limb_accum = accum.limbs()[i]; - double_limb_type mult_res = limb_accum * - /// to prevent overflow error in constexpr - static_cast(p_dash()); + double_limb_type mult_res = limb_accum * static_cast(p_dash()); limb_type mult_res_limb = static_cast(mult_res); prod = this->mod(); @@ -525,11 +555,12 @@ namespace nil::crypto3::multiprecision::detail { } #undef NIL_CO3_MP_MONTGOMERY_MUL_CIOS_LOOP_BODY - template::Bits >= big_uint_t::Bits, int> = 0> - constexpr void exp(big_uint &result, const big_uint &a, - big_uint exp) const { + std::enable_if_t::Bits >= big_uint_t::Bits && + std::numeric_limits::is_integer, + int> = 0> + constexpr void exp(big_uint &result, const big_uint &a, T exp) const { /// input parameter should be less than modulus NIL_CO3_MP_ASSERT(a < this->mod()); @@ -538,7 +569,7 @@ namespace nil::crypto3::multiprecision::detail { big_uint_t base(a); - if (exp == 0u) { + if (is_zero(exp)) { result = 1u; adjust_modular(result); return; @@ -549,11 +580,11 @@ namespace nil::crypto3::multiprecision::detail { } while (true) { - bool lsb = bit_test(exp, 0); + bool lsb = bit_test(exp, 0u); exp >>= 1u; if (lsb) { mul(R_mod_m, base); - if (exp == 0u) { + if (is_zero(exp)) { break; } } @@ -575,12 +606,6 @@ namespace nil::crypto3::multiprecision::detail { result = tmp; } - [[nodiscard]] constexpr big_uint_t adjusted_regular(const big_uint_t &a) const { - big_uint_t result; - adjust_regular(result, a); - return result; - } - template= Bits3, int> = 0> @@ -597,4 +622,26 @@ namespace nil::crypto3::multiprecision::detail { // is_applicable_for_no_carry_montgomery_mul() after initialization. bool m_no_carry_montgomery_mul_allowed; }; + + template + constexpr void init_raw_base(big_uint &raw_base, const big_uint &b, + const modular_ops_t &ops) { + ops.adjust_modular(raw_base, b); + } + + template && std::is_signed_v, int> = 0> + constexpr void init_raw_base(big_uint &raw_base, SI b, const modular_ops_t &ops) { + ops.adjust_modular(raw_base, + big_uint(detail::constexpr_support::abs(b))); + if (b < 0) { + ops.negate(raw_base); + } + } + + template && std::is_unsigned_v, int> = 0> + constexpr void init_raw_base(big_uint &raw_base, UI b, const modular_ops_t &ops) { + ops.adjust_modular(raw_base, big_uint(b)); + } } // namespace nil::crypto3::multiprecision::detail diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp index 38c2f8910c..279b967539 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp @@ -27,7 +27,7 @@ namespace nil::crypto3::multiprecision::detail { static constexpr std::size_t Bits = big_uint_t::Bits; using modular_ops_t = modular_ops_template; - static_assert(Bits == msb(Modulus) + 1, "modulus bit width should match used precision"); + static_assert(Bits == Modulus.msb() + 1, "modulus bit width should match used precision"); constexpr modular_ops_storage_ct() {} diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp index c42b3d0e91..c822842cf8 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp @@ -1,5 +1,8 @@ //---------------------------------------------------------------------------// // Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2019-2021 Aleksei Moskvin +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2024 Andrey Nefedov // // Distributed under the Boost Software License, Version 1.0 // See accompanying file LICENSE_1_0.txt or copy at @@ -10,12 +13,15 @@ // IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" -#include "nil/crypto3/multiprecision/big_int/ops/inverse.hpp" +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp" namespace nil::crypto3::multiprecision { - template + template, int> = 0> constexpr big_mod_t inverse_extended_euclidean_algorithm(const big_mod_t &modular) { - return modular.with_replaced_base( - inverse_extended_euclidean_algorithm(modular.base(), modular.mod())); + return big_mod_t(inverse_extended_euclidean_algorithm(modular.base(), modular.mod()), modular.ops_storage()); } } // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp new file mode 100644 index 0000000000..19c914f2ab --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp @@ -0,0 +1,33 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2019-2021 Aleksei Moskvin +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" + +namespace nil::crypto3::multiprecision { + template && + std::numeric_limits>::is_integer, + int> = 0> + constexpr big_mod_t pow(const big_mod_t &b, T &&e) { + auto result = b; + result.ops().exp(result.raw_base(), b.raw_base(), std::forward(e)); + return result; + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/ressol.hpp similarity index 72% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/ressol.hpp index 4d45dad024..1cd4b62af7 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/ressol.hpp @@ -13,19 +13,15 @@ // IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" -#include -#include #include #include "nil/crypto3/multiprecision/big_int/big_uint.hpp" #include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/ops/ressol.hpp" namespace nil::crypto3::multiprecision { - template, int> = 0> - constexpr big_mod_t powm(const big_mod_t &b, const big_uint &e) { - auto result = b; - result.ops().exp(result.raw_base(), b.raw_base(), e); - return result; + template, int> = 0> + constexpr big_mod_t ressol(const big_mod_t &b) { + return big_mod_t(ressol(b.base(), b.mod()), b.ops_storage()); } } // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp similarity index 86% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp index 34fc67fdf6..bdc3475b73 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp @@ -12,6 +12,7 @@ // IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" #include +#include #include "nil/crypto3/multiprecision/big_int/big_int.hpp" #include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" @@ -34,7 +35,7 @@ namespace nil::crypto3::multiprecision { bezout_y = 0u; // Extended Euclidean Algorithm - while (!is_zero(tmp_num2)) { + while (!tmp_num2.is_zero()) { big_int quotient = tmp_num1; big_int remainder = tmp_num1; big_int placeholder; @@ -60,13 +61,21 @@ namespace nil::crypto3::multiprecision { } } // namespace detail + template + constexpr big_uint gcd(const big_uint& a, const big_uint& b) { + big_int aa = a, bb = b, x, y, g; + g = detail::extended_euclidean_algorithm(aa, bb, x, y); + NIL_CO3_MP_ASSERT(!g.negative()); + return g.abs(); + } + template constexpr big_uint inverse_extended_euclidean_algorithm(const big_uint& a, const big_uint& m) { big_int aa = a, mm = m, x, y, g; g = detail::extended_euclidean_algorithm(aa, mm, x, y); if (g != 1u) { - return 0u; + throw std::invalid_argument("no multiplicative inverse"); } x %= m; if (x.negative()) { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp index 5366f23e37..8bd6db09e0 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp @@ -124,7 +124,8 @@ namespace nil::crypto3::multiprecision { size_type limbs = std::distance(i, j); size_type bits = limbs * chunk_size; - NIL_CO3_MP_ASSERT(bits <= Bits); + // TODO(ioxid): this breaks marshalling tests + // NIL_CO3_MP_ASSERT(bits <= Bits); difference_type bit_location = msv_first ? bits - chunk_size : 0; difference_type bit_location_change = @@ -144,7 +145,7 @@ namespace nil::crypto3::multiprecision { } template - inline big_uint import_bits_fast(big_uint& result, T* i, T* j, + inline big_uint& import_bits_fast(big_uint& result, T* i, T* j, std::size_t chunk_size = 0) { std::size_t byte_len = (j - i) * (chunk_size ? chunk_size / CHAR_BIT : sizeof(*i)); std::size_t limb_len = byte_len / sizeof(limb_type); diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp index bdc5ba5e60..87d1385fed 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp @@ -43,11 +43,11 @@ namespace nil::crypto3::multiprecision { J = -J; } } - if (is_zero(x)) { + if (x.is_zero()) { return 0; } - std::size_t shifts = lsb(x); + std::size_t shifts = x.lsb(); x >>= shifts; if (shifts & 1) { std::size_t y_mod_8 = static_cast(y % 8); diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp deleted file mode 100644 index cc5dd23e45..0000000000 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/misc.hpp +++ /dev/null @@ -1,123 +0,0 @@ -/////////////////////////////////////////////////////////////// -// Copyright 2012-2020 John Maddock. -// Copyright 2020 Madhur Chauhan. -// Distributed under the Boost Software License, Version 1.0. -// (See accompanying file LICENSE_1_0.txt or copy at -// https://www.boost.org/LICENSE_1_0.txt) -/////////////////////////////////////////////////////////////// - -#pragma once - -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" - -#include -#include -#include - -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" - -namespace nil::crypto3::multiprecision { - template - NIL_CO3_MP_FORCEINLINE constexpr bool is_zero(const big_uint &val) noexcept { - for (std::size_t i = 0; i < val.limbs_count(); ++i) { - if (val.limbs()[i] != 0) { - return false; - } - } - return true; - } - - template - constexpr std::size_t lsb(const big_uint &a) { - // - // Find the index of the least significant limb that is non-zero: - // - std::size_t index = 0; - while ((index < a.limbs_count()) && !a.limbs()[index]) { - ++index; - } - - if (index == a.limbs_count()) { - throw std::invalid_argument("zero has no lsb"); - } - - // - // Find the index of the least significant bit within that limb: - // - std::size_t result = std::countr_zero(a.limbs()[index]); - - return result + index * big_uint::limb_bits; - } - - template - constexpr std::size_t msb(const big_uint &a) { - // - // Find the index of the most significant bit that is non-zero: - // - for (std::size_t i = a.limbs_count() - 1; i > 0; --i) { - if (a.limbs()[i] != 0) { - return i * big_uint::limb_bits + std::bit_width(a.limbs()[i]) - 1; - } - } - if (a.limbs()[0] == 0) { - throw std::invalid_argument("zero has no msb"); - } - return std::bit_width(a.limbs()[0]) - 1; - } - - template - constexpr bool bit_test(const big_uint &val, std::size_t index) noexcept { - using detail::limb_type; - - std::size_t offset = index / big_uint::limb_bits; - std::size_t shift = index % big_uint::limb_bits; - limb_type mask = limb_type(1u) << shift; - if (offset >= val.limbs_count()) { - return false; - } - return static_cast(val.limbs()[offset] & mask); - } - - template - constexpr void bit_set(big_uint &val, std::size_t index) { - using detail::limb_type; - - std::size_t offset = index / big_uint::limb_bits; - std::size_t shift = index % big_uint::limb_bits; - limb_type mask = limb_type(1u) << shift; - if (offset >= val.limbs_count()) { - return; // fixed precision overflow - } - val.limbs()[offset] |= mask; - } - - template - constexpr void bit_unset(big_uint &val, std::size_t index) noexcept { - using detail::limb_type; - - std::size_t offset = index / big_uint::limb_bits; - std::size_t shift = index % big_uint::limb_bits; - limb_type mask = limb_type(1u) << shift; - if (offset >= val.limbs_count()) { - return; - } - val.limbs()[offset] &= ~mask; - val.normalize(); - } - - template - constexpr void bit_flip(big_uint &val, std::size_t index) { - using detail::limb_type; - - std::size_t offset = index / big_uint::limb_bits; - std::size_t shift = index % big_uint::limb_bits; - limb_type mask = limb_type(1u) << shift; - if (offset >= val.limbs_count()) { - return; // fixed precision overflow - } - val.limbs()[offset] ^= mask; - val.normalize(); - } -} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp new file mode 100644 index 0000000000..3f56e813be --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp @@ -0,0 +1,32 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2020 Mikhail Komarov +// Copyright (c) 2019-2021 Aleksei Moskvin +// Copyright (c) 2020 Ilias Khairullin +// Copyright (c) 2024 Andrey Nefedov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#pragma once + +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" + +namespace nil::crypto3::multiprecision { + template>::is_integer && + std::numeric_limits>::is_integer, + int> = 0> + constexpr big_uint powm(T1 &&b, T2 &&e, const big_uint &m) { + return pow(big_mod_rt(std::forward(b), m), std::forward(e)).base(); + } +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp index 16609231a9..86f721f603 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/ressol.hpp @@ -18,7 +18,7 @@ #include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" #include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" #include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/ops/misc.hpp" +#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" #include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" #include "nil/crypto3/multiprecision/big_int/storage.hpp" @@ -39,7 +39,7 @@ namespace nil::crypto3::multiprecision { big_uint_t two = ui_type(2u); big_uint_t res; - if (is_zero(a)) { + if (a.is_zero()) { return 0u; } NIL_CO3_MP_ASSERT(a < p); @@ -64,12 +64,12 @@ namespace nil::crypto3::multiprecision { ++exp_padded; exp_padded >>= 2u; - return powm(a_mod, big_uint_t(exp_padded)).base(); + return pow(a_mod, big_uint_t(exp_padded)).base(); } big_uint_t p_negone = p; --p_negone; - std::size_t s = lsb(p_negone); + std::size_t s = p_negone.lsb(); big_uint_t q = p; q >>= s; @@ -78,8 +78,8 @@ namespace nil::crypto3::multiprecision { montgomery_big_mod_rt n_mod = a_mod; - auto r_mod = powm(a_mod, q); - auto r_sq_mod = powm(r_mod, two); + auto r_mod = pow(a_mod, q); + auto r_sq_mod = pow(r_mod, two); n_mod *= r_sq_mod; r_mod *= a_mod; @@ -90,7 +90,7 @@ namespace nil::crypto3::multiprecision { // find random quadratic nonresidue z big_uint_t z = two; while (jacobi(z, p) == 1) { - if (is_zero(z)) { + if (z.is_zero()) { throw std::invalid_argument("No quadratic nonresidue"); } ++z; @@ -101,7 +101,7 @@ namespace nil::crypto3::multiprecision { montgomery_big_mod_rt z_mod(z, p); - auto c_mod = powm(z_mod, q); + auto c_mod = pow(z_mod, q); while (n_mod.base() > 1u) { std::size_t i = 0u; @@ -109,7 +109,7 @@ namespace nil::crypto3::multiprecision { auto q_mod = n_mod; while (q_mod.base() != 1u) { - q_mod = powm(q_mod, two); + q_mod = pow(q_mod, two); ++i; if (i >= s) { @@ -121,10 +121,10 @@ namespace nil::crypto3::multiprecision { big_uint_t power_of_2; - bit_set(power_of_2, s - i - 1); - c_mod = powm(c_mod, power_of_2); + power_of_2.bit_set(s - i - 1); + c_mod = pow(c_mod, power_of_2); r_mod *= c_mod; - c_mod = powm(c_mod, two); + c_mod = pow(c_mod, two); n_mod *= c_mod; s = i; diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp index e95ead027e..1ccf0a1256 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp @@ -34,9 +34,9 @@ namespace nil::crypto3::multiprecision { big_uint_t c(scalar); ui_type j = 0; - while (is_zero(c)) { + while (!c.is_zero()) { long u = 0; - if (bit_test(c, 0)) { + if (c.bit_test(0u)) { u = c.limbs()[0] % (1u << (window_size + 1)); if (u > (1 << window_size)) { u = u - (1 << (window_size + 1)); @@ -75,9 +75,9 @@ namespace nil::crypto3::multiprecision { big_uint_t c(scalar); ui_type j = 0; - while (!is_zero(c)) { + while (!c.is_zero()) { long u = 0; - if (bit_test(c, 0)) { + if (c.bit_test(0u)) { u = c.limbs()[0] % (1u << (window_size + 1)); if (u > (1 << window_size)) { u = u - (1 << (window_size + 1)); diff --git a/crypto3/libs/multiprecision/test/CMakeLists.txt b/crypto3/libs/multiprecision/test/CMakeLists.txt index 9a9237b4c9..8aba8a96ca 100644 --- a/crypto3/libs/multiprecision/test/CMakeLists.txt +++ b/crypto3/libs/multiprecision/test/CMakeLists.txt @@ -76,6 +76,7 @@ set(BIG_INT_TESTS_NAMES "big_int_cpp_int_conversions" "big_int_inverse" "big_int_jacobi" + "big_int_miller_rabin" "big_int_modular" "big_int_modular_comprehensive" "big_int_ressol" diff --git a/crypto3/libs/multiprecision/test/big_int.cpp b/crypto3/libs/multiprecision/test/big_int.cpp index 4dbb77b9b2..0857116d45 100644 --- a/crypto3/libs/multiprecision/test/big_int.cpp +++ b/crypto3/libs/multiprecision/test/big_int.cpp @@ -1,8 +1,8 @@ - #define BOOST_TEST_MODULE big_int_test #include #include +#include #include #include "nil/crypto3/multiprecision/big_int/big_uint.hpp" @@ -25,6 +25,8 @@ BOOST_AUTO_TEST_CASE(construct_constexpr) { constexpr nil::crypto3::multiprecision::big_uint<60> a = 0x123_bigui60; } +BOOST_AUTO_TEST_CASE(to_string_zero) { BOOST_CHECK_EQUAL((0x0_bigui60).str(), "0x0"); } + BOOST_AUTO_TEST_CASE(to_string_trivial) { BOOST_CHECK_EQUAL((0x1_bigui60).str(), "0x1"); } BOOST_AUTO_TEST_CASE(to_string_small) { BOOST_CHECK_EQUAL((0x20_bigui60).str(), "0x20"); } @@ -39,6 +41,24 @@ BOOST_AUTO_TEST_CASE(to_string_big) { BOOST_CHECK_EQUAL(a.str(), "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"); } +BOOST_AUTO_TEST_CASE(to_string_decimal_zero) { + BOOST_CHECK_EQUAL((0x0_bigui60).str(std::ios_base::dec), "0"); +} + +BOOST_AUTO_TEST_CASE(to_string_decimal_trivial) { BOOST_CHECK_EQUAL((0x1_bigui60).str(std::ios_base::dec), "1"); } + +BOOST_AUTO_TEST_CASE(to_string_decimal_small) { BOOST_CHECK_EQUAL((0x20_bigui60).str(std::ios_base::dec), "32"); } + +BOOST_AUTO_TEST_CASE(to_string_decimal_medium) { + constexpr auto a = 0x123456789ABCDEF1234321_bigui85; + BOOST_CHECK_EQUAL(a.str(std::ios_base::dec), "22007822920628982396437281"); +} + +BOOST_AUTO_TEST_CASE(to_string_decimal_big) { + constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + BOOST_CHECK_EQUAL(a.str(std::ios_base::dec), "26959946667150639794667015087019630673557916260026308143510066298881"); +} + BOOST_AUTO_TEST_CASE(ops) { nil::crypto3::multiprecision::big_uint<60> a = 2u, b; diff --git a/crypto3/libs/multiprecision/test/big_int_inverse.cpp b/crypto3/libs/multiprecision/test/big_int_inverse.cpp index 772597bf53..8c63362e31 100644 --- a/crypto3/libs/multiprecision/test/big_int_inverse.cpp +++ b/crypto3/libs/multiprecision/test/big_int_inverse.cpp @@ -15,10 +15,13 @@ #include #include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_int/literals.hpp" #include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" using namespace nil::crypto3::multiprecision; +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(6) + template void test_inverse_extended_euclidean_algorithm() { BOOST_CHECK_EQUAL( @@ -262,7 +265,7 @@ BOOST_AUTO_TEST_CASE(inverse_tests) { } BOOST_AUTO_TEST_CASE(test_big_mod_6_bits) { - auto modular = big_mod_rt<6>(10u, 37u); + auto modular = big_mod_rt<6>(10_bigui6, 37_bigui6); BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(modular).base(), 26u); } diff --git a/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp new file mode 100644 index 0000000000..d5a41e2882 --- /dev/null +++ b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp @@ -0,0 +1,41 @@ +/////////////////////////////////////////////////////////////// +// Copyright (c) 2020 Mikhail Komarov. +// Copyright (c) 2021 Aleksei Moskvin +// Distributed under the Boost Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + +#define BOOST_TEST_MODULE big_int_miller_rabin_test + +#include +#include +#include + +#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/big_int/miller_rabin.hpp" + +using namespace nil::crypto3::multiprecision; +using namespace nil::crypto3::multiprecision::literals; + +BOOST_AUTO_TEST_SUITE(miller_rabin_tests) + +BOOST_AUTO_TEST_CASE(miller_rabin_builtin_test) { + BOOST_CHECK(miller_rabin_test(2u, 1000)); + BOOST_CHECK(miller_rabin_test(3u, 1000)); + BOOST_CHECK(!miller_rabin_test(4u, 1000)); + BOOST_CHECK(miller_rabin_test(17u, 1000)); + BOOST_CHECK(!miller_rabin_test(27u, 1000)); + BOOST_CHECK(miller_rabin_test(101u, 1000)); + BOOST_CHECK(!miller_rabin_test(207u, 1000)); +} + +BOOST_AUTO_TEST_CASE(miller_rabin_big_uint_test) { + BOOST_CHECK(miller_rabin_test(2_bigui128, 1000)); + BOOST_CHECK(miller_rabin_test(3_bigui128, 1000)); + BOOST_CHECK(!miller_rabin_test(4_bigui128, 1000)); + BOOST_CHECK(miller_rabin_test(17_bigui128, 1000)); + BOOST_CHECK(!miller_rabin_test(27_bigui128, 1000)); + BOOST_CHECK(miller_rabin_test(101_bigui128, 1000)); + BOOST_CHECK(!miller_rabin_test(207_bigui128, 1000)); +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_modular.cpp b/crypto3/libs/multiprecision/test/big_int_modular.cpp index 9227d44787..708c77c1bf 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular.cpp @@ -29,42 +29,42 @@ BOOST_AUTO_TEST_CASE(construct_constexpr) { BOOST_AUTO_TEST_CASE(construct_modular_ct_trivial_montgomery) { static constexpr auto mod = 0x3_bigui2; auto_big_mod a = auto_big_mod(0x5_bigui); - BOOST_CHECK_EQUAL(a.str(), "0x2 mod 0x3"); + BOOST_CHECK_EQUAL(a.str(), "0x2"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_trivial_montgomery) { - big_mod_rt<2> a{0x5_bigui, 0x3_bigui}; - BOOST_CHECK_EQUAL(a.str(), "0x2 mod 0x3"); + big_mod_rt<2> a(0x5_bigui, 0x3_bigui2); + BOOST_CHECK_EQUAL(a.str(), "0x2"); } BOOST_AUTO_TEST_CASE(construct_modular_ct_small_montgomery) { static constexpr auto mod = 0x79_bigui7; auto_big_mod a = auto_big_mod(0x1234_bigui); - BOOST_CHECK_EQUAL(a.str(), "0x3E mod 0x79"); + BOOST_CHECK_EQUAL(a.str(), "0x3E"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_small_montgomery) { - big_mod_rt<7> a{0x1234_bigui, 0x79_bigui}; - BOOST_CHECK_EQUAL(a.str(), "0x3E mod 0x79"); + big_mod_rt<7> a(0x1234_bigui, 0x79_bigui7); + BOOST_CHECK_EQUAL(a.str(), "0x3E"); } BOOST_AUTO_TEST_CASE(construct_modular_ct_small) { static constexpr auto mod = 0x78_bigui7; auto_big_mod a = auto_big_mod(0x1234_bigui); - BOOST_CHECK_EQUAL(a.str(), "0x64 mod 0x78"); + BOOST_CHECK_EQUAL(a.str(), "0x64"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_small) { - big_mod_rt<7> a{0x1234_bigui, 0x78_bigui}; - BOOST_CHECK_EQUAL(a.str(), "0x64 mod 0x78"); + big_mod_rt<7> a(0x1234_bigui, 0x78_bigui7); + BOOST_CHECK_EQUAL(a.str(), "0x64"); } BOOST_AUTO_TEST_CASE(to_string_trivial) { - BOOST_CHECK_EQUAL((static_cast(0x1_bigui)).str(), "0x1 mod 0x123456789ABCDEF"); + BOOST_CHECK_EQUAL((static_cast(0x1_bigui)).str(), "0x1"); } BOOST_AUTO_TEST_CASE(to_string_small) { - BOOST_CHECK_EQUAL((static_cast(0x20_bigui)).str(), "0x20 mod 0x123456789ABCDEF"); + BOOST_CHECK_EQUAL((static_cast(0x20_bigui)).str(), "0x20"); } BOOST_AUTO_TEST_CASE(ops) { diff --git a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp index 08e7bc8a1d..92cdc26ff3 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp @@ -49,7 +49,7 @@ constexpr void pow_test(const big_uint_t& a, const big_uint_t& b, const big_uint // modular_number a_m_pow_b_m = pow(a_m, b_m); // powm could be used with mixed types // modular_number a_m_powm_b_m = powm(a_m, b_m); - modular_number a_m_powm_b = powm(a_m, b); + modular_number a_m_powm_b = pow(a_m, b); // BOOST_ASSERT_MSG(standard_number(to_cpp_int(a_m_powm_b_m)) == a_powm_b, "powm error"); BOOST_ASSERT_MSG(to_cpp_int(a_m_powm_b.base()) == a_powm_b, "powm error"); } @@ -110,7 +110,7 @@ bool base_operations_test(std::array test_set) { // modular_number a_and_b = a & b; // modular_number a_or_b = a | b; // modular_number a_xor_b = a ^ b; - modular_number a_powm_b = powm(a, b.base()); + modular_number a_powm_b = pow(a, b.base()); // modular_number a_bit_set = a; // bit_set(a_bit_set, 1); // modular_number a_bit_unset = a; From b653dad1ce4fb738b7621317d1b5ebd90f152690 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Wed, 27 Nov 2024 14:17:04 +0000 Subject: [PATCH 08/18] Fix literals kimchi, poseidon, polynomial_dfs and polynomial_dfs_view --- .../poseidon/plonk/poseidon_constants.hpp | 348 ++--- .../hash/detail/poseidon/kimchi_constants.hpp | 348 ++--- crypto3/libs/math/test/polynomial_dfs.cpp | 1234 ++++++++--------- .../libs/math/test/polynomial_dfs_view.cpp | 590 ++++---- .../parallel-math/test/polynomial_dfs.cpp | 1234 ++++++++--------- .../test/polynomial_dfs_view.cpp | 590 ++++---- 6 files changed, 2172 insertions(+), 2172 deletions(-) diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp index d1c3073eea..d40d6a32b8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp @@ -49,185 +49,185 @@ namespace nil { constexpr static const std::array, state_size> mds = {{ - {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui253, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui253, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui253}}, - {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui253, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui253, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui253}}, - {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui253, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui253, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui253}}, + {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui255, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui255, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui255}}, + {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui255, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui255, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui255}}, + {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui255, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui255, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui255}}, }}; constexpr static const std::array, rounds_amount> round_constant = {{ - {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui253, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui253, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui253}}, - {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui253, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui253, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui253}}, - {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui253, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui253, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui253}}, - {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui253, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui253, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui253}}, - {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui253, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui253, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui253}}, - {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui253, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui253, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui253}}, - {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui253, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui253, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui253}}, - {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui253, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui253, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui253}}, - {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui253, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui253, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui253}}, - {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui253, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui253, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui253}}, - {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui253, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui253, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui253}}, - {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui253, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui253, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui253}}, - {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui253, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui253, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui253}}, - {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui253, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui253, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui253}}, - {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui253, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui253, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui253}}, - {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui253, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui253, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui253}}, - {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui253, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui253, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui253}}, - {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui253, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui253, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui253}}, - {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui253, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui253, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui253}}, - {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui253, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui253, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui253}}, - {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui253, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui253, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui253}}, - {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui253, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui253, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui253}}, - {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui253, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui253, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui253}}, - {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui253, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui253, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui253}}, - {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui253, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui253, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui253}}, - {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui253, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui253, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui253}}, - {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui253, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui253, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui253}}, - {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui253, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui253, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui253}}, - {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui253, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui253, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui253}}, - {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui253, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui253, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui253}}, - {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui253, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui253, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui253}}, - {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui253, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui253, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui253}}, - {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui253, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui253, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui253}}, - {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui253, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui253, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui253}}, - {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui253, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui253, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui253}}, - {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui253, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui253, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui253}}, - {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui253, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui253, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui253}}, - {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui253, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui253, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui253}}, - {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui253, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui253, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui253}}, - {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui253, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui253, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui253}}, - {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui253, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui253, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui253}}, - {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui253, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui253, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui253}}, - {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui253, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui253, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui253}}, - {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui253, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui253, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui253}}, - {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui253, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui253, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui253}}, - {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui253, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui253, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui253}}, - {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui253, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui253, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui253}}, - {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui253, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui253, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui253}}, - {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui253, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui253, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui253}}, - {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui253, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui253, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui253}}, - {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui253, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui253, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui253}}, - {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui253, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui253, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui253}}, - {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui253, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui253, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui253}}, - {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui253, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui253, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui253}}, - {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui253, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui253, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui253}}, + {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui255, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui255, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui255}}, + {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui255, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui255, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui255}}, + {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui255, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui255, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui255}}, + {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui255, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui255, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui255}}, + {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui255, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui255, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui255}}, + {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui255, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui255, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui255}}, + {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui255, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui255, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui255}}, + {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui255, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui255, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui255}}, + {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui255, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui255, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui255}}, + {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui255, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui255, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui255}}, + {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui255, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui255, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui255}}, + {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui255, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui255, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui255}}, + {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui255, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui255, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui255}}, + {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui255, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui255, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui255}}, + {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui255, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui255, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui255}}, + {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui255, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui255, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui255}}, + {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui255, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui255, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui255}}, + {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui255, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui255, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui255}}, + {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui255, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui255, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui255}}, + {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui255, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui255, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui255}}, + {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui255, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui255, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui255}}, + {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui255, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui255, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui255}}, + {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui255, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui255, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui255}}, + {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui255, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui255, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui255}}, + {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui255, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui255, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui255}}, + {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui255, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui255, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui255}}, + {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui255, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui255, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui255}}, + {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui255, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui255, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui255}}, + {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui255, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui255, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui255}}, + {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui255, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui255, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui255}}, + {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui255, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui255, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui255}}, + {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui255, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui255, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui255}}, + {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui255, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui255, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui255}}, + {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui255, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui255, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui255}}, + {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui255, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui255, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui255}}, + {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui255, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui255, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui255}}, + {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui255, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui255, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui255}}, + {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui255, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui255, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui255}}, + {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui255, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui255, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui255}}, + {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui255, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui255, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui255}}, + {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui255, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui255, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui255}}, + {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui255, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui255, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui255}}, + {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui255, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui255, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui255}}, + {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui255, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui255, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui255}}, + {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui255, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui255, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui255}}, + {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui255, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui255, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui255}}, + {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui255, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui255, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui255}}, + {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui255, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui255, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui255}}, + {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui255, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui255, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui255}}, + {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui255, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui255, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui255}}, + {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui255, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui255, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui255}}, + {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui255, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui255, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui255}}, + {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui255, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui255, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui255}}, + {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui255, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui255, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui255}}, + {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui255, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui255, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui255}}, }}; }; diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp index f1b6c3f8c5..818e620b4d 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp @@ -37,19 +37,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui253, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui253, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui253 + 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui255, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui255, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui255 }}, {{ - 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui253, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui253, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui253 + 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui255, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui255, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui255 }}, {{ - 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui253, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui253, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui253 + 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui255, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui255, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui255 }}, }}; @@ -57,279 +57,279 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui253, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui253, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui253 + 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui255, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui255, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui255 }}, {{ - 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui253, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui253, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui253 + 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui255, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui255, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui255 }}, {{ - 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui253, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui253, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui253 + 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui255, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui255, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui255 }}, {{ - 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui253, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui253, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui253 + 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui255, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui255, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui255 }}, {{ - 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui253, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui253, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui253 + 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui255, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui255, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui255 }}, {{ - 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui253, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui253, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui253 + 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui255, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui255, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui255 }}, {{ - 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui253, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui253, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui253 + 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui255, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui255, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui255 }}, {{ - 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui253, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui253, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui253 + 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui255, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui255, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui255 }}, {{ - 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui253, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui253, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui253 + 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui255, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui255, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui255 }}, {{ - 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui253, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui253, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui253 + 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui255, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui255, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui255 }}, {{ - 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui253, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui253, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui253 + 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui255, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui255, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui255 }}, {{ - 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui253, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui253, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui253 + 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui255, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui255, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui255 }}, {{ - 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui253, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui253, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui253 + 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui255, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui255, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui255 }}, {{ - 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui253, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui253, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui253 + 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui255, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui255, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui255 }}, {{ - 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui253, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui253, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui253 + 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui255, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui255, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui255 }}, {{ - 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui253, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui253, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui253 + 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui255, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui255, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui255 }}, {{ - 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui253, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui253, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui253 + 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui255, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui255, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui255 }}, {{ - 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui253, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui253, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui253 + 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui255, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui255, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui255 }}, {{ - 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui253, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui253, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui253 + 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui255, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui255, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui255 }}, {{ - 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui253, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui253, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui253 + 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui255, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui255, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui255 }}, {{ - 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui253, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui253, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui253 + 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui255, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui255, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui255 }}, {{ - 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui253, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui253, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui253 + 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui255, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui255, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui255 }}, {{ - 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui253, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui253, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui253 + 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui255, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui255, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui255 }}, {{ - 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui253, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui253, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui253 + 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui255, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui255, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui255 }}, {{ - 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui253, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui253, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui253 + 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui255, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui255, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui255 }}, {{ - 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui253, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui253, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui253 + 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui255, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui255, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui255 }}, {{ - 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui253, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui253, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui253 + 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui255, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui255, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui255 }}, {{ - 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui253, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui253, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui253 + 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui255, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui255, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui255 }}, {{ - 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui253, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui253, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui253 + 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui255, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui255, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui255 }}, {{ - 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui253, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui253, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui253 + 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui255, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui255, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui255 }}, {{ - 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui253, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui253, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui253 + 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui255, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui255, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui255 }}, {{ - 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui253, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui253, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui253 + 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui255, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui255, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui255 }}, {{ - 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui253, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui253, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui253 + 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui255, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui255, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui255 }}, {{ - 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui253, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui253, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui253 + 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui255, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui255, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui255 }}, {{ - 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui253, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui253, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui253 + 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui255, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui255, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui255 }}, {{ - 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui253, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui253, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui253 + 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui255, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui255, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui255 }}, {{ - 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui253, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui253, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui253 + 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui255, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui255, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui255 }}, {{ - 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui253, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui253, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui253 + 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui255, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui255, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui255 }}, {{ - 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui253, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui253, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui253 + 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui255, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui255, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui255 }}, {{ - 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui253, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui253, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui253 + 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui255, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui255, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui255 }}, {{ - 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui253, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui253, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui253 + 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui255, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui255, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui255 }}, {{ - 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui253, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui253, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui253 + 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui255, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui255, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui255 }}, {{ - 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui253, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui253, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui253 + 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui255, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui255, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui255 }}, {{ - 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui253, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui253, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui253 + 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui255, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui255, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui255 }}, {{ - 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui253, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui253, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui253 + 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui255, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui255, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui255 }}, {{ - 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui253, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui253, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui253 + 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui255, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui255, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui255 }}, {{ - 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui253, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui253, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui253 + 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui255, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui255, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui255 }}, {{ - 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui253, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui253, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui253 + 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui255, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui255, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui255 }}, {{ - 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui253, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui253, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui253 + 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui255, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui255, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui255 }}, {{ - 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui253, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui253, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui253 + 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui255, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui255, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui255 }}, {{ - 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui253, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui253, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui253 + 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui255, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui255, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui255 }}, {{ - 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui253, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui253, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui253 + 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui255, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui255, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui255 }}, {{ - 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui253, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui253, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui253 + 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui255, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui255, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui255 }}, {{ - 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui253, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui253, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui253 + 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui255, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui255, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui255 }}, {{ - 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui253, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui253, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui253 + 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui255, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui255, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui255 }}, }}; }; diff --git a/crypto3/libs/math/test/polynomial_dfs.cpp b/crypto3/libs/math/test/polynomial_dfs.cpp index eb33c2d28f..04bf73e7f5 100644 --- a/crypto3/libs/math/test/polynomial_dfs.cpp +++ b/crypto3/libs/math/test/polynomial_dfs.cpp @@ -51,23 +51,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; polynomial_dfs a1 = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; BOOST_CHECK_EQUAL(a, a1); } @@ -80,14 +80,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -102,13 +102,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -122,13 +122,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -142,38 +142,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -181,57 +181,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; polynomial_dfs b = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -240,27 +240,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253 + 0x37_bigui, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui } }, { 6, { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253 + 0x4e_bigui, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui } } }; @@ -276,38 +276,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -315,57 +315,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; polynomial_dfs b = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -378,27 +378,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -408,14 +408,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -426,27 +426,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, - 0xa_bigui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, + 0x2c_bigui, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, + 0xa_bigui, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -455,14 +455,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, + 0xb_bigui, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -473,27 +473,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, + 0xc250799be244269f448420036244200000016000000000003_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, + 0xe_bigui, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -502,14 +502,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -523,27 +523,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }}; a -= b; @@ -551,14 +551,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -569,23 +569,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0x2c_bigui, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -594,14 +594,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui253, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui253, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui253, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui253, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui253, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui253, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui253, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui253 + 0xb_bigui, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui }}; BOOST_CHECK_EQUAL(c_res, a); @@ -611,27 +611,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, + 0xc250799be244269f448420036244200000016000000000003_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, + 0xe_bigui, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, }}; a -= b; @@ -639,14 +639,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -659,40 +659,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; polynomial_dfs b = { 2, { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, + 0x11_bigui, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; + {0x2f7_bigui, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, + 0x13522f003a2269a89044690056226900000023000000000048_bigui, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -702,44 +702,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }}; polynomial_dfs b = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -749,44 +749,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }}; polynomial_dfs b = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -795,38 +795,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; + {0x4f1_bigui, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, + 0xc250799be244269f44842003624420000001600000000003b_bigui, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -839,40 +839,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; polynomial_dfs b = { 2, { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, + 0x11_bigui, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; + {0x2f7_bigui, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, + 0x13522f003a2269a89044690056226900000023000000000048_bigui, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -881,44 +881,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }}; polynomial_dfs b = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -928,44 +928,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }}; polynomial_dfs b = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -974,38 +974,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; + {0x4f1_bigui, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, + 0xc250799be244269f44842003624420000001600000000003b_bigui, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1019,25 +1019,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_bigui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_bigui, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, }}; polynomial_dfs Q = a / b; @@ -1045,17 +1045,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_bigui253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}}; // {0, 0, 0, 1}; + {0x1_bigui, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253}}; //{5}; + {0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui, + 0x5_bigui, 0x5_bigui, 0x5_bigui, + 0x5_bigui}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1120,25 +1120,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; - typename FieldType::value_type c = 0x10_bigui253; + typename FieldType::value_type c = 0x10_bigui; polynomial_dfs c_res = { 5, - {0x23_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui253} + {0x23_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui} }; polynomial_dfs c1 = a + c; @@ -1153,36 +1153,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; - typename FieldType::value_type c = 0x10_bigui253; + typename FieldType::value_type c = 0x10_bigui; polynomial_dfs c_res = { 5, - {0x3_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui253, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui253}}; + {0x3_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui253, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui253, - 0x19_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui253}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui, + 0x19_bigui, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1197,26 +1197,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; - typename FieldType::value_type c = 0x123456789abcdef0_bigui253; + typename FieldType::value_type c = 0x123456789abcdef0_bigui; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_bigui253, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui253, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui253, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui253, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui253, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui253, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui253 + {0x159e26af37c048bd0_bigui, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui }}; polynomial_dfs c1 = a * c; @@ -1235,14 +1235,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; polynomial_dfs res = a; @@ -1261,17 +1261,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; - typename FieldType::value_type point = 0x10_bigui253; + typename FieldType::value_type point = 0x10_bigui; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1284,17 +1284,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; - typename FieldType::value_type point = 0x10_bigui253; + typename FieldType::value_type point = 0x10_bigui; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1308,14 +1308,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/crypto3/libs/math/test/polynomial_dfs_view.cpp b/crypto3/libs/math/test/polynomial_dfs_view.cpp index a175508e4c..80cd023948 100644 --- a/crypto3/libs/math/test/polynomial_dfs_view.cpp +++ b/crypto3/libs/math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; + 0x4e_bigui, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; + 0x4e_bigui, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, + 0x6_bigui, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, - 0xa_bigui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, + 0x2c_bigui, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, + 0xa_bigui, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_bigui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, + 0xb_bigui, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, + 0xc250799be244269f448420036244200000016000000000003_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, + 0xe_bigui, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, + 0x11_bigui, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_bigui253, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}; + 0x2f7_bigui, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, + 0x13522f003a2269a89044690056226900000023000000000048_bigui, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; + 0x60f_bigui, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, + 0xd_bigui, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; + 0x60f_bigui, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_bigui253, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}; + 0x4f1_bigui, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, + 0xc250799be244269f44842003624420000001600000000003b_bigui, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; + 0x13_bigui, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_bigui253, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}; + 0x1_bigui, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; + 0x13_bigui, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, + 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253}; + std::vector r_v = {0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui, + 0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp index 150df47a22..14977402e8 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp @@ -52,23 +52,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; polynomial_dfs a1 = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; BOOST_CHECK_EQUAL(a, a1); } @@ -81,14 +81,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -103,13 +103,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_bigui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}}; + {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -123,13 +123,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -143,38 +143,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -182,57 +182,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; polynomial_dfs b = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -241,27 +241,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253 + 0x37_bigui255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255 } }, { 6, { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253 + 0x4e_bigui255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255 } } }; @@ -277,38 +277,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -316,57 +316,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; polynomial_dfs b = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}}; + {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -379,27 +379,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -409,14 +409,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -427,27 +427,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, - 0xa_bigui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, + 0x2c_bigui255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, + 0xa_bigui255, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui255, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui255, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -456,14 +456,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, + 0xb_bigui255, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui255, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui255, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui255, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui255, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui255, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -474,27 +474,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, + 0xc250799be244269f448420036244200000016000000000003_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, + 0xe_bigui255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -503,14 +503,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -524,27 +524,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }}; a -= b; @@ -552,14 +552,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -570,23 +570,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, + 0x2c_bigui255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -595,14 +595,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui253, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui253, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui253, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui253, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui253, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui253, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui253, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui253 + 0xb_bigui255, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui255, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui255, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui255, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui255, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui255, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui255, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui255 }}; BOOST_CHECK_EQUAL(c_res, a); @@ -612,27 +612,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, + 0xc250799be244269f448420036244200000016000000000003_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, + 0xe_bigui255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, }}; a -= b; @@ -640,14 +640,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -660,40 +660,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; polynomial_dfs b = { 2, { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, + 0x11_bigui255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; + {0x2f7_bigui255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, + 0x13522f003a2269a89044690056226900000023000000000048_bigui255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -703,44 +703,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }}; polynomial_dfs b = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -750,44 +750,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }}; polynomial_dfs b = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -796,38 +796,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; + {0x4f1_bigui255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, + 0xc250799be244269f44842003624420000001600000000003b_bigui255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -840,40 +840,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; polynomial_dfs b = { 2, { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, + 0x11_bigui255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_bigui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}}; + {0x2f7_bigui255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, + 0x13522f003a2269a89044690056226900000023000000000048_bigui255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -882,44 +882,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }}; polynomial_dfs b = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -929,44 +929,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }}; polynomial_dfs b = { 3, { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}}; + {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -975,38 +975,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}}; + {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; polynomial_dfs b = { 2, - {0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}}; + {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_bigui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}}; + {0x4f1_bigui255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, + 0xc250799be244269f44842003624420000001600000000003b_bigui255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1020,25 +1020,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_bigui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui255, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_bigui255, + 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, }}; polynomial_dfs Q = a / b; @@ -1046,17 +1046,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_bigui253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}}; // {0, 0, 0, 1}; + {0x1_bigui255, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui255, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui255, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui255, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui255, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui255}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253}}; //{5}; + {0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, + 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, + 0x5_bigui255}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1121,25 +1121,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; - typename FieldType::value_type c = 0x10_bigui253; + typename FieldType::value_type c = 0x10_bigui255; polynomial_dfs c_res = { 5, - {0x23_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui253} + {0x23_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui255} }; polynomial_dfs c1 = a + c; @@ -1154,36 +1154,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; - typename FieldType::value_type c = 0x10_bigui253; + typename FieldType::value_type c = 0x10_bigui255; polynomial_dfs c_res = { 5, - {0x3_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui253, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui253}}; + {0x3_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui255, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui255}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui253, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui253, - 0x19_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui253}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui255, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui255, + 0x19_bigui255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui255}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1198,26 +1198,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_bigui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}}; + {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; - typename FieldType::value_type c = 0x123456789abcdef0_bigui253; + typename FieldType::value_type c = 0x123456789abcdef0_bigui255; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_bigui253, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui253, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui253, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui253, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui253, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui253, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui253 + {0x159e26af37c048bd0_bigui255, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui255, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui255, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui255, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui255, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui255, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui255 }}; polynomial_dfs c1 = a * c; @@ -1236,14 +1236,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; polynomial_dfs res = a; @@ -1262,17 +1262,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; - typename FieldType::value_type point = 0x10_bigui253; + typename FieldType::value_type point = 0x10_bigui255; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1285,17 +1285,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; - typename FieldType::value_type point = 0x10_bigui253; + typename FieldType::value_type point = 0x10_bigui255; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1309,14 +1309,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp index a175508e4c..12405977fd 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_bigui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui253}; + 0x35_bigui255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_bigui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui253, + 0x71_bigui255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; + 0x4e_bigui255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_bigui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui253}; + 0x4e_bigui255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_bigui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui253, - 0x6_bigui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui253, + 0x3a_bigui255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, + 0x6_bigui255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_bigui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui253, + 0x37_bigui255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_bigui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui253, - 0xa_bigui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui253, + 0x2c_bigui255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, + 0xa_bigui255, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui255, + 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui255, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui255, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_bigui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui253, + 0xb_bigui255, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui255, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui255, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui255, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui255, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui255, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui255, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui253, - 0xc250799be244269f448420036244200000016000000000003_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui253, + 0x27_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, + 0xc250799be244269f448420036244200000016000000000003_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_bigui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui253, - 0xe_bigui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui253, + 0x32_bigui255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, + 0xe_bigui255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_bigui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui253, + 0x21_bigui255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_bigui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui253, - 0x11_bigui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui253, + 0x17_bigui255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, + 0x11_bigui255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_bigui253, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui253, - 0x13522f003a2269a89044690056226900000023000000000048_bigui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui253}; + 0x2f7_bigui255, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, + 0x13522f003a2269a89044690056226900000023000000000048_bigui255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; + 0x60f_bigui255, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_bigui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui253, - 0xd_bigui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui253, + 0x2f_bigui255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, + 0xd_bigui255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui253, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui253, + 0x21_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, + 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui253}; + 0x60f_bigui255, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_bigui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui253}; + 0x37_bigui255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui253, 0x11_bigui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui253}; + 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_bigui253, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui253, - 0xc250799be244269f44842003624420000001600000000003b_bigui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui253}; + 0x4f1_bigui255, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, + 0xc250799be244269f44842003624420000001600000000003b_bigui255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; + 0x13_bigui255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_bigui253, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui253}; + 0x1_bigui255, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui255, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui255, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui255, + 0x8d51ccce760304d0ec030002760300000001000000000000_bigui255, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui255}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui253}; + 0x13_bigui255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, - 0xe_bigui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui253, - 0xc_bigui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui253, + 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, + 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, - 0x5_bigui253, 0x5_bigui253, 0x5_bigui253, 0x5_bigui253}; + std::vector r_v = {0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, + 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); From 995907f2fad1fee8ac2fcca24ef3d2203011ac0c Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Tue, 3 Dec 2024 17:03:19 +0000 Subject: [PATCH 09/18] multiprecision: update benchmarks --- crypto3/benchmarks/CMakeLists.txt | 1 + crypto3/benchmarks/multiprecision/big_int.cpp | 292 ++++++++++++++ .../multiprecision/modular_adaptor_fixed.cpp | 368 ++++++++++++++---- 3 files changed, 582 insertions(+), 79 deletions(-) create mode 100644 crypto3/benchmarks/multiprecision/big_int.cpp diff --git a/crypto3/benchmarks/CMakeLists.txt b/crypto3/benchmarks/CMakeLists.txt index 476fde2323..7f3f40d1d1 100644 --- a/crypto3/benchmarks/CMakeLists.txt +++ b/crypto3/benchmarks/CMakeLists.txt @@ -60,6 +60,7 @@ set(BENCHMARK_NAMES "math/polynomial_dfs" "multiprecision/modular_adaptor_fixed" + "multiprecision/big_int" "zk/lpc" "zk/pedersen" diff --git a/crypto3/benchmarks/multiprecision/big_int.cpp b/crypto3/benchmarks/multiprecision/big_int.cpp new file mode 100644 index 0000000000..3250108790 --- /dev/null +++ b/crypto3/benchmarks/multiprecision/big_int.cpp @@ -0,0 +1,292 @@ +//---------------------------------------------------------------------------// +// Copyright (c) 2024 Martun Karapetyan +// Copyright (c) 2024 Vasiliy Olekhov +// +// Distributed under the Boost Software License, Version 1.0 +// See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt +//---------------------------------------------------------------------------// + +#define BOOST_TEST_MODULE big_int_benchmark_test + +#include +#include +#include + +#include +#include + +#include +#include +#include + +#include + +using namespace nil::crypto3::multiprecision::literals; + +constexpr std::size_t Bits = 256; +using standart_number = nil::crypto3::multiprecision::big_uint; + +constexpr standart_number modulus_odd = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; +constexpr standart_number modulus_even = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e_bigui256; + +using modular_number_ct_odd = nil::crypto3::multiprecision::montgomery_big_mod; +using modular_number_ct_even = nil::crypto3::multiprecision::big_mod; +using modular_number_rt_montgomery = nil::crypto3::multiprecision::montgomery_big_mod_rt; +using modular_number_rt = nil::crypto3::multiprecision::big_mod_rt; + +constexpr standart_number x = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_bigui256; +constexpr modular_number_ct_odd x_mod_ct_odd = x; +constexpr modular_number_ct_even x_mod_ct_even = x; +constexpr modular_number_rt_montgomery x_mod_rt_odd{x, modulus_odd}; +constexpr modular_number_rt x_mod_rt_even{x, modulus_even}; + +constexpr standart_number y = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_bigui256; +constexpr modular_number_ct_odd y_mod_ct_odd = y; +constexpr modular_number_ct_even y_mod_ct_even = y; +constexpr modular_number_rt_montgomery y_mod_rt_odd{y, modulus_odd}; +constexpr modular_number_rt y_mod_rt_even{y, modulus_even}; + +BOOST_AUTO_TEST_SUITE(runtime_odd_tests) + +// This directly calls montgomery mul from modular_ops.hpp. +BOOST_AUTO_TEST_CASE(montgomery_mul_perf_test) { + auto raw_base = x_mod_rt_odd.raw_base(); + auto mod_ops = x_mod_rt_odd.ops(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] montgomery mul (direct call)", + [&]() { + mod_ops.mul(raw_base, y_mod_rt_odd.raw_base()); + return raw_base; + }); + + std::cout << raw_base << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_sub_perf_test) { + auto x_modular = x_mod_rt_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] big_mod_subtract", + [&]() { + x_modular -= y_mod_rt_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_add_perf_test) { + auto x_modular = x_mod_rt_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] big_mod_add", + [&]() { + x_modular += y_mod_rt_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_mul_perf_test) { + auto x_modular = x_mod_rt_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] big_mod_multiply", + [&]() { + x_modular *= y_mod_rt_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(compile_time_odd_tests) + +// This directly calls montgomery mul from modular_ops.hpp. +BOOST_AUTO_TEST_CASE(montgomery_mul_perf_test) { + auto raw_base = x_mod_ct_odd.raw_base(); + auto mod_ops = x_mod_ct_odd.ops(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] montgomery mul (direct call)", + [&]() { + mod_ops.mul(raw_base, y_mod_ct_odd.raw_base()); + return raw_base; + }); + + std::cout << raw_base << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_sub_perf_test) { + auto x_modular = x_mod_ct_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] big_mod_subtract", + [&]() { + x_modular -= y_mod_ct_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_add_perf_test) { + auto x_modular = x_mod_ct_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] big_mod_add", + [&]() { + x_modular += y_mod_ct_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_mul_perf_test) { + auto x_modular = x_mod_ct_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] big_mod_multiply", + [&]() { + x_modular *= y_mod_ct_odd; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(runtime_even_tests) + +// This directly calls barrett mul from modular_ops.hpp. +BOOST_AUTO_TEST_CASE(barrett_mul_perf_test) { + auto raw_base = x_mod_rt_even.raw_base(); + auto mod_ops = x_mod_rt_even.ops(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] barrett mul (direct call)", + [&]() { + mod_ops.mul(raw_base, y_mod_rt_even.raw_base()); + return raw_base; + }); + + std::cout << raw_base << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_sub_perf_test) { + auto x_modular = x_mod_rt_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] big_mod_subtract", + [&]() { + x_modular -= y_mod_rt_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_add_perf_test) { + auto x_modular = x_mod_rt_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] big_mod_add", + [&]() { + x_modular += y_mod_rt_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_mul_perf_test) { + auto x_modular = x_mod_rt_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] big_mod_multiply", + [&]() { + x_modular *= y_mod_rt_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(compile_time_even_tests) + +// This directly calls mul from modular_ops.hpp. +BOOST_AUTO_TEST_CASE(barrett_mul_perf_test) { + auto raw_base = x_mod_ct_even.raw_base(); + auto mod_ops = x_mod_ct_even.ops(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] barrett mul (direct call)", + [&]() { + mod_ops.mul(raw_base, y_mod_ct_even.raw_base()); + return raw_base; + }); + + std::cout << raw_base << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_sub_perf_test) { + auto x_modular = x_mod_ct_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] big_mod_subtract", + [&]() { + x_modular -= y_mod_ct_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_add_perf_test) { + auto x_modular = x_mod_ct_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] big_mod_add", + [&]() { + x_modular += y_mod_ct_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(big_mod_mul_perf_test) { + auto x_modular = x_mod_ct_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] big_mod_multiply", + [&]() { + x_modular *= y_mod_ct_even; + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp b/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp index 8c3e8cb13d..ab8e2fc392 100644 --- a/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp +++ b/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp @@ -7,6 +7,7 @@ // http://www.boost.org/LICENSE_1_0.txt //---------------------------------------------------------------------------// +#include "nil/crypto3/multiprecision/modular/modular_params.hpp" #define BOOST_TEST_MODULE modular_fixed_multiprecision_test #define TEST_CPP_INT @@ -44,34 +45,52 @@ using namespace boost::multiprecision; using boost::multiprecision::backends::cpp_int_modular_backend; using boost::multiprecision::backends::modular_adaptor; +using boost::multiprecision::backends::modular_params_ct; using boost::multiprecision::backends::modular_params_rt; +using Backend = cpp_int_modular_backend<256>; +using standart_number = boost::multiprecision::number; -BOOST_AUTO_TEST_SUITE(runtime_tests) +constexpr standart_number modulus_odd = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; +constexpr standart_number modulus_even = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e_cppui_modular256; +constexpr backends::modular_params params_odd{modulus_odd.backend()}; +constexpr backends::modular_params params_even{modulus_even.backend()}; + +using params_ct_odd = modular_params_ct; +using params_ct_even = modular_params_ct; +using params_rt = modular_params_rt; + +using modular_backend_ct_odd = modular_adaptor; +using modular_backend_ct_even = modular_adaptor; +using modular_backend_rt = modular_adaptor; + +using modular_number_ct_odd = boost::multiprecision::number; +using modular_number_ct_even = boost::multiprecision::number; +using modular_number_rt = boost::multiprecision::number; + +constexpr standart_number x = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; +constexpr modular_number_ct_odd x_mod_ct_odd = modular_backend_ct_odd(x.backend()); +constexpr modular_number_ct_even x_mod_ct_even = modular_backend_ct_even(x.backend()); +constexpr modular_number_rt x_mod_rt_odd = modular_backend_rt(x.backend(), modulus_odd.backend()); +constexpr modular_number_rt x_mod_rt_even = modular_backend_rt(x.backend(), modulus_even.backend()); + +constexpr standart_number y = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; +constexpr modular_number_ct_odd y_mod_ct_odd = modular_backend_ct_odd(y.backend()); +constexpr modular_number_ct_even y_mod_ct_even = modular_backend_ct_even(y.backend()); +constexpr modular_number_rt y_mod_rt_odd = modular_backend_rt(y.backend(), modulus_odd.backend()); +constexpr modular_number_rt y_mod_rt_even = modular_backend_rt(y.backend(), modulus_even.backend()); + +BOOST_AUTO_TEST_SUITE(runtime_odd_tests) // This directly calls montgomery_mul from modular_functions_fixed.hpp. -BOOST_AUTO_TEST_CASE(modular_adaptor_montgomery_mult_perf_test) { - using Backend = cpp_int_modular_backend<256>; - using standart_number = boost::multiprecision::number; - using params_safe_type = modular_params_rt; - using modular_backend = modular_adaptor; - using modular_number = boost::multiprecision::number; - constexpr standart_number modulus = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; - constexpr standart_number x_value = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; - constexpr modular_number x(modular_backend(x_value.backend(), modulus.backend())); - auto x_modular = x.backend(); - - constexpr standart_number res_value = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; - constexpr modular_number res(modular_backend( - res_value.backend(), modulus.backend())); - auto res_modular = res.backend(); - auto mod_object = x_modular.mod_data().get_mod_obj(); - auto base_data = x_modular.base_data(); - - nil::crypto3::bench::run_benchmark<>( - "montgomery_mul (direct call)", - [&]() { - mod_object.montgomery_mul(base_data, res_modular.base_data(), +BOOST_AUTO_TEST_CASE(montgomery_mul_perf_test) { + auto base_data = x_mod_rt_odd.backend().base_data(); + auto mod_object = x_mod_rt_odd.backend().mod_data().get_mod_obj(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] montgomery_mul (direct call)", + [&]() { + mod_object.montgomery_mul(base_data, y_mod_rt_odd.backend().base_data(), std::integral_constant::value>()); return base_data; }); @@ -82,24 +101,92 @@ BOOST_AUTO_TEST_CASE(modular_adaptor_montgomery_mult_perf_test) { BOOST_AUTO_TEST_CASE(modular_adaptor_backend_sub_perf_test) { using namespace boost::multiprecision::default_ops; - using Backend = cpp_int_modular_backend<256>; - using standart_number = boost::multiprecision::number; - using params_safe_type = modular_params_rt; - using modular_backend = modular_adaptor; - using modular_number = boost::multiprecision::number; - constexpr standart_number modulus = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; - constexpr standart_number x_value = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; - constexpr modular_number x(modular_backend(x_value.backend(), modulus.backend())); - auto x_modular = x.backend(); + auto x_modular = x_mod_rt_odd.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] modular_adaptor_backend_subtract", + [&]() { + eval_subtract(x_modular, y_mod_rt_odd.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_add_perf_test) { + using namespace boost::multiprecision::default_ops; + + auto x_modular = x_mod_rt_odd.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] modular_adaptor_backend_add", + [&]() { + eval_add(x_modular, y_mod_rt_odd.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mul_perf_test) { + auto x_modular = x_mod_rt_odd.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] modular_adaptor_backend_multiply", + [&]() { + eval_multiply(x_modular, y_mod_rt_odd.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_number_mul_perf_test) { + auto x = x_mod_rt_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][runtime] modular_adaptor_number_multiply", + [&]() { + x *= y_mod_rt_odd; + return x; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() + +BOOST_AUTO_TEST_SUITE(compile_time_odd_tests) + +// This directly calls montgomery_mul from modular_functions_fixed.hpp. +BOOST_AUTO_TEST_CASE(montgomery_mul_perf_test) { + auto base_data = x_mod_ct_odd.backend().base_data(); + auto mod_object = x_mod_ct_odd.backend().mod_data().get_mod_obj(); + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] montgomery_mul (direct call)", + [&]() { + mod_object.montgomery_mul(base_data, y_mod_ct_odd.backend().base_data(), + std::integral_constant::value>()); + return base_data; + }); + + std::cout << base_data << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_sub_perf_test) { + using namespace boost::multiprecision::default_ops; - constexpr standart_number res_value = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; - constexpr modular_number res(modular_backend(res_value.backend(), modulus.backend())); - auto res_modular = res.backend(); + auto x_modular = x_mod_ct_odd.backend(); nil::crypto3::bench::run_benchmark<>( - "modular_adaptor_backend_subtract", + "[odd modulus][compile time] modular_adaptor_backend_subtract", [&]() { - eval_subtract(x_modular, res_modular); + eval_subtract(x_modular, y_mod_ct_odd.backend()); return x_modular; }); @@ -110,24 +197,26 @@ BOOST_AUTO_TEST_CASE(modular_adaptor_backend_sub_perf_test) { BOOST_AUTO_TEST_CASE(modular_adaptor_backend_add_perf_test) { using namespace boost::multiprecision::default_ops; - using Backend = cpp_int_modular_backend<256>; - using standart_number = boost::multiprecision::number; - using params_safe_type = modular_params_rt; - using modular_backend = modular_adaptor; - using modular_number = boost::multiprecision::number; - constexpr standart_number modulus = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; - constexpr standart_number x_value = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; - constexpr modular_number x(modular_backend(x_value.backend(), modulus.backend())); - auto x_modular = x.backend(); + auto x_modular = x_mod_ct_odd.backend(); - constexpr standart_number res_value = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; - constexpr modular_number res(modular_backend(res_value.backend(), modulus.backend())); - auto res_modular = res.backend(); + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] modular_adaptor_backend_add", + [&]() { + eval_add(x_modular, y_mod_ct_odd.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mul_perf_test) { + auto x_modular = x_mod_ct_odd.backend(); nil::crypto3::bench::run_benchmark<>( - "modular_adaptor_backend_add", + "[odd modulus][compile time] modular_adaptor_backend_multiply", [&]() { - eval_add(x_modular, res_modular); + eval_multiply(x_modular, y_mod_ct_odd.backend()); return x_modular; }); @@ -135,25 +224,48 @@ BOOST_AUTO_TEST_CASE(modular_adaptor_backend_add_perf_test) { std::cout << x_modular << std::endl; } -BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mult_perf_test) { - using Backend = cpp_int_modular_backend<256>; - using standart_number = boost::multiprecision::number; - using params_safe_type = modular_params_rt; - using modular_backend = modular_adaptor; - using modular_number = boost::multiprecision::number; - constexpr standart_number modulus = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; - constexpr standart_number x_value = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; - constexpr modular_number x(modular_backend(x_value.backend(), modulus.backend())); - auto x_modular = x.backend(); +BOOST_AUTO_TEST_CASE(modular_adaptor_number_mul_perf_test) { + auto x = x_mod_ct_odd; + + nil::crypto3::bench::run_benchmark<>( + "[odd modulus][compile time] modular_adaptor_number_multiply", + [&]() { + x *= y_mod_ct_odd; + return x; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() - constexpr standart_number res_value = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; - constexpr modular_number res(modular_backend(res_value.backend(), modulus.backend())); - constexpr auto res_modular = res.backend(); +BOOST_AUTO_TEST_SUITE(runtime_even_tests) + +// This directly calls regular_mul from modular_functions_fixed.hpp. +BOOST_AUTO_TEST_CASE(barrett_mul_perf_test) { + auto base_data = x_mod_rt_even.backend().base_data(); + auto mod_object = x_mod_rt_even.backend().mod_data().get_mod_obj(); nil::crypto3::bench::run_benchmark<>( - "modular_adaptor_backend_multiply", + "[even modulus][runtime] regular_mul (direct call)", [&]() { - eval_multiply(x_modular, res_modular); + mod_object.regular_mul(base_data, y_mod_rt_even.backend().base_data()); + return base_data; + }); + + std::cout << base_data << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_sub_perf_test) { + using namespace boost::multiprecision::default_ops; + + auto x_modular = x_mod_rt_even.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] modular_adaptor_backend_subtract", + [&]() { + eval_subtract(x_modular, y_mod_rt_even.backend()); return x_modular; }); @@ -161,23 +273,43 @@ BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mult_perf_test) { std::cout << x_modular << std::endl; } -BOOST_AUTO_TEST_CASE(modular_adaptor_number_mult_perf_test) { - using Backend = cpp_int_modular_backend<256>; - using standart_number = boost::multiprecision::number; - using params_safe_type = modular_params_rt; - using modular_backend = modular_adaptor; - using modular_number = boost::multiprecision::number; - constexpr standart_number modulus = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_cppui_modular256; - constexpr standart_number x_value = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_cppui_modular256; - modular_number x(modular_backend(x_value.backend(), modulus.backend())); +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_add_perf_test) { + using namespace boost::multiprecision::default_ops; + + auto x_modular = x_mod_rt_even.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] modular_adaptor_backend_add", + [&]() { + eval_add(x_modular, y_mod_rt_even.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} - constexpr standart_number res_value = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_cppui_modular256; - modular_number res(modular_backend(res_value.backend(), modulus.backend())); +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mul_perf_test) { + auto x_modular = x_mod_rt_even.backend(); nil::crypto3::bench::run_benchmark<>( - "modular_adaptor_number_multiply", + "[even modulus][runtime] modular_adaptor_backend_multiply", [&]() { - x *= res; + eval_multiply(x_modular, y_mod_rt_even.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_number_mul_perf_test) { + auto x = x_mod_rt_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][runtime] modular_adaptor_number_multiply", + [&]() { + x *= y_mod_rt_even; return x; }); @@ -187,3 +319,81 @@ BOOST_AUTO_TEST_CASE(modular_adaptor_number_mult_perf_test) { BOOST_AUTO_TEST_SUITE_END() +BOOST_AUTO_TEST_SUITE(compile_time_even_tests) + +// This directly calls regular_mul from modular_functions_fixed.hpp. +BOOST_AUTO_TEST_CASE(barrett_mul_perf_test) { + auto base_data = x_mod_ct_even.backend().base_data(); + auto mod_object = x_mod_ct_even.backend().mod_data().get_mod_obj(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] regular_mul (direct call)", + [&]() { + mod_object.regular_mul(base_data, y_mod_ct_even.backend().base_data()); + return base_data; + }); + + std::cout << base_data << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_sub_perf_test) { + using namespace boost::multiprecision::default_ops; + + auto x_modular = x_mod_ct_even.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] modular_adaptor_backend_subtract", + [&]() { + eval_subtract(x_modular, y_mod_ct_even.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_add_perf_test) { + using namespace boost::multiprecision::default_ops; + + auto x_modular = x_mod_ct_even.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] modular_adaptor_backend_add", + [&]() { + eval_add(x_modular, y_mod_ct_even.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_backend_mul_perf_test) { + auto x_modular = x_mod_ct_even.backend(); + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] modular_adaptor_backend_multiply", + [&]() { + eval_multiply(x_modular, y_mod_ct_even.backend()); + return x_modular; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x_modular << std::endl; +} + +BOOST_AUTO_TEST_CASE(modular_adaptor_number_mul_perf_test) { + auto x = x_mod_ct_even; + + nil::crypto3::bench::run_benchmark<>( + "[even modulus][compile time] modular_adaptor_number_multiply", + [&]() { + x *= y_mod_ct_even; + return x; + }); + + // Print something so the whole computation is not optimized out. + std::cout << x << std::endl; +} + +BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file From e27b8d55085dc299973b6854afb8c8c9dbb9edcc Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Wed, 27 Nov 2024 12:48:03 +0000 Subject: [PATCH 10/18] Add base() calls --- .../nil/blueprint/basic_non_native_policy.hpp | 2 +- .../include/nil/blueprint/bbf/exp.hpp | 8 +-- .../nil/blueprint/zkevm/operations/addmod.hpp | 6 +- .../blueprint/zkevm/operations/bitwise.hpp | 6 +- .../nil/blueprint/zkevm/operations/div.hpp | 14 ++--- .../blueprint/zkevm/operations/div_mod.hpp | 6 +- .../nil/blueprint/zkevm/operations/iszero.hpp | 2 +- .../nil/blueprint/zkevm/operations/mul.hpp | 8 +-- .../nil/blueprint/zkevm/operations/mulmod.hpp | 24 +++---- .../nil/blueprint/zkevm/operations/sar.hpp | 6 +- .../blueprint/zkevm/operations/sdiv_smod.hpp | 6 +- .../nil/blueprint/zkevm/operations/shl.hpp | 8 +-- .../nil/blueprint/zkevm/operations/shr.hpp | 6 +- .../zkevm/zkevm_machine_interface.hpp | 12 ++-- .../nil/blueprint/zkevm/zkevm_word.hpp | 7 +-- .../opcode_tester_input_generator.hpp | 14 ++--- .../blueprint/zkevm_bbf/opcodes/addmod.hpp | 8 +-- .../blueprint/zkevm_bbf/opcodes/bitwise.hpp | 4 +- .../blueprint/zkevm_bbf/opcodes/div_mod.hpp | 12 ++-- .../blueprint/zkevm_bbf/opcodes/mulmod.hpp | 26 ++++---- .../nil/blueprint/zkevm_bbf/opcodes/sar.hpp | 8 +-- .../blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp | 12 ++-- .../nil/blueprint/zkevm_bbf/opcodes/shl.hpp | 8 +-- .../nil/blueprint/zkevm_bbf/opcodes/shr.hpp | 8 +-- .../zkevm_bbf/types/rw_operation.hpp | 4 +- .../fields/plonk/non_native/logic_ops.cpp | 2 +- .../test/hashes/plonk/keccak_padding.cpp | 2 +- .../test/hashes/plonk/keccak_static.cpp | 2 +- .../blueprint/test/zkevm/opcode_tester.hpp | 62 +++++++++---------- .../hash/block_to_field_elements_wrapper.hpp | 2 +- 30 files changed, 146 insertions(+), 149 deletions(-) diff --git a/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp b/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp index 2fafebe937..a298d12f64 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/basic_non_native_policy.hpp @@ -135,7 +135,7 @@ namespace nil { std::size_t i_th) { assert(i_th < ratio && "non-native type does not have that much chunks!"); extended_integral_type result = extended_integral_type( - input.data); + input.data.base()); native_field_type::integral_type base = 1; native_field_type::integral_type mask = (base << chunk_sizes[i_th]) - 1; std::size_t shift = 0; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp index 94ca4af02a..4985c5880d 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp @@ -238,13 +238,13 @@ namespace nil { r_64_chunks.push_back(chunk_sum_64(r_chunks[cur], k)); } - auto first_row_carries = first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data >> 128; - TYPE c_1 = static_cast(first_row_carries & (two_64 - 1).data); + auto first_row_carries = first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data.base() >> 128; + TYPE c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); c_2[cur] = static_cast(first_row_carries >> 64); c_1_chunks[cur] = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk - auto second_row_carries = (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2[cur] * two_64).data >> 128; - TYPE c_3 = static_cast(second_row_carries & (two_64 - 1).data); + auto second_row_carries = (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2[cur] * two_64).data.base() >> 128; + TYPE c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); c_4[cur] = static_cast(second_row_carries >> 64); c_3_chunks[cur] = chunk_64_to_16(c_3); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp index d187c45dff..f1f2bbe525 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp @@ -373,14 +373,14 @@ namespace nil { const std::size_t curr_row = zkevm_table.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_construct(s_64_chunks, N_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(s_64_chunks, N_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk auto second_row_carries = (second_carryless_construct(s_64_chunks, N_64_chunks, r_64_chunks, q_64_chunks) - + c_1 + c_2 * two_64).data >> 128; + + c_1 + c_2 * two_64).data.base() >> 128; value_type c_3 = static_cast(second_row_carries); std::vector c_3_chunks = chunk_64_to_16(c_3); value_type N_sum = std::accumulate(N_chunks.begin(), N_chunks.end(), value_type(0)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/bitwise.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/bitwise.hpp index d1557fbc5a..198d4bfa2f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/bitwise.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/bitwise.hpp @@ -112,9 +112,9 @@ namespace nil { word_type result; switch(bit_operation) { - case B_AND: result = a & b; break; - case B_OR: result = a | b; break; - case B_XOR: result = a ^ b; break; + case B_AND: result = a.base() & b.base(); break; + case B_OR: result = a.base() | b.base(); break; + case B_XOR: result = a.base() ^ b.base(); break; } const std::vector a_chunks = zkevm_word_to_field_element(a); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp index b16f915451..43ba0cc8af 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp @@ -216,10 +216,8 @@ namespace nil { zkevm_stack &stack = machine.stack; word_type a = stack.pop(); word_type b = stack.pop(); - using integral_type = nil::crypto3::multiprecision::big_uint<257>; - integral_type result_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - word_type result = word_type::backend_type(result_integral); - word_type q = b != 0u ? a % b : a; + word_type result = b.base() != 0u ? a.base() / b.base() : 0u; + word_type q = b.base() != 0u ? a.base() % b.base() : a; const std::vector a_chunks = zkevm_word_to_field_element(a); const std::vector b_chunks = zkevm_word_to_field_element(b); @@ -240,15 +238,15 @@ namespace nil { const std::size_t curr_row = zkevm_circuit.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk auto second_row_carries = (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks) - + c_1 + c_2 * two_64).data >> 128; - value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data); + + c_1 + c_2 * two_64).data.base() >> 128; + value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); value_type c_4 = static_cast(second_row_carries >> 64); std::vector c_3_chunks = chunk_64_to_16(c_3); value_type b_sum = std::accumulate(b_chunks.begin(), b_chunks.end(), value_type(0)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp index f22f28c89a..3ee35e7098 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp @@ -281,7 +281,7 @@ namespace nil { using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; word_type r = r_integral; - word_type q = b != 0u ? a % b : a; + word_type q = b != 0u ? integral_type(a) % integral_type(b) : a; word_type q_out = b != 0u ? q : 0; // according to EVM spec a % 0 = 0 bool t_last = integral_type(q) < integral_type(b); @@ -311,8 +311,8 @@ namespace nil { const std::size_t curr_row = zkevm_table.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/iszero.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/iszero.hpp index 4c990ac643..606307c108 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/iszero.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/iszero.hpp @@ -99,7 +99,7 @@ namespace nil { for (std::size_t i = 0; i < chunk_amount; i++) { assignment.witness(witness_cols[i], curr_row) = chunks[i]; } - assignment.witness(witness_cols[chunk_amount], curr_row) = (a == 0u); + assignment.witness(witness_cols[chunk_amount], curr_row) = (a.base() == 0u); const value_type chunk_sum = std::accumulate(chunks.begin(), chunks.end(), value_type::zero()); assignment.witness(witness_cols[2*chunk_amount], curr_row) = chunk_sum == 0 ? value_type::zero() : value_type::one() * chunk_sum.inversed(); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp index 006e4e5c7a..a220ba7e9e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp @@ -178,14 +178,14 @@ namespace nil { const std::size_t curr_row = zkevm_table.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk auto second_row_carries = - (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2 * two_64).data >> 128; - value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data); + (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2 * two_64).data.base() >> 128; + value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); value_type c_4 = static_cast(second_row_carries >> 64); std::vector c_3_chunks = chunk_64_to_16(c_3); // TODO: replace with memory access, which would also do range checks! diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp index 1268f7c42a..82cd7d2c78 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp @@ -522,42 +522,42 @@ namespace nil { // computation of s = a*b product auto s_first_row_carries = - first_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks).data >> 128; - value_type s_c_1 = static_cast(s_first_row_carries & (two_64 - 1).data); + first_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks).data.base() >> 128; + value_type s_c_1 = static_cast(s_first_row_carries & (two_64 - 1).data.base()); value_type s_c_2 = static_cast(s_first_row_carries >> 64); std::vector s_c_1_chunks = chunk_64_to_16(s_c_1); // no need for c_2 chunks as there is only a single chunk auto s_second_row_carries = (second_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks) - + s_c_1 + s_c_2 * two_64).data >> 128; - value_type s_c_3 = static_cast(s_second_row_carries & (two_64 - 1).data); + + s_c_1 + s_c_2 * two_64).data.base() >> 128; + value_type s_c_3 = static_cast(s_second_row_carries & (two_64 - 1).data.base()); value_type s_c_4 = static_cast(s_second_row_carries >> 64); std::vector s_c_3_chunks = chunk_64_to_16(s_c_3); auto s_third_row_carries = (third_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks) - + s_c_3 + s_c_4 * two_64).data >> 128; - value_type s_c_5 = static_cast(s_third_row_carries & (two_64 - 1).data); + + s_c_3 + s_c_4 * two_64).data.base() >> 128; + value_type s_c_5 = static_cast(s_third_row_carries & (two_64 - 1).data.base()); value_type s_c_6 = static_cast(s_third_row_carries >> 64); std::vector s_c_5_chunks = chunk_64_to_16(s_c_5); // computation of N*r product // caluclate first row carries auto first_row_carries = - first_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk auto second_row_carries = (second_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks) - + c_1 + c_2 * two_64).data >> 128; - value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data); + + c_1 + c_2 * two_64).data.base() >> 128; + value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); value_type c_4 = static_cast(second_row_carries >> 64); std::vector c_3_chunks = chunk_64_to_16(c_3); auto third_row_carries = (third_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks) - + c_3 + c_4 * two_64).data >> 128; - value_type c_5 = static_cast(third_row_carries & (two_64 - 1).data); + + c_3 + c_4 * two_64).data.base() >> 128; + value_type c_5 = static_cast(third_row_carries & (two_64 - 1).data.base()); value_type c_6 = static_cast(third_row_carries >> 64); std::vector c_5_chunks = chunk_64_to_16(c_5); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp index af0c84993f..7fb89f79f8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp @@ -459,7 +459,7 @@ namespace nil { word_type b = word_type(integral_type(1) << shift); word_type r = r_integral; - word_type q = b != 0u ? a % b : a; + word_type q = b != 0u ? a.base() % b.base() : a; bool t_last = integral_type(q) < integral_type(b); word_type v = word_type(integral_type(q) + integral_type(t_last)*zkevm_modulus - integral_type(b)); @@ -529,8 +529,8 @@ namespace nil { } // caluclate first row carries auto first_row_carries = - first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp index e6170a7867..ef8f4ee3a0 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp @@ -504,7 +504,7 @@ namespace nil { integral_type r_integral = (b != 0u)? integral_type(a_abs) / integral_type(b_abs) : 0u; word_type r_abs = r_integral, - q_abs = b != 0u ? a_abs % b_abs : a_abs, + q_abs = b != 0u ? integral_type(a_abs) % integral_type(b_abs) : integral_type(a_abs), r = (is_negative(a) == is_negative(b)) ? r_abs : negate_word(r_abs), q = is_negative(a)? negate_word(q_abs) : q_abs; @@ -539,8 +539,8 @@ namespace nil { const std::size_t curr_row = zkevm_table.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp index 70947ba43b..495200c291 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp @@ -266,14 +266,14 @@ namespace nil { const std::size_t curr_row = zkevm_table.get_current_row(); // caluclate first row carries auto first_row_carries = - first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); std::vector c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk auto second_row_carries = - (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2 * two_64).data >> 128; - value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data); + (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2 * two_64).data.base() >> 128; + value_type c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); value_type c_4 = static_cast(second_row_carries >> 64); std::vector c_3_chunks = chunk_64_to_16(c_3); // TODO: replace with memory access, which would also do range checks! diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp index 3e60e19ff4..97e27d75e7 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp @@ -340,7 +340,7 @@ namespace nil { word_type b = word_type(integral_type(1) << shift); word_type result = r_integral; - word_type q = b != 0u ? a % b : a; + word_type q = b != 0u ? a.base() % b.base() : a; bool t_last = integral_type(q) < integral_type(b); word_type v = word_type(integral_type(q) + integral_type(t_last)*zkevm_modulus - integral_type(b)); @@ -369,8 +369,8 @@ namespace nil { auto first_row_carries_non_shifted = first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data; auto first_row_carries = - first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data >> 128; - value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data); + first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks).data.base() >> 128; + value_type c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); value_type c_2 = static_cast(first_row_carries >> 64); BOOST_ASSERT(first_row_carries_non_shifted - c_1 * two128 - c_2 * two192 == 0); std::vector c_1_chunks = chunk_64_to_16(c_1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp index aa825f6f82..f9c18222ea 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp @@ -251,7 +251,7 @@ namespace nil { word_type a = stack_pop(); word_type b = stack_pop(); word_type N = stack_pop(); - stack.push(N? (a * b) % N: 0); + stack.push(N? (a * b).base() % N.base() : 0u); pc++; gas -= 8; break; } @@ -259,13 +259,13 @@ namespace nil { word_type a = stack_pop(); word_type b = stack_pop(); word_type N = stack_pop(); - stack.push(N? (a + b) % N: 0); + stack.push(N? (a + b).base() % N.base() : 0u); pc++; gas -= 8; break; } case zkevm_opcode::ISZERO:{ word_type a = stack_pop(); - stack.push(a? 1 : 0); + stack.push(a? 1u : 0u); pc++; gas -= 3; break; } @@ -350,21 +350,21 @@ namespace nil { case zkevm_opcode::AND:{ word_type a = stack_pop(); word_type b = stack_pop(); - stack.push(a & b); + stack.push(a.base() & b.base()); pc++; gas -= 3; break; } case zkevm_opcode::OR:{ word_type a = stack_pop(); word_type b = stack_pop(); - stack.push(a | b); + stack.push(a.base() | b.base()); pc++; gas -= 3; break; } case zkevm_opcode::XOR:{ word_type a = stack_pop(); word_type b = stack_pop(); - stack.push(a ^ b); + stack.push(a.base() ^ b.base()); pc++; gas -= 3; break; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp index ece67066f7..b32bfc77dc 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp @@ -50,8 +50,7 @@ namespace nil { constexpr const std::size_t chunk_size = 16; constexpr const std::size_t num_chunks = 256 / chunk_size; using integral_type = nil::crypto3::multiprecision::big_uint<257>; - constexpr const integral_type mask = - integral_type((zkevm_word_type(1) << chunk_size) - 1); + constexpr const integral_type mask = (integral_type(1) << chunk_size) - 1; integral_type word_copy = integral_type(word); for (std::size_t i = 0; i < num_chunks; ++i) { chunks.push_back(word_copy & mask); @@ -154,7 +153,7 @@ namespace nil { using integral_type = nil::crypto3::multiprecision::big_uint<257>; integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; zkevm_word_type r = r_integral; - zkevm_word_type q = b != 0u ? a % b : 0; + zkevm_word_type q = b != 0u ? integral_type(a) % integral_type(b) : 0u; return {r, q}; } @@ -191,7 +190,7 @@ namespace nil { integral_type r_integral = (b != 0u)? integral_type(a_abs) / integral_type(b_abs) : 0u; zkevm_word_type r_abs = r_integral, - q_abs = b != 0u ? a_abs % b_abs : a_abs, + q_abs = b != 0u ? integral_type(a_abs) % integral_type(b_abs) : a_abs, r = (is_negative(a) == is_negative(b)) ? r_abs : negate_word(r_abs), q = is_negative(a)? negate_word(q_abs) : q_abs; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp index a17fd9bb1a..e431624f8e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp @@ -139,7 +139,7 @@ namespace nil { stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, b)); integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - zkevm_word_type result = zkevm_word_type::backend_type(r_integral.backend()); + zkevm_word_type result = r_integral; _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; @@ -165,7 +165,7 @@ namespace nil { zkevm_word_type b = overflow ? 1 : b_input; zkevm_word_type a_abs = abs_word(a), b_abs = abs_word(b); integral_type r_integral =(b != 0u) ? integral_type(a_abs) / integral_type(b_abs) : 0u; - zkevm_word_type r_abs = zkevm_word_type::backend_type(r_integral.backend()), + zkevm_word_type r_abs = r_integral, result = (is_negative(a) == is_negative(b)) ? r_abs: negate_word(r_abs); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); @@ -180,8 +180,8 @@ namespace nil { stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, b)); integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - zkevm_word_type r = zkevm_word_type::backend_type(r_integral.backend()); - zkevm_word_type q = b != 0u ? a % b : a; + zkevm_word_type r = r_integral; + zkevm_word_type q = b != 0u ? integral_type(a) % integral_type(b) : a; zkevm_word_type result = b != 0u ? q : 0; // according to EVM spec a % 0 = 0 _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); @@ -208,8 +208,8 @@ namespace nil { zkevm_word_type b = overflow ? 1 : b_input; zkevm_word_type a_abs = abs_word(a), b_abs = abs_word(b); integral_type r_integral =(b != 0u) ? integral_type(a_abs) / integral_type(b_abs) : 0u; - zkevm_word_type r_abs = zkevm_word_type::backend_type(r_integral.backend()), - q_abs = b != 0u ? a_abs % b_abs : a_abs, + zkevm_word_type r_abs = r_integral, + q_abs = b != 0u ? integral_type(a_abs) % integral_type(b_abs) : a_abs, r = (is_negative(a) == is_negative(b)) ? r_abs: negate_word(r_abs), q = is_negative(a) ? negate_word(q_abs) : q_abs; zkevm_word_type result = b != 0u ? q : 0; // according to EVM spec a % 0 = 0 @@ -467,7 +467,7 @@ namespace nil { _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, a)); int shift = (integral_type(b) < 256) ? int(integral_type(b)) : 256; integral_type r_integral = integral_type(a) >> shift; - zkevm_word_type result = zkevm_word_type::backend_type(r_integral.backend()); + zkevm_word_type result = r_integral; _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp index d7bb1bf234..6b4e937fe2 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp @@ -204,10 +204,10 @@ namespace nil { r_64_chunks, q_64_chunks); auto first_row_carries = first_carryless_construct(s_64_chunks, N_64_chunks, r_64_chunks, q_64_chunks) - .data >> + .data.base() >> 128; value_type c_1 = - static_cast(first_row_carries & (two_64 - 1).data); + static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk @@ -215,7 +215,7 @@ namespace nil { (second_carryless_construct(s_64_chunks, N_64_chunks, r_64_chunks, q_64_chunks) + c_1 + c_2 * two_64) - .data >> + .data.base() >> 128; c_3 = static_cast(second_row_carries); std::vector c_3_chunks = chunk_64_to_16(c_3); @@ -227,7 +227,7 @@ namespace nil { c_1_64 = chunk_sum_64(c_1_chunks, 0); auto third_row_carries = - third_carryless_construct(N_64_chunks, r_64_chunks).data >> 128; + third_carryless_construct(N_64_chunks, r_64_chunks).data.base() >> 128; carry[0][0] = 0; carry[1][0] = 0; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/bitwise.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/bitwise.hpp index f0ef8ec51e..4e42ecf75b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/bitwise.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/bitwise.hpp @@ -64,8 +64,8 @@ namespace nil { zkevm_word_type b_word = current_state.stack_top(1); auto a = w_to_8(a_word); auto b = w_to_8(b_word); - auto and_chunks = w_to_8(a_word&b_word); - auto xor_chunks = w_to_8(a_word^b_word); + auto and_chunks = w_to_8(a_word.base() & b_word.base()); + auto xor_chunks = w_to_8(a_word.base() ^ b_word.base()); for(std::size_t i = 0; i <32; i++){ A[i] = a[i]; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp index efc33a99fe..d79620c567 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp @@ -163,8 +163,8 @@ namespace nil { integral_type r_integral = b != 0u ? integral_type(a) / integral_type(b) : 0u; - zkevm_word_type r = zkevm_word_type::backend_type(r_integral.backend()); - zkevm_word_type q = b != 0u ? a % b : a; + zkevm_word_type r = r_integral; + zkevm_word_type q = b != 0u ? integral_type(a) % integral_type(b) : a; zkevm_word_type q_out = b != 0u ? q : 0; // according to EVM spec a % 0 = 0 bool t_last = integral_type(q) < integral_type(b); @@ -193,9 +193,9 @@ namespace nil { // caluclate first row carries first_carryless = first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks); - auto first_row_carries = first_carryless.data >> 128; + auto first_row_carries = first_carryless.data.base() >> 128; value_type c_1 = - static_cast(first_row_carries & (two_64 - 1).data); + static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk @@ -203,14 +203,14 @@ namespace nil { (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks) + c_1 + c_2 * two_64) - .data >> + .data.base() >> 128; // value_type c_1_64 = chunk_sum_64(c_1_chunks, 0); auto third_row_carries = - third_carryless_construct(b_64_chunks, r_64_chunks).data >> 128; + third_carryless_construct(b_64_chunks, r_64_chunks).data.base() >> 128; b_sum = std::accumulate(b_chunks.begin(), b_chunks.end(), value_type(0)); b_sum_inverse = b_sum == 0 ? 0 : b_sum.inversed(); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp index af1f58d1b4..f7e8a3cc28 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp @@ -282,10 +282,10 @@ namespace nil { s_first_carryless = first_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks); auto s_first_row_carries = - first_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks).data >> + first_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks).data.base() >> 128; value_type s_c_1 = - static_cast(s_first_row_carries & (two_64 - 1).data); + static_cast(s_first_row_carries & (two_64 - 1).data.base()); s_c_2 = static_cast(s_first_row_carries >> 64); s_c_1_chunks = chunk_64_to_16(s_c_1); // no need for c_2 chunks as there is only a single chunk @@ -294,24 +294,24 @@ namespace nil { auto s_second_row_carries = (second_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks) + s_c_1 + s_c_2 * two_64) - .data >> + .data.base() >> 128; // computation of s = a*b product value_type s_c_3 = - static_cast(s_second_row_carries & (two_64 - 1).data); + static_cast(s_second_row_carries & (two_64 - 1).data.base()); s_c_4 = static_cast(s_second_row_carries >> 64); s_c_3_chunks = chunk_64_to_16(s_c_3); s_third_carryless = third_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks); auto s_third_row_carries = (third_carryless_construct(s_64_chunks, b_64_chunks, a_64_chunks)) - .data >> + .data.base() >> 128; value_type s_c_5 = - static_cast(s_third_row_carries & (two_64 - 1).data); + static_cast(s_third_row_carries & (two_64 - 1).data.base()); s_c_6 = static_cast(s_third_row_carries >> 64); s_c_5_chunks = chunk_64_to_16(s_c_5); s_forth_carryless = @@ -323,10 +323,10 @@ namespace nil { first_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks); auto first_row_carries = first_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks) - .data >> + .data.base() >> 128; value_type c_1 = - static_cast(first_row_carries & (two_64 - 1).data); + static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk @@ -335,10 +335,10 @@ namespace nil { auto second_row_carries = (second_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks) + c_1 + c_2 * two_64) - .data >> + .data.base() >> 128; value_type c_3 = - static_cast(second_row_carries & (two_64 - 1).data); + static_cast(second_row_carries & (two_64 - 1).data.base()); c_4 = static_cast(second_row_carries >> 64); c_3_chunks = chunk_64_to_16(c_3); third_carryless = @@ -346,11 +346,11 @@ namespace nil { auto third_row_carries = (third_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks) + c_3 + c_4 * two_64) - .data >> + .data.base() >> 128; value_type c_5 = - static_cast(third_row_carries & (two_64 - 1).data); - c_6 = static_cast(third_carryless.data >> 64); + static_cast(third_row_carries & (two_64 - 1).data.base()); + c_6 = static_cast(third_carryless.data.base() >> 64); c_5_chunks = chunk_64_to_16(c_5); forth_carryless = forth_carryless_construct(Nr_64_chunks, N_64_chunks, r_64_chunks); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp index 0912922659..af3d6b552e 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp @@ -215,8 +215,8 @@ namespace nil { zkevm_word_type b = zkevm_word_type(integral_type(1) << shift); - zkevm_word_type r = zkevm_word_type::backend_type(r_integral.backend()); - zkevm_word_type q = b != 0u ? a % b : a; + zkevm_word_type r = r_integral; + zkevm_word_type q = b != 0u ? integral_type(a) % integral_type(b) : a; bool t_last = integral_type(q) < integral_type(b); zkevm_word_type v = zkevm_word_type(integral_type(q) + @@ -279,9 +279,9 @@ namespace nil { r_64_chunks, q_64_chunks); auto first_row_carries = first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks) - .data >> + .data.base() >> 128; - c_1 = static_cast(first_row_carries & (two_64 - 1).data); + c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); BOOST_ASSERT(first_carryless - c_1 * two_128 - c_2 * two_192 == 0); c_1_chunks = chunk_64_to_16(c_1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp index 71fce64b3a..2554b0a192 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp @@ -216,8 +216,8 @@ namespace nil { integral_type r_integral = (b != 0u) ? integral_type(a_abs) / integral_type(b_abs) : 0u; - zkevm_word_type r_abs = zkevm_word_type::backend_type(r_integral.backend()), - q_abs = b != 0u ? a_abs % b_abs : a_abs, + zkevm_word_type r_abs = r_integral, + q_abs = b != 0u ? integral_type(a_abs) % integral_type(b_abs) : a_abs, r = (is_negative(a) == is_negative(b)) ? r_abs : negate_word(r_abs), q = is_negative(a) ? negate_word(q_abs) : q_abs; @@ -251,9 +251,9 @@ namespace nil { // caluclate first row carries first_carryless = first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks); - auto first_row_carries = first_carryless.data >> 128; + auto first_row_carries = first_carryless.data.base() >> 128; value_type c_1 = - static_cast(first_row_carries & (two_64 - 1).data); + static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk @@ -261,14 +261,14 @@ namespace nil { (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks) + c_1 + c_2 * two_64) - .data >> + .data.base() >> 128; // value_type c_1_64 = chunk_sum_64(c_1_chunks, 0); auto third_row_carries = - third_carryless_construct(b_64_chunks, r_64_chunks).data >> 128; + third_carryless_construct(b_64_chunks, r_64_chunks).data.base() >> 128; b_sum = std::accumulate(b_chunks.begin(), b_chunks.end(), value_type(0)); a_sum = std::accumulate(a_chunks.begin(), a_chunks.end(), value_type(0)) - diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp index d00ef4e3b9..10408544a3 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp @@ -182,9 +182,9 @@ namespace nil { first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks); auto first_row_carries = first_carryless_consrtruct(a_64_chunks, b_64_chunks, r_64_chunks) - .data >> + .data.base() >> 128; - c_1 = static_cast(first_row_carries & (two_64 - 1).data); + c_1 = static_cast(first_row_carries & (two_64 - 1).data.base()); c_2 = static_cast(first_row_carries >> 64); c_1_chunks = chunk_64_to_16(c_1); // no need for c_2 chunks as there is only a single chunk @@ -193,9 +193,9 @@ namespace nil { auto second_row_carries = (second_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks) + c_1 + c_2 * two_64) - .data >> + .data.base() >> 128; - c_3 = static_cast(second_row_carries & (two_64 - 1).data); + c_3 = static_cast(second_row_carries & (two_64 - 1).data.base()); c_4 = static_cast(second_row_carries >> 64); c_3_chunks = chunk_64_to_16(c_3); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp index af163aee28..a7dda0fa04 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp @@ -191,8 +191,8 @@ namespace nil { zkevm_word_type b = zkevm_word_type(integral_type(1) << shift); zkevm_word_type result = - zkevm_word_type::backend_type(r_integral.backend()); - zkevm_word_type q = b != 0u ? a % b : a; + r_integral; + zkevm_word_type q = b != 0u ? integral_type(a) % integral_type(b) : a; bool t_last = integral_type(q) < integral_type(b); zkevm_word_type v = zkevm_word_type(integral_type(q) + @@ -248,9 +248,9 @@ namespace nil { // caluclate first row carries first_carryless = first_carryless_construct(a_64_chunks, b_64_chunks, r_64_chunks, q_64_chunks); - auto first_row_carries = first_carryless.data >> 128; + auto first_row_carries = first_carryless.data.base() >> 128; - c_1 = value_type(first_row_carries & (two_64 - 1).data); + c_1 = value_type(first_row_carries & (two_64 - 1).data.base()); c_2 = value_type(first_row_carries >> 64); BOOST_ASSERT(first_carryless - c_1 * two_128 - c_2 * two_192 == 0); c_1_chunks = chunk_64_to_16(c_1); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/types/rw_operation.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/types/rw_operation.hpp index 74600e7c14..6ec50d1729 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/types/rw_operation.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/types/rw_operation.hpp @@ -79,9 +79,9 @@ namespace nil { bool operator< (const rw_operation &other) const { if( op != other.op ) return op < other.op; if( call_id != other.call_id ) return call_id < other.call_id; - if( address != other.address ) return address < other.address; + if( address != other.address ) return address.base() < other.address.base(); if( field != other.field ) return field < other.field; - if( storage_key != other.storage_key ) return storage_key < other.storage_key; + if( storage_key != other.storage_key ) return storage_key.base() < other.storage_key.base(); if( rw_counter != other.rw_counter) return rw_counter < other.rw_counter; return false; } diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/logic_ops.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/logic_ops.cpp index 4b3b607639..117ff7ff56 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/logic_ops.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/logic_ops.cpp @@ -204,7 +204,7 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_select_test) { rand.seed(seed_seq); for (std::size_t j = 0; j < random_tests_amount; j++) { - value_type cond = rand().data & value_type(1).data, + value_type cond = rand().data.base() & 1u, true_branch = rand(), false_branch = rand(); diff --git a/crypto3/libs/blueprint/test/hashes/plonk/keccak_padding.cpp b/crypto3/libs/blueprint/test/hashes/plonk/keccak_padding.cpp index 8ac9182164..fa78b8740d 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/keccak_padding.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/keccak_padding.cpp @@ -76,7 +76,7 @@ std::vector integral_type relay_value = integral_type(message[0].data); for (int i = 1; i < message.size(); ++i) { integral_type mask = (integral_type(1) << (64 - shift)) - 1; - integral_type left_part = integral_type(message[i].data >> (64 - shift)); + integral_type left_part = integral_type(message[i].data.base() >> (64 - shift)); integral_type right_part = integral_type(message[i].data) & mask; result.push_back(value_type((relay_value << shift) + left_part)); relay_value = right_part; diff --git a/crypto3/libs/blueprint/test/hashes/plonk/keccak_static.cpp b/crypto3/libs/blueprint/test/hashes/plonk/keccak_static.cpp index 959f335607..61e25e08b8 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/keccak_static.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/keccak_static.cpp @@ -145,7 +145,7 @@ std::vector integral_type relay_value = integral_type(message[0].data); for (int i = 1; i < message.size(); ++i) { integral_type mask = (integral_type(1) << (64 - shift)) - 1; - integral_type left_part = integral_type(message[i].data >> (64 - shift)); + integral_type left_part = integral_type(message[i].data.base() >> (64 - shift)); integral_type right_part = integral_type(message[i].data) & mask; result.push_back(value_type((relay_value << shift) + left_part)); relay_value = right_part; diff --git a/crypto3/libs/blueprint/test/zkevm/opcode_tester.hpp b/crypto3/libs/blueprint/test/zkevm/opcode_tester.hpp index c4e0004fe7..2884a78b45 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcode_tester.hpp +++ b/crypto3/libs/blueprint/test/zkevm/opcode_tester.hpp @@ -59,127 +59,127 @@ namespace nil { std::vector additional_input; switch( opcode ){ case zkevm_opcode::PUSH1: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 1, additional_array.end()); break; case zkevm_opcode::PUSH2: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*2) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*2) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 2, additional_array.end()); break; case zkevm_opcode::PUSH3: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*3) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*3) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 3, additional_array.end()); break; case zkevm_opcode::PUSH4: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*4) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*4) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 4, additional_array.end()); break; case zkevm_opcode::PUSH5: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*5) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*5) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 5, additional_array.end()); break; case zkevm_opcode::PUSH6: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*6) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*6) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 6, additional_array.end()); break; case zkevm_opcode::PUSH7: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*7) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*7) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 7, additional_array.end()); break; case zkevm_opcode::PUSH8: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*8) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*8) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 8, additional_array.end()); break; case zkevm_opcode::PUSH9: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*9 ) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*9 ) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 9, additional_array.end()); break; case zkevm_opcode::PUSH10: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*10) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*10) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 10, additional_array.end()); break; case zkevm_opcode::PUSH11: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*11) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*11) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 11, additional_array.end()); break; case zkevm_opcode::PUSH12: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*12) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*12) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 11, additional_array.end()); break; case zkevm_opcode::PUSH13: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*13) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*13) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 11, additional_array.end()); break; case zkevm_opcode::PUSH14: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*14) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*14) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 11, additional_array.end()); break; case zkevm_opcode::PUSH15: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*15) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*15) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 15, additional_array.end()); break; case zkevm_opcode::PUSH16: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*16) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*16) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 16, additional_array.end()); break; case zkevm_opcode::PUSH17: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*17) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*17) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 17, additional_array.end()); break; case zkevm_opcode::PUSH18: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*18) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*18) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 18, additional_array.end()); break; case zkevm_opcode::PUSH19: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*19) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*19) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 19, additional_array.end()); break; case zkevm_opcode::PUSH20: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*20) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*20) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 20, additional_array.end()); break; case zkevm_opcode::PUSH21: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*21) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*21) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 21, additional_array.end()); break; case zkevm_opcode::PUSH22: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*22) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*22) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 22, additional_array.end()); break; case zkevm_opcode::PUSH23: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*23) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*23) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 23, additional_array.end()); break; case zkevm_opcode::PUSH24: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*24) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*24) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 24, additional_array.end()); break; case zkevm_opcode::PUSH25: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*25) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*25) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 25, additional_array.end()); break; case zkevm_opcode::PUSH26: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*26) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*26) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 26, additional_array.end()); break; case zkevm_opcode::PUSH27: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*27) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*27) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 27, additional_array.end()); break; case zkevm_opcode::PUSH28: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*28) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*28) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 28, additional_array.end()); break; case zkevm_opcode::PUSH29: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*29) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*29) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 29, additional_array.end()); break; case zkevm_opcode::PUSH30: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*30) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*30) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 30, additional_array.end()); break; case zkevm_opcode::PUSH31: - BOOST_ASSERT(additional_word < (zkevm_word_type(1) << 8*31) - 1); + BOOST_ASSERT(additional_word < (zkevm_word_type(1).base() << 8*31) - 1); additional_input.insert(additional_input.end(), additional_array.end() - 31, additional_array.end()); break; case zkevm_opcode::PUSH32: diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp index 408f4d9264..aa10d2a5ed 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/block_to_field_elements_wrapper.hpp @@ -103,7 +103,7 @@ namespace nil { field_element_ = value_type::zero(); auto tmp_iter = input_container_l_; for (std::size_t i = 0; i < container_elements_per_field_element_ && tmp_iter != input_container_r_; ++i) { - field_element_.data = field_element_.data.base() << input_value_bits_; // TODO: add shift operators to field values + field_element_.data = field_element_.data.base() << input_value_bits_; field_element_ += uint64_t(*tmp_iter++); } element_filled_ = true; From 53469f7a4d883bf5d805f3db651d8456ffcb8345 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 6 Dec 2024 13:42:37 +0000 Subject: [PATCH 11/18] move old backend into subdirectory, move new backend into multiprecision root --- crypto3/benchmarks/multiprecision/big_int.cpp | 6 +- .../multiprecision/modular_adaptor_fixed.cpp | 14 +- crypto3/libs/algebra/example/curves.cpp | 2 +- crypto3/libs/algebra/example/fields.cpp | 2 +- .../libs/algebra/example/random_element.cpp | 2 +- .../example/short_weierstrass_coordinates.cpp | 2 +- .../algebra/curves/detail/scalar_mul.hpp | 2 +- .../algebra/fields/detail/element/fp.hpp | 4 +- .../algebra/fields/detail/exponentiation.hpp | 2 +- .../nil/crypto3/algebra/fields/field.hpp | 4 +- .../include/nil/crypto3/algebra/primes.hpp | 6 +- .../include/nil/crypto3/algebra/wnaf.hpp | 2 +- crypto3/libs/algebra/test/curves.cpp | 2 +- .../sha2/plonk/detail/split_functions.hpp | 2 +- .../nil/blueprint/zkevm/zkevm_word.hpp | 2 +- .../poseidon/poseidon_constants_generator.hpp | 2 +- .../hash/include/nil/crypto3/hash/h2f.hpp | 2 +- .../marshalling/multiprecision/inference.hpp | 2 +- .../multiprecision/processing/integral.hpp | 4 +- .../types/detail/integral/basic_type.hpp | 2 +- .../multiprecision/types/integral.hpp | 2 +- .../multiprecision/test/integral.cpp | 2 +- .../test/integral_fixed_size_container.cpp | 2 +- .../integral_non_fixed_size_container.cpp | 2 +- .../crypto3/math/algorithms/unity_root.hpp | 2 +- .../math/domains/evaluation_domain.hpp | 2 +- .../multiprecision/example/big_seventh.cpp | 2 +- .../example/cpp_int_import_export.cpp | 4 +- .../example/cpp_int_mul_timing.cpp | 2 +- .../multiprecision/example/cpp_int_snips.cpp | 6 +- .../example/debug_adaptor_snips.cpp | 8 +- .../example/hashing_examples.cpp | 2 +- .../hypergeometric_luke_algorithms.cpp | 6 +- .../example/integer_examples.cpp | 4 +- .../multiprecision/example/logged_adaptor.cpp | 4 +- .../example/mixed_integer_arithmetic.cpp | 2 +- .../example/modular_examples.cpp | 2 +- .../example/numeric_limits_snips.cpp | 4 +- .../multiprecision/example/random_snips.cpp | 16 +- .../multiprecision/example/safe_prime.cpp | 4 +- .../multiprecision/{big_int => }/big_int.hpp | 6 +- .../multiprecision/big_int/big_uint.hpp | 17 -- .../multiprecision/big_int/integer.hpp | 4 - .../multiprecision/big_int/literals.hpp | 149 ------------------ .../big_int/modular/big_mod.hpp | 6 - .../nil/crypto3/multiprecision/big_uint.hpp | 17 ++ .../{big_int => }/big_uint_impl.hpp | 12 +- .../{ => boost_backends}/cpp_int_modular.hpp | 22 +-- .../cpp_int_modular/add.hpp | 2 +- .../cpp_int_modular/add_unsigned.hpp | 0 .../cpp_int_modular/bitwise.hpp | 0 .../cpp_int_modular/comparison.hpp | 0 .../cpp_int_modular/divide.hpp | 0 .../cpp_int_modular/eval_jacobi.hpp | 2 +- .../cpp_int_modular/import_export.hpp | 0 .../cpp_int_modular/limits.hpp | 0 .../cpp_int_modular/literals.hpp | 0 .../cpp_int_modular/misc.hpp | 0 .../cpp_int_modular/multiply.hpp | 0 .../{ => boost_backends}/cpp_modular.hpp | 4 +- .../detail/integer_ops.hpp | 0 .../{ => boost_backends}/inverse.hpp | 8 +- .../{ => boost_backends}/jacobi.hpp | 0 .../boost_backends/literals.hpp | 3 + .../modular/barrett_params.hpp | 2 +- .../modular/base_params.hpp | 2 +- .../{ => boost_backends}/modular/inverse.hpp | 0 .../modular/modular_adaptor.hpp | 2 +- .../modular/modular_adaptor_fixed.hpp | 6 +- .../modular/modular_functions_fixed.hpp | 2 +- .../modular/modular_params.hpp | 4 +- .../modular/modular_params_fixed.hpp | 2 +- .../modular/modular_policy_fixed.hpp | 2 +- .../modular/montgomery_params.hpp | 6 +- .../{ => boost_backends}/random.hpp | 2 +- .../{ => boost_backends}/ressol.hpp | 6 +- .../traits/is_backend.hpp | 0 .../{ => boost_backends}/wnaf.hpp | 0 .../{big_int => }/cpp_int_conversions.hpp | 6 +- .../{big_int => }/detail/assert.hpp | 0 .../{big_int => }/detail/config.hpp | 0 .../detail/constexpr_support.hpp | 0 .../{big_int => }/detail/endian.hpp | 0 .../{big_int => }/detail/helper_macros.hpp | 0 .../{big_int => }/detail/int128.hpp | 0 .../{big_int => }/detail/intel_intrinsics.hpp | 8 +- .../nil/crypto3/multiprecision/integer.hpp | 4 + .../{big_int => }/integer_ops_base.hpp | 2 +- .../{big_int => }/integer_ops_powm.hpp | 4 +- .../multiprecision/{big_int => }/limits.hpp | 2 +- .../nil/crypto3/multiprecision/literals.hpp | 148 ++++++++++++++++- .../{big_int => }/miller_rabin.hpp | 6 +- .../multiprecision/modular/big_mod.hpp | 6 + .../{big_int => }/modular/big_mod_impl.hpp | 10 +- .../{big_int => }/modular/modular_ops.hpp | 10 +- .../modular/modular_ops_storage.hpp | 2 +- .../{big_int => }/modular/ops/inverse.hpp | 8 +- .../{big_int => }/modular/ops/pow.hpp | 6 +- .../{big_int => }/modular/ops/ressol.hpp | 8 +- .../{big_int => }/ops/gcd_inverse.hpp | 8 +- .../{big_int => }/ops/import_export.hpp | 10 +- .../{big_int => }/ops/jacobi.hpp | 4 +- .../multiprecision/{big_int => }/ops/powm.hpp | 8 +- .../{big_int => }/ops/ressol.hpp | 14 +- .../multiprecision/{big_int => }/ops/wnaf.hpp | 6 +- .../multiprecision/{big_int => }/storage.hpp | 2 +- ...thmetic_non_matching_bitlength_numbers.cpp | 8 +- crypto3/libs/multiprecision/test/big_int.cpp | 4 +- .../test/big_int_comparision.cpp | 4 +- .../test/big_int_cpp_int_conversions.cpp | 4 +- .../multiprecision/test/big_int_inverse.cpp | 6 +- .../multiprecision/test/big_int_jacobi.cpp | 4 +- .../test/big_int_miller_rabin.cpp | 4 +- .../multiprecision/test/big_int_modular.cpp | 4 +- .../test/big_int_modular_comprehensive.cpp | 8 +- .../multiprecision/test/big_int_ressol.cpp | 2 +- .../test/constexpr_test_cpp_int.cpp | 2 +- .../test/constexpr_test_cpp_int_2.cpp | 2 +- .../test/constexpr_test_cpp_int_3.cpp | 2 +- .../test/constexpr_test_cpp_int_4.cpp | 2 +- .../test/constexpr_test_cpp_int_5.cpp | 4 +- .../test/constexpr_test_cpp_int_6.cpp | 2 +- .../test/constexpr_test_cpp_int_7.cpp | 2 +- crypto3/libs/multiprecision/test/eigen.hpp | 2 +- .../multiprecision/test/git_issue_167.cpp | 2 +- .../multiprecision/test/git_issue_175.cpp | 4 +- .../multiprecision/test/git_issue_248.cpp | 2 +- .../multiprecision/test/git_issue_265.cpp | 2 +- .../multiprecision/test/git_issue_277.cpp | 2 +- .../libs/multiprecision/test/git_issue_30.cpp | 2 +- .../libs/multiprecision/test/git_issue_98.cpp | 2 +- crypto3/libs/multiprecision/test/inverse.cpp | 12 +- .../libs/multiprecision/test/issue_13148.cpp | 6 +- .../libs/multiprecision/test/issue_13301.cpp | 2 +- crypto3/libs/multiprecision/test/jacobi.cpp | 6 +- .../test/modular_adaptor_fixed.cpp | 12 +- crypto3/libs/multiprecision/test/ressol.cpp | 8 +- .../test/test_arithmetic_backend_concept.cpp | 2 +- .../test/test_arithmetic_cpp_int_1.cpp | 2 +- .../test/test_arithmetic_cpp_int_10.cpp | 2 +- .../test/test_arithmetic_cpp_int_11.cpp | 2 +- .../test/test_arithmetic_cpp_int_12.cpp | 2 +- .../test/test_arithmetic_cpp_int_13.cpp | 2 +- .../test/test_arithmetic_cpp_int_14.cpp | 2 +- .../test/test_arithmetic_cpp_int_15.cpp | 2 +- .../test/test_arithmetic_cpp_int_16.cpp | 2 +- .../test/test_arithmetic_cpp_int_17.cpp | 2 +- .../test/test_arithmetic_cpp_int_18.cpp | 2 +- .../test/test_arithmetic_cpp_int_19.cpp | 2 +- .../test/test_arithmetic_cpp_int_2.cpp | 2 +- .../test/test_arithmetic_cpp_int_20.cpp | 2 +- .../test/test_arithmetic_cpp_int_3.cpp | 2 +- .../test/test_arithmetic_cpp_int_4.cpp | 2 +- .../test/test_arithmetic_cpp_int_5.cpp | 2 +- .../test/test_arithmetic_cpp_int_6.cpp | 2 +- .../test/test_arithmetic_cpp_int_7.cpp | 2 +- .../test/test_arithmetic_cpp_int_8.cpp | 2 +- .../test/test_arithmetic_cpp_int_9.cpp | 2 +- .../test/test_arithmetic_cpp_int_br.cpp | 2 +- .../test/test_arithmetic_dbg_adptr1.cpp | 4 +- .../test/test_arithmetic_dbg_adptr1m.cpp | 4 +- .../test/test_arithmetic_dbg_adptr2.cpp | 4 +- .../test/test_arithmetic_logged_1.cpp | 4 +- .../test/test_arithmetic_logged_2.cpp | 4 +- .../test/test_arithmetic_mpz_rat.cpp | 4 +- .../test/test_checked_mixed_cpp_int.cpp | 2 +- .../multiprecision/test/test_constants.cpp | 6 +- .../multiprecision/test/test_constexpr.cpp | 4 +- .../test/test_convert_from_cpp_int.cpp | 2 +- .../multiprecision/test/test_cpp_int_conv.cpp | 2 +- .../test/test_cpp_int_import_export.cpp | 2 +- .../test/test_cpp_int_left_shift.cpp | 4 +- .../multiprecision/test/test_cpp_int_lit.cpp | 2 +- .../test/test_eigen_interop.cpp | 14 +- .../test/test_eigen_interop_cpp_int.cpp | 2 +- crypto3/libs/multiprecision/test/test_exp.cpp | 14 +- .../multiprecision/test/test_fpclassify.cpp | 14 +- crypto3/libs/multiprecision/test/test_gcd.cpp | 2 +- .../libs/multiprecision/test/test_hash.cpp | 2 +- .../libs/multiprecision/test/test_int_io.cpp | 6 +- crypto3/libs/multiprecision/test/test_log.cpp | 14 +- .../libs/multiprecision/test/test_move.cpp | 2 +- .../test/test_mpf_precisions.cpp | 2 +- .../test/test_nothrow_cpp_int.cpp | 2 +- .../test/test_nothrow_cpp_rational.cpp | 2 +- .../test/test_numeric_limits.cpp | 2 +- .../test/test_optional_compat.cpp | 2 +- crypto3/libs/multiprecision/test/test_pow.cpp | 14 +- .../test/test_sf_import_c99.cpp | 14 +- .../libs/multiprecision/test/test_sqrt.cpp | 14 +- .../test/test_unchecked_cpp_int.cpp | 2 +- .../element_knowledge_commitment.hpp | 2 +- .../zk/test/systems/plonk/pickles/kimchi.cpp | 2 +- .../zk/test/systems/plonk/pickles/pickles.cpp | 2 +- 194 files changed, 532 insertions(+), 532 deletions(-) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/big_int.hpp (98%) delete mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp delete mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp delete mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp delete mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint.hpp rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/big_uint_impl.hpp (99%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular.hpp (97%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/add.hpp (99%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/add_unsigned.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/bitwise.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/comparison.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/divide.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/eval_jacobi.hpp (97%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/import_export.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/limits.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/literals.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/misc.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_int_modular/multiply.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/cpp_modular.hpp (88%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/detail/integer_ops.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/inverse.hpp (93%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/jacobi.hpp (100%) create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/literals.hpp rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/barrett_params.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/base_params.hpp (94%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/inverse.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_adaptor.hpp (99%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_adaptor_fixed.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_functions_fixed.hpp (99%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_params.hpp (96%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_params_fixed.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/modular_policy_fixed.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/modular/montgomery_params.hpp (87%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/random.hpp (75%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/ressol.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/traits/is_backend.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{ => boost_backends}/wnaf.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/cpp_int_conversions.hpp (91%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/assert.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/config.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/constexpr_support.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/endian.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/helper_macros.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/int128.hpp (100%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/detail/intel_intrinsics.hpp (91%) create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer.hpp rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/integer_ops_base.hpp (93%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/integer_ops_powm.hpp (85%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/limits.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/miller_rabin.hpp (97%) create mode 100644 crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/big_mod_impl.hpp (97%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/modular_ops.hpp (98%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/modular_ops_storage.hpp (96%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/ops/inverse.hpp (77%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/ops/pow.hpp (84%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/modular/ops/ressol.hpp (76%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/gcd_inverse.hpp (93%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/import_export.hpp (96%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/jacobi.hpp (95%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/powm.hpp (84%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/ressol.hpp (89%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/ops/wnaf.hpp (95%) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{big_int => }/storage.hpp (95%) diff --git a/crypto3/benchmarks/multiprecision/big_int.cpp b/crypto3/benchmarks/multiprecision/big_int.cpp index 3250108790..0eb99bed81 100644 --- a/crypto3/benchmarks/multiprecision/big_int.cpp +++ b/crypto3/benchmarks/multiprecision/big_int.cpp @@ -16,9 +16,9 @@ #include #include -#include -#include -#include +#include +#include +#include #include diff --git a/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp b/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp index ab8e2fc392..1492522e47 100644 --- a/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp +++ b/crypto3/benchmarks/multiprecision/modular_adaptor_fixed.cpp @@ -7,7 +7,7 @@ // http://www.boost.org/LICENSE_1_0.txt //---------------------------------------------------------------------------// -#include "nil/crypto3/multiprecision/modular/modular_params.hpp" +#include "nil/crypto3/multiprecision/boost_backends/modular/modular_params.hpp" #define BOOST_TEST_MODULE modular_fixed_multiprecision_test #define TEST_CPP_INT @@ -30,14 +30,14 @@ #include -#include -#include -#include +#include +#include +#include -#include -#include +#include +#include -#include +#include #include diff --git a/crypto3/libs/algebra/example/curves.cpp b/crypto3/libs/algebra/example/curves.cpp index 3b51a02556..18c98fd659 100644 --- a/crypto3/libs/algebra/example/curves.cpp +++ b/crypto3/libs/algebra/example/curves.cpp @@ -25,7 +25,7 @@ #include -#include +#include #include #include diff --git a/crypto3/libs/algebra/example/fields.cpp b/crypto3/libs/algebra/example/fields.cpp index 04b7cb9fc8..4701d43c30 100644 --- a/crypto3/libs/algebra/example/fields.cpp +++ b/crypto3/libs/algebra/example/fields.cpp @@ -25,7 +25,7 @@ #include -#include +#include #include diff --git a/crypto3/libs/algebra/example/random_element.cpp b/crypto3/libs/algebra/example/random_element.cpp index 12d0304f02..c20779a25c 100644 --- a/crypto3/libs/algebra/example/random_element.cpp +++ b/crypto3/libs/algebra/example/random_element.cpp @@ -25,7 +25,7 @@ #include -#include +#include #include diff --git a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp index f64029a459..9f014ea4da 100644 --- a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp +++ b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp @@ -23,7 +23,7 @@ // SOFTWARE. //---------------------------------------------------------------------------// -#include +#include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp index 67f9f77c65..0ad3b100e7 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/scalar_mul.hpp @@ -30,7 +30,7 @@ #include -#include +#include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp index 0c11773ed5..669485d9f6 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp @@ -31,8 +31,8 @@ #include #include -#include -#include +#include +#include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp index 60d09feb00..084b60dde0 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/exponentiation.hpp @@ -29,7 +29,7 @@ #include -#include +#include namespace nil { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp index bba67dd09b..f3a0bd95b3 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/field.hpp @@ -25,8 +25,8 @@ #pragma once -#include -#include +#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp index 303d1237ab..a60dd99e47 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp @@ -29,9 +29,9 @@ #include -#include -#include -#include +#include +#include +#include #include "random_element.hpp" diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp index 0eb4c2681a..11df66de1e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/wnaf.hpp @@ -28,7 +28,7 @@ #include #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/algebra/test/curves.cpp b/crypto3/libs/algebra/test/curves.cpp index 68e51063f6..63e37b8a34 100644 --- a/crypto3/libs/algebra/test/curves.cpp +++ b/crypto3/libs/algebra/test/curves.cpp @@ -58,7 +58,7 @@ #include #include -#include +#include using namespace nil::crypto3::algebra; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp index f42731b9f9..920f23bd10 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/detail/split_functions.hpp @@ -36,7 +36,7 @@ #include #include -#include +#include namespace nil { namespace blueprint { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp index b32bfc77dc..ba220708dc 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp @@ -24,7 +24,7 @@ #pragma once -#include +#include #include #include diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp index 03b2ca4bda..e9f73ababf 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/poseidon_constants_generator.hpp @@ -12,7 +12,7 @@ #include #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp index 7cb0177ae6..3cc1e1868a 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/h2f.hpp @@ -34,7 +34,7 @@ #include #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp index bf8b375b2d..d12816a72e 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/inference.hpp @@ -26,7 +26,7 @@ #ifndef CRYPTO3_MARSHALLING_MULTIPRECISION_INFERENCE_TYPE_TRAITS_HPP #define CRYPTO3_MARSHALLING_MULTIPRECISION_INFERENCE_TYPE_TRAITS_HPP -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp index ffe291f235..f703b4b52d 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/processing/integral.hpp @@ -30,8 +30,8 @@ #include #include -#include -#include +#include +#include #include diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp index 94d74c1aac..60cab082bd 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/detail/integral/basic_type.hpp @@ -32,7 +32,7 @@ #include -#include +#include #include diff --git a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp index 6cd3acef5d..450947ba2b 100644 --- a/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp +++ b/crypto3/libs/marshalling/multiprecision/include/nil/crypto3/marshalling/multiprecision/types/integral.hpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include diff --git a/crypto3/libs/marshalling/multiprecision/test/integral.cpp b/crypto3/libs/marshalling/multiprecision/test/integral.cpp index 9510dfa1f8..8ee028bef0 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp index 46be1638fb..c456a4857a 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral_fixed_size_container.cpp @@ -39,7 +39,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp b/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp index def6cf7ddd..47a6aff4ad 100644 --- a/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp +++ b/crypto3/libs/marshalling/multiprecision/test/integral_non_fixed_size_container.cpp @@ -42,7 +42,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp index 930e538774..277541a60b 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/algorithms/unity_root.hpp @@ -31,7 +31,7 @@ #include -#include +#include #include #include diff --git a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp index 1346c2964d..7128ccc40e 100644 --- a/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp +++ b/crypto3/libs/math/include/nil/crypto3/math/domains/evaluation_domain.hpp @@ -30,7 +30,7 @@ #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/multiprecision/example/big_seventh.cpp b/crypto3/libs/multiprecision/example/big_seventh.cpp index 40df2a6596..830f28e291 100644 --- a/crypto3/libs/multiprecision/example/big_seventh.cpp +++ b/crypto3/libs/multiprecision/example/big_seventh.cpp @@ -37,7 +37,7 @@ constants], we need some includes: #include -#include +#include // that includes some predefined typedefs like: // using nil::crypto3::multiprecision::cpp_bin_float_quad; // using nil::crypto3::multiprecision::cpp_bin_float_50; diff --git a/crypto3/libs/multiprecision/example/cpp_int_import_export.cpp b/crypto3/libs/multiprecision/example/cpp_int_import_export.cpp index 4ff141ae84..953d438095 100644 --- a/crypto3/libs/multiprecision/example/cpp_int_import_export.cpp +++ b/crypto3/libs/multiprecision/example/cpp_int_import_export.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include #include #include @@ -16,7 +16,7 @@ In this simple example, we'll import/export the bits of a cpp_int to a vector of 8-bit unsigned values: */ /*= -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/example/cpp_int_mul_timing.cpp b/crypto3/libs/multiprecision/example/cpp_int_mul_timing.cpp index dc2b62f746..ff96c8acc3 100644 --- a/crypto3/libs/multiprecision/example/cpp_int_mul_timing.cpp +++ b/crypto3/libs/multiprecision/example/cpp_int_mul_timing.cpp @@ -15,7 +15,7 @@ #include #include -#include +#include class random_pcg32_fast_base { protected: diff --git a/crypto3/libs/multiprecision/example/cpp_int_snips.cpp b/crypto3/libs/multiprecision/example/cpp_int_snips.cpp index f27b39d5f6..7f84407156 100644 --- a/crypto3/libs/multiprecision/example/cpp_int_snips.cpp +++ b/crypto3/libs/multiprecision/example/cpp_int_snips.cpp @@ -3,12 +3,12 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include void t1() { //[cpp_int_eg - //=#include + //=#include //=#include //= //=int main() @@ -40,7 +40,7 @@ void t1() { void t3() { //[cpp_rational_eg - //=#include + //=#include //=#include //= //=int main() diff --git a/crypto3/libs/multiprecision/example/debug_adaptor_snips.cpp b/crypto3/libs/multiprecision/example/debug_adaptor_snips.cpp index a18b0bd5fa..b79d7c7a3b 100644 --- a/crypto3/libs/multiprecision/example/debug_adaptor_snips.cpp +++ b/crypto3/libs/multiprecision/example/debug_adaptor_snips.cpp @@ -3,14 +3,14 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include -#include +#include +#include #include void t1() { //[debug_adaptor_eg - //=#include - //=#include + //=#include + //=#include using namespace nil::crypto3::multiprecision; diff --git a/crypto3/libs/multiprecision/example/hashing_examples.cpp b/crypto3/libs/multiprecision/example/hashing_examples.cpp index bb3f8dbd9f..0426fd2950 100644 --- a/crypto3/libs/multiprecision/example/hashing_examples.cpp +++ b/crypto3/libs/multiprecision/example/hashing_examples.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/example/hypergeometric_luke_algorithms.cpp b/crypto3/libs/multiprecision/example/hypergeometric_luke_algorithms.cpp index 776382a8f1..cef2d7e5d9 100644 --- a/crypto3/libs/multiprecision/example/hypergeometric_luke_algorithms.cpp +++ b/crypto3/libs/multiprecision/example/hypergeometric_luke_algorithms.cpp @@ -39,13 +39,13 @@ #endif #if defined(USE_CPP_BIN_FLOAT) -#include +#include typedef nil::crypto3::multiprecision::number> mp_type; #elif defined(USE_CPP_DEC_FLOAT) -#include +#include typedef nil::crypto3::multiprecision::number> mp_type; #elif defined(USE_MPFR) -#include +#include typedef nil::crypto3::multiprecision::number> mp_type; #else diff --git a/crypto3/libs/multiprecision/example/integer_examples.cpp b/crypto3/libs/multiprecision/example/integer_examples.cpp index 86dde7d92d..c347e4355b 100644 --- a/crypto3/libs/multiprecision/example/integer_examples.cpp +++ b/crypto3/libs/multiprecision/example/integer_examples.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include #include #include @@ -18,7 +18,7 @@ which will fit into a 128-bit integer. At the end of the routine we do some fancy iostream formatting of the results: */ /*= -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/example/logged_adaptor.cpp b/crypto3/libs/multiprecision/example/logged_adaptor.cpp index 594c0efc1a..2ef069f08b 100644 --- a/crypto3/libs/multiprecision/example/logged_adaptor.cpp +++ b/crypto3/libs/multiprecision/example/logged_adaptor.cpp @@ -5,8 +5,8 @@ //[logged_adaptor -#include -#include +#include +#include #include #include // diff --git a/crypto3/libs/multiprecision/example/mixed_integer_arithmetic.cpp b/crypto3/libs/multiprecision/example/mixed_integer_arithmetic.cpp index e9c5982634..061f7651e3 100644 --- a/crypto3/libs/multiprecision/example/mixed_integer_arithmetic.cpp +++ b/crypto3/libs/multiprecision/example/mixed_integer_arithmetic.cpp @@ -12,7 +12,7 @@ #endif //[mixed_eg -#include +#include int main() { diff --git a/crypto3/libs/multiprecision/example/modular_examples.cpp b/crypto3/libs/multiprecision/example/modular_examples.cpp index 66a831a922..5f8c0b6618 100644 --- a/crypto3/libs/multiprecision/example/modular_examples.cpp +++ b/crypto3/libs/multiprecision/example/modular_examples.cpp @@ -9,7 +9,7 @@ //[cpp_modular_eg #include -#include +#include template void modular_number_examples() diff --git a/crypto3/libs/multiprecision/example/numeric_limits_snips.cpp b/crypto3/libs/multiprecision/example/numeric_limits_snips.cpp index da1f62500b..93833d630d 100644 --- a/crypto3/libs/multiprecision/example/numeric_limits_snips.cpp +++ b/crypto3/libs/multiprecision/example/numeric_limits_snips.cpp @@ -20,8 +20,8 @@ #include #include -#include // is decimal. -#include // is binary. +#include // is decimal. +#include // is binary. #define BOOST_TEST_MAIN #include // Boost.Test diff --git a/crypto3/libs/multiprecision/example/random_snips.cpp b/crypto3/libs/multiprecision/example/random_snips.cpp index 0b0c7173c3..42edb9708c 100644 --- a/crypto3/libs/multiprecision/example/random_snips.cpp +++ b/crypto3/libs/multiprecision/example/random_snips.cpp @@ -3,8 +3,8 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include -#include +#include +#include #include #include #include @@ -12,7 +12,7 @@ void t1() { //[random_eg1 - //=#include + //=#include //=#include //= //=int main() @@ -83,7 +83,7 @@ void t1() { void t2() { std::cout << std::dec; //[random_eg2 - //=#include + //=#include //=#include //= //=int main() @@ -129,7 +129,7 @@ Program output is void t3() { //[random_eg3 - //=#include + //=#include //=#include //= //=int main() @@ -182,8 +182,8 @@ Which produces the following output: void t4() { std::cout << std::endl; //[random_eg4 - //=#include - //=#include + //=#include + //=#include //=#include //= //=int main() @@ -260,7 +260,7 @@ Which produces the following output: void t5() { //[random_eg5 - //=#include + //=#include //=#include //=#include //= diff --git a/crypto3/libs/multiprecision/example/safe_prime.cpp b/crypto3/libs/multiprecision/example/safe_prime.cpp index 31c3e1456f..644b153532 100644 --- a/crypto3/libs/multiprecision/example/safe_prime.cpp +++ b/crypto3/libs/multiprecision/example/safe_prime.cpp @@ -5,8 +5,8 @@ //[safe_prime -#include -#include +#include +#include #include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int.hpp index 7a34358c67..0f631598c8 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_int.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int.hpp @@ -8,9 +8,9 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/detail/config.hpp" namespace nil::crypto3::multiprecision { /** diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp deleted file mode 100644 index f006c8851f..0000000000 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint.hpp +++ /dev/null @@ -1,17 +0,0 @@ -#pragma once - -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/limits.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/import_export.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/powm.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/ressol.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/ops/wnaf.hpp" // IWYU pragma: export - -namespace nil::crypto3::multiprecision { - using uint128_t = big_uint<128>; - using uint256_t = big_uint<256>; - using uint512_t = big_uint<512>; - using uint1024_t = big_uint<1024>; -} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp deleted file mode 100644 index 0209065099..0000000000 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer.hpp +++ /dev/null @@ -1,4 +0,0 @@ -#pragma once - -#include "nil/crypto3/multiprecision/big_int/integer_ops_base.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp" // IWYU pragma: export \ No newline at end of file diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp deleted file mode 100644 index 285bf3f29c..0000000000 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/literals.hpp +++ /dev/null @@ -1,149 +0,0 @@ -/////////////////////////////////////////////////////////////// -// Copyright 2013 John Maddock. Distributed under the Boost -// Software License, Version 1.0. (See accompanying file -// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt - -#pragma once - -#include -#include - -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" - -namespace nil::crypto3::multiprecision::literals { - template - constexpr auto operator"" _bigui() { - constexpr std::size_t N = sizeof...(C); - static_assert(N > 2, "hex literal should start with 0x"); - constexpr std::array str{C...}; - constexpr auto result = - nil::crypto3::multiprecision::detail::parse_int_hex<(N - 2) * 4>({str.data(), N}); - return result; - } -} // namespace nil::crypto3::multiprecision::literals - -#define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ - namespace nil::crypto3::multiprecision::literals { \ - template \ - constexpr auto operator"" _bigui##Bits() { \ - constexpr std::size_t N = sizeof...(C); \ - constexpr std::array str{C...}; \ - constexpr auto result = \ - nil::crypto3::multiprecision::detail::parse_int({str.data(), N}); \ - return result; \ - } \ - } - -// This is a comprehensive list of all bitlengths we use in algebra. -// Custom ones can be defined using this macro in every place where they are used. -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(7) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(13) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(15) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(16) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(17) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(18) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(64) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(92) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(94) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(128) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(130) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(149) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(150) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(151) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(152) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(160) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(161) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(163) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(164) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(177) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(178) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(179) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(180) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(181) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(182) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(183) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(191) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(192) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(205) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(206) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(222) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(223) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(224) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(225) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(226) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(239) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(248) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(249) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(250) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(251) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(252) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(253) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(254) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(255) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(256) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(257) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(263) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(264) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(280) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(281) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(292) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(293) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(294) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(295) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(296) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(297) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(298) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(315) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(316) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(319) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(320) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(330) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(331) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(374) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(375) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(376) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(377) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(378) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(379) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(380) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(381) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(384) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(503) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(504) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(507) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(512) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(515) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(516) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(521) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(546) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(577) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(578) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(585) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(595) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(636) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(706) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(707) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(758) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(753) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(759) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(761) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(859) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(860) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(893) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(894) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(913) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1024) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1490) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1536) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2048) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2790) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(3072) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4096) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4269) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4314) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(6144) -NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8192) - -using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp deleted file mode 100644 index 8fd13199de..0000000000 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod.hpp +++ /dev/null @@ -1,6 +0,0 @@ -#pragma once - -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" // IWYU pragma: export -#include "nil/crypto3/multiprecision/big_int/modular/ops/ressol.hpp" // IWYU pragma: export diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint.hpp new file mode 100644 index 0000000000..46b468de01 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint.hpp @@ -0,0 +1,17 @@ +#pragma once + +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/limits.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/gcd_inverse.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/import_export.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/jacobi.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/powm.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/ressol.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/ops/wnaf.hpp" // IWYU pragma: export + +namespace nil::crypto3::multiprecision { + using uint128_t = big_uint<128>; + using uint256_t = big_uint<256>; + using uint512_t = big_uint<512>; + using uint1024_t = big_uint<1024>; +} // namespace nil::crypto3::multiprecision diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp similarity index 99% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp index d6aa999e07..5327aead16 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/big_uint_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp @@ -1,6 +1,6 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include @@ -21,11 +21,11 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/endian.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/detail/config.hpp" +#include "nil/crypto3/multiprecision/detail/endian.hpp" +#include "nil/crypto3/multiprecision/detail/intel_intrinsics.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" namespace nil::crypto3::multiprecision { template diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp similarity index 97% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp index 7e0f8ec4be..ab4979cf24 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp @@ -796,16 +796,16 @@ namespace boost { // // Last of all we include the implementations of all the eval_* non member functions: // -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #endif diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/add.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/add.hpp similarity index 99% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/add.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/add.hpp index 1a25e47a37..64e8e9667b 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/add.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/add.hpp @@ -9,7 +9,7 @@ #define CRYPTO3_CPP_INT_ADD_HPP #include -#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/add_unsigned.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/add_unsigned.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/add_unsigned.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/add_unsigned.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/bitwise.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/bitwise.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/bitwise.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/bitwise.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/comparison.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/comparison.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/comparison.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/comparison.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/divide.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/divide.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/divide.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/divide.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/eval_jacobi.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/eval_jacobi.hpp similarity index 97% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/eval_jacobi.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/eval_jacobi.hpp index a3ab527706..d56d28a83f 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/eval_jacobi.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/eval_jacobi.hpp @@ -12,7 +12,7 @@ #include -#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/import_export.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/import_export.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/import_export.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/limits.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/limits.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/limits.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/limits.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/literals.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/literals.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/literals.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/misc.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/misc.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/misc.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/misc.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/multiply.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/multiply.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_modular/multiply.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_int_modular/multiply.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_modular.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_modular.hpp similarity index 88% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_modular.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_modular.hpp index 8916aaf506..a4d95f4626 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_modular.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/cpp_modular.hpp @@ -10,8 +10,8 @@ #ifndef CRYPTO3_MP_CPP_MODULAR_HPP #define CRYPTO3_MP_CPP_MODULAR_HPP -#include -#include +#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/integer_ops.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/detail/integer_ops.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/integer_ops.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/detail/integer_ops.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/inverse.hpp similarity index 93% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/inverse.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/inverse.hpp index b19d816aaa..816e2fbb8b 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/inverse.hpp @@ -13,11 +13,11 @@ #include -#include +#include #include -#include -#include -#include +#include +#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/jacobi.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/jacobi.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/jacobi.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/jacobi.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/literals.hpp new file mode 100644 index 0000000000..b07a0c92a6 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/literals.hpp @@ -0,0 +1,3 @@ +#pragma once + +#include \ No newline at end of file diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/barrett_params.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/barrett_params.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/barrett_params.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/barrett_params.hpp index 051c9218e2..a6988d5a51 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/barrett_params.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/barrett_params.hpp @@ -11,7 +11,7 @@ #ifndef BOOST_MULTIPRECISION_BARRETT_PARAMS_HPP #define BOOST_MULTIPRECISION_BARRETT_PARAMS_HPP -#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/base_params.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/base_params.hpp similarity index 94% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/base_params.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/base_params.hpp index 5b825ff605..fc006d62de 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/base_params.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/base_params.hpp @@ -11,7 +11,7 @@ #ifndef BOOST_MULTIPRECISION_BASE_PARAMS_HPP #define BOOST_MULTIPRECISION_BASE_PARAMS_HPP -#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/inverse.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/inverse.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/inverse.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor.hpp similarity index 99% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor.hpp index 51aa7ad24c..2a7abac8d8 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor.hpp @@ -15,7 +15,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor_fixed.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor_fixed.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor_fixed.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor_fixed.hpp index 2bda862d2c..aea25eb268 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_adaptor_fixed.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_adaptor_fixed.hpp @@ -11,8 +11,8 @@ #ifndef CRYPTO3_MULTIPRECISION_MODULAR_ADAPTOR_FIXED_PRECISION_HPP #define CRYPTO3_MULTIPRECISION_MODULAR_ADAPTOR_FIXED_PRECISION_HPP -#include -#include +#include +#include namespace boost { namespace multiprecision { @@ -393,6 +393,6 @@ namespace boost { // all integer operations over modular numbers will 'see' the overloaded versions of eval_* functions. // Moving this include to the start of this file will break the compilation. -#include // for powm over modular_adaptor +#include // for powm over modular_adaptor #endif // CRYPTO3_MULTIPRECISION_MODULAR_ADAPTOR_FIXED_PRECISION_HPP diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_functions_fixed.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_functions_fixed.hpp similarity index 99% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_functions_fixed.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_functions_fixed.hpp index a6e64e5901..5b3c407a37 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_functions_fixed.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_functions_fixed.hpp @@ -12,7 +12,7 @@ #define CRYPTO3_MULTIPRECISION_MODULAR_FUNCTIONS_FIXED_PRECISION_HPP #include -#include +#include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params.hpp similarity index 96% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params.hpp index 0445edcc9c..573934630b 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params.hpp @@ -11,8 +11,8 @@ #ifndef BOOST_MULTIPRECISION_MODULAR_PARAMS_HPP #define BOOST_MULTIPRECISION_MODULAR_PARAMS_HPP -#include -#include +#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params_fixed.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params_fixed.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params_fixed.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params_fixed.hpp index 57746a9832..e23a4bc4aa 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_params_fixed.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_params_fixed.hpp @@ -11,7 +11,7 @@ #ifndef CRYPTO3_MULTIPRECISION_MODULAR_PARAMS_FIXED_PRECISION_HPP #define CRYPTO3_MULTIPRECISION_MODULAR_PARAMS_FIXED_PRECISION_HPP -#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_policy_fixed.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_policy_fixed.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_policy_fixed.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_policy_fixed.hpp index 74edfaa9c2..d70e3bf9eb 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_policy_fixed.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/modular_policy_fixed.hpp @@ -10,7 +10,7 @@ #ifndef CRYPTO3_MULTIPRECISION_MODULAR_POLICY_FIXED_HPP #define CRYPTO3_MULTIPRECISION_MODULAR_POLICY_FIXED_HPP -#include +#include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/montgomery_params.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/montgomery_params.hpp similarity index 87% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/montgomery_params.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/montgomery_params.hpp index bd05ae6aa6..5cd252562c 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/montgomery_params.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/modular/montgomery_params.hpp @@ -15,10 +15,10 @@ #include -#include +#include #include -#include -#include +#include +#include #include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/random.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/random.hpp similarity index 75% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/random.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/random.hpp index 2cb3c2bc38..796786acb3 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/random.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/random.hpp @@ -10,7 +10,7 @@ #if defined(__GNUC__) || defined(_MSC_VER) #pragma message( \ - "NOTE: Use of this header (nil/crypto3/multiprecision/random.hpp) is deprecated: please use the random number library headers directly.") + "NOTE: Use of this header (nil/crypto3/multiprecision/boost_backends/random.hpp) is deprecated: please use the random number library headers directly.") #endif #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ressol.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/ressol.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ressol.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/ressol.hpp index 993002cafc..a21dcb0071 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ressol.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/ressol.hpp @@ -11,11 +11,11 @@ #ifndef CRYPTO3_MULTIPRECISION_RESSOL_HPP #define CRYPTO3_MULTIPRECISION_RESSOL_HPP -#include +#include #include -#include -#include +#include +#include namespace boost { namespace multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/traits/is_backend.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/traits/is_backend.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/traits/is_backend.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/traits/is_backend.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/wnaf.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/wnaf.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/wnaf.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/boost_backends/wnaf.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_conversions.hpp similarity index 91% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_conversions.hpp index 94779e2cbe..5a90dd7db6 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/cpp_int_conversions.hpp @@ -4,9 +4,9 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_int.hpp" -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/big_int.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" // Converting to and from cpp_int. Should be used only in tests. diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/assert.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/assert.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/assert.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/config.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/config.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/config.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/constexpr_support.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/constexpr_support.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/endian.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/endian.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/endian.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/helper_macros.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/helper_macros.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/int128.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/int128.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp similarity index 91% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp index 35138ee06b..6c9ebfa5c0 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/detail/intel_intrinsics.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/detail/intel_intrinsics.hpp @@ -1,9 +1,9 @@ #pragma once -#include "nil/crypto3/multiprecision/big_int/detail/config.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/helper_macros.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/int128.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/detail/config.hpp" +#include "nil/crypto3/multiprecision/detail/helper_macros.hpp" +#include "nil/crypto3/multiprecision/detail/int128.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" #if __has_include() #define NIL_CO3_MP_HAS_IMMINTRIN_H diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer.hpp new file mode 100644 index 0000000000..07cce6f89a --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer.hpp @@ -0,0 +1,4 @@ +#pragma once + +#include "nil/crypto3/multiprecision/integer_ops_base.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/integer_ops_powm.hpp" // IWYU pragma: export \ No newline at end of file diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_base.hpp similarity index 93% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_base.hpp index 448e52b22a..5d4aefa289 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_base.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_base.hpp @@ -3,7 +3,7 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" namespace nil::crypto3::multiprecision { template, int> = 0> diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_powm.hpp similarity index 85% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_powm.hpp index 172765125d..755eebeb7f 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/integer_ops_powm.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/integer_ops_powm.hpp @@ -3,8 +3,8 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/ops/powm.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/ops/powm.hpp" namespace nil::crypto3::multiprecision { template #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" namespace nil::crypto3::multiprecision::detail { template diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp index 3dd9f1fc12..81f837d14b 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp @@ -1,3 +1,149 @@ +/////////////////////////////////////////////////////////////// +// Copyright 2013 John Maddock. Distributed under the Boost +// Software License, Version 1.0. (See accompanying file +// LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt + #pragma once -#include \ No newline at end of file +#include +#include + +#include "nil/crypto3/multiprecision/big_uint.hpp" + +namespace nil::crypto3::multiprecision::literals { + template + constexpr auto operator"" _bigui() { + constexpr std::size_t N = sizeof...(C); + static_assert(N > 2, "hex literal should start with 0x"); + constexpr std::array str{C...}; + constexpr auto result = + nil::crypto3::multiprecision::detail::parse_int_hex<(N - 2) * 4>({str.data(), N}); + return result; + } +} // namespace nil::crypto3::multiprecision::literals + +#define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ + namespace nil::crypto3::multiprecision::literals { \ + template \ + constexpr auto operator"" _bigui##Bits() { \ + constexpr std::size_t N = sizeof...(C); \ + constexpr std::array str{C...}; \ + constexpr auto result = \ + nil::crypto3::multiprecision::detail::parse_int({str.data(), N}); \ + return result; \ + } \ + } + +// This is a comprehensive list of all bitlengths we use in algebra. +// Custom ones can be defined using this macro in every place where they are used. +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(7) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(13) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(15) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(16) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(17) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(18) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(64) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(92) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(94) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(128) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(130) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(149) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(150) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(151) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(152) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(160) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(161) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(163) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(164) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(177) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(178) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(179) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(180) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(181) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(182) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(183) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(191) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(192) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(205) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(206) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(222) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(223) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(224) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(225) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(226) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(239) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(248) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(249) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(250) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(251) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(252) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(253) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(254) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(255) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(256) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(257) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(263) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(264) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(280) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(281) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(292) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(293) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(294) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(295) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(296) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(297) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(298) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(315) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(316) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(319) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(320) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(330) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(331) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(374) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(375) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(376) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(377) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(378) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(379) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(380) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(381) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(384) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(503) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(504) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(507) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(512) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(515) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(516) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(521) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(546) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(577) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(578) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(585) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(595) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(636) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(706) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(707) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(758) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(753) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(759) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(761) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(859) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(860) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(893) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(894) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(913) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1024) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1490) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(1536) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2048) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(2790) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(3072) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4096) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4269) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(4314) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(6144) +NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(8192) + +using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/miller_rabin.hpp similarity index 97% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/miller_rabin.hpp index 2c253c4a80..59b9d3c7b0 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/miller_rabin.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/miller_rabin.hpp @@ -12,9 +12,9 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/integer.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/integer.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" namespace nil::crypto3::multiprecision { namespace detail { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp new file mode 100644 index 0000000000..9143c0c274 --- /dev/null +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp @@ -0,0 +1,6 @@ +#pragma once + +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/modular/ops/inverse.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/modular/ops/pow.hpp" // IWYU pragma: export +#include "nil/crypto3/multiprecision/modular/ops/ressol.hpp" // IWYU pragma: export diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp similarity index 97% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp index ae4dd6facf..30d774d306 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp @@ -11,7 +11,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" #include #include @@ -21,10 +21,10 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/modular/modular_ops.hpp" +#include "nil/crypto3/multiprecision/modular/modular_ops_storage.hpp" namespace nil::crypto3::multiprecision { namespace detail { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp similarity index 98% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp index 6ccfdadede..fbf7a18249 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp @@ -19,11 +19,11 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/constexpr_support.hpp" -#include "nil/crypto3/multiprecision/big_int/integer_ops_base.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/detail/constexpr_support.hpp" +#include "nil/crypto3/multiprecision/integer_ops_base.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" namespace nil::crypto3::multiprecision::detail { template diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops_storage.hpp similarity index 96% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops_storage.hpp index 279b967539..7dc3b63918 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/modular_ops_storage.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops_storage.hpp @@ -16,7 +16,7 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" namespace nil::crypto3::multiprecision::detail { // Compile-time storage for modular arithmetic operations. Stores them in a constexpr variable. diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp similarity index 77% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp index c822842cf8..5fe14736c0 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp @@ -11,13 +11,13 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/ops/gcd_inverse.hpp" namespace nil::crypto3::multiprecision { template, int> = 0> diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp similarity index 84% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp index 19c914f2ab..abab98e1e9 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp @@ -11,14 +11,14 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" #include #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" namespace nil::crypto3::multiprecision { template -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/ops/ressol.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/ops/ressol.hpp" namespace nil::crypto3::multiprecision { template, int> = 0> diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/gcd_inverse.hpp similarity index 93% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/gcd_inverse.hpp index bdc3475b73..c02a82e87b 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/gcd_inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/gcd_inverse.hpp @@ -9,14 +9,14 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include -#include "nil/crypto3/multiprecision/big_int/big_int.hpp" -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" +#include "nil/crypto3/multiprecision/big_int.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" namespace nil::crypto3::multiprecision { namespace detail { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp similarity index 96% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp index 8bd6db09e0..8e9ae2e71a 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/import_export.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp @@ -6,7 +6,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include @@ -16,10 +16,10 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/endian.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/detail/endian.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" namespace nil::crypto3::multiprecision { namespace detail { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/jacobi.hpp similarity index 95% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/jacobi.hpp index 87d1385fed..9210b97c7e 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/jacobi.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/jacobi.hpp @@ -9,12 +9,12 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" namespace nil::crypto3::multiprecision { diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/powm.hpp similarity index 84% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/powm.hpp index 3f56e813be..c723fa8bb3 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/powm.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/powm.hpp @@ -11,15 +11,15 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/modular/ops/pow.hpp" namespace nil::crypto3::multiprecision { template #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/detail/assert.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/ops/pow.hpp" -#include "nil/crypto3/multiprecision/big_int/ops/jacobi.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/modular/ops/pow.hpp" +#include "nil/crypto3/multiprecision/ops/jacobi.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" namespace nil::crypto3::multiprecision { template diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/wnaf.hpp similarity index 95% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/wnaf.hpp index 1ccf0a1256..054646f213 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/ops/wnaf.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/wnaf.hpp @@ -8,15 +8,15 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_uint.hpp" #include #include #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint_impl.hpp" -#include "nil/crypto3/multiprecision/big_int/storage.hpp" +#include "nil/crypto3/multiprecision/big_uint_impl.hpp" +#include "nil/crypto3/multiprecision/storage.hpp" namespace nil::crypto3::multiprecision { /* Vector version */ diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/storage.hpp similarity index 95% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/storage.hpp index 2a0c06ba23..f534ee7380 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_int/storage.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/storage.hpp @@ -6,7 +6,7 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/detail/int128.hpp" +#include "nil/crypto3/multiprecision/detail/int128.hpp" namespace nil::crypto3::multiprecision::detail { #ifdef NIL_CO3_MP_HAS_INT128 diff --git a/crypto3/libs/multiprecision/test/arithmetic_non_matching_bitlength_numbers.cpp b/crypto3/libs/multiprecision/test/arithmetic_non_matching_bitlength_numbers.cpp index 42fbe5f4f3..c2aceb858b 100644 --- a/crypto3/libs/multiprecision/test/arithmetic_non_matching_bitlength_numbers.cpp +++ b/crypto3/libs/multiprecision/test/arithmetic_non_matching_bitlength_numbers.cpp @@ -28,10 +28,10 @@ // We need cpp_int to compare to it. #include -#include -#include -#include -#include +#include +#include +#include +#include using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/big_int.cpp b/crypto3/libs/multiprecision/test/big_int.cpp index 0857116d45..84a90e25e6 100644 --- a/crypto3/libs/multiprecision/test/big_int.cpp +++ b/crypto3/libs/multiprecision/test/big_int.cpp @@ -5,8 +5,8 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(32) NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(33) diff --git a/crypto3/libs/multiprecision/test/big_int_comparision.cpp b/crypto3/libs/multiprecision/test/big_int_comparision.cpp index 9f3b17ef2f..0d0ceef37c 100644 --- a/crypto3/libs/multiprecision/test/big_int_comparision.cpp +++ b/crypto3/libs/multiprecision/test/big_int_comparision.cpp @@ -17,8 +17,8 @@ // We need cpp_int to compare to it. #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/cpp_int_conversions.hpp" using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp index 2e15bb15b6..a3726bba25 100644 --- a/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp +++ b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp @@ -2,8 +2,8 @@ #include -#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" -#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/cpp_int_conversions.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(60) BOOST_MP_DEFINE_SIZED_CPP_INT_LITERAL(60) diff --git a/crypto3/libs/multiprecision/test/big_int_inverse.cpp b/crypto3/libs/multiprecision/test/big_int_inverse.cpp index 8c63362e31..d508e8f6c9 100644 --- a/crypto3/libs/multiprecision/test/big_int_inverse.cpp +++ b/crypto3/libs/multiprecision/test/big_int_inverse.cpp @@ -14,9 +14,9 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/literals.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod.hpp" using namespace nil::crypto3::multiprecision; diff --git a/crypto3/libs/multiprecision/test/big_int_jacobi.cpp b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp index d4ecda4666..f88624c736 100644 --- a/crypto3/libs/multiprecision/test/big_int_jacobi.cpp +++ b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp @@ -10,8 +10,8 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/literals.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" using namespace nil::crypto3::multiprecision; using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp index d5a41e2882..b0bce66554 100644 --- a/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp +++ b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp @@ -10,8 +10,8 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/literals.hpp" -#include "nil/crypto3/multiprecision/big_int/miller_rabin.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" +#include "nil/crypto3/multiprecision/miller_rabin.hpp" using namespace nil::crypto3::multiprecision; using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/test/big_int_modular.cpp b/crypto3/libs/multiprecision/test/big_int_modular.cpp index 708c77c1bf..07c3a77f67 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular.cpp @@ -3,8 +3,8 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/literals.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod.hpp" using namespace nil::crypto3::multiprecision; using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp index 92cdc26ff3..56cc4a3cc6 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp @@ -17,10 +17,10 @@ // We need cpp_int to compare to it. #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" -#include "nil/crypto3/multiprecision/big_int/cpp_int_conversions.hpp" -#include "nil/crypto3/multiprecision/big_int/literals.hpp" -#include "nil/crypto3/multiprecision/big_int/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" +#include "nil/crypto3/multiprecision/cpp_int_conversions.hpp" +#include "nil/crypto3/multiprecision/literals.hpp" +#include "nil/crypto3/multiprecision/modular/big_mod.hpp" using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/test/big_int_ressol.cpp b/crypto3/libs/multiprecision/test/big_int_ressol.cpp index 751ccfb00e..50ab4afda8 100644 --- a/crypto3/libs/multiprecision/test/big_int_ressol.cpp +++ b/crypto3/libs/multiprecision/test/big_int_ressol.cpp @@ -15,7 +15,7 @@ #include #include -#include "nil/crypto3/multiprecision/big_int/big_uint.hpp" +#include "nil/crypto3/multiprecision/big_uint.hpp" using namespace nil::crypto3::multiprecision; diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int.cpp index c952f97561..85cc419415 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int.cpp @@ -4,7 +4,7 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include "constexpr_arithmetric_test.hpp" -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" #include "test.hpp" #if !defined(BOOST_MP_NO_CONSTEXPR_DETECTION) && !defined(DISABLE_TESTS) diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_2.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_2.cpp index d046803ee7..18487e6eb6 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_2.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_2.cpp @@ -6,7 +6,7 @@ #include #undef BOOST_HAS_INT128 #include "constexpr_arithmetric_test.hpp" -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" #include "test.hpp" #if !defined(BOOST_MP_NO_CONSTEXPR_DETECTION) && !defined(DISABLE_TESTS) diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_3.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_3.cpp index 0a5428e9ff..b2d9cd9302 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_3.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_3.cpp @@ -4,7 +4,7 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include "constexpr_arithmetric_test.hpp" -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" #include "test.hpp" #if !defined(BOOST_MP_NO_CONSTEXPR_DETECTION) && !defined(DISABLE_TESTS) diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_4.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_4.cpp index f19fe35253..e9ae83006b 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_4.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_4.cpp @@ -4,7 +4,7 @@ // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) #include "constexpr_arithmetric_test.hpp" -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" #include "test.hpp" template diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_5.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_5.cpp index d88d4bf945..c823c84901 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_5.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_5.cpp @@ -7,8 +7,8 @@ // on factorials. #include "constexpr_arithmetric_test.hpp" -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" -#include "nil/crypto3/multiprecision/integer.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/integer.hpp" #include "test.hpp" template diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_6.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_6.cpp index 2703f75698..15d1cf9dcf 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_6.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_6.cpp @@ -3,7 +3,7 @@ // Boost Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include "nil/crypto3/multiprecision/cpp_int_modular.hpp" +#include "nil/crypto3/multiprecision/boost_backends/cpp_int_modular.hpp" #include "test.hpp" template diff --git a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_7.cpp b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_7.cpp index abbae4f06d..59a14a4f9b 100644 --- a/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_7.cpp +++ b/crypto3/libs/multiprecision/test/constexpr_test_cpp_int_7.cpp @@ -10,7 +10,7 @@ // https://en.wikipedia.org/wiki/KISS_(algorithm) for cpp_int integers. b2 --abbreviate-paths toolset=clang-9.0.0 // address-model=64 cxxstd=2a release misc > multiprecision_clang_misc.log -#include +#include #include diff --git a/crypto3/libs/multiprecision/test/eigen.hpp b/crypto3/libs/multiprecision/test/eigen.hpp index ab51f29461..8078f94266 100644 --- a/crypto3/libs/multiprecision/test/eigen.hpp +++ b/crypto3/libs/multiprecision/test/eigen.hpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include #include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/git_issue_167.cpp b/crypto3/libs/multiprecision/test/git_issue_167.cpp index 4b51e12cad..f38d8101a4 100644 --- a/crypto3/libs/multiprecision/test/git_issue_167.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_167.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include "test.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/git_issue_175.cpp b/crypto3/libs/multiprecision/test/git_issue_175.cpp index 87049b39d1..15461af66e 100644 --- a/crypto3/libs/multiprecision/test/git_issue_175.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_175.cpp @@ -3,8 +3,8 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include -#include +#include +#include #include "test.hpp" using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/git_issue_248.cpp b/crypto3/libs/multiprecision/test/git_issue_248.cpp index e64c80fe3e..5237dde726 100644 --- a/crypto3/libs/multiprecision/test/git_issue_248.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_248.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/git_issue_265.cpp b/crypto3/libs/multiprecision/test/git_issue_265.cpp index 3f9c71d40a..2a7e3daa3c 100644 --- a/crypto3/libs/multiprecision/test/git_issue_265.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_265.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/git_issue_277.cpp b/crypto3/libs/multiprecision/test/git_issue_277.cpp index 23f9b55db8..a636a54a4d 100644 --- a/crypto3/libs/multiprecision/test/git_issue_277.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_277.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include "test.hpp" template diff --git a/crypto3/libs/multiprecision/test/git_issue_30.cpp b/crypto3/libs/multiprecision/test/git_issue_30.cpp index 720e262c1f..8d01820ff3 100644 --- a/crypto3/libs/multiprecision/test/git_issue_30.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_30.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include struct E { E(boost::multiprecision::cpp_rational const&) { diff --git a/crypto3/libs/multiprecision/test/git_issue_98.cpp b/crypto3/libs/multiprecision/test/git_issue_98.cpp index 58943409a2..58bdd04683 100644 --- a/crypto3/libs/multiprecision/test/git_issue_98.cpp +++ b/crypto3/libs/multiprecision/test/git_issue_98.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include struct A { virtual void g() = 0; diff --git a/crypto3/libs/multiprecision/test/inverse.cpp b/crypto3/libs/multiprecision/test/inverse.cpp index 8458a4e520..4062496ccd 100644 --- a/crypto3/libs/multiprecision/test/inverse.cpp +++ b/crypto3/libs/multiprecision/test/inverse.cpp @@ -18,15 +18,15 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include -#include -#include -#include +#include +#include +#include #include -#include +#include -#include +#include using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/issue_13148.cpp b/crypto3/libs/multiprecision/test/issue_13148.cpp index 7301d248df..10ecdb0809 100644 --- a/crypto3/libs/multiprecision/test/issue_13148.cpp +++ b/crypto3/libs/multiprecision/test/issue_13148.cpp @@ -3,9 +3,9 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include -#include -#include +#include +#include +#include boost::multiprecision::cpp_rational rationalfromStr(const char* str) { boost::multiprecision::cpp_dec_float_50 d1(str); diff --git a/crypto3/libs/multiprecision/test/issue_13301.cpp b/crypto3/libs/multiprecision/test/issue_13301.cpp index ce47aa743e..613b1ecc8f 100644 --- a/crypto3/libs/multiprecision/test/issue_13301.cpp +++ b/crypto3/libs/multiprecision/test/issue_13301.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include int main() { typedef boost::multiprecision::number< diff --git a/crypto3/libs/multiprecision/test/jacobi.cpp b/crypto3/libs/multiprecision/test/jacobi.cpp index 36cd0b16fb..2959e4b476 100644 --- a/crypto3/libs/multiprecision/test/jacobi.cpp +++ b/crypto3/libs/multiprecision/test/jacobi.cpp @@ -14,10 +14,10 @@ #include #include -#include -#include +#include +#include -#include +#include template void test() { diff --git a/crypto3/libs/multiprecision/test/modular_adaptor_fixed.cpp b/crypto3/libs/multiprecision/test/modular_adaptor_fixed.cpp index a4870af401..5dac38b172 100644 --- a/crypto3/libs/multiprecision/test/modular_adaptor_fixed.cpp +++ b/crypto3/libs/multiprecision/test/modular_adaptor_fixed.cpp @@ -26,14 +26,14 @@ // We need cpp_int to compare to it. #include -#include -#include -#include +#include +#include +#include -#include -#include +#include +#include -#include +#include using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/ressol.cpp b/crypto3/libs/multiprecision/test/ressol.cpp index 3382e3df34..95a80723c8 100644 --- a/crypto3/libs/multiprecision/test/ressol.cpp +++ b/crypto3/libs/multiprecision/test/ressol.cpp @@ -18,11 +18,11 @@ #include #include -#include -#include +#include +#include -#include -#include +#include +#include using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_backend_concept.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_backend_concept.cpp index 0ef7bc28d1..2b99607cd1 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_backend_concept.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_backend_concept.cpp @@ -7,7 +7,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_1.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_1.cpp index fa8f95c897..7d4ba36d25 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_1.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_1.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_10.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_10.cpp index 75558259f9..560abfec00 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_10.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_10.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_11.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_11.cpp index 5b9575f1d1..fa342dbbc2 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_11.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_11.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_12.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_12.cpp index f58133e49f..7537ebcbf1 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_12.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_12.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_13.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_13.cpp index 92e6123643..e6d4e4c270 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_13.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_13.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_14.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_14.cpp index 93689edf0d..49753f1358 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_14.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_14.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_15.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_15.cpp index a4f2f60819..9545e10516 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_15.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_15.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_16.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_16.cpp index de35f18bea..3a430822df 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_16.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_16.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_17.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_17.cpp index 69619104bf..735aeae151 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_17.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_17.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_18.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_18.cpp index 719d1b9840..4c712fce7b 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_18.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_18.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_19.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_19.cpp index 9f7f5806f5..d39de086e9 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_19.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_19.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_2.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_2.cpp index 06b180f01f..d0bc397d8e 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_2.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_2.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_20.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_20.cpp index 1e9f93bacd..a4762dda7a 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_20.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_20.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_3.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_3.cpp index a0f21bf056..897f451faa 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_3.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_3.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_4.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_4.cpp index 67cadaa8e0..55f635cdc6 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_4.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_4.cpp @@ -5,7 +5,7 @@ #define TEST_CHECKED_INT -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_5.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_5.cpp index f22b037939..bfd1ad828c 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_5.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_5.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_6.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_6.cpp index 4d6056fb8f..f99bf931a9 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_6.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_6.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_7.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_7.cpp index 978eaa704e..c45fe3a1e0 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_7.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_7.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_8.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_8.cpp index c067de4426..a909c11ff5 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_8.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_8.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_9.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_9.cpp index e2cd75283c..0ff7696959 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_9.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_9.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_br.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_br.cpp index d47f32a501..4a54b76f83 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_br.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_cpp_int_br.cpp @@ -5,7 +5,7 @@ #define BOOST_MP_NOT_TESTING_NUMBER -#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp index 0d85180d02..c0aca60c99 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1.cpp @@ -9,8 +9,8 @@ #define NO_MIXED_OPS -#include -#include +#include +#include #include "test_arithmetic.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1m.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1m.cpp index 5a8298f183..7d9430aef2 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1m.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr1m.cpp @@ -9,8 +9,8 @@ #define MIXED_OPS_ONLY -#include -#include +#include +#include #include "test_arithmetic.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp index ca4910dbc9..36d19b8c52 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_dbg_adptr2.cpp @@ -7,8 +7,8 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include -#include +#include +#include #include "test_arithmetic.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_logged_1.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_logged_1.cpp index 3bb0c901ae..663a9b9e24 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_logged_1.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_logged_1.cpp @@ -7,8 +7,8 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include -#include +#include +#include #include "test_arithmetic.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_logged_2.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_logged_2.cpp index d2b3420fef..11a059c9c3 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_logged_2.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_logged_2.cpp @@ -7,8 +7,8 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include -#include +#include +#include #include "test_arithmetic.hpp" int main() { diff --git a/crypto3/libs/multiprecision/test/test_arithmetic_mpz_rat.cpp b/crypto3/libs/multiprecision/test/test_arithmetic_mpz_rat.cpp index 204edac513..1711549efd 100644 --- a/crypto3/libs/multiprecision/test/test_arithmetic_mpz_rat.cpp +++ b/crypto3/libs/multiprecision/test/test_arithmetic_mpz_rat.cpp @@ -7,8 +7,8 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include -#include +#include +#include #include "test_arithmetic.hpp" diff --git a/crypto3/libs/multiprecision/test/test_checked_mixed_cpp_int.cpp b/crypto3/libs/multiprecision/test/test_checked_mixed_cpp_int.cpp index c7b5e23fef..62ae2dfab1 100644 --- a/crypto3/libs/multiprecision/test/test_checked_mixed_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/test_checked_mixed_cpp_int.cpp @@ -7,7 +7,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include "test.hpp" template diff --git a/crypto3/libs/multiprecision/test/test_constants.cpp b/crypto3/libs/multiprecision/test/test_constants.cpp index 5b539937e5..1fb45cefca 100644 --- a/crypto3/libs/multiprecision/test/test_constants.cpp +++ b/crypto3/libs/multiprecision/test/test_constants.cpp @@ -24,13 +24,13 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #if defined(TEST_MPFR_50) -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/test_constexpr.cpp b/crypto3/libs/multiprecision/test/test_constexpr.cpp index b75f52be2f..06576922c5 100644 --- a/crypto3/libs/multiprecision/test/test_constexpr.cpp +++ b/crypto3/libs/multiprecision/test/test_constexpr.cpp @@ -3,9 +3,9 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #if defined(HAVE_FLOAT128) -#include +#include #endif #ifndef BOOST_NO_CXX11_CONSTEXPR diff --git a/crypto3/libs/multiprecision/test/test_convert_from_cpp_int.cpp b/crypto3/libs/multiprecision/test/test_convert_from_cpp_int.cpp index db82e7fd00..0f374e568c 100644 --- a/crypto3/libs/multiprecision/test/test_convert_from_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/test_convert_from_cpp_int.cpp @@ -7,7 +7,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/test_cpp_int_conv.cpp b/crypto3/libs/multiprecision/test/test_cpp_int_conv.cpp index 19859e1e23..9323612f1a 100644 --- a/crypto3/libs/multiprecision/test/test_cpp_int_conv.cpp +++ b/crypto3/libs/multiprecision/test/test_cpp_int_conv.cpp @@ -12,7 +12,7 @@ #include #include "test.hpp" -#include +#include int main() { using namespace boost::multiprecision; diff --git a/crypto3/libs/multiprecision/test/test_cpp_int_import_export.cpp b/crypto3/libs/multiprecision/test/test_cpp_int_import_export.cpp index 5d76c932dc..c3ce6c445a 100644 --- a/crypto3/libs/multiprecision/test/test_cpp_int_import_export.cpp +++ b/crypto3/libs/multiprecision/test/test_cpp_int_import_export.cpp @@ -9,7 +9,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include #include diff --git a/crypto3/libs/multiprecision/test/test_cpp_int_left_shift.cpp b/crypto3/libs/multiprecision/test/test_cpp_int_left_shift.cpp index d14c6c0208..38542f8afb 100644 --- a/crypto3/libs/multiprecision/test/test_cpp_int_left_shift.cpp +++ b/crypto3/libs/multiprecision/test/test_cpp_int_left_shift.cpp @@ -12,8 +12,8 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include -#include +#include +#include #include #include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/test_cpp_int_lit.cpp b/crypto3/libs/multiprecision/test/test_cpp_int_lit.cpp index aa30909e64..d35cbe322f 100644 --- a/crypto3/libs/multiprecision/test/test_cpp_int_lit.cpp +++ b/crypto3/libs/multiprecision/test/test_cpp_int_lit.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include "test.hpp" #if !(BOOST_WORKAROUND(BOOST_MSVC, <= 1900) && defined(CI_SUPPRESS_KNOWN_ISSUES)) && \ diff --git a/crypto3/libs/multiprecision/test/test_eigen_interop.cpp b/crypto3/libs/multiprecision/test/test_eigen_interop.cpp index 4c8018a8f3..3c450efc67 100644 --- a/crypto3/libs/multiprecision/test/test_eigen_interop.cpp +++ b/crypto3/libs/multiprecision/test/test_eigen_interop.cpp @@ -2,16 +2,16 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt -#include -#include -#include +#include +#include +#include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/test_eigen_interop_cpp_int.cpp b/crypto3/libs/multiprecision/test/test_eigen_interop_cpp_int.cpp index 8eb285fe4e..8d0977fb2e 100644 --- a/crypto3/libs/multiprecision/test/test_eigen_interop_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/test_eigen_interop_cpp_int.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include "eigen.hpp" diff --git a/crypto3/libs/multiprecision/test/test_exp.cpp b/crypto3/libs/multiprecision/test/test_exp.cpp index 2c37daef48..7de84fe588 100644 --- a/crypto3/libs/multiprecision/test/test_exp.cpp +++ b/crypto3/libs/multiprecision/test/test_exp.cpp @@ -38,25 +38,25 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #if defined(TEST_MPFR_50) -#include +#include #endif #if defined(TEST_MPFI_50) -#include +#include #endif #ifdef TEST_BACKEND -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #ifdef TEST_CPP_BIN_FLOAT -#include +#include #endif template diff --git a/crypto3/libs/multiprecision/test/test_fpclassify.cpp b/crypto3/libs/multiprecision/test/test_fpclassify.cpp index 7b42fb37f1..01d3af1ef4 100644 --- a/crypto3/libs/multiprecision/test/test_fpclassify.cpp +++ b/crypto3/libs/multiprecision/test/test_fpclassify.cpp @@ -35,25 +35,25 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #ifdef TEST_MPFR_50 -#include +#include #endif #ifdef TEST_MPFI_50 -#include +#include #endif #ifdef TEST_BACKEND -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #ifdef TEST_CPP_BIN_FLOAT -#include +#include #endif #ifdef _MSC_VER diff --git a/crypto3/libs/multiprecision/test/test_gcd.cpp b/crypto3/libs/multiprecision/test/test_gcd.cpp index 19e6d28c82..a21e352164 100644 --- a/crypto3/libs/multiprecision/test/test_gcd.cpp +++ b/crypto3/libs/multiprecision/test/test_gcd.cpp @@ -10,7 +10,7 @@ #define BOOST_MP_GCD_DEBUG #include "test.hpp" -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/test/test_hash.cpp b/crypto3/libs/multiprecision/test/test_hash.cpp index 6fb3c3a15e..5e597d94ca 100644 --- a/crypto3/libs/multiprecision/test/test_hash.cpp +++ b/crypto3/libs/multiprecision/test/test_hash.cpp @@ -9,7 +9,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include diff --git a/crypto3/libs/multiprecision/test/test_int_io.cpp b/crypto3/libs/multiprecision/test/test_int_io.cpp index 6a08a8edc2..c096373e38 100644 --- a/crypto3/libs/multiprecision/test/test_int_io.cpp +++ b/crypto3/libs/multiprecision/test/test_int_io.cpp @@ -24,13 +24,13 @@ #endif #if defined(TEST_MPZ) -#include +#include #endif #if defined(TEST_TOMMATH) -#include +#include #endif #ifdef TEST_CPP_INT -#include +#include #endif #include diff --git a/crypto3/libs/multiprecision/test/test_log.cpp b/crypto3/libs/multiprecision/test/test_log.cpp index c7da4b1317..0a0e54bff4 100644 --- a/crypto3/libs/multiprecision/test/test_log.cpp +++ b/crypto3/libs/multiprecision/test/test_log.cpp @@ -37,25 +37,25 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #ifdef TEST_MPFR_50 -#include +#include #endif #ifdef TEST_MPFI_50 -#include +#include #endif #ifdef TEST_BACKEND -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #ifdef TEST_CPP_BIN_FLOAT -#include +#include #endif template diff --git a/crypto3/libs/multiprecision/test/test_move.cpp b/crypto3/libs/multiprecision/test/test_move.cpp index 248af2ee81..a68df2bec5 100644 --- a/crypto3/libs/multiprecision/test/test_move.cpp +++ b/crypto3/libs/multiprecision/test/test_move.cpp @@ -14,7 +14,7 @@ #ifndef BOOST_NO_CXX11_RVALUE_REFERENCES -#include +#include #include "test.hpp" diff --git a/crypto3/libs/multiprecision/test/test_mpf_precisions.cpp b/crypto3/libs/multiprecision/test/test_mpf_precisions.cpp index 5573397c4a..d693438af6 100644 --- a/crypto3/libs/multiprecision/test/test_mpf_precisions.cpp +++ b/crypto3/libs/multiprecision/test/test_mpf_precisions.cpp @@ -15,7 +15,7 @@ #include #include "test.hpp" -#include +#include template T make_rvalue_copy(const T a) { diff --git a/crypto3/libs/multiprecision/test/test_nothrow_cpp_int.cpp b/crypto3/libs/multiprecision/test/test_nothrow_cpp_int.cpp index e72a75474e..6752bc9d9b 100644 --- a/crypto3/libs/multiprecision/test/test_nothrow_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/test_nothrow_cpp_int.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/test/test_nothrow_cpp_rational.cpp b/crypto3/libs/multiprecision/test/test_nothrow_cpp_rational.cpp index c23b31b0f9..02ab0b0d74 100644 --- a/crypto3/libs/multiprecision/test/test_nothrow_cpp_rational.cpp +++ b/crypto3/libs/multiprecision/test/test_nothrow_cpp_rational.cpp @@ -3,7 +3,7 @@ // Software License, Version 1.0. (See accompanying file // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -#include +#include #include #include #include diff --git a/crypto3/libs/multiprecision/test/test_numeric_limits.cpp b/crypto3/libs/multiprecision/test/test_numeric_limits.cpp index 06df205aed..57fa65fefe 100644 --- a/crypto3/libs/multiprecision/test/test_numeric_limits.cpp +++ b/crypto3/libs/multiprecision/test/test_numeric_limits.cpp @@ -9,7 +9,7 @@ #include "test.hpp" -#include +#include template void test_specific(const std::integral_constant&) { diff --git a/crypto3/libs/multiprecision/test/test_optional_compat.cpp b/crypto3/libs/multiprecision/test/test_optional_compat.cpp index 9c2d4d0ed8..dd2339b293 100644 --- a/crypto3/libs/multiprecision/test/test_optional_compat.cpp +++ b/crypto3/libs/multiprecision/test/test_optional_compat.cpp @@ -12,7 +12,7 @@ * https://github.com/boostorg/integer/pull/11 */ -#include +#include #include #include diff --git a/crypto3/libs/multiprecision/test/test_pow.cpp b/crypto3/libs/multiprecision/test/test_pow.cpp index c2828d1412..050e424b9d 100644 --- a/crypto3/libs/multiprecision/test/test_pow.cpp +++ b/crypto3/libs/multiprecision/test/test_pow.cpp @@ -37,25 +37,25 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #if defined(TEST_MPFR_50) -#include +#include #endif #if defined(TEST_MPFI_50) -#include +#include #endif #ifdef TEST_BACKEND -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #ifdef TEST_CPP_BIN_FLOAT -#include +#include #endif template diff --git a/crypto3/libs/multiprecision/test/test_sf_import_c99.cpp b/crypto3/libs/multiprecision/test/test_sf_import_c99.cpp index 67519f4cbd..2f42dcae1c 100644 --- a/crypto3/libs/multiprecision/test/test_sf_import_c99.cpp +++ b/crypto3/libs/multiprecision/test/test_sf_import_c99.cpp @@ -36,24 +36,24 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #ifdef TEST_MPFR_50 -#include +#include #endif #ifdef TEST_MPFI_50 -#include +#include #endif #if defined(TEST_CPP_DEC_FLOAT) || defined(TEST_CPP_DEC_FLOAT_2) || defined(TEST_CPP_DEC_FLOAT_3) || \ defined(TEST_CPP_DEC_FLOAT_4) || defined(TEST_CPP_DEC_FLOAT_5) || defined(TEST_CPP_DEC_FLOAT_6) -#include +#include #endif #if defined(TEST_CPP_BIN_FLOAT) || defined(TEST_CPP_BIN_FLOAT_2) || defined(TEST_CPP_BIN_FLOAT_3) -#include -#include +#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #include diff --git a/crypto3/libs/multiprecision/test/test_sqrt.cpp b/crypto3/libs/multiprecision/test/test_sqrt.cpp index dfdb6ea46f..9eed092a3c 100644 --- a/crypto3/libs/multiprecision/test/test_sqrt.cpp +++ b/crypto3/libs/multiprecision/test/test_sqrt.cpp @@ -37,25 +37,25 @@ #endif #if defined(TEST_MPF_50) -#include +#include #endif #if defined(TEST_MPFR_50) -#include +#include #endif #if defined(TEST_MPFI_50) -#include +#include #endif #ifdef TEST_BACKEND -#include +#include #endif #ifdef TEST_CPP_DEC_FLOAT -#include +#include #endif #ifdef TEST_FLOAT128 -#include +#include #endif #ifdef TEST_CPP_BIN_FLOAT -#include +#include #endif template diff --git a/crypto3/libs/multiprecision/test/test_unchecked_cpp_int.cpp b/crypto3/libs/multiprecision/test/test_unchecked_cpp_int.cpp index 960f8fb0fc..429ae957ef 100644 --- a/crypto3/libs/multiprecision/test/test_unchecked_cpp_int.cpp +++ b/crypto3/libs/multiprecision/test/test_unchecked_cpp_int.cpp @@ -11,7 +11,7 @@ #define _SCL_SECURE_NO_WARNINGS #endif -#include +#include #include "test.hpp" #include #include diff --git a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp index d40e5591e4..ca032bd620 100644 --- a/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp +++ b/crypto3/libs/zk/include/nil/crypto3/zk/commitments/detail/polynomial/element_knowledge_commitment.hpp @@ -28,7 +28,7 @@ #include -#include +#include namespace nil { namespace crypto3 { diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp index 72ca1167ad..7d5ee68c87 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp @@ -37,7 +37,7 @@ #include #include -#include +#include #include #include diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp index ac0b94a3db..42060d10e5 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp @@ -31,7 +31,7 @@ #include #include -#include +#include #include #include From 84c30c7f126afe4bae93d0caae2230d57dd3e03b Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 6 Dec 2024 13:45:24 +0000 Subject: [PATCH 12/18] move big_mod.hpp to multiprecision root --- crypto3/benchmarks/multiprecision/big_int.cpp | 2 +- .../include/nil/crypto3/algebra/fields/detail/element/fp.hpp | 2 +- crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp | 2 +- .../nil/crypto3/multiprecision/{modular => }/big_mod.hpp | 0 .../include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp | 2 +- .../include/nil/crypto3/multiprecision/modular/ops/inverse.hpp | 2 +- .../include/nil/crypto3/multiprecision/modular/ops/pow.hpp | 2 +- .../include/nil/crypto3/multiprecision/modular/ops/ressol.hpp | 2 +- crypto3/libs/multiprecision/test/big_int_inverse.cpp | 2 +- crypto3/libs/multiprecision/test/big_int_modular.cpp | 2 +- .../libs/multiprecision/test/big_int_modular_comprehensive.cpp | 2 +- 11 files changed, 10 insertions(+), 10 deletions(-) rename crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/{modular => }/big_mod.hpp (100%) diff --git a/crypto3/benchmarks/multiprecision/big_int.cpp b/crypto3/benchmarks/multiprecision/big_int.cpp index 0eb99bed81..283a8cd49a 100644 --- a/crypto3/benchmarks/multiprecision/big_int.cpp +++ b/crypto3/benchmarks/multiprecision/big_int.cpp @@ -18,7 +18,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp index 669485d9f6..6268f24000 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/element/fp.hpp @@ -32,7 +32,7 @@ #include #include -#include +#include #include diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp index a60dd99e47..3449a1d0cd 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/primes.hpp @@ -29,7 +29,7 @@ #include -#include +#include #include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_mod.hpp similarity index 100% rename from crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod.hpp rename to crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_mod.hpp diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp index 30d774d306..959c842bc7 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp @@ -11,7 +11,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_mod.hpp" #include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp index 5fe14736c0..257feb7660 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/inverse.hpp @@ -11,7 +11,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_mod.hpp" #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp index abab98e1e9..7c1794b054 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp @@ -11,7 +11,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_mod.hpp" #include #include diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/ressol.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/ressol.hpp index c4409ab4d5..33e94f3b22 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/ressol.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/ressol.hpp @@ -11,7 +11,7 @@ #pragma once -// IWYU pragma: private; include "nil/crypto3/multiprecision/modular/big_mod.hpp" +// IWYU pragma: private; include "nil/crypto3/multiprecision/big_mod.hpp" #include diff --git a/crypto3/libs/multiprecision/test/big_int_inverse.cpp b/crypto3/libs/multiprecision/test/big_int_inverse.cpp index d508e8f6c9..a15e27019c 100644 --- a/crypto3/libs/multiprecision/test/big_int_inverse.cpp +++ b/crypto3/libs/multiprecision/test/big_int_inverse.cpp @@ -16,7 +16,7 @@ #include "nil/crypto3/multiprecision/big_uint.hpp" #include "nil/crypto3/multiprecision/literals.hpp" -#include "nil/crypto3/multiprecision/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/big_mod.hpp" using namespace nil::crypto3::multiprecision; diff --git a/crypto3/libs/multiprecision/test/big_int_modular.cpp b/crypto3/libs/multiprecision/test/big_int_modular.cpp index 07c3a77f67..3f1600fe46 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular.cpp @@ -4,7 +4,7 @@ #include #include "nil/crypto3/multiprecision/literals.hpp" -#include "nil/crypto3/multiprecision/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/big_mod.hpp" using namespace nil::crypto3::multiprecision; using namespace nil::crypto3::multiprecision::literals; diff --git a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp index 56cc4a3cc6..b85f4440dd 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp @@ -20,7 +20,7 @@ #include "nil/crypto3/multiprecision/big_uint.hpp" #include "nil/crypto3/multiprecision/cpp_int_conversions.hpp" #include "nil/crypto3/multiprecision/literals.hpp" -#include "nil/crypto3/multiprecision/modular/big_mod.hpp" +#include "nil/crypto3/multiprecision/big_mod.hpp" using namespace nil::crypto3::multiprecision::literals; From 1a5a22589dc859a424acbd81ba122410baa58bf9 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 6 Dec 2024 13:48:11 +0000 Subject: [PATCH 13/18] rename _bigui to _big_uint --- crypto3/benchmarks/multiprecision/big_int.cpp | 8 +- crypto3/libs/algebra/example/curves.cpp | 12 +- .../example/short_weierstrass_coordinates.cpp | 8 +- .../254/short_weierstrass_params.hpp | 8 +- .../curves/detail/babyjubjub/params.hpp | 14 +- .../bls12/377/short_weierstrass_params.hpp | 12 +- .../bls12/381/short_weierstrass_params.hpp | 12 +- .../algebra/curves/detail/bls12/g1.hpp | 4 +- .../algebra/curves/detail/bls12/g2.hpp | 8 +- .../algebra/curves/detail/curve25519/g1.hpp | 4 +- .../curves/detail/curve25519/params.hpp | 6 +- .../algebra/curves/detail/h2c/h2c_iso_map.hpp | 142 +- .../algebra/curves/detail/jubjub/params.hpp | 12 +- .../mnt4/298/short_weierstrass_params.hpp | 14 +- .../mnt6/298/short_weierstrass_params.hpp | 18 +- .../algebra/curves/detail/pallas/g1.hpp | 4 +- .../secp_k1/256/short_weierstrass_params.hpp | 16 +- .../secp_r1/256/short_weierstrass_params.hpp | 48 +- .../algebra/curves/detail/vesta/g1.hpp | 4 +- .../algebra/fields/alt_bn128/base_field.hpp | 4 +- .../algebra/fields/alt_bn128/scalar_field.hpp | 4 +- .../fields/arithmetic_params/alt_bn128.hpp | 38 +- .../fields/arithmetic_params/bls12.hpp | 74 +- .../fields/arithmetic_params/goldilocks64.hpp | 2 +- .../algebra/fields/arithmetic_params/mnt4.hpp | 22 +- .../algebra/fields/arithmetic_params/mnt6.hpp | 22 +- .../fields/arithmetic_params/pallas.hpp | 2 +- .../fields/arithmetic_params/vesta.hpp | 2 +- .../fields/babyjubjub/scalar_field.hpp | 2 +- .../algebra/fields/bls12/base_field.hpp | 8 +- .../algebra/fields/bls12/scalar_field.hpp | 8 +- .../algebra/fields/curve25519/base_field.hpp | 4 +- .../fields/curve25519/scalar_field.hpp | 2 +- .../alt_bn128/fp12_2over3over2.hpp | 68 +- .../detail/extension_params/alt_bn128/fp2.hpp | 16 +- .../extension_params/alt_bn128/fp6_3over2.hpp | 64 +- .../bls12/fp12_2over3over2.hpp | 112 +- .../detail/extension_params/bls12/fp2.hpp | 26 +- .../extension_params/bls12/fp6_3over2.hpp | 72 +- .../detail/extension_params/mnt4/fp2.hpp | 12 +- .../detail/extension_params/mnt4/fp4.hpp | 12 +- .../detail/extension_params/mnt6/fp3.hpp | 24 +- .../extension_params/mnt6/fp6_2over3.hpp | 20 +- .../fields/goldilocks64/base_field.hpp | 2 +- .../algebra/fields/jubjub/scalar_field.hpp | 2 +- .../algebra/fields/mnt4/base_field.hpp | 4 +- .../algebra/fields/mnt6/base_field.hpp | 4 +- .../algebra/fields/pallas/base_field.hpp | 2 +- .../fields/secp/secp_k1/base_field.hpp | 8 +- .../fields/secp/secp_k1/scalar_field.hpp | 8 +- .../fields/secp/secp_r1/base_field.hpp | 12 +- .../fields/secp/secp_r1/scalar_field.hpp | 12 +- .../algebra/fields/vesta/base_field.hpp | 2 +- .../pairing/detail/alt_bn128/params.hpp | 10 +- .../pairing/detail/bls12/377/params.hpp | 4 +- .../pairing/detail/bls12/381/params.hpp | 4 +- .../pairing/detail/mnt4/298/params.hpp | 4 +- .../pairing/detail/mnt6/298/params.hpp | 4 +- crypto3/libs/algebra/test/curves.cpp | 46 +- crypto3/libs/algebra/test/curves_static.cpp | 442 ++-- crypto3/libs/algebra/test/fields_static.cpp | 568 ++-- .../include/nil/blueprint/bbf/exp.hpp | 12 +- .../plonk/non_native/complete_addition.hpp | 2 +- .../edwards/plonk/non_native/ec_point.hpp | 4 +- .../curves/pasta/plonk/endo_scalar.hpp | 8 +- .../pasta/plonk/variable_base_scalar_mul.hpp | 16 +- .../fields/plonk/non_native/reduction.hpp | 56 +- .../components/hashes/keccak/keccak_round.hpp | 2 +- .../components/hashes/keccak/keccak_table.hpp | 4 +- .../poseidon/plonk/poseidon_constants.hpp | 696 ++--- .../hashes/sha2/plonk/decomposition.hpp | 12 +- .../hashes/sha2/plonk/sha512_process.hpp | 40 +- .../kimchi/batch_verify_scalar_field.hpp | 2 +- .../snark/plonk/kimchi/detail/compare.hpp | 4 +- .../snark/plonk/kimchi/detail/to_group.hpp | 24 +- .../snark/plonk/kimchi/oracles_scalar.hpp | 2 +- .../nil/blueprint/zkevm/operations/addmod.hpp | 6 +- .../zkevm/operations/calldataload.hpp | 6 +- .../zkevm/operations/calldatasize.hpp | 6 +- .../blueprint/zkevm/operations/callvalue.hpp | 6 +- .../nil/blueprint/zkevm/operations/div.hpp | 6 +- .../blueprint/zkevm/operations/div_mod.hpp | 6 +- .../nil/blueprint/zkevm/operations/jumpi.hpp | 6 +- .../nil/blueprint/zkevm/operations/memory.hpp | 12 +- .../nil/blueprint/zkevm/operations/mul.hpp | 6 +- .../nil/blueprint/zkevm/operations/mulmod.hpp | 6 +- .../blueprint/zkevm/operations/padding.hpp | 6 +- .../nil/blueprint/zkevm/operations/pop.hpp | 6 +- .../nil/blueprint/zkevm/operations/return.hpp | 6 +- .../nil/blueprint/zkevm/operations/sar.hpp | 6 +- .../blueprint/zkevm/operations/sdiv_smod.hpp | 6 +- .../nil/blueprint/zkevm/operations/shl.hpp | 6 +- .../nil/blueprint/zkevm/operations/shr.hpp | 6 +- .../blueprint/zkevm/operations/storage.hpp | 12 +- .../zkevm/zkevm_machine_interface.hpp | 2 +- .../nil/blueprint/zkevm/zkevm_word.hpp | 6 +- .../opcode_tester_input_generator.hpp | 2 +- .../blueprint/zkevm_bbf/opcodes/addmod.hpp | 6 +- .../blueprint/zkevm_bbf/opcodes/div_mod.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/mul.hpp | 6 +- .../blueprint/zkevm_bbf/opcodes/mulmod.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/sar.hpp | 6 +- .../blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/shl.hpp | 6 +- .../nil/blueprint/zkevm_bbf/opcodes/shr.hpp | 6 +- .../zkevm_bbf/opcodes/signextend.hpp | 6 +- .../include/nil/blueprint/zkevm_bbf/util.hpp | 4 +- .../test/algebra/curves/plonk/endo_scalar.cpp | 26 +- .../plonk/variable_base_endo_scalar_mul.cpp | 2 +- .../curves/plonk/variable_base_scalar_mul.cpp | 6 +- .../plonk/non_native/multiplication.cpp | 16 +- .../algebra/fields/plonk/non_native/range.cpp | 4 +- .../fields/plonk/non_native/reduction.cpp | 8 +- .../fields/plonk/non_native/subtraction.cpp | 4 +- .../test/algebra/fields/plonk/range_check.cpp | 2 +- .../libs/blueprint/test/bbf/exp_wrapper.cpp | 16 +- .../test/hashes/plonk/decomposition.cpp | 12 +- .../blueprint/test/hashes/plonk/poseidon.cpp | 2 +- .../blueprint/test/hashes/plonk/sha256.cpp | 40 +- .../test/hashes/plonk/sha512_process.cpp | 56 +- .../plonk/add_mul_zkllvm_compatible.cpp | 2 +- .../plonk/scalar_non_native_range.cpp | 6 +- .../test/verifiers/flexible/linear_check.cpp | 52 +- .../test/verifiers/flexible/poseidon.cpp | 2 +- .../scalar_details/evals_of_split_evals.cpp | 2 +- .../test/verifiers/placeholder/f1_loop.cpp | 156 +- .../test/verifiers/placeholder/f3_loop.cpp | 90 +- .../test/verifiers/placeholder/fri_cosets.cpp | 4 +- .../placeholder/gate_argument_verifier.cpp | 80 +- .../verifiers/placeholder/gate_component.cpp | 56 +- .../placeholder/lookup_argument_verifier.cpp | 536 ++-- .../permutation_argument_verifier.cpp | 82 +- .../libs/blueprint/test/zkevm/bytecode.cpp | 2 +- .../blueprint/test/zkevm/opcodes/add_sub.cpp | 24 +- .../blueprint/test/zkevm/opcodes/bitwise.cpp | 48 +- .../blueprint/test/zkevm/opcodes/byte_ops.cpp | 122 +- .../libs/blueprint/test/zkevm/opcodes/cmp.cpp | 60 +- .../libs/blueprint/test/zkevm/opcodes/div.cpp | 64 +- .../blueprint/test/zkevm/opcodes/err0.cpp | 4 +- .../blueprint/test/zkevm/opcodes/mod_ops.cpp | 48 +- .../libs/blueprint/test/zkevm/opcodes/mul.cpp | 12 +- .../libs/blueprint/test/zkevm/opcodes/not.cpp | 6 +- .../blueprint/test/zkevm/opcodes/workload.cpp | 6 +- .../test/zkevm_bbf/opcodes/add_sub.cpp | 24 +- .../test/zkevm_bbf/opcodes/bitwise.cpp | 48 +- .../test/zkevm_bbf/opcodes/byte_ops.cpp | 124 +- .../blueprint/test/zkevm_bbf/opcodes/cmp.cpp | 60 +- .../blueprint/test/zkevm_bbf/opcodes/div.cpp | 64 +- .../blueprint/test/zkevm_bbf/opcodes/exp.cpp | 16 +- .../blueprint/test/zkevm_bbf/opcodes/mul.cpp | 22 +- .../blueprint/test/zkevm_bbf/opcodes/not.cpp | 6 +- .../test/zkevm_bbf/opcodes/pushx.cpp | 64 +- .../libs/containers/test/merkle/merkle.cpp | 18 +- .../crypto3/hash/detail/h2c/h2c_functions.hpp | 142 +- .../crypto3/hash/detail/h2c/h2c_iso_map.hpp | 142 +- .../crypto3/hash/detail/h2c/h2c_suites.hpp | 8 +- .../hash/detail/poseidon/kimchi_constants.hpp | 696 ++--- .../detail/poseidon/original_constants.hpp | 2276 ++++++++--------- crypto3/libs/hash/test/poseidon.cpp | 136 +- crypto3/libs/math/test/polynomial_dfs.cpp | 1234 ++++----- .../libs/math/test/polynomial_dfs_view.cpp | 590 ++--- .../nil/crypto3/multiprecision/literals.hpp | 4 +- crypto3/libs/multiprecision/test/big_int.cpp | 74 +- .../test/big_int_cpp_int_conversions.cpp | 4 +- .../multiprecision/test/big_int_inverse.cpp | 2 +- .../multiprecision/test/big_int_jacobi.cpp | 6 +- .../test/big_int_miller_rabin.cpp | 14 +- .../multiprecision/test/big_int_modular.cpp | 64 +- .../test/big_int_modular_comprehensive.cpp | 504 ++-- .../recursive_verifier_generator.hpp | 10 +- .../templates/recursive_verifier.hpp | 4 +- crypto3/libs/zk/test/commitment/kzg.cpp | 276 +- .../zk/test/systems/plonk/pickles/kimchi.cpp | 66 +- .../zk/test/systems/plonk/pickles/pickles.cpp | 706 ++--- .../test/systems/plonk/pickles/to_field.cpp | 8 +- .../test/systems/plonk/pickles/to_group.cpp | 6 +- .../zk/test/transcript/kimchi_transcript.cpp | 454 ++-- .../libs/zk/test/transcript/transcript.cpp | 32 +- .../test/merkle/merkle.cpp | 18 +- .../parallel-math/test/polynomial_dfs.cpp | 1234 ++++----- .../test/polynomial_dfs_view.cpp | 590 ++--- .../libs/parallel-zk/test/commitment/kzg.cpp | 276 +- .../test/transcript/transcript.cpp | 32 +- 183 files changed, 7448 insertions(+), 7448 deletions(-) diff --git a/crypto3/benchmarks/multiprecision/big_int.cpp b/crypto3/benchmarks/multiprecision/big_int.cpp index 283a8cd49a..e3c975f645 100644 --- a/crypto3/benchmarks/multiprecision/big_int.cpp +++ b/crypto3/benchmarks/multiprecision/big_int.cpp @@ -27,21 +27,21 @@ using namespace nil::crypto3::multiprecision::literals; constexpr std::size_t Bits = 256; using standart_number = nil::crypto3::multiprecision::big_uint; -constexpr standart_number modulus_odd = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; -constexpr standart_number modulus_even = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e_bigui256; +constexpr standart_number modulus_odd = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_big_uint256; +constexpr standart_number modulus_even = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2e_big_uint256; using modular_number_ct_odd = nil::crypto3::multiprecision::montgomery_big_mod; using modular_number_ct_even = nil::crypto3::multiprecision::big_mod; using modular_number_rt_montgomery = nil::crypto3::multiprecision::montgomery_big_mod_rt; using modular_number_rt = nil::crypto3::multiprecision::big_mod_rt; -constexpr standart_number x = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_bigui256; +constexpr standart_number x = 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_big_uint256; constexpr modular_number_ct_odd x_mod_ct_odd = x; constexpr modular_number_ct_even x_mod_ct_even = x; constexpr modular_number_rt_montgomery x_mod_rt_odd{x, modulus_odd}; constexpr modular_number_rt x_mod_rt_even{x, modulus_even}; -constexpr standart_number y = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_bigui256; +constexpr standart_number y = 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_big_uint256; constexpr modular_number_ct_odd y_mod_ct_odd = y; constexpr modular_number_ct_even y_mod_ct_even = y; constexpr modular_number_rt_montgomery y_mod_rt_odd{y, modulus_odd}; diff --git a/crypto3/libs/algebra/example/curves.cpp b/crypto3/libs/algebra/example/curves.cpp index 18c98fd659..876b821e55 100644 --- a/crypto3/libs/algebra/example/curves.cpp +++ b/crypto3/libs/algebra/example/curves.cpp @@ -119,12 +119,12 @@ int main() { using bjj_g1_f_v = typename babyjubjub_g1_type::field_type::value_type; typename babyjubjub_g1_type::value_type - P1(bjj_g1_f_v(0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_bigui254), - bjj_g1_f_v(0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_bigui251)), - P2(bjj_g1_f_v(0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_bigui254), - bjj_g1_f_v(0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_bigui254)), - P3(bjj_g1_f_v(0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_bigui253), - bjj_g1_f_v(0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_bigui253)); + P1(bjj_g1_f_v(0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_big_uint254), + bjj_g1_f_v(0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_big_uint251)), + P2(bjj_g1_f_v(0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_big_uint254), + bjj_g1_f_v(0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_big_uint254)), + P3(bjj_g1_f_v(0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_big_uint253), + bjj_g1_f_v(0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_big_uint253)); std::cout << "BabyJubJub addition test: " << std::endl; typename babyjubjub_g1_type::value_type P1pP2 = P1 + P2; diff --git a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp index 9f014ea4da..73352d0e0e 100644 --- a/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp +++ b/crypto3/libs/algebra/example/short_weierstrass_coordinates.cpp @@ -35,10 +35,10 @@ void coordinates_examples() { typedef typename FpCurveGroup::value_type group_value_type; typedef typename FpCurveGroup::field_type::value_type field_value_type; - field_value_type e1 = field_value_type(0xfadaf4efc388b9fb1f5f6286032868c8c29a4d7b359f17bff792511cdbcea8ba_bigui256), - e2(0x609eaeb55609889d764de70df4536a52a6773ce14244d2109afb1f6140d64ed2_bigui256), e3(1), - e4(0x72213568b6cec6bad10c649c22d9388857085132ea254320c7d3c12727f55d97_bigui256), - e5(0xff9d5ca60a4f5ae00b2abdb6dddb3f4fc5c853ed56a33a85ccaa7d3093084579_bigui256), e6(1); + field_value_type e1 = field_value_type(0xfadaf4efc388b9fb1f5f6286032868c8c29a4d7b359f17bff792511cdbcea8ba_big_uint256), + e2(0x609eaeb55609889d764de70df4536a52a6773ce14244d2109afb1f6140d64ed2_big_uint256), e3(1), + e4(0x72213568b6cec6bad10c649c22d9388857085132ea254320c7d3c12727f55d97_big_uint256), + e5(0xff9d5ca60a4f5ae00b2abdb6dddb3f4fc5c853ed56a33a85ccaa7d3093084579_big_uint256), e6(1); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp index 2566152174..2336787230 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/alt_bn128/254/short_weierstrass_params.hpp @@ -96,11 +96,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED_bigui254, - 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2_bigui254), + 0x1800DEEF121F1E76426A00665E5C4479674322D4F75EDADD46DEBD5CD992F6ED_big_uint254, + 0x198E9393920D483A7260BFB731FB5D25F1AA493335A9E71297E485B7AEF312C2_big_uint254), typename field_type::value_type( - 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA_bigui254, - 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B_bigui254)}; + 0x12C85EA5DB8C6DEB4AAB71808DCB408FE3D1E7690C43D37B4CE6CC0166FA7DAA_big_uint254, + 0x90689D0585FF075EC9E99AD690C3395BC4B313370B38EF355ACDADCD122975B_big_uint254)}; }; constexpr typename alt_bn128_types<254>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp index f2b3515c76..a47247eb7f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/babyjubjub/params.hpp @@ -44,10 +44,10 @@ namespace nil { // Edwards representation constants a and d constexpr static const typename babyjubjub_types::base_field_type::value_type a = ///< twisted Edwards elliptic curve - 0x292FC_bigui18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 + 0x292FC_big_uint18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 constexpr static const typename babyjubjub_types::base_field_type::value_type d = ///< twisted Edwards elliptic curve - 0x292F8_bigui18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 + 0x292F8_big_uint18; ///< described by equation ax^2 + y^2 = 1 + dx^2y^2 }; constexpr @@ -63,7 +63,7 @@ namespace nil { // Montgomery representation constants A and B constexpr static const typename babyjubjub_types::base_field_type::value_type A = ///< Montgomery elliptic curve - 0x292FA_bigui18; ///< described by equation b*y^2 = x^3 + a*x^2 + x + 0x292FA_big_uint18; ///< described by equation b*y^2 = x^3 + a*x^2 + x constexpr static const typename babyjubjub_types::base_field_type::value_type B = ///< Montgomery elliptic curve 0x01; ///< described by equation b*y^2 = x^3 + a*x^2 + x @@ -85,9 +85,9 @@ namespace nil { constexpr static const std::array one_fill = { typename base_field_type::value_type( - 0xBB77A6AD63E739B4EACB2E09D6277C12AB8D8010534E0B62893F3F6BB957051_bigui252), + 0xBB77A6AD63E739B4EACB2E09D6277C12AB8D8010534E0B62893F3F6BB957051_big_uint252), typename base_field_type::value_type( - 0x25797203F7A0B24925572E1CD16BF9EDFCE0051FB9E133774B3C257A872D7D8B_bigui254)}; + 0x25797203F7A0B24925572E1CD16BF9EDFCE0051FB9E133774B3C257A872D7D8B_big_uint254)}; }; constexpr std::array< @@ -106,9 +106,9 @@ namespace nil { constexpr static const std::array one_fill = { typename base_field_type::value_type( - 0xfbc9ac10c16d45d4eacdd6489fa006480b17a811cdba46922896085f89faaf6_bigui252), + 0xfbc9ac10c16d45d4eacdd6489fa006480b17a811cdba46922896085f89faaf6_big_uint252), typename base_field_type::value_type( - 0x203a710160811d5c07ebaeb8fe1d9ce201c66b970d66f18d0d2b264c195309aa_bigui254)}; + 0x203a710160811d5c07ebaeb8fe1d9ce201c66b970d66f18d0d2b264c195309aa_big_uint254)}; }; constexpr std::array::base_field_type::value_type, diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp index e80cd95f03..db89c399b4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/377/short_weierstrass_params.hpp @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x8848DEFE740A67C8FC6225BF87FF5485951E2CAA9D41BB188282C8BD37CB5CD5481512FFCD394EEAB9B16EB21BE9EF_bigui376), + 0x8848DEFE740A67C8FC6225BF87FF5485951E2CAA9D41BB188282C8BD37CB5CD5481512FFCD394EEAB9B16EB21BE9EF_big_uint376), typename field_type::value_type( - 0x1914A69C5102EFF1F674F5D30AFEEC4BD7FB348CA3E52D96D182AD44FB82305C2FE3D3634A9591AFD82DE55559C8EA6_bigui377)}; + 0x1914A69C5102EFF1F674F5D30AFEEC4BD7FB348CA3E52D96D182AD44FB82305C2FE3D3634A9591AFD82DE55559C8EA6_big_uint377)}; }; template<> @@ -100,11 +100,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xB997FEF930828FE1B9E6A1707B8AA508A3DBFD7FE2246499C709226A0A6FEF49F85B3A375363F4F8F6EA3FBD159F8A_bigui376, - 0xD6AC33B84947D9845F81A57A136BFA326E915FABC8CD6A57FF133B42D00F62E4E1AF460228CD5184DEAE976FA62596_bigui376), + 0xB997FEF930828FE1B9E6A1707B8AA508A3DBFD7FE2246499C709226A0A6FEF49F85B3A375363F4F8F6EA3FBD159F8A_big_uint376, + 0xD6AC33B84947D9845F81A57A136BFA326E915FABC8CD6A57FF133B42D00F62E4E1AF460228CD5184DEAE976FA62596_big_uint376), typename field_type::value_type( - 0x118DD509B2E9A13744A507D515A595DBB7E3B63DF568866473790184BDF83636C94DF2B7A962CB2AF4337F07CB7E622_bigui377, - 0x185067C6CA76D992F064A432BD9F9BE832B0CAC2D824D0518F77D39E76C3E146AFB825F2092218D038867D7F337A010_bigui377)}; + 0x118DD509B2E9A13744A507D515A595DBB7E3B63DF568866473790184BDF83636C94DF2B7A962CB2AF4337F07CB7E622_big_uint377, + 0x185067C6CA76D992F064A432BD9F9BE832B0CAC2D824D0518F77D39E76C3E146AFB825F2092218D038867D7F337A010_big_uint377)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp index 56e018693c..5478bc9201 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/381/short_weierstrass_params.hpp @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_bigui381), + 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_big_uint381), typename field_type::value_type( - 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_bigui380)}; + 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_big_uint380)}; }; template<> @@ -100,11 +100,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_bigui378, - 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_bigui381), + 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_big_uint378, + 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_big_uint381), typename field_type::value_type( - 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_bigui380, - 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_bigui379)}; + 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_big_uint380, + 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_big_uint379)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp index 8ee404a8de..c550a9f39a 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g1.hpp @@ -67,8 +67,8 @@ namespace nil { static value_type one () { return make_value( - 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_bigui381, - 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_bigui380 + 0x17F1D3A73197D7942695638C4FA9AC0FC3688C4F9774B905A14E3A3F171BAC586C55E83FF97A1AEFFB3AF00ADB22C6BB_big_uint381, + 0x8B3F481E3AAA0F1A09E30ED741D8AE4FCF5E095D5D00AF600DB18CB2C04B3EDD03CC744A2888AE40CAA232946C5E7E1_big_uint380 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp index aa4a163af4..159d7a190d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/bls12/g2.hpp @@ -68,10 +68,10 @@ namespace nil { static value_type one () { return make_value( - 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_bigui378, - 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_bigui381, - 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_bigui380, - 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_bigui379 + 0x24AA2B2F08F0A91260805272DC51051C6E47AD4FA403B02B4510B647AE3D1770BAC0326A805BBEFD48056C8C121BDB8_big_uint378, + 0x13E02B6052719F607DACD3A088274F65596BD0D09920B61AB5DA61BBDC7F5049334CF11213945D57E5AC7D055D042B7E_big_uint381, + 0xCE5D527727D6E118CC9CDC6DA2E351AADFD9BAA8CBDD3A76D429A695160D12C923AC9CC3BACA289E193548608B82801_big_uint380, + 0x606C4A02EA734CC32ACD2B02BC28B99CB3E287E85A763AF267492AB572E99AB3F370D275CEC1DA1AAA9075FF05F79BE_big_uint379 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp index bc5bcb5df4..76e77d9799 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/g1.hpp @@ -70,8 +70,8 @@ namespace nil { static value_type one () { return make_value( - 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a_bigui256, - 0x6666666666666666666666666666666666666666666666666666666666666658_bigui256 + 0x216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a_big_uint256, + 0x6666666666666666666666666666666666666666666666666666666666666658_big_uint256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp index 0662ad272e..23474b9056 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/curve25519/params.hpp @@ -69,7 +69,7 @@ namespace nil { constexpr static std::array one_fill = { typename field_type::value_type(0x09u), typename field_type::value_type( - 0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9_bigui254)}; + 0x20ae19a1b8a086b4e01edd2c7748d14c923d4d7e6d7c61b229e9c5a27eced3d9_big_uint254)}; #endif }; @@ -115,9 +115,9 @@ namespace nil { constexpr static std::array one_fill = { typename field_type::value_type( - 0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A_bigui254), + 0x216936D3CD6E53FEC0A4E231FDD6DC5C692CC7609525A7B2C9562D608F25D51A_big_uint254), typename field_type::value_type( - 0x6666666666666666666666666666666666666666666666666666666666666658_bigui255)}; + 0x6666666666666666666666666666666666666666666666666666666666666658_big_uint255)}; #endif }; #ifdef __ZKLLVM__ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp index b6e944aeaa..8d32683525 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/h2c/h2c_iso_map.hpp @@ -52,65 +52,65 @@ namespace nil { typedef typename suite_type::integral_type integral_type; constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_big_uint381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_big_uint381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_big_uint381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_big_uint381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_big_uint381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_big_uint381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_big_uint381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_big_uint381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_big_uint381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_big_uint381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_big_uint381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_big_uint381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_big_uint381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_big_uint381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_big_uint381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_big_uint381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_big_uint381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_big_uint381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_big_uint381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_big_uint381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_big_uint381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_big_uint381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_big_uint381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_big_uint381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_big_uint381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_big_uint381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_big_uint381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_big_uint381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_big_uint381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_big_uint381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_big_uint381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_big_uint381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_big_uint381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_big_uint381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_big_uint381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_big_uint381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_big_uint381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_big_uint381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_big_uint381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_big_uint381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_big_uint381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_big_uint381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_big_uint381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_big_uint381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_big_uint381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_big_uint381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_big_uint381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_big_uint381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_big_uint381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_big_uint381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_big_uint381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_big_uint381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_big_uint381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -165,38 +165,38 @@ namespace nil { typedef typename suite_type::integral_type integral_type; constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_big_uint381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_big_uint381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_big_uint381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_big_uint381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_big_uint381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_big_uint381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_big_uint381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_big_uint381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp index 79c43d07e9..4940bd3f25 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/jubjub/params.hpp @@ -66,9 +66,9 @@ namespace nil { // A = 2 (a + d) / (a - d) // B = 4 / (a - d) constexpr static const typename jubjub_types::base_field_type::value_type - A = 0xA002_bigui255; + A = 0xA002_big_uint255; constexpr static const typename jubjub_types::base_field_type::value_type - B = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffff5ffd_bigui255; + B = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffff5ffd_big_uint255; static constexpr std::size_t cofactor = 8; }; @@ -89,9 +89,9 @@ namespace nil { // according to https://neuromancer.sk/std/other/JubJub constexpr static const std::array one_fill = { typename field_type::value_type( - 0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b_bigui253), + 0x11dafe5d23e1218086a365b99fbf3d3be72f6afd7d1f72623e6b071492d1122b_big_uint253), typename field_type::value_type( - 0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa_bigui253)}; + 0x1d523cf1ddab1a1793132e78c866c0c33e26ba5cc220fed7cc3f870e59d292aa_big_uint253)}; }; constexpr std::array::base_field_type::value_type, @@ -118,9 +118,9 @@ namespace nil { */ constexpr static const std::array one_fill = { typename field_type::value_type( - 0x52a47af6ec47deb77d663b6a45b148d1ccdaa4e2299ecfbd5504c409b3ea62c0_bigui255), + 0x52a47af6ec47deb77d663b6a45b148d1ccdaa4e2299ecfbd5504c409b3ea62c0_big_uint255), typename field_type::value_type( - 0x20bc4f2e8cff38006618840fd0f9b6d6e8ddec99c37916874e2fd6d5c6558938_bigui254)}; + 0x20bc4f2e8cff38006618840fd0f9b6d6e8ddec99c37916874e2fd6d5c6558938_big_uint254)}; }; constexpr std::array::base_field_type::value_type, diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp index 5301bff98f..cb1c0c913f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt4/298/short_weierstrass_params.hpp @@ -47,7 +47,7 @@ namespace nil { constexpr static const typename mnt4_types<298>::base_field_type::value_type a = 0x02; constexpr static const typename mnt4_types<298>::base_field_type::value_type - b = 0x3545A27639415585EA4D523234FC3EDD2A2070A085C7B980F4E9CD21A515D4B0EF528EC0FD5_bigui298; + b = 0x3545A27639415585EA4D523234FC3EDD2A2070A085C7B980F4E9CD21A515D4B0EF528EC0FD5_big_uint298; }; template<> @@ -69,9 +69,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x7A2CAF82A1BA85213FE6CA3875AEE86ABA8F73D69060C4079492B948DEA216B5B9C8D2AF46_bigui295), + 0x7A2CAF82A1BA85213FE6CA3875AEE86ABA8F73D69060C4079492B948DEA216B5B9C8D2AF46_big_uint295), typename field_type::value_type( - 0x2DB619461CC82672F7F159FEC2E89D0148DCC9862D36778C1AFD96A71E29CBA48E710A48AB2_bigui298)}; + 0x2DB619461CC82672F7F159FEC2E89D0148DCC9862D36778C1AFD96A71E29CBA48E710A48AB2_big_uint298)}; }; template<> @@ -109,11 +109,11 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x371780491C5660571FF542F2EF89001F205151E12A72CB14F01A931E72DBA7903DF6C09A9A4_bigui298, - 0x4BA59A3F72DA165DEF838081AF697C851F002F576303302BB6C02C712C968BE32C0AE0A989_bigui295), + 0x371780491C5660571FF542F2EF89001F205151E12A72CB14F01A931E72DBA7903DF6C09A9A4_big_uint298, + 0x4BA59A3F72DA165DEF838081AF697C851F002F576303302BB6C02C712C968BE32C0AE0A989_big_uint295), typename field_type::value_type( - 0x4B471F33FFAAD868A1C47D6605D31E5C4B3B2E0B60EC98F0F610A5AAFD0D9522BCA4E79F22_bigui295, - 0x355D05A1C69A5031F3F81A5C100CB7D982F78EC9CFC3B5168ED8D75C7C484FB61A3CBF0E0F1_bigui298)}; + 0x4B471F33FFAAD868A1C47D6605D31E5C4B3B2E0B60EC98F0F610A5AAFD0D9522BCA4E79F22_big_uint295, + 0x355D05A1C69A5031F3F81A5C100CB7D982F78EC9CFC3B5168ED8D75C7C484FB61A3CBF0E0F1_big_uint298)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp index 6b3572cd73..3a40c12b65 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/mnt6/298/short_weierstrass_params.hpp @@ -47,7 +47,7 @@ namespace nil { constexpr static const typename mnt6_types<298>::base_field_type::value_type a = 0x0B; constexpr static const typename mnt6_types<298>::base_field_type::value_type - b = 0xD68C7B1DC5DD042E957B71C44D3D6C24E683FC09B420B1A2D263FDE47DDBA59463D0C65282_bigui296; + b = 0xD68C7B1DC5DD042E957B71C44D3D6C24E683FC09B420B1A2D263FDE47DDBA59463D0C65282_big_uint296; }; template<> @@ -64,9 +64,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x2A4FEEE24FD2C69D1D90471B2BA61ED56F9BAD79B57E0B4C671392584BDADEBC01ABBC0447D_bigui298), + 0x2A4FEEE24FD2C69D1D90471B2BA61ED56F9BAD79B57E0B4C671392584BDADEBC01ABBC0447D_big_uint298), typename field_type::value_type( - 0x32986C245F6DB2F82F4E037BF7AFD69CBFCBFF07FC25D71E9C75E1B97208A333D73D91D3028_bigui298)}; + 0x32986C245F6DB2F82F4E037BF7AFD69CBFCBFF07FC25D71E9C75E1B97208A333D73D91D3028_big_uint298)}; }; template<> @@ -100,13 +100,13 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x34F7320A12B56CE532BCCB3B44902CBAA723CD60035ADA7404B743AD2E644AD76257E4C6813_bigui298, - 0xCF41620BAA52EEC50E61A70AB5B45F681952E0109340FEC84F1B2890ABA9B15CAC5A0C80FA_bigui296, - 0x11F99170E10E326433CCCB8032FB48007CA3C4E105CF31B056AC767E2CB01258391BD4917CE_bigui297), + 0x34F7320A12B56CE532BCCB3B44902CBAA723CD60035ADA7404B743AD2E644AD76257E4C6813_big_uint298, + 0xCF41620BAA52EEC50E61A70AB5B45F681952E0109340FEC84F1B2890ABA9B15CAC5A0C80FA_big_uint296, + 0x11F99170E10E326433CCCB8032FB48007CA3C4E105CF31B056AC767E2CB01258391BD4917CE_big_uint297), typename field_type::value_type( - 0x3A65968F03CC64D62AD05C79C415E07EBD38B363EC48309487C0B83E1717A582C1B60FECC91_bigui298, - 0xCA5E8427E5DB1506C1A24CEFC2451AB3ACCAEA5DB82DCB0C7117CC74402FAA5B2C37685C6E_bigui296, - 0xF75D2DD88302C9A4EF941307629A1B3E197277D83ABB715F647C2E55A27BAF782F5C60E7F7_bigui296)}; + 0x3A65968F03CC64D62AD05C79C415E07EBD38B363EC48309487C0B83E1717A582C1B60FECC91_big_uint298, + 0xCA5E8427E5DB1506C1A24CEFC2451AB3ACCAEA5DB82DCB0C7117CC74402FAA5B2C37685C6E_big_uint296, + 0xF75D2DD88302C9A4EF941307629A1B3E197277D83ABB715F647C2E55A27BAF782F5C60E7F7_big_uint296)}; }; constexpr diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp index 347b53160d..02e9d61be7 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/pallas/g1.hpp @@ -63,8 +63,8 @@ namespace nil { static value_type one () { return make_value( - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000_bigui256, - 0x2_bigui256 + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000000_big_uint256, + 0x2_big_uint256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp index 82f4bedff9..6211c917d1 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_k1/256/short_weierstrass_params.hpp @@ -67,8 +67,8 @@ namespace nil { #endif constexpr static const std::array one_fill = { - typename field_type::value_type(0x3b4c382ce37aa192a4019e763036f4f5dd4d7ebb_bigui160), - typename field_type::value_type(0x938cf935318fdced6bc28286531733c3f03c4fee_bigui160)}; + typename field_type::value_type(0x3b4c382ce37aa192a4019e763036f4f5dd4d7ebb_big_uint160), + typename field_type::value_type(0x938cf935318fdced6bc28286531733c3f03c4fee_big_uint160)}; }; constexpr typename secp_k1_types<160>::base_field_type::value_type const @@ -117,9 +117,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xdb4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d_bigui192), + 0xdb4ff10ec057e9ae26b07d0280b7f4341da5d1b1eae06c7d_big_uint192), typename field_type::value_type( - 0x9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d_bigui192)}; + 0x9b2f2f6d9c5628a7844163d015be86344082aa88d95e2f9d_big_uint192)}; }; constexpr typename secp_k1_types<192>::base_field_type::value_type const @@ -166,9 +166,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xa1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c_bigui224), + 0xa1455b334df099df30fc28a169a467e9e47075a90f7e650eb6b7a45c_big_uint224), typename field_type::value_type( - 0x7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5_bigui224)}; + 0x7e089fed7fba344282cafbd6f7e319f7c0b0bd59e2ca4bdb556d61a5_big_uint224)}; }; constexpr typename secp_k1_types<224>::base_field_type::value_type const @@ -215,9 +215,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798_bigui256), + 0x79BE667EF9DCBBAC55A06295CE870B07029BFCDB2DCE28D959F2815B16F81798_big_uint256), typename field_type::value_type( - 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8_bigui256)}; + 0x483ADA7726A3C4655DA4FBFC0E1108A8FD17B448A68554199C47D08FFB10D4B8_big_uint256)}; }; constexpr typename secp_k1_types<256>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp index 1ef5c8f988..9b74fd4ced 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/secp_r1/256/short_weierstrass_params.hpp @@ -44,9 +44,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<160>::base_field_type::value_type - a = 0xffffffffffffffffffffffffffffffff7ffffffc_bigui160; + a = 0xffffffffffffffffffffffffffffffff7ffffffc_big_uint160; constexpr static const typename secp_r1_types<160>::base_field_type::value_type - b = 0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45_bigui160; + b = 0x1c97befc54bd7a8b65acf89f81d4d4adc565fa45_big_uint160; }; template<> @@ -67,8 +67,8 @@ namespace nil { #endif constexpr static const std::array one_fill = { - typename field_type::value_type(0x4a96b5688ef573284664698968c38bb913cbfc82_bigui160), - typename field_type::value_type(0x23a628553168947d59dcc912042351377ac5fb32_bigui160)}; + typename field_type::value_type(0x4a96b5688ef573284664698968c38bb913cbfc82_big_uint160), + typename field_type::value_type(0x23a628553168947d59dcc912042351377ac5fb32_big_uint160)}; }; constexpr typename secp_r1_types<160>::base_field_type::value_type const @@ -91,9 +91,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<192>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffefffffffffffffffc_bigui192; + a = 0xfffffffffffffffffffffffffffffffefffffffffffffffc_big_uint192; constexpr static const typename secp_r1_types<192>::base_field_type::value_type - b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1_bigui192; + b = 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1_big_uint192; }; template<> @@ -115,9 +115,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012_bigui192), + 0x188da80eb03090f67cbf20eb43a18800f4ff0afd82ff1012_big_uint192), typename field_type::value_type( - 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811_bigui192)}; + 0x07192b95ffc8da78631011ed6b24cdd573f977a11e794811_big_uint192)}; }; constexpr typename secp_r1_types<192>::base_field_type::value_type const @@ -140,9 +140,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<224>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe_bigui224; + a = 0xfffffffffffffffffffffffffffffffefffffffffffffffffffffffe_big_uint224; constexpr static const typename secp_r1_types<224>::base_field_type::value_type - b = 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4_bigui224; + b = 0xb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4_big_uint224; }; template<> @@ -164,9 +164,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21_bigui224), + 0xb70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21_big_uint224), typename field_type::value_type( - 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34_bigui224)}; + 0xbd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34_big_uint224)}; }; constexpr typename secp_r1_types<224>::base_field_type::value_type const @@ -189,9 +189,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<256>::base_field_type::value_type - a = 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc_bigui256; + a = 0xffffffff00000001000000000000000000000000fffffffffffffffffffffffc_big_uint256; constexpr static const typename secp_r1_types<256>::base_field_type::value_type - b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b_bigui256; + b = 0x5ac635d8aa3a93e7b3ebbd55769886bc651d06b0cc53b0f63bce3c3e27d2604b_big_uint256; }; template<> @@ -212,9 +212,9 @@ namespace nil { #endif constexpr static const std::array one_fill = { typename field_type::value_type( - 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296_bigui256), + 0x6b17d1f2e12c4247f8bce6e563a440f277037d812deb33a0f4a13945d898c296_big_uint256), typename field_type::value_type( - 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5_bigui256)}; + 0x4fe342e2fe1a7f9b8ee7eb4a7c0f9e162bce33576b315ececbb6406837bf51f5_big_uint256)}; }; constexpr typename secp_r1_types<256>::base_field_type::value_type const @@ -237,9 +237,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<384>::base_field_type::value_type - a = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc_bigui384; + a = 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000fffffffc_big_uint384; constexpr static const typename secp_r1_types<384>::base_field_type::value_type - b = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef_bigui384; + b = 0xb3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aef_big_uint384; }; template<> @@ -261,9 +261,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7_bigui384), + 0xaa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7_big_uint384), typename field_type::value_type( - 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f_bigui384)}; + 0x3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5f_big_uint384)}; }; constexpr typename secp_r1_types<384>::base_field_type::value_type const @@ -286,9 +286,9 @@ namespace nil { ///< coefficients of short Weierstrass curve $y^2=x^3+a*x+b$ constexpr static const typename secp_r1_types<521>::base_field_type::value_type - a = 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc_bigui521; + a = 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc_big_uint521; constexpr static const typename secp_r1_types<521>::base_field_type::value_type - b = 0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00_bigui521; + b = 0x0051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f00_big_uint521; }; template<> @@ -310,9 +310,9 @@ namespace nil { constexpr static const std::array one_fill = { typename field_type::value_type( - 0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66_bigui521), + 0x00c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66_big_uint521), typename field_type::value_type( - 0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650_bigui521)}; + 0x011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650_big_uint521)}; }; constexpr typename secp_r1_types<521>::base_field_type::value_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp index 545e151aa6..060a786e07 100755 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/curves/detail/vesta/g1.hpp @@ -65,8 +65,8 @@ namespace nil { static value_type one () { return make_value( - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000_bigui256, - 0x2_bigui256 + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000000_big_uint256, + 0x2_big_uint256 ); } diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp index dad0321333..976a706655 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/base_field.hpp @@ -53,10 +53,10 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47_bigui254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD47_big_uint254; constexpr static const integral_type group_order_minus_one_half = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui254; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_big_uint254; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; constexpr static const integral_type mul_generator = 0x03; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp index 89a4f9b0a4..7e0bd5ef7b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/alt_bn128/scalar_field.hpp @@ -55,10 +55,10 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001_bigui254; + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F0000001_big_uint254; constexpr static const integral_type group_order_minus_one_half = - 0x183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f8000000_bigui254; + 0x183227397098d014dc2822db40c0ac2e9419f4243cdcb848a1f0fac9f8000000_big_uint254; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp index b186f6d965..42e714ac06 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/alt_bn128.hpp @@ -50,25 +50,25 @@ namespace nil { constexpr static const std::size_t s = 0x01; constexpr static const integral_type t = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui253; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_big_uint253; constexpr static const integral_type t_minus_1_over_2 = - 0xC19139CB84C680A6E14116DA060561765E05AA45A1C72A34F082305B61F3F51_bigui252; + 0xC19139CB84C680A6E14116DA060561765E05AA45A1C72A34F082305B61F3F51_big_uint252; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x03; constexpr static const integral_type root_of_unity = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254; constexpr static const integral_type nqr = 0x03; constexpr static const integral_type nqr_to_t = - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254; + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254; constexpr static const integral_type Rsquared = - 0x6D89F71CAB8351F47AB1EFF0A417FF6B5E71911D44501FBF32CFC5B538AFA89_bigui251; + 0x6D89F71CAB8351F47AB1EFF0A417FF6B5E71911D44501FBF32CFC5B538AFA89_big_uint251; constexpr static const integral_type Rcubed = - 0x20FD6E902D592544EF7F0B0C0ADA0AFB62F210E6A7283DB6B1CD6DAFDA1530DF_bigui254; + 0x20FD6E902D592544EF7F0B0C0ADA0AFB62F210E6A7283DB6B1CD6DAFDA1530DF_big_uint254; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_bigui254; + 0x183227397098D014DC2822DB40C0AC2ECBC0B548B438E5469E10460B6C3E7EA3_big_uint254; }; template<> @@ -84,17 +84,17 @@ namespace nil { constexpr static const std::size_t s = 0x04; constexpr static const extended_integral_type t = - 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_bigui504; + 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_big_uint504; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_bigui503; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_big_uint503; constexpr static const std::array nqr = {0x02, 0x01}; constexpr static const std::array nqr_to_t = { - 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_bigui252, - 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_bigui248}; + 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_big_uint252, + 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_big_uint248}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_bigui507; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_big_uint507; }; template<> @@ -108,25 +108,25 @@ namespace nil { constexpr static const std::size_t s = 0x1C; constexpr static const integral_type t = - 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F_bigui226; + 0x30644E72E131A029B85045B68181585D2833E84879B9709143E1F593F_big_uint226; constexpr static const integral_type t_minus_1_over_2 = - 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F_bigui225; + 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F_big_uint225; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const integral_type root_of_unity = - 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_bigui254; + 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_big_uint254; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_bigui254; + 0x2A3C09F0A58A7E8500E0A7EB8EF62ABC402D111E41112ED49BD61B6E725B19F0_big_uint254; constexpr static const integral_type Rsquared = - 0x216D0B17F4E44A58C49833D53BB808553FE3AB1E35C59E31BB8E645AE216DA7_bigui250; + 0x216D0B17F4E44A58C49833D53BB808553FE3AB1E35C59E31BB8E645AE216DA7_big_uint250; constexpr static const integral_type Rcubed = - 0xCF8594B7FCC657C893CC664A19FCFED2A489CBE1CFBB6B85E94D8E1B4BF0040_bigui252; + 0xCF8594B7FCC657C893CC664A19FCFED2A489CBE1CFBB6B85E94D8E1B4BF0040_big_uint252; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F8000000_bigui254; + 0x183227397098D014DC2822DB40C0AC2E9419F4243CDCB848A1F0FAC9F8000000_big_uint254; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp index d6d2f6656d..412f7df274 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/bls12.hpp @@ -52,25 +52,25 @@ namespace nil { constexpr static const std::size_t s = 0x01; constexpr static const integral_type t = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui380; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_big_uint380; constexpr static const integral_type t_minus_1_over_2 = - 0x680447A8E5FF9A692C6E9ED90D2EB35D91DD2E13CE144AFD9CC34A83DAC3D8907AAFFFFAC54FFFFEE7FBFFFFFFFEAAA_bigui379; + 0x680447A8E5FF9A692C6E9ED90D2EB35D91DD2E13CE144AFD9CC34A83DAC3D8907AAFFFFAC54FFFFEE7FBFFFFFFFEAAA_big_uint379; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x02; constexpr static const integral_type root_of_unity = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381; constexpr static const integral_type nqr = 0x02; constexpr static const integral_type nqr_to_t = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381; constexpr static const integral_type Rsquared = - 0x11988FE592CAE3AA9A793E85B519952D67EB88A9939D83C08DE5476C4C95B6D50A76E6A609D104F1F4DF1F341C341746_bigui381; + 0x11988FE592CAE3AA9A793E85B519952D67EB88A9939D83C08DE5476C4C95B6D50A76E6A609D104F1F4DF1F341C341746_big_uint381; constexpr static const integral_type Rcubed = - 0xAA6346091755D4D2512D4356572472834C04E5E921E17619A53352A615E29DD315F831E03A7ADF8ED48AC6BD94CA1E0_bigui380; + 0xAA6346091755D4D2512D4356572472834C04E5E921E17619A53352A615E29DD315F831E03A7ADF8ED48AC6BD94CA1E0_big_uint380; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui380; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_big_uint380; }; template<> @@ -86,17 +86,17 @@ namespace nil { constexpr static const std::size_t s = 0x03; constexpr static const extended_integral_type t = - 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_bigui759; + 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_big_uint759; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_bigui758; + 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_big_uint758; constexpr static const std::array nqr = {1, 1}; constexpr static const std::array nqr_to_t = { - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381}; + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_bigui761; + 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_big_uint761; }; template<> @@ -110,25 +110,25 @@ namespace nil { constexpr static const std::size_t s = 0x20; constexpr static const integral_type t = - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF_bigui223; + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF_big_uint223; constexpr static const integral_type t_minus_1_over_2 = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF_bigui222; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF_big_uint222; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x07; constexpr static const integral_type root_of_unity = - 0x16A2A19EDFE81F20D09B681922C813B4B63683508C2280B93829971F439F0D2B_bigui253; + 0x16A2A19EDFE81F20D09B681922C813B4B63683508C2280B93829971F439F0D2B_big_uint253; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x212D79E5B416B6F0FD56DC8D168D6C0C4024FF270B3E0941B788F500B912F1F_bigui250; + 0x212D79E5B416B6F0FD56DC8D168D6C0C4024FF270B3E0941B788F500B912F1F_big_uint250; constexpr static const integral_type Rsquared = - 0x748D9D99F59FF1105D314967254398F2B6CEDCB87925C23C999E990F3F29C6D_bigui251; + 0x748D9D99F59FF1105D314967254398F2B6CEDCB87925C23C999E990F3F29C6D_big_uint251; constexpr static const integral_type Rcubed = - 0x6E2A5BB9C8DB33E973D13C71C7B5F4181B3E0D188CF06990C62C1807439B73AF_bigui255; + 0x6E2A5BB9C8DB33E973D13C71C7B5F4181B3E0D188CF06990C62C1807439B73AF_big_uint255; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_bigui254; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_big_uint254; }; /************************* BLS12-377 ***********************************/ @@ -144,25 +144,25 @@ namespace nil { constexpr static const std::size_t s = 0x2E; constexpr static const integral_type t = - 0x6B8E9185F1443AB18EC1701B28524EC688B67CC03D44E3C7BCD88BEE82520005C2D7510C00000021423_bigui331; + 0x6B8E9185F1443AB18EC1701B28524EC688B67CC03D44E3C7BCD88BEE82520005C2D7510C00000021423_big_uint331; constexpr static const integral_type t_minus_1_over_2 = - 0x35C748C2F8A21D58C760B80D94292763445B3E601EA271E3DE6C45F741290002E16BA88600000010A11_bigui330; + 0x35C748C2F8A21D58C760B80D94292763445B3E601EA271E3DE6C45F741290002E16BA88600000010A11_big_uint330; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x0F; constexpr static const integral_type root_of_unity = - 0x36A92E05198A8030F152488AEFFC9B40FBE05B4512A3D4B44D994A0DDFF8C606DF0A4306FE0BC37ECA603CC563B9A1_bigui374; + 0x36A92E05198A8030F152488AEFFC9B40FBE05B4512A3D4B44D994A0DDFF8C606DF0A4306FE0BC37ECA603CC563B9A1_big_uint374; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x382D3D99CDBC5D8FE9DEE6AA914B0AD14FCACA7022110EC6EAA2BC56228AC41EA03D28CC795186BA6B5EF26B00BBE8_bigui374; + 0x382D3D99CDBC5D8FE9DEE6AA914B0AD14FCACA7022110EC6EAA2BC56228AC41EA03D28CC795186BA6B5EF26B00BBE8_big_uint374; constexpr static const integral_type Rsquared = - 0x6DFCCB1E914B88837E92F041790BF9BFDF7D03827DC3AC22A5F11162D6B46D0329FCAAB00431B1B786686C9400CD22_bigui375; + 0x6DFCCB1E914B88837E92F041790BF9BFDF7D03827DC3AC22A5F11162D6B46D0329FCAAB00431B1B786686C9400CD22_big_uint375; constexpr static const integral_type Rcubed = - 0x1065AB4C0E7DDA53F72540713590CB96A2A9516C804A20E2BE8B1180449F513E50F4148BE329585581F532F8815DE20_bigui377; + 0x1065AB4C0E7DDA53F72540713590CB96A2A9516C804A20E2BE8B1180449F513E50F4148BE329585581F532F8815DE20_big_uint377; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_bigui376; + 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_big_uint376; }; template<> @@ -178,17 +178,17 @@ namespace nil { constexpr static const std::size_t s = 0x2F; constexpr static const extended_integral_type t = - 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_bigui707; + 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_big_uint707; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_bigui706; + 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_big_uint706; constexpr static const std::array nqr = {0x00, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_bigui377}; + 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_big_uint377}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order_minus_one_half = - 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_bigui753; + 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_big_uint753; }; template<> @@ -202,25 +202,25 @@ namespace nil { constexpr static const std::size_t s = 0x2F; constexpr static const integral_type t = - 0x2556CABD34594AACC1689A3CB86F6002B354EDFDA00000021423_bigui206; + 0x2556CABD34594AACC1689A3CB86F6002B354EDFDA00000021423_big_uint206; constexpr static const integral_type t_minus_1_over_2 = - 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11_bigui205; + 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11_big_uint205; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x16; constexpr static const integral_type root_of_unity = - 0x11D4B7F60CB92CC160C69477D1A8A12F9B506EE363E3F04A476EF4A4EC2A895E_bigui253; + 0x11D4B7F60CB92CC160C69477D1A8A12F9B506EE363E3F04A476EF4A4EC2A895E_big_uint253; constexpr static const integral_type nqr = 0x0B; constexpr static const integral_type nqr_to_t = - 0xF4F58D6B338DB36480B0DA08D4FF39BE5C1F1B84059D4CD726869AAA623875C_bigui252; + 0xF4F58D6B338DB36480B0DA08D4FF39BE5C1F1B84059D4CD726869AAA623875C_big_uint252; constexpr static const integral_type Rsquared = - 0x11FDAE7EFF1C939A7CC008FE5DC8593CC2C27B58860591F25D577BAB861857B_bigui249; + 0x11FDAE7EFF1C939A7CC008FE5DC8593CC2C27B58860591F25D577BAB861857B_big_uint249; constexpr static const integral_type Rcubed = - 0x601DFA555C48DDAB1E55EF6F1C9D713624D23FFAE2716996A4295C90F65454C_bigui251; + 0x601DFA555C48DDAB1E55EF6F1C9D713624D23FFAE2716996A4295C90F65454C_big_uint251; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order_minus_one_half = - 0x955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_bigui252; + 0x955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_big_uint252; }; /************************* BLS12-381 definitions ***********************************/ diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp index 68fcfec74e..52227f7be4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/goldilocks64.hpp @@ -48,7 +48,7 @@ namespace nil { constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x07; constexpr static const integral_type root_of_unity = - 0x185629DCDA58878C_bigui64; + 0x185629DCDA58878C_big_uint64; }; constexpr std::size_t const arithmetic_params::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp index 2e797abc83..2fe2caa340 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt4.hpp @@ -50,25 +50,25 @@ namespace nil { constexpr static const std::size_t s = 0x11; constexpr static const integral_type t = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B3_bigui281; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B3_big_uint281; constexpr static const integral_type t_minus_1_over_2 = - 0xEF3DEF351CE899892769EC1523B2BBB258D744CC3A906A78D794480384B24335969C59_bigui280; + 0xEF3DEF351CE899892769EC1523B2BBB258D744CC3A906A78D794480384B24335969C59_big_uint280; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x11; constexpr static const integral_type root_of_unity = - 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_bigui298; + 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_big_uint298; constexpr static const integral_type nqr = 0x11; constexpr static const integral_type nqr_to_t = - 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_bigui298; + 0x214431121152176339675F00F9D465A3C037F18735DB28205F2A5F57D155F151CEC101EEC43_big_uint298; constexpr static const integral_type Rsquared = - 0x224F0918A341F32E014AD38D47B66BD7673318850E1A266A1ADBF2BC8930065ACEC5613D220_bigui298; + 0x224F0918A341F32E014AD38D47B66BD7673318850E1A266A1ADBF2BC8930065ACEC5613D220_big_uint298; constexpr static const integral_type Rcubed = - 0x35B329C5C21DB492B899FB731B0626C4C908A5073171DE648C893BA7447A3FE093A2C77F995_bigui298; + 0x35B329C5C21DB492B899FB731B0626C4C908A5073171DE648C893BA7447A3FE093A2C77F995_big_uint298; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_bigui297; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_big_uint297; }; template<> @@ -83,16 +83,16 @@ namespace nil { constexpr static const std::size_t s = 0x12; constexpr static const extended_integral_type t = - 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_bigui578; + 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_big_uint578; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_bigui577; + 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_big_uint577; constexpr static const std::array nqr = {0x08, 0x01}; constexpr static const std::array nqr_to_t = { - 0x00, 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_bigui294}; + 0x00, 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_big_uint294}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_bigui595; + 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_big_uint595; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp index 7b99004c0e..a009454c55 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/mnt6.hpp @@ -50,25 +50,25 @@ namespace nil { constexpr static const std::size_t s = 0x22; constexpr static const integral_type t = - 0xEF3DEF351CE899892769EC1523B2BBB258D73D10653ED25301E4975AB4EED0CD29_bigui264; + 0xEF3DEF351CE899892769EC1523B2BBB258D73D10653ED25301E4975AB4EED0CD29_big_uint264; constexpr static const integral_type t_minus_1_over_2 = - 0x779EF79A8E744CC493B4F60A91D95DD92C6B9E88329F692980F24BAD5A77686694_bigui263; + 0x779EF79A8E744CC493B4F60A91D95DD92C6B9E88329F692980F24BAD5A77686694_big_uint263; constexpr static const integral_type arithmetic_generator = 0x01; constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x0A; constexpr static const integral_type root_of_unity = - 0xF29386B6F08DFECE98F8AA2954E2CF8650D75AE5D90488A8934C1AA0BB321B07D3B48F8379_bigui296; + 0xF29386B6F08DFECE98F8AA2954E2CF8650D75AE5D90488A8934C1AA0BB321B07D3B48F8379_big_uint296; constexpr static const integral_type nqr = 0x05; constexpr static const integral_type nqr_to_t = - 0x330D0653B5BA46A85FC6D3958E16DA566E30E50010AAC4A990E4047A12E2043EE3EF848E190_bigui298; + 0x330D0653B5BA46A85FC6D3958E16DA566E30E50010AAC4A990E4047A12E2043EE3EF848E190_big_uint298; constexpr static const integral_type Rsquared = - 0x149BB44A34202FF00DCED8E4B6D4BBD6DCF1E3A8386034F9102ADB68371465A743C68E0596B_bigui297; + 0x149BB44A34202FF00DCED8E4B6D4BBD6DCF1E3A8386034F9102ADB68371465A743C68E0596B_big_uint297; constexpr static const integral_type Rcubed = - 0x1A0B411C083B440F6A9ED2947CEAC13907BAB5D43C2F687B031B7F0B2B9B6DE2F1B99BD9C4B_bigui297; + 0x1A0B411C083B440F6A9ED2947CEAC13907BAB5D43C2F687B031B7F0B2B9B6DE2F1B99BD9C4B_big_uint297; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const integral_type group_order = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_bigui297; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_big_uint297; }; template<> @@ -83,17 +83,17 @@ namespace nil { constexpr static const std::size_t s = 0x22; constexpr static const extended_integral_type t = - 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_bigui860; + 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_big_uint860; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_bigui859; + 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_big_uint859; constexpr static const std::array nqr = {0x05, 0x00, 0x00}; constexpr static const std::array nqr_to_t = { - 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_bigui297, 0x00, + 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_big_uint297, 0x00, 0x00}; constexpr static const integral_type modulus = policy_type::modulus; constexpr static const extended_integral_type group_order = - 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_bigui893; + 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_big_uint893; }; constexpr std::size_t const arithmetic_params>::s; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp index a411c7e1bc..af51b32255 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/pallas.hpp @@ -53,7 +53,7 @@ namespace nil { constexpr static const integral_type geometric_generator = 0x02; constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const integral_type root_of_unity = - 0x1ea14637cbe1870c65d520c6cd47d259883000713dc3c2a1adf8b071592f247a_bigui255; + 0x1ea14637cbe1870c65d520c6cd47d259883000713dc3c2a1adf8b071592f247a_big_uint255; constexpr static const integral_type nqr = 0x05; }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp index a87c5dfd7f..a1c20faa74 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/arithmetic_params/vesta.hpp @@ -51,7 +51,7 @@ namespace nil { constexpr static const integral_type multiplicative_generator = 0x05; constexpr static const std::size_t s = 0x20; constexpr static const integral_type root_of_unity = - 0x39579430a0535caa2072a2239079f02b4c5b0caa29bfe9396f80d8a28434208f_bigui255; + 0x39579430a0535caa2072a2239079f02b4c5b0caa29bfe9396f80d8a28434208f_big_uint255; constexpr static const integral_type nqr = 0x05; }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp index 260c58ae24..bb0719264b 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/babyjubjub/scalar_field.hpp @@ -50,7 +50,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x60c89ce5c263405370a08b6d0302b0bab3eedb83920ee0a677297dc392126f1_bigui251; + 0x60c89ce5c263405370a08b6d0302b0bab3eedb83920ee0a677297dc392126f1_big_uint251; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp index 987fa4718a..4770fdf0bf 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/base_field.hpp @@ -58,10 +58,10 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB_bigui381; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAB_big_uint381; constexpr static const integral_type group_order_minus_one_half = - 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_bigui381; + 0xD0088F51CBFF34D258DD3DB21A5D66BB23BA5C279C2895FB39869507B587B120F55FFFF58A9FFFFDCFF7FFFFFFFD555_big_uint381; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; @@ -83,10 +83,10 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000001_bigui377; + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000001_big_uint377; constexpr static const integral_type group_order_minus_one_half = - 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_bigui377; + 0xD71D230BE28875631D82E03650A49D8D116CF9807A89C78F79B117DD04A4000B85AEA2180000004284600000000000_big_uint377; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp index a0b628e40d..ad8ddb4e54 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/bls12/scalar_field.hpp @@ -60,10 +60,10 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001_bigui255; + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFF00000001_big_uint255; constexpr static const integral_type group_order_minus_one_half = - 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_bigui255; + 0x39F6D3A994CEBEA4199CEC0404D0EC02A9DED2017FFF2DFF7FFFFFFF80000000_big_uint255; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; @@ -85,9 +85,9 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11800000000001_bigui253; + 0x12AB655E9A2CA55660B44D1E5C37B00159AA76FED00000010A11800000000001_big_uint253; constexpr static const integral_type group_order_minus_one_half = - 0x0955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_bigui253; + 0x0955B2AF4D1652AB305A268F2E1BD800ACD53B7F680000008508C00000000000_big_uint253; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp index d50f9ff08b..8fef12df8f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/base_field.hpp @@ -58,9 +58,9 @@ namespace nil { typedef __zkllvm_field_curve25519_base value_type; #else constexpr static const integral_type modulus = - 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed_bigui255; + 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffed_big_uint255; constexpr static const integral_type group_order_minus_one_half = - 0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6_bigui255; + 0x3ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6_big_uint255; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp index 0ca5ccc8ad..42ff23fb75 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/curve25519/scalar_field.hpp @@ -59,7 +59,7 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui253; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint253; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp index 7fe592baf4..7b4608c925 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp12_2over3over2.hpp @@ -71,52 +71,52 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_bigui253, - 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_bigui254), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_bigui254, + non_residue_type(0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_big_uint253, + 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_big_uint254), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_big_uint254, 0x00), - non_residue_type(0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_bigui253, - 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_bigui248), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + non_residue_type(0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_big_uint253, + 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_big_uint248), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00), - non_residue_type(0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_bigui251, - 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_bigui252), - non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254, + non_residue_type(0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_big_uint251, + 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_big_uint252), + non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254, 0x00), - non_residue_type(0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_bigui253, - 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_bigui252), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), - non_residue_type(0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_bigui253, - 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_bigui254), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_bigui191, 0x00), - non_residue_type(0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_bigui254, - 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_bigui254)};*/ + non_residue_type(0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_big_uint253, + 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_big_uint252), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00), + non_residue_type(0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_big_uint253, + 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_big_uint254), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_big_uint191, 0x00), + non_residue_type(0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_big_uint254, + 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_big_uint254)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_bigui253, - 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_bigui254, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_bigui254, + 0x1284B71C2865A7DFE8B99FDD76E68B605C521E08292F2176D60B35DADCC9E470_big_uint253, + 0x246996F3B4FAE7E6A6327CFE12150B8E747992778EEEC7E5CA5CF05F80F362AC_big_uint254, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD49_big_uint254, 0x00, - 0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_bigui253, - 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_bigui248, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + 0x19DC81CFCC82E4BBEFE9608CD0ACAA90894CB38DBE55D24AE86F7D391ED4A67F_big_uint253, + 0xABF8B60BE77D7306CBEEE33576139D7F03A5E397D439EC7694AA2BF4C0C101_big_uint248, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00, - 0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_bigui251, - 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_bigui252, - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254, + 0x757CAB3A41D3CDC072FC0AF59C61F302CFA95859526B0D41264475E420AC20F_big_uint251, + 0xCA6B035381E35B618E9B79BA4E2606CA20B7DFD71573C93E85845E34C4A5B9C_big_uint252, + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254, 0x00, - 0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_bigui253, - 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_bigui252, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, + 0x1DDF9756B8CBF849CF96A5D90A9ACCFD3B2F4C893F42A9166615563BFBB318D7_big_uint253, + 0xBFAB77F2C36B843121DC8B86F6C4CCF2307D819D98302A771C39BB757899A9B_big_uint252, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00, - 0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_bigui253, - 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_bigui254, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_bigui191, + 0x1687CCA314AEBB6DC866E529B0D4ADCD0E34B703AA1BF84253B10EDDB9A856C8_big_uint253, + 0x2FB855BCD54A22B6B18456D34C0B44C0187DC4ADD09D90A0C58BE1EAE3BC3C46_big_uint254, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFF_big_uint191, 0x00, - 0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_bigui254, - 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_bigui254}; + 0x290C83BF3D14634DB120850727BB392D6A86D50BD34B19B929BC44B896723B38_big_uint254, + 0x23BD9E3DA9136A739F668E1ADC9EF7F0F575EC93F71A8DF953C846338C32A1AB_big_uint254}; constexpr static const non_residue_type non_residue = non_residue_type(0x09, 0x01); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp index fce9e3b470..9b5a715320 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp2.hpp @@ -67,26 +67,26 @@ namespace nil { constexpr static const std::size_t s = 0x04; constexpr static const extended_integral_type t = - 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_bigui504; + 0x925C4B8763CBF9C599A6F7C0348D21CB00B85511637560626EDFA5C34C6B38D04689E957A1242C84A50189C6D96CADCA602072D09EAC1013B5458A2275D69B_big_uint504; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_bigui503; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D_big_uint503; constexpr static const std::array nqr = {0x02, 0x01}; constexpr static const std::array nqr_to_t = { - 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_bigui252, - 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_bigui248}; + 0xB20DCB5704E326A0DD3ECD4F30515275398A41A4E1DC5D347CFBBEDDA71CF82_big_uint252, + 0xB1FFEFD8885BF22252522C29527D19F05CFC50E9715370AB0F3A6CA462390C_big_uint248}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_bigui507; + 0x492E25C3B1E5FCE2CCD37BE01A4690E5805C2A88B1BAB031376FD2E1A6359C682344F4ABD09216425280C4E36CB656E5301039684F560809DAA2C5113AEB4D8_big_uint507; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254)};*/ + non_residue_type(0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { - 0x01, 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254}; + 0x01, 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_bigui254); + 0x30644E72E131A029B85045B68181585D97816A916871CA8D3C208C16D87CFD46_big_uint254); }; template diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp index 6938c567e5..85c45e0212 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/alt_bn128/fp6_3over2.hpp @@ -67,55 +67,55 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui253), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + non_residue_type(0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_big_uint254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_big_uint253), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00), - non_residue_type(0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_bigui252, - 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_bigui251), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), - non_residue_type(0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_bigui254, - 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_bigui253)}; + non_residue_type(0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_big_uint252, + 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_big_uint251), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00), + non_residue_type(0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_big_uint254, + 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_big_uint253)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_bigui251, - 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_bigui254), - non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, 0x00), - non_residue_type(0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_bigui252, - 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_bigui254), - non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + non_residue_type(0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_big_uint251, + 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_big_uint254), + non_residue_type(0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00), + non_residue_type(0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_big_uint252, + 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_big_uint254), + non_residue_type(0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00), - non_residue_type(0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_bigui253, - 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_bigui253)};*/ + non_residue_type(0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_big_uint253, + 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_big_uint253)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui253, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_big_uint254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_big_uint253, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00, - 0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_bigui252, - 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_bigui251, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, + 0x856E078B755EF0ABAFF1C77959F25AC805FFD3D5D6942D37B746EE87BDCFB6D_big_uint252, + 0x4F1DE41B3D1766FA9F30E6DEC26094F0FDF31BF98FF2631380CAB2BAAA586DE_big_uint251, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00, - 0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_bigui254, - 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_bigui253}; + 0x28BE74D4BB943F51699582B87809D9CAF71614D4B0B71F3A62E913EE1DADA9E4_big_uint254, + 0x14A88AE0CB747B99C2B86ABCBE01477A54F40EB4C3F6068DEDAE0BCEC9C7AAC7_big_uint253}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_bigui251, - 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_bigui254, - 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_bigui191, + 0x5B54F5E64EEA80180F3C0B75A181E84D33365F7BE94EC72848A1F55921EA762_big_uint251, + 0x2C145EDBE7FD8AEE9F3A80B03B0B1C923685D2EA1BDEC763C13B4711CD2B8126_big_uint254, + 0x59E26BCEA0D48BACD4F263F1ACDB5C4F5763473177FFFFFE_big_uint191, 0x00, - 0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_bigui252, - 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_bigui254, - 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_bigui254, + 0xBC58C6611C08DAB19BEE0F7B5B2444EE633094575B06BCB0E1A92BC3CCBF066_big_uint252, + 0x23D5E999E1910A12FEB0F6EF0CD21D04A44A9E08737F96E55FE3ED9D730C239F_big_uint254, + 0x30644E72E131A0295E6DD9E7E0ACCCB0C28F069FBB966E3DE4BD44E5607CFD48_big_uint254, 0x00, - 0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_bigui253, - 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_bigui253}; + 0x1EE972AE6A826A7D1D9DA40771B6F589DE1AFB54342C724FA97BDA050992657F_big_uint253, + 0x10DE546FF8D4AB51D2B513CDBB25772454326430418536D15721E37E70C255C9_big_uint253}; constexpr static const non_residue_type non_residue = non_residue_type(0x09, 0x01); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp index 3f4309b955..95cead8c41 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp12_2over3over2.hpp @@ -68,56 +68,56 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, + non_residue_type(0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_big_uint381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_big_uint376), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_big_uint319, 0x00), - non_residue_type(0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + non_residue_type(0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00), - non_residue_type(0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379), + non_residue_type(0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_big_uint381, + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_big_uint379), - non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, + non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381, 0x00), - non_residue_type(0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + non_residue_type(0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_big_uint376, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_big_uint381), + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00), - non_residue_type(0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, + non_residue_type(0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381), + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_big_uint381, 0x00), - non_residue_type(0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381)};*/ + non_residue_type(0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_big_uint379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_big_uint381)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_big_uint381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_big_uint376, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_big_uint319, 0x00, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_big_uint381, + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_big_uint379, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381, 0x00, - 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_bigui376, - 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_bigui381, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + 0xFC3E2B36C4E03288E9E902231F9FB854A14787B6C7B36FEC0C8EC971F63C5F282D5AC14D6C7EC22CF78A126DDC4AF3_big_uint376, + 0x1904D3BF02BB0667C231BEB4202C0D1F0FD603FD3CBD5F4F7B2443D784BAB9C4F67EA53D63E7813D8D0775ED92235FB8_big_uint381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00, - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_big_uint381, 0x00, - 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_bigui379, - 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_bigui381}; + 0x5B2CFD9013A5FD8DF47FA6B48B1E045F39816240C0B8FEE8BEADF4D8E9C0566C63A3E6E257F87329B18FAE980078116_big_uint379, + 0x144E4211384586C16BD3AD4AFA99CC9170DF3560E77982D0DB45F3536814F0BD5871C1908BD478CD1EE605167FF82995_big_uint381}; constexpr static const non_residue_type non_residue = non_residue_type(0x01u, 0x01u); }; @@ -142,55 +142,55 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_bigui376, + non_residue_type(0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_big_uint376, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_big_uint316, 0x00), - non_residue_type(0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_bigui377, + non_residue_type(0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_big_uint377, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00), - non_residue_type(0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_bigui376, + non_residue_type(0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_big_uint376, 0x00), - non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, + non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_big_uint377, 0x00), - non_residue_type(0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_bigui377, + non_residue_type(0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_big_uint377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00), - non_residue_type(0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_bigui375, + non_residue_type(0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_big_uint375, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_big_uint377, 0x00), - non_residue_type(0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_bigui376, + non_residue_type(0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_big_uint376, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_bigui376, + 0x9A9975399C019633C1E30682567F915C8A45E0F94EBC8EC681BF34A3AA559DB57668E558EB0188E938A9D1104F2031_big_uint376, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_big_uint316, 0x00, - 0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_bigui377, + 0x1680A40796537CAC0C534DB1A79BEB1400398F50AD1DEC1BCE649CF436B0F6299588459BFF27D8E6E76D5ECF1391C63_big_uint377, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00, - 0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_bigui376, + 0xCD70CB3FC936348D0351D498233F1FE379531411832232F6648A9A9FC0B9C4E3E21B7467077C05853E2C1BE0E9FC32_big_uint376, 0x00, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_big_uint377, 0x00, - 0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_bigui377, + 0x113A0D0DE290F54927922B9EA4AC9A9BD98941207A657005871A2FB165EF2626194F45ED714FE779BD0162EEFB0DFD0_big_uint377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00, - 0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_bigui375, + 0x4630059E5FD9200575D0E552278A89DA1F40FDF62334CD620D1860769E389D7DB2D8EA700D82721691EA130EC6E39E_big_uint375, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_big_uint377, 0x00, - 0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_bigui376, + 0xE0C97AD7FBDAB63937B3EBD47E0A1B36A986DEEF71F15C288ED7951A488E3B332941CFC8F883FAFFCA93E41F1603CF_big_uint376, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x00u, 0x01u); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp index 534ef301a9..fde884a645 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp2.hpp @@ -68,23 +68,23 @@ namespace nil { constexpr static const std::size_t s = 0x03; constexpr static const extended_integral_type t = - 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_bigui759; + 0x5486F497186BF8E97A4F1D5445E4BD3C5B921CA1CE08D68CDCB3C92693D17A0A14C59FA2DBB94DDEA62926612F1DE023AD0C3390C30B8F6525D0B50E1234092CD7F23DA7CE36E862C586706C42279FAF9DAD63AEC705D564D54000038E31C7_big_uint759; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_bigui758; + 0x2A437A4B8C35FC74BD278EAA22F25E9E2DC90E50E7046B466E59E49349E8BD050A62CFD16DDCA6EF53149330978EF011D68619C86185C7B292E85A87091A04966BF91ED3E71B743162C338362113CFD7CED6B1D76382EAB26AA00001C718E3_big_uint758; constexpr static const std::array nqr = {0x01, 0x01}; constexpr static const std::array nqr_to_t = { - 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_bigui379, - 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_bigui381}; + 0x6AF0E0437FF400B6831E36D6BD17FFE48395DABC2D3435E77F76E17009241C5EE67992F72EC05F4C81084FBEDE3CC09_big_uint379, + 0x135203E60180A68EE2E9C448D77A2CD91C3DEDD930B1CF60EF396489F61EB45E304466CF3E67FA0AF1EE7B04121BDEA2_big_uint381}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_bigui761; + 0x1521BD25C61AFE3A5E93C75511792F4F16E48728738235A3372CF249A4F45E82853167E8B6EE5377A98A49984BC77808EB430CE430C2E3D949742D43848D024B35FC8F69F38DBA18B1619C1B1089E7EBE76B58EBB1C1755935500000E38C71C_big_uint761; constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381}; + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381); + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381); }; /************************* BLS12-377 ***********************************/ @@ -112,23 +112,23 @@ namespace nil { constexpr static const std::size_t s = 0x2F; constexpr static const extended_integral_type t = - 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_bigui707; + 0x5A60FA1775FF644AD227766C24C78977170FB495DD27E3EBCE2827BB49AB813A0315F720CC19B8029CE24A0549AD88C155555176E15C063064972B0C7193AD797F7A46BE3813495B44D1E5C37B000E671A4A9E00000021423_big_uint707; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_bigui706; + 0x2D307D0BBAFFB2256913BB361263C4BB8B87DA4AEE93F1F5E71413DDA4D5C09D018AFB90660CDC014E712502A4D6C460AAAAA8BB70AE0318324B958638C9D6BCBFBD235F1C09A4ADA268F2E1BD8007338D254F00000010A11_big_uint706; constexpr static const std::array nqr = {0x00, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_bigui377}; + 0x1ABEF7237D62007BB9B2EDA5AFCB52F9D179F23DBD49B8D1B24CF7C1BF8066791317689172D0F4CB90CF47182B7D7B2_big_uint377}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_bigui753; + 0x16983E85DD7FD912B489DD9B0931E25DC5C3ED257749F8FAF38A09EED26AE04E80C57DC833066E00A7389281526B62305555545DB857018C1925CAC31C64EB5E5FDE91AF8E04D256D1347970DEC00399C692A780000008508C00000000000_big_uint753; constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377}; + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_big_uint377}; constexpr static const non_residue_type non_residue = non_residue_type( - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508BFFFFFFFFFFC_bigui377); + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508BFFFFFFFFFFC_big_uint377); }; constexpr typename fp2_extension_params>::non_residue_type const diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp index ea9d6b6dfa..614c2328f5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/bls12/fp6_3over2.hpp @@ -66,52 +66,52 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), non_residue_type(0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381), + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00), non_residue_type(0x00u, 0x01u), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00), non_residue_type(0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319)}; + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_big_uint381, 0x00), - non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + non_residue_type(0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00), - non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, + non_residue_type(0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381, 0x00), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00), - non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, + non_residue_type(0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_big_uint319, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00, 0x00, 0x01, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319}; + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_bigui381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAD_big_uint381, 0x00, - 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_bigui381, + 0x1A0111EA397FE699EC02408663D4DE85AA0D857D89759AD4897D29650FB85F9B409427EB4F49FFFD8BFD00000000AAAC_big_uint381, 0x00, - 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_bigui381, + 0x1A0111EA397FE69A4B1BA7B6434BACD764774B84F38512BF6730D2A0F6B0F6241EABFFFEB153FFFFB9FEFFFFFFFFAAAA_big_uint381, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_bigui319, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFE_big_uint319, 0x00, - 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_bigui319, + 0x5F19672FDF76CE51BA69C6076A0F77EADDB3A93BE6F89688DE17D813620A00022E01FFFFFFFEFFFF_big_uint319, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x01u, 0x01u); @@ -138,54 +138,54 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_big_uint316, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00), - non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, + non_residue_type(0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_big_uint377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_big_uint377, 0x00)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00), non_residue_type(0x01, 0x00), - non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + non_residue_type(0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00), - non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + non_residue_type(0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000002_big_uint316, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00, - 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_bigui377, + 0x1AE3A4617C510EAC63B05C06CA1493B1A22D9F300F5138F1EF3622FBA094800170B5D44300000008508C00000000000_big_uint377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E94577A00000000000000000000000_big_uint377, 0x00}; constexpr static const std::array Frobenius_coeffs_c2 = { 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00, 0x01, 0x00, - 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_bigui316, + 0x9B3AF05DD14F6EC619AAF7D34594AABC5ED1347970DEC00452217CC900000008508C00000000001_big_uint316, 0x00, - 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_bigui377, + 0x1AE3A4617C510EABC8756BA8F8C524EB8882A75CC9BC8E359064EE822FB5BFFD1E945779FFFFFFFFFFFFFFFFFFFFFFF_big_uint377, 0x00}; constexpr static const non_residue_type non_residue = non_residue_type(0x00u, 0x01u); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp index 2fbb8c7fe5..dd52506bca 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp2.hpp @@ -70,24 +70,24 @@ namespace nil { constexpr static const std::size_t s = 0x12; constexpr static const extended_integral_type t = - 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_bigui578; + 0x37E52CE842B39321A34D7BA62E2C735153C68D35F7A312CDB18451030CB297F3B772167A8487033D5772A0EF6BEA9BCA60190FFE1CDB642F88A0FF2EFF7A6A3A80FD00203385638B3_big_uint578; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_bigui577; + 0x1BF296742159C990D1A6BDD3171639A8A9E3469AFBD18966D8C2288186594BF9DBB90B3D4243819EABB95077B5F54DE5300C87FF0E6DB217C4507F977FBD351D407E801019C2B1C59_big_uint577; constexpr static const std::array nqr = {0x08, 0x01}; constexpr static const std::array nqr_to_t = { 0x00, - 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_bigui294}; + 0x3B1F45391287A9CB585B8E5504C24BF1EC2010553885078C85899ACD708205080134A9BE6A_big_uint294}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_bigui595; + 0x6FCA59D085672643469AF74C5C58E6A2A78D1A6BEF46259B6308A20619652FE76EE42CF5090E067AAEE541DED7D53794C0321FFC39B6C85F1141FE5DFEF4D47501FA0040670AC71660000_big_uint595; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298)};*/ + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_big_uint298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298}; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_big_uint298}; constexpr static const non_residue_type non_residue = non_residue_type(0x11u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp index 98423aecd0..96f8e54037 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt4/fp4.hpp @@ -63,14 +63,14 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_bigui292), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298), - non_residue_type(0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_bigui298)};*/ + non_residue_type(0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_big_uint292), + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_big_uint298), + non_residue_type(0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_big_uint298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { - 0x01, 0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_bigui292, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_bigui298, - 0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_bigui298}; + 0x01, 0xF73779FE09916DFDCC2FD1F968D534BEB17DAF7518CD9FAE5C1F7BDCF94DD5D7DEF6980C4_big_uint292, + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660000_big_uint298, + 0x3AD84453493094F44C0E4B334F83D9B7D7845383998B4CFE8788F285043342F78DC81FC7F3D_big_uint298}; constexpr static const non_residue_type non_residue = non_residue_type(0x11u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp index 2733f18cc5..458d9b8b8e 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp3.hpp @@ -70,35 +70,35 @@ namespace nil { constexpr static const std::size_t s = 0x22; constexpr static const extended_integral_type t = - 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_bigui860; + 0xD0F1EB0C5D321E87BF885ACDEBEDB4C0D6B30E63AB6E7BF6417A7990679AA640A7D58FB90CC708D572D32DFD6443366D2F92F48FF1A02FDB0CC11573BAB71F8E5E05B07DEA208A7E11F3E61C9968CC65F379EFCEF9472C7FC6DEE40194CA1DF9F801DC0D24656EACC72677B_big_uint860; constexpr static const extended_integral_type t_minus_1_over_2 = - 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_bigui859; + 0x6878F5862E990F43DFC42D66F5F6DA606B598731D5B73DFB20BD3CC833CD532053EAC7DC8663846AB96996FEB2219B3697C97A47F8D017ED86608AB9DD5B8FC72F02D83EF510453F08F9F30E4CB46632F9BCF7E77CA3963FE36F7200CA650EFCFC00EE069232B75663933BD_big_uint859; constexpr static const std::array nqr = {0x05, 0x00, 0x00}; constexpr static const std::array nqr_to_t = { - 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_bigui297, + 0x1366271F76AB41CEEEE8C1E5E972F3CEC14A25F18B3F4B93642FAD4972356D977470E0FA674_big_uint297, 0x00, 0x00}; constexpr static const extended_integral_type group_order_minus_one_half = - 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_bigui893; + 0x1A1E3D618BA643D0F7F10B59BD7DB6981AD661CC756DCF7EC82F4F320CF354C814FAB1F72198E11AAE5A65BFAC8866CDA5F25E91FE3405FB619822AE7756E3F1CBC0B60FBD44114FC23E7CC3932D198CBE6F3DF9DF28E58FF8DBDC80329943BF3F003B81A48CADD598E4CEF600000000_big_uint893; /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292)}; + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292)}; constexpr static const std::array Frobenius_coeffs_c2 = {non_residue_type(0x01), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298)};*/ + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292), + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292}; + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292}; constexpr static const std::array Frobenius_coeffs_c2 = { - 0x01, 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298}; + 0x01, 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292, + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298}; constexpr static const non_residue_type non_residue = non_residue_type(0x05u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp index ce4981b3a1..f90e51606c 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/detail/extension_params/mnt6/fp6_2over3.hpp @@ -62,19 +62,19 @@ namespace nil { /*constexpr static const std::array Frobenius_coeffs_c1 = {non_residue_type(0x01), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_bigui298), - non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298), - non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_bigui298), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292), - non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui293)};*/ + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_big_uint298), + non_residue_type(0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298), + non_residue_type(0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_big_uint298), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292), + non_residue_type(0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint293)};*/ constexpr static const std::array Frobenius_coeffs_c1 = { 0x01, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_bigui298, - 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_bigui298, - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_bigui298, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui292, - 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_bigui293}; + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BED_big_uint298, + 0x3B48E50A1662E26F0E834E15FAF68204A9845655F46B277A6D05B75068AD3F6801655344BEC_big_uint298, + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000000_big_uint298, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint292, + 0x8696C330D743F33B572CEF4DF62CE7ECB178EE24E48D1A53736E86448E74CB48DAACBB414_big_uint293}; constexpr static const non_residue_type non_residue = non_residue_type(0x05u); }; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp index 67a68da5a6..494c324d23 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/goldilocks64/base_field.hpp @@ -53,7 +53,7 @@ namespace nil { #else // 2^64 - 2^32 + 1 constexpr static const integral_type modulus = - 0xFFFFFFFF00000001_bigui64; + 0xFFFFFFFF00000001_big_uint64; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp index 8163be636e..9a0cd5ac68 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/jubjub/scalar_field.hpp @@ -50,7 +50,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xE7DB4EA6533AFA906673B0101343B00A6682093CCC81082D0970E5ED6F72CB7_bigui252; + 0xE7DB4EA6533AFA906673B0101343B00A6682093CCC81082D0970E5ED6F72CB7_big_uint252; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp index 0e9dda4aa5..133783a000 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt4/base_field.hpp @@ -55,10 +55,10 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660001_bigui298; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635D1330EA41A9E35E51200E12C90CD65A71660001_big_uint298; constexpr static const integral_type group_order_minus_one_half = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_bigui298; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE89987520D4F1AF2890070964866B2D38B30000_big_uint298; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp index 480f72ac1b..220e651c3f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/mnt6/base_field.hpp @@ -55,10 +55,10 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000001_bigui298; + 0x3BCF7BCD473A266249DA7B0548ECAEEC9635CF44194FB494C07925D6AD3BB4334A400000001_big_uint298; constexpr static const integral_type group_order_minus_one_half = - 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_bigui298; + 0x1DE7BDE6A39D133124ED3D82A47657764B1AE7A20CA7DA4A603C92EB569DDA19A5200000000_big_uint298; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; typedef typename detail::element_fp>> value_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp index cba122fc8d..d78ef1715d 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/pallas/base_field.hpp @@ -52,7 +52,7 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_big_uint255; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2 ; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp index 14473b06dc..612835b19c 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/base_field.hpp @@ -55,7 +55,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffeffffac73_bigui160; + 0xfffffffffffffffffffffffffffffffeffffac73_big_uint160; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -76,7 +76,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffeffffee37_bigui192; + 0xfffffffffffffffffffffffffffffffffffffffeffffee37_big_uint192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -97,7 +97,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d_bigui224; + 0xfffffffffffffffffffffffffffffffffffffffffffffffeffffe56d_big_uint224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -118,7 +118,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_big_uint256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp index c1d8a1fa94..4e9ea2f7f4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_k1/scalar_field.hpp @@ -56,7 +56,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x0100000000000000000001b8fa16dfab9aca16b6b3_bigui161; + 0x0100000000000000000001b8fa16dfab9aca16b6b3_big_uint161; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -77,7 +77,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d_bigui192; + 0xfffffffffffffffffffffffe26f2fc170f69466a74defd8d_big_uint192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -99,7 +99,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7_bigui225; + 0x010000000000000000000000000001dce8d2ec6184caf0a971769fb1f7_big_uint225; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -120,7 +120,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141_bigui256; + 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141_big_uint256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp index 66f88fb957..d1a1f3d0e0 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/base_field.hpp @@ -55,7 +55,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffff7fffffff_bigui160; + 0xffffffffffffffffffffffffffffffff7fffffff_big_uint160; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -76,7 +76,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffeffffffffffffffff_bigui192; + 0xfffffffffffffffffffffffffffffffeffffffffffffffff_big_uint192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -97,7 +97,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffff000000000000000000000001_bigui224; + 0xffffffffffffffffffffffffffffffff000000000000000000000001_big_uint224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -118,7 +118,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff_bigui256; + 0xffffffff00000001000000000000000000000000ffffffffffffffffffffffff_big_uint256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -139,7 +139,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff_bigui384; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffffff0000000000000000ffffffff_big_uint384; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -160,7 +160,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui521; + 0x01ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint521; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp index 048e261d82..0a7d9786b5 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/secp/secp_r1/scalar_field.hpp @@ -56,7 +56,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x0100000000000000000001f4c8f927aed3ca752257_bigui161; + 0x0100000000000000000001f4c8f927aed3ca752257_big_uint161; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -77,7 +77,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffff99def836146bc9b1b4d22831_bigui192; + 0xffffffffffffffffffffffff99def836146bc9b1b4d22831_big_uint192; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -98,7 +98,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d_bigui224; + 0xffffffffffffffffffffffffffff16a2e0b8f03e13dd29455c5c2a3d_big_uint224; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -119,7 +119,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551_bigui256; + 0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551_big_uint256; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -140,7 +140,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973_bigui384; + 0xffffffffffffffffffffffffffffffffffffffffffffffffc7634d81f4372ddf581a0db248b0a77aecec196accc52973_big_uint384; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; @@ -161,7 +161,7 @@ namespace nil { constexpr static const std::size_t number_bits = policy_type::number_bits; constexpr static const integral_type modulus = - 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409_bigui521; + 0x01fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa51868783bf2f966b7fcc0148f709a5d03bb5c9b8899c47aebb6fb71e91386409_big_uint521; constexpr static const integral_type group_order_minus_one_half = (modulus - 1) / 2; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp index 3c77f2a464..2229061191 100755 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/fields/vesta/base_field.hpp @@ -55,7 +55,7 @@ namespace nil { #else constexpr static const integral_type modulus = - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255; + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_big_uint255; constexpr static const integral_type group_order_minus_one_half = (modulus - 1u) / 2; typedef nil::crypto3::multiprecision::auto_big_mod modular_type; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp index c6e2c7472d..150473c7c9 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/alt_bn128/params.hpp @@ -49,7 +49,7 @@ namespace nil { constexpr static const std::size_t integral_type_max_bits = curve_type::base_field_type::modulus_bits; - constexpr static const integral_type ate_loop_count = 0x19D797039BE763BA8_bigui254; + constexpr static const integral_type ate_loop_count = 0x19D797039BE763BA8_big_uint254; constexpr static const bool ate_is_loop_count_neg = false; using g2_field_type = typename curve_type::g2_type<>::params_type::field_type; @@ -57,14 +57,14 @@ namespace nil { // g2_type::params_type::twist.pow((p-1)/3), twist = (9, 1) constexpr static const typename g2_field_type::value_type TWIST_MUL_BY_Q_X = typename g2_field_type::value_type( - 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_bigui254, - 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_bigui254); + 0x2FB347984F7911F74C0BEC3CF559B143B78CC310C2C3330C99E39557176F553D_big_uint254, + 0x16C9E55061EBAE204BA4CC8BD75A079432AE2A1D0B7C9DCE1665D51C640FCBA2_big_uint254); // g2_type::params_type::twist.pow((p-1)/2), twist = (9, 1) constexpr static const typename g2_field_type::value_type TWIST_MUL_BY_Q_Y = typename g2_field_type::value_type( - 0x63CF305489AF5DCDC5EC698B6E2F9B9DBAAE0EDA9C95998DC54014671A0135A_bigui254, - 0x7C03CBCAC41049A0704B5A7EC796F2B21807DC98FA25BD282D37F632623B0E3_bigui254); + 0x63CF305489AF5DCDC5EC698B6E2F9B9DBAAE0EDA9C95998DC54014671A0135A_big_uint254, + 0x7C03CBCAC41049A0704B5A7EC796F2B21807DC98FA25BD282D37F632623B0E3_big_uint254); /* python3: * # Signed bit representation. diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp index d87cab8b15..28f3a88b8f 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/377/params.hpp @@ -48,12 +48,12 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x8508C00000000001_bigui64; + 0x8508C00000000001_big_uint64; constexpr static const bool ate_is_loop_count_neg = false; constexpr static const integral_type final_exponent_z = - 0x8508C00000000001_bigui64; + 0x8508C00000000001_big_uint64; constexpr static const bool final_exponent_is_z_neg = false; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp index 67602e3092..34a47dc8a9 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/bls12/381/params.hpp @@ -48,12 +48,12 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0xD201000000010000_bigui64; + 0xD201000000010000_big_uint64; constexpr static const bool ate_is_loop_count_neg = true; constexpr static const integral_type final_exponent_z = - 0xD201000000010000_bigui64; + 0xD201000000010000_big_uint64; constexpr static const bool final_exponent_is_z_neg = true; diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp index aba06c9d69..52593810d4 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt4/298/params.hpp @@ -48,11 +48,11 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_big_uint149; constexpr static const bool ate_is_loop_count_neg = false; constexpr static const integral_type final_exponent_last_chunk_abs_of_w0 = - 0x1EEF5546609756BEC2A33F0DC9A1B671660001_bigui149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660001_big_uint149; constexpr static const bool final_exponent_last_chunk_is_w0_neg = false; constexpr static const integral_type final_exponent_last_chunk_w1 = integral_type(0x1); diff --git a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp index b8a4175bf7..3ef6f683a6 100644 --- a/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp +++ b/crypto3/libs/algebra/include/nil/crypto3/algebra/pairing/detail/mnt6/298/params.hpp @@ -48,11 +48,11 @@ namespace nil { curve_type::base_field_type::modulus_bits; constexpr static const integral_type ate_loop_count = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_big_uint149; constexpr static const bool ate_is_loop_count_neg = true; constexpr static const integral_type final_exponent_last_chunk_abs_of_w0 = - 0x1EEF5546609756BEC2A33F0DC9A1B671660000_bigui149; // same as ate_loop_count? + 0x1EEF5546609756BEC2A33F0DC9A1B671660000_big_uint149; // same as ate_loop_count? constexpr static const bool final_exponent_last_chunk_is_w0_neg = true; constexpr static const integral_type final_exponent_last_chunk_w1 = integral_type(0x1); diff --git a/crypto3/libs/algebra/test/curves.cpp b/crypto3/libs/algebra/test/curves.cpp index 63e37b8a34..9bc7a8466c 100644 --- a/crypto3/libs/algebra/test/curves.cpp +++ b/crypto3/libs/algebra/test/curves.cpp @@ -427,50 +427,50 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_babyjubjub_g1) { typename policy_type::value_type P1( typename policy_type::field_type::value_type( - 0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_bigui254), + 0x274DBCE8D15179969BC0D49FA725BDDF9DE555E0BA6A693C6ADB52FC9EE7A82C_big_uint254), typename policy_type::field_type::value_type( - 0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_bigui251)), + 0x5CE98C61B05F47FE2EAE9A542BD99F6B2E78246231640B54595FEBFD51EB853_big_uint251)), P2(typename policy_type::field_type::value_type( - 0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_bigui254), + 0x2491ABA8D3A191A76E35BC47BD9AFE6CC88FEE14D607CBE779F2349047D5C157_big_uint254), typename policy_type::field_type::value_type( - 0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_bigui254)), + 0x2E07297F8D3C3D7818DBDDFD24C35583F9A9D4ED0CB0C1D1348DD8F7F99152D7_big_uint254)), P3(typename policy_type::field_type::value_type( - 0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_bigui253), + 0x11805510440A3488B3B811EAACD0EC7C72DDED51978190E19067A2AFAEBAF361_big_uint253), typename policy_type::field_type::value_type( - 0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_bigui253)); + 0x1F07AA1B3C598E2FF9FF77744A39298A0A89A9027777AF9FA100DD448E072C13_big_uint253)); BOOST_CHECK_EQUAL(P1 + P2, P3); typename policy_type::value_type P4( typename policy_type::field_type::value_type( - 0xF3C160E26FC96C347DD9E705EB5A3E8D661502728609FF95B3B889296901AB5_bigui), + 0xF3C160E26FC96C347DD9E705EB5A3E8D661502728609FF95B3B889296901AB5_big_uint), typename policy_type::field_type::value_type( - 0x9979273078B5C735585107619130E62E315C5CAFE683A064F79DFED17EB14E1_bigui)); + 0x9979273078B5C735585107619130E62E315C5CAFE683A064F79DFED17EB14E1_big_uint)); P1.double_inplace(); BOOST_CHECK_EQUAL(P1, P4); typename policy_type::value_type P5( typename policy_type::field_type::value_type( - 0x274dbce8d15179969bc0d49fa725bddf9de555e0ba6a693c6adb52fc9ee7a82c_bigui), + 0x274dbce8d15179969bc0d49fa725bddf9de555e0ba6a693c6adb52fc9ee7a82c_big_uint), typename policy_type::field_type::value_type( - 0x5ce98c61b05f47fe2eae9a542bd99f6b2e78246231640b54595febfd51eb853_bigui)), + 0x5ce98c61b05f47fe2eae9a542bd99f6b2e78246231640b54595febfd51eb853_big_uint)), et_s1P5(typename policy_type::field_type::value_type( - 0x2ad46cbfb78773b6254adc1d80c6efa02f3bf948c37e5a2222136421d7bec942_bigui), + 0x2ad46cbfb78773b6254adc1d80c6efa02f3bf948c37e5a2222136421d7bec942_big_uint), typename policy_type::field_type::value_type( - 0x14e9693f16d75f7065ce51e1f46ae6c60841ca1e0cf264eda26398e36ca2ed69_bigui)), + 0x14e9693f16d75f7065ce51e1f46ae6c60841ca1e0cf264eda26398e36ca2ed69_big_uint)), et_s2P5(typename policy_type::field_type::value_type( - 0x031b924a83fbbdc206fb2d3bc85b7a724000714627f681a60b34885e4deca1d6_bigui), + 0x031b924a83fbbdc206fb2d3bc85b7a724000714627f681a60b34885e4deca1d6_big_uint), typename policy_type::field_type::value_type( - 0x242e364702e64a6850c9aee7ece7ca79ba019ca7a63684e2df0873ca0d8f7e87_bigui)), + 0x242e364702e64a6850c9aee7ece7ca79ba019ca7a63684e2df0873ca0d8f7e87_big_uint)), P6(typename policy_type::field_type::value_type( - 0xf3c160e26fc96c347dd9e705eb5a3e8d661502728609ff95b3b889296901ab5_bigui), + 0xf3c160e26fc96c347dd9e705eb5a3e8d661502728609ff95b3b889296901ab5_big_uint), typename policy_type::field_type::value_type( - 0x9979273078b5c735585107619130e62e315c5cafe683a064f79dfed17eb14e1_bigui)), + 0x9979273078b5c735585107619130e62e315c5cafe683a064f79dfed17eb14e1_big_uint)), et_s1P6(typename policy_type::field_type::value_type( - 0x2e6475817d356adbbfcec42b2f7b90500d6f74e8cd4ec1ac0b6effd00ba854d7_bigui), + 0x2e6475817d356adbbfcec42b2f7b90500d6f74e8cd4ec1ac0b6effd00ba854d7_big_uint), typename policy_type::field_type::value_type( - 0x195a50f93ff3f3e68bd593be5781301c32962777dc8237b099c23d39c24ec76a_bigui)); + 0x195a50f93ff3f3e68bd593be5781301c32962777dc8237b099c23d39c24ec76a_big_uint)); BOOST_CHECK_EQUAL(et_s1P5, scalar_value_type(integral_type(3u)) * P5); BOOST_CHECK_EQUAL(et_s2P5, scalar_value_type(integral_type( @@ -604,8 +604,8 @@ class bls12_377_orders_2_4_runner { o2_Y = 0u; // point of order 4 static constexpr curve_type::base_field_type::value_type - o4_X = 0x126f980765bb3d634f9d5cb49909db8af2e185fb13bdb7dc4aedcadf9d8dad86bba02eda906066c9153bdf72ddce76c_bigui377, - o4_Y = 0x06e4b66bb23ef4bef715f597162d6662d8161cd062d6212d39392e17232444a0760b5dc479db98123ab3887aa3cb34e_bigui377; + o4_X = 0x126f980765bb3d634f9d5cb49909db8af2e185fb13bdb7dc4aedcadf9d8dad86bba02eda906066c9153bdf72ddce76c_big_uint377, + o4_Y = 0x06e4b66bb23ef4bef715f597162d6662d8161cd062d6212d39392e17232444a0760b5dc479db98123ab3887aa3cb34e_big_uint377; public: bool static run() { @@ -646,13 +646,13 @@ BOOST_AUTO_TEST_CASE(twisted_edwards_extended_order_test) { /* Point of order 2 */ curve_type::base_field_type::value_type - o2_X = 0x0_bigui255, + o2_X = 0x0_big_uint255, o2_Y = curve_type::base_field_type::modulus - 1; /* Point of order 4 */ curve_type::base_field_type::value_type - o4_X = 0x547cdb7fb03e20f4d4b2ff66c2042858d0bce7f952d01b873b11e4d8b5f15f3d_bigui255, - o4_Y = 0x0_bigui255; + o4_X = 0x547cdb7fb03e20f4d4b2ff66c2042858d0bce7f952d01b873b11e4d8b5f15f3d_big_uint255, + o4_Y = 0x0_big_uint255; typename g1_type::value_type o4(o4_X, o4_Y), o2(o2_X, o2_Y), check; diff --git a/crypto3/libs/algebra/test/curves_static.cpp b/crypto3/libs/algebra/test/curves_static.cpp index 5af3afe48e..2d387c76ec 100644 --- a/crypto3/libs/algebra/test/curves_static.cpp +++ b/crypto3/libs/algebra/test/curves_static.cpp @@ -65,45 +65,45 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_bls12_381_g1) { using g_value_type_projective = typename curve_type::g1_type::value_type; constexpr g_value_type p1( - 0x19a8ce51e3507d9ed66343fc7abda65f24a02a5054c262ba82dd067f91de595469ba0029571b22007d3712a51a14b66b_bigui381, - 0x151c956a92fe067a60533e2f9f4d90c75a460f9ca0a6d3beb2b0388fe2be7f1f21de58af7fd2c85ef13326856408a3a4_bigui381, - 0x814f8119ab9939282414f63efe8421ea0893343f697dba821cc21abb4c0c72573c542becd25d84d3f97d76951cb44bd_bigui381); + 0x19a8ce51e3507d9ed66343fc7abda65f24a02a5054c262ba82dd067f91de595469ba0029571b22007d3712a51a14b66b_big_uint381, + 0x151c956a92fe067a60533e2f9f4d90c75a460f9ca0a6d3beb2b0388fe2be7f1f21de58af7fd2c85ef13326856408a3a4_big_uint381, + 0x814f8119ab9939282414f63efe8421ea0893343f697dba821cc21abb4c0c72573c542becd25d84d3f97d76951cb44bd_big_uint381); constexpr g_value_type p2( - 0xe5944419aae6b311708fdee3e7a3169ef47f7a509ec5e6781a918eb42294a0c3a3916df0f5c3bf75b1553ee7c66198a_bigui381, - 0x80f8b87d65fa717f44c74f944e6f8b9c5493a87bfa0b48395c6326ad2c83e848280a7b7a81cfc3e44be18c2b721cf31_bigui381, - 0x12dde0758a406a2d79166ade03f68799b359910c31d65ccb63090720eb6191393661cf26c3e83c922a804305027c2803_bigui381); + 0xe5944419aae6b311708fdee3e7a3169ef47f7a509ec5e6781a918eb42294a0c3a3916df0f5c3bf75b1553ee7c66198a_big_uint381, + 0x80f8b87d65fa717f44c74f944e6f8b9c5493a87bfa0b48395c6326ad2c83e848280a7b7a81cfc3e44be18c2b721cf31_big_uint381, + 0x12dde0758a406a2d79166ade03f68799b359910c31d65ccb63090720eb6191393661cf26c3e83c922a804305027c2803_big_uint381); constexpr g_value_type p_add( - 0x13034f3fbe9a557cc7daf9aaffbc1a4b3d1a4c88c11ba5fd4502aed63ed08f3f52e1bce1ba9a5ea70d862436cd8c0a53_bigui381, - 0x2c731465ff3bd544bd350c9b6bb5fafca2cbfe31c0a3221566d1fc5547d463914b64e26b4107a78c0179a004c7642af_bigui381, - 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_bigui381); + 0x13034f3fbe9a557cc7daf9aaffbc1a4b3d1a4c88c11ba5fd4502aed63ed08f3f52e1bce1ba9a5ea70d862436cd8c0a53_big_uint381, + 0x2c731465ff3bd544bd350c9b6bb5fafca2cbfe31c0a3221566d1fc5547d463914b64e26b4107a78c0179a004c7642af_big_uint381, + 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_big_uint381); constexpr g_value_type p_sub( - 0x8d3551b80950015b4dbaac4c60e7c48f1470c13ca93b203f1e3d38e874a4c19356b237b823ee551865afa5f7eefd487_bigui381, - 0xfa74f3643c4fef7f88fb5d844652185d8343f5c2f2a4394c626d8f3c773bd9d60158f30158f1feefa7b6c12e07cf0ef_bigui381, - 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_bigui381); + 0x8d3551b80950015b4dbaac4c60e7c48f1470c13ca93b203f1e3d38e874a4c19356b237b823ee551865afa5f7eefd487_big_uint381, + 0xfa74f3643c4fef7f88fb5d844652185d8343f5c2f2a4394c626d8f3c773bd9d60158f30158f1feefa7b6c12e07cf0ef_big_uint381, + 0x214b8ebcf8c5293040a2c85d41d27593829f116fb11224cb6b530a288bc66e3d4007d5087f71aa1c209f9d98b87111f_big_uint381); constexpr g_value_type p_mul_C( - 0x111152cbd1f7ff876f9f13ceacf6a535831ff5fbf59fe5f54ce37efef87b70ba89bc47d8d63c85565e29c4e1310cc8e9_bigui381, - 0x16e86e2375254ce972334364277bc8ada71598631902013b23356752e653f6b51eeebf72cb72b446e8f32208ef27c58_bigui381, - 0xe2b294ae8d8181dc4fd9c6edfe3d79215232abbacd879e339e9fb7ffc7d8158f292c1c408731d227507181e16708cbc_bigui381); - constexpr auto C1 = 0x2b4bd538_bigui381; + 0x111152cbd1f7ff876f9f13ceacf6a535831ff5fbf59fe5f54ce37efef87b70ba89bc47d8d63c85565e29c4e1310cc8e9_big_uint381, + 0x16e86e2375254ce972334364277bc8ada71598631902013b23356752e653f6b51eeebf72cb72b446e8f32208ef27c58_big_uint381, + 0xe2b294ae8d8181dc4fd9c6edfe3d79215232abbacd879e339e9fb7ffc7d8158f292c1c408731d227507181e16708cbc_big_uint381); + constexpr auto C1 = 0x2b4bd538_big_uint381; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x163c6586913d88ba0ca1f082e90f5dc6b97c9b8fc28e9f9f6140c357a8b97c20088da93e51089a3d870c9ac4cd7419ec_bigui381, - 0x1987e74481a1bfa0ba3f38753c44af0cf77d64753812a22ed2c83f64990a5735ccb24aebc72b8ab559cab1a76e1fd20b_bigui381, - 0xe65506b39c7874b40449480e82a0f94e09702038694504b36b90750c36b606c8691311677d524faa9d6d37ccd401880_bigui381); - constexpr auto C2 = 0x33345b17_bigui381; + 0x163c6586913d88ba0ca1f082e90f5dc6b97c9b8fc28e9f9f6140c357a8b97c20088da93e51089a3d870c9ac4cd7419ec_big_uint381, + 0x1987e74481a1bfa0ba3f38753c44af0cf77d64753812a22ed2c83f64990a5735ccb24aebc72b8ab559cab1a76e1fd20b_big_uint381, + 0xe65506b39c7874b40449480e82a0f94e09702038694504b36b90750c36b606c8691311677d524faa9d6d37ccd401880_big_uint381); + constexpr auto C2 = 0x33345b17_big_uint381; constexpr g_value_type_affine p_to_affine( - 0x97c062b9a9bee0bc02f762c7b7057a0cfa52f336f9bce0b130aaa2402bc7c820cc4f30f29ed69d87342c3137659af29_bigui381, - 0x10eabcbf296774122daf3b60e289f0885485b66c4111d1a229bea7566aea5c9f87d1cbc8ae752e13288ec885d3f97eb6_bigui381); + 0x97c062b9a9bee0bc02f762c7b7057a0cfa52f336f9bce0b130aaa2402bc7c820cc4f30f29ed69d87342c3137659af29_big_uint381, + 0x10eabcbf296774122daf3b60e289f0885485b66c4111d1a229bea7566aea5c9f87d1cbc8ae752e13288ec885d3f97eb6_big_uint381); constexpr g_value_type_projective p_to_projective( - 0xf2d335bf6370059219a693b1b50dfe9f966c371f052b36f70e426bf84750dcd4bb3da3beeef4e013c4532f4f78e06c1_bigui381, - 0x54deeaa0db80987f8d81cfb4c716ae590c3b7641656f3fef45859a6446144c6eb191bbeb88929cbd90b2b9995574c90_bigui381, - 0x1_bigui381); + 0xf2d335bf6370059219a693b1b50dfe9f966c371f052b36f70e426bf84750dcd4bb3da3beeef4e013c4532f4f78e06c1_big_uint381, + 0x54deeaa0db80987f8d81cfb4c716ae590c3b7641656f3fef45859a6446144c6eb191bbeb88929cbd90b2b9995574c90_big_uint381, + 0x1_big_uint381); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -121,112 +121,112 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_bls12_381_g2) { constexpr g_value_type p1( {{ - 0x12e7556630d7b731637d261c08fb26992098207486c56b152e902f7a287e4d7998c18fb3c21d3bc56b960f66e6b13d54_bigui381, - 0x17eb1b09dfeadb08f3335511101067b74b03680f58b8d13797c3b0bf8359dd289fb18fc987ff0017520a98114028d89e_bigui381, + 0x12e7556630d7b731637d261c08fb26992098207486c56b152e902f7a287e4d7998c18fb3c21d3bc56b960f66e6b13d54_big_uint381, + 0x17eb1b09dfeadb08f3335511101067b74b03680f58b8d13797c3b0bf8359dd289fb18fc987ff0017520a98114028d89e_big_uint381, }}, {{ - 0x18c01544aed3e8ff438c9aaebb5b905001cb03d5982733c85b71e036afead169b34d2c72d2417df44dca61d3dbbc9a9e_bigui381, - 0x193ea114716be66883ceca4d5a162c308f09028fa0fce3dbcad49f7355a4e3a813013f6ea671dcb7f29464d8fcddeb8_bigui381, + 0x18c01544aed3e8ff438c9aaebb5b905001cb03d5982733c85b71e036afead169b34d2c72d2417df44dca61d3dbbc9a9e_big_uint381, + 0x193ea114716be66883ceca4d5a162c308f09028fa0fce3dbcad49f7355a4e3a813013f6ea671dcb7f29464d8fcddeb8_big_uint381, }}, {{ - 0x48a155f876c814ebcf3efd02a99e9c0ddcdf2caba2c63929396fb02c8339817dcb2cdaf4dd0e3a353dbaafd84ee76c_bigui381, - 0x3caf52cc8d881f00f7dd35510d9cc55cbf55bb7eddac1ca29799cb23bad7b76983e0820298d4c778ae46a5f546ad81a_bigui381, + 0x48a155f876c814ebcf3efd02a99e9c0ddcdf2caba2c63929396fb02c8339817dcb2cdaf4dd0e3a353dbaafd84ee76c_big_uint381, + 0x3caf52cc8d881f00f7dd35510d9cc55cbf55bb7eddac1ca29799cb23bad7b76983e0820298d4c778ae46a5f546ad81a_big_uint381, }}); constexpr g_value_type p2( {{ - 0xeb2a45074d3e817643c8511c2965d5a2fe84dfed298b2254fc6ea54630120ddcc03538e587ef15cad6809dcb29b13f6_bigui381, - 0x1499cb9c615d17534459e5177f38e0d94e36afeed3c0f8584dfa8e41151823fe341c197b1c619e6fc2e1032e7f644067_bigui381, + 0xeb2a45074d3e817643c8511c2965d5a2fe84dfed298b2254fc6ea54630120ddcc03538e587ef15cad6809dcb29b13f6_big_uint381, + 0x1499cb9c615d17534459e5177f38e0d94e36afeed3c0f8584dfa8e41151823fe341c197b1c619e6fc2e1032e7f644067_big_uint381, }}, {{ - 0x113504af0d2a73c699c09f9beb32286b701c35cdda882d3386022f5a51b5f977ba32a7c3b94bf3a06bd29f913b39efa1_bigui381, - 0x195488cb4697a6c61b4884e4cfa7e42c865e62e781d7cc23d3c7149ba40566933308e4286f809b87eca83eb644e46073_bigui381, + 0x113504af0d2a73c699c09f9beb32286b701c35cdda882d3386022f5a51b5f977ba32a7c3b94bf3a06bd29f913b39efa1_big_uint381, + 0x195488cb4697a6c61b4884e4cfa7e42c865e62e781d7cc23d3c7149ba40566933308e4286f809b87eca83eb644e46073_big_uint381, }}, {{ - 0xfa6067c056fb379d03f389de881dc14502b372fe9693c4f03b1dfbcf33fe9c17426a2c2060be6ad3c5bb8cc1b368c93_bigui381, - 0x843fcebd62ecaff9b157729414b13f87663f5ce79c9b74fca97cf5fac8b08683c04223aba8ac07b253e320275767d91_bigui381, + 0xfa6067c056fb379d03f389de881dc14502b372fe9693c4f03b1dfbcf33fe9c17426a2c2060be6ad3c5bb8cc1b368c93_big_uint381, + 0x843fcebd62ecaff9b157729414b13f87663f5ce79c9b74fca97cf5fac8b08683c04223aba8ac07b253e320275767d91_big_uint381, }}); constexpr g_value_type p_add( {{ - 0x1532ee0d7b280f5a8f7acbd758d9c0ed87f4e88ad51c6365c14ba7f570f68935102025f2c211856a3b62b9118fcfe2fd_bigui381, - 0xf6c5277a9ca80792503c833dea93b54da27da7973ec32e71398782ab2f6239ea1ee1d61443211002a80bb4b1223d76c_bigui381, + 0x1532ee0d7b280f5a8f7acbd758d9c0ed87f4e88ad51c6365c14ba7f570f68935102025f2c211856a3b62b9118fcfe2fd_big_uint381, + 0xf6c5277a9ca80792503c833dea93b54da27da7973ec32e71398782ab2f6239ea1ee1d61443211002a80bb4b1223d76c_big_uint381, }}, {{ - 0x33782d06d4d3d0ef1a963065527a76fc9105933cc3bd393affb6f532be9fef9bc558e6dfba00d327a26ed081b016887_bigui381, - 0x1086ce74c1086ce1b04ef9a556b8d00ef659b8eae55d664f9e18e877552577a8dc83f54dc28e01a30525180a8f9e775a_bigui381, + 0x33782d06d4d3d0ef1a963065527a76fc9105933cc3bd393affb6f532be9fef9bc558e6dfba00d327a26ed081b016887_big_uint381, + 0x1086ce74c1086ce1b04ef9a556b8d00ef659b8eae55d664f9e18e877552577a8dc83f54dc28e01a30525180a8f9e775a_big_uint381, }}, {{ - 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_bigui381, - 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_bigui381, + 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_big_uint381, + 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_big_uint381, }}); constexpr g_value_type p_sub( {{ - 0xc79e43a21a88a71344251504208ddf45447bfc1010d4b3320978f47982b2d29021619f280409d202d019e470461555c_bigui381, - 0x182de0d3384dac598c24d2a39159ef0e3d2b5576f52839d8d713a222cad156a12ea69e1c0b2ab919ebed0cf7f3fd2499_bigui381, + 0xc79e43a21a88a71344251504208ddf45447bfc1010d4b3320978f47982b2d29021619f280409d202d019e470461555c_big_uint381, + 0x182de0d3384dac598c24d2a39159ef0e3d2b5576f52839d8d713a222cad156a12ea69e1c0b2ab919ebed0cf7f3fd2499_big_uint381, }}, {{ - 0xaf0123a190cb639abbbcc0e882e79fb1716dc84eccd53f69342b841b9ea8cdbf2381d11ff853fa7fa5643325f2a21c4_bigui381, - 0xd9eb9c10f3b75bffacab71fc974cce60d4fe658dbaf0d7ce02180bc634ecbe1f7c4ba21b763b06dbcad61384742c096_bigui381, + 0xaf0123a190cb639abbbcc0e882e79fb1716dc84eccd53f69342b841b9ea8cdbf2381d11ff853fa7fa5643325f2a21c4_big_uint381, + 0xd9eb9c10f3b75bffacab71fc974cce60d4fe658dbaf0d7ce02180bc634ecbe1f7c4ba21b763b06dbcad61384742c096_big_uint381, }}, {{ - 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_bigui381, - 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_bigui381, + 0x4d34706912ff38211a5600e92b5d4658a01667ba0fb1720b2a3408e4db7370d622f7c128905e7ac5c57c1494af100c6_big_uint381, + 0x174d075076274082e4bc19016d6ed20d6c227a638713bb0f5adcab833853aa01e5227a3f768b96e7f05e38bf094627bc_big_uint381, }}); constexpr g_value_type p_mul_C( {{ - 0x16d0bbd48a70913215c4e64eae9c1fb0ff5d52296dea38f4856ea7d516c57b4981867611b2ac8b8c8e42ee1ac6b38ee7_bigui381, - 0x1184f39be53f1c7c868348c773499b23eb37fbc1a2eae5eaf995b6453d7429255dca5800802e9e73009af32442f35715_bigui381, + 0x16d0bbd48a70913215c4e64eae9c1fb0ff5d52296dea38f4856ea7d516c57b4981867611b2ac8b8c8e42ee1ac6b38ee7_big_uint381, + 0x1184f39be53f1c7c868348c773499b23eb37fbc1a2eae5eaf995b6453d7429255dca5800802e9e73009af32442f35715_big_uint381, }}, {{ - 0x1677412fac92f535f4919c7602b2533df3dc3a0a9ed0499051accbe92d46b65efb17015e310e20a5b09e35d6756103c4_bigui381, - 0xba41fb5dc2beb04a9a1fed616e96442b0dcbbcdee2a75a70c29d77ffa328c03a6e971fddf13d72f6168cadf66e0c8f0_bigui381, + 0x1677412fac92f535f4919c7602b2533df3dc3a0a9ed0499051accbe92d46b65efb17015e310e20a5b09e35d6756103c4_big_uint381, + 0xba41fb5dc2beb04a9a1fed616e96442b0dcbbcdee2a75a70c29d77ffa328c03a6e971fddf13d72f6168cadf66e0c8f0_big_uint381, }}, {{ - 0xa7f8b42ac42d3dc8d4ca183b817de43aaea394536c137ad3cd642c3b9e941b82985b0fe5f8764240a8402ca16ecb001_bigui381, - 0x146c9ff29e2173b7a25d802f2170e728d7991074b4886637ec9aa139106d99d9b9f59f2f805c9143f49fe69dd8191ca9_bigui381, + 0xa7f8b42ac42d3dc8d4ca183b817de43aaea394536c137ad3cd642c3b9e941b82985b0fe5f8764240a8402ca16ecb001_big_uint381, + 0x146c9ff29e2173b7a25d802f2170e728d7991074b4886637ec9aa139106d99d9b9f59f2f805c9143f49fe69dd8191ca9_big_uint381, }}); - constexpr auto C1 = 0x3a93c528_bigui381; + constexpr auto C1 = 0x3a93c528_big_uint381; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0xdd60c2c749f1aad1923f4e57dad584ffa762a558a7fed5fe032945dc7b144643ad418f89f511cd3105256e2d0a0f1e8_bigui381, - 0x8c654ca6993764d8a33dfd57d52ee5039a563733f202eb0b6237a5b95edc1a5fb00ea5f26ead584fe849cfe420b7c96_bigui381, + 0xdd60c2c749f1aad1923f4e57dad584ffa762a558a7fed5fe032945dc7b144643ad418f89f511cd3105256e2d0a0f1e8_big_uint381, + 0x8c654ca6993764d8a33dfd57d52ee5039a563733f202eb0b6237a5b95edc1a5fb00ea5f26ead584fe849cfe420b7c96_big_uint381, }}, {{ - 0x9464e81873a2c2c0c57bd2e526633634d23e44e4db0dc9d46bf136e644ea5d8d5f9c1f5298a03f016af7bdebefb326f_bigui381, - 0x111c60de7db040df6fe9ff6383148404b017232d276ed1a964ddd4378a4a53f07288c770501c8bd258a223a120296cdc_bigui381, + 0x9464e81873a2c2c0c57bd2e526633634d23e44e4db0dc9d46bf136e644ea5d8d5f9c1f5298a03f016af7bdebefb326f_big_uint381, + 0x111c60de7db040df6fe9ff6383148404b017232d276ed1a964ddd4378a4a53f07288c770501c8bd258a223a120296cdc_big_uint381, }}, {{ - 0x15e055a4d7738d9df5d0cf000b08493f47d2285ee62a87df26b2e85056592d8bc2c34ef2e9db4008fcf29c1caaafd993_bigui381, - 0x156fbc5a7201accb386051cc22d9d5fe1cf32088fb4db2eb9b07f8a32060f53e7d93b8ee64aa00b18d7a178d28810531_bigui381, + 0x15e055a4d7738d9df5d0cf000b08493f47d2285ee62a87df26b2e85056592d8bc2c34ef2e9db4008fcf29c1caaafd993_big_uint381, + 0x156fbc5a7201accb386051cc22d9d5fe1cf32088fb4db2eb9b07f8a32060f53e7d93b8ee64aa00b18d7a178d28810531_big_uint381, }}); - constexpr auto C2 = 0x3b74e323_bigui381; + constexpr auto C2 = 0x3b74e323_big_uint381; constexpr g_value_type_affine p_to_affine( {{ - 0x916d8851e884d2c3f4e22e7fc54e09e9df98728073c9004c5a3b609a9687b0361fc2b0f5e35e55ff18c88670319398c_bigui381, - 0x5f4813fb300f1c826001ef7398f9aea50c18c2780d8fae2046d8a8b40b151cfa7bf5a27f3cfbe1cfe683cd02475d4f2_bigui381, + 0x916d8851e884d2c3f4e22e7fc54e09e9df98728073c9004c5a3b609a9687b0361fc2b0f5e35e55ff18c88670319398c_big_uint381, + 0x5f4813fb300f1c826001ef7398f9aea50c18c2780d8fae2046d8a8b40b151cfa7bf5a27f3cfbe1cfe683cd02475d4f2_big_uint381, }}, {{ - 0x14a402fe40ef20ae44599107bebd360a8ecabe2e080cb14eacdb31a521c70fc5d54e9215d02833bde8816c174cef5a2f_bigui381, - 0xe86efa5c2fb9e319bf1fe2a2324b8d6c21c4d3233df0a4f963413ed1942108ab9b422f49f0670101ca60a088ee179b8_bigui381, + 0x14a402fe40ef20ae44599107bebd360a8ecabe2e080cb14eacdb31a521c70fc5d54e9215d02833bde8816c174cef5a2f_big_uint381, + 0xe86efa5c2fb9e319bf1fe2a2324b8d6c21c4d3233df0a4f963413ed1942108ab9b422f49f0670101ca60a088ee179b8_big_uint381, }}); constexpr g_value_type_projective p_to_projective( {{ - 0x17f0b8a163b05e2419acb6e40155e79cea21b271929bb69c81f0742d621706130582b30f44970664a9d1f7755288567a_bigui381, - 0x19bb8698b9f032816c6c77e8875a35fc4f4a5757e393d66a2ff1cd1bc2275cc851d96e04b60818e2e9f47a6741d62ea4_bigui381, + 0x17f0b8a163b05e2419acb6e40155e79cea21b271929bb69c81f0742d621706130582b30f44970664a9d1f7755288567a_big_uint381, + 0x19bb8698b9f032816c6c77e8875a35fc4f4a5757e393d66a2ff1cd1bc2275cc851d96e04b60818e2e9f47a6741d62ea4_big_uint381, }}, {{ - 0xf690d5d0527fc74fca3531ef3277160694aa37b93e1cbc5453a87a5e35a42ebcb29c9a124c6e4a7094bee05735a3207_bigui381, - 0xf3c46767aaf74e29aa885d086663893c80b96f71f9da914ac410a2e4e2d60aa9f41e736d9b04c7374dfa570f354042b_bigui381, + 0xf690d5d0527fc74fca3531ef3277160694aa37b93e1cbc5453a87a5e35a42ebcb29c9a124c6e4a7094bee05735a3207_big_uint381, + 0xf3c46767aaf74e29aa885d086663893c80b96f71f9da914ac410a2e4e2d60aa9f41e736d9b04c7374dfa570f354042b_big_uint381, }}, {{ - 0x1_bigui381, - 0x0_bigui381, + 0x1_big_uint381, + 0x0_big_uint381, }}); static_assert(p1 + p2 == p_add, "add error"); @@ -244,40 +244,40 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt4_g1) { // projective coordinates are used by default constexpr g_value_type p1( - 0x172c9fb6da01e8d0f5a0ba556a5655f8c67a7d344a91e87096b75de7801ce70d5801b48d449_bigui298, - 0x27762604113aaab90bf1e0c0007fd1ebae2659e13db4c00ffd068c1c1555a678eaf06e69451_bigui298, - 0x6878c8d17a189b711b54eb88727c09afaa080bcb4806a18626f23645367ccaea53a867d68d_bigui298); + 0x172c9fb6da01e8d0f5a0ba556a5655f8c67a7d344a91e87096b75de7801ce70d5801b48d449_big_uint298, + 0x27762604113aaab90bf1e0c0007fd1ebae2659e13db4c00ffd068c1c1555a678eaf06e69451_big_uint298, + 0x6878c8d17a189b711b54eb88727c09afaa080bcb4806a18626f23645367ccaea53a867d68d_big_uint298); constexpr g_value_type p2( - 0x29db0d99a3e0776e0fa8c71ee592a279c9c9a4f4dd33e02eeb49a827033fdd4e900c67777a1_bigui298, - 0x7ab574da4fa1419ba9e3358134f19db9effd1025c4381d0e84950e48fda00cd758244f2d1a_bigui298, - 0x224bec0b2109f240bea93a11752f449a1cac2683a9fbe720268ae85a5447f925f13bfa421eb_bigui298); + 0x29db0d99a3e0776e0fa8c71ee592a279c9c9a4f4dd33e02eeb49a827033fdd4e900c67777a1_big_uint298, + 0x7ab574da4fa1419ba9e3358134f19db9effd1025c4381d0e84950e48fda00cd758244f2d1a_big_uint298, + 0x224bec0b2109f240bea93a11752f449a1cac2683a9fbe720268ae85a5447f925f13bfa421eb_big_uint298); constexpr g_value_type p_add( - 0x95989548c0041034a6dbfb9c9314e9ba4d144fee2841873bfdd1a4a286d9473bafa0fdb7b5_bigui298, - 0x312ff49f1eafd934a7bb8544c8d7e216905d28811831ac4660927937f1c5c2a8aee2b2b16b6_bigui298, - 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_bigui298); + 0x95989548c0041034a6dbfb9c9314e9ba4d144fee2841873bfdd1a4a286d9473bafa0fdb7b5_big_uint298, + 0x312ff49f1eafd934a7bb8544c8d7e216905d28811831ac4660927937f1c5c2a8aee2b2b16b6_big_uint298, + 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_big_uint298); constexpr g_value_type p_sub( - 0x5bd843770194e9b664fedeecd096d50e0fc954e4fdb63e105c92a7b355ec131e3ebfce5864_bigui298, - 0x178ce9482c2cd67c9f04357d1f53109456fc5ebf1de15fb7bc4bdbe11bf14a5de1a8cbea79f_bigui298, - 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_bigui298); + 0x5bd843770194e9b664fedeecd096d50e0fc954e4fdb63e105c92a7b355ec131e3ebfce5864_big_uint298, + 0x178ce9482c2cd67c9f04357d1f53109456fc5ebf1de15fb7bc4bdbe11bf14a5de1a8cbea79f_big_uint298, + 0xd50f5b970b7bf4b04c1891b99bd6f19a8c85ddb6356b8f72a8e1b90457542d82a813560bdf_big_uint298); constexpr g_value_type p_mul_C( - 0x3d7e8f6940d2b4e0f14f67989d8d9e3b7496c6297134316edabadf69eeb2b6ca3cdda99f1_bigui298, - 0x2d8c9f6174c64aa2f895ce780481fea10e9402de8129efef10634b105b3fd99dc17f090d3b9_bigui298, - 0x15b67d3fc690050b6f02e41a5f368b7988ecbdaeb1bb3adf868af0592b65cb8e0fa34e0c6b5_bigui298); - constexpr auto C1 = 0x1203b4c8_bigui298; + 0x3d7e8f6940d2b4e0f14f67989d8d9e3b7496c6297134316edabadf69eeb2b6ca3cdda99f1_big_uint298, + 0x2d8c9f6174c64aa2f895ce780481fea10e9402de8129efef10634b105b3fd99dc17f090d3b9_big_uint298, + 0x15b67d3fc690050b6f02e41a5f368b7988ecbdaeb1bb3adf868af0592b65cb8e0fa34e0c6b5_big_uint298); + constexpr auto C1 = 0x1203b4c8_big_uint298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x1be974b419f4bd1b4fc026b3bb296b9cd671cb987be4c99bdc01fa2fe5112532ca90ca2916d_bigui298, - 0x2664af306794bff602f9699325fc1d57b6b00ace13f58514ca7d5f962f92561c058bb1b263d_bigui298, - 0x13af3d5a92282e8469d99c2f9c57650d51de7f36af8826bf0db8c7ee58a3f26db28d8c13296_bigui298); - constexpr auto C2 = 0x3151bfb5_bigui298; + 0x1be974b419f4bd1b4fc026b3bb296b9cd671cb987be4c99bdc01fa2fe5112532ca90ca2916d_big_uint298, + 0x2664af306794bff602f9699325fc1d57b6b00ace13f58514ca7d5f962f92561c058bb1b263d_big_uint298, + 0x13af3d5a92282e8469d99c2f9c57650d51de7f36af8826bf0db8c7ee58a3f26db28d8c13296_big_uint298); + constexpr auto C2 = 0x3151bfb5_big_uint298; constexpr g_value_type_affine p_to_affine( - 0xbb3d23412558d18845c24476f095447170df03a009809ef6f50f72039948bf7346494e7453_bigui298, - 0x1d8c86a75caf489bc5f3fa2ea263e5f2e991d22d244e732c5689b45ec5401fbdf940c589b0a_bigui298); + 0xbb3d23412558d18845c24476f095447170df03a009809ef6f50f72039948bf7346494e7453_big_uint298, + 0x1d8c86a75caf489bc5f3fa2ea263e5f2e991d22d244e732c5689b45ec5401fbdf940c589b0a_big_uint298); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -294,98 +294,98 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt4_g2) { constexpr g_value_type p1( {{ - 0x20a6d7541c1bd7b1ada94f55476236053e042b6c72cf77264a5c40c671b62ef5a46f84e45af_bigui298, - 0x2f92e835fa005f56fd629fb6eb0725e63296435dc76e3450df0c8694f3bec2ba1f0eebbc21a_bigui298, + 0x20a6d7541c1bd7b1ada94f55476236053e042b6c72cf77264a5c40c671b62ef5a46f84e45af_big_uint298, + 0x2f92e835fa005f56fd629fb6eb0725e63296435dc76e3450df0c8694f3bec2ba1f0eebbc21a_big_uint298, }}, {{ - 0xee24d19afc2b9015b72cf14281476114ccd6fafa4776c2d4a9ace68d6bbbce6125adf29189_bigui298, - 0xefe5105762de13caaf1b1049000b01500041b8e2023c0020522f4621fe3d9e05c0a86abdc_bigui298, + 0xee24d19afc2b9015b72cf14281476114ccd6fafa4776c2d4a9ace68d6bbbce6125adf29189_big_uint298, + 0xefe5105762de13caaf1b1049000b01500041b8e2023c0020522f4621fe3d9e05c0a86abdc_big_uint298, }}, {{ - 0xca53e4b6482c1396bbc7452fb661f71c44a79faaa9b5ba9dad563e35e21c26cdbfe1c8aa98_bigui298, - 0x2ce8febdb8bad8f49db73ceede9683456d3be7e29ff8e70e8edb5792e78ccb8bbe36f6819d5_bigui298, + 0xca53e4b6482c1396bbc7452fb661f71c44a79faaa9b5ba9dad563e35e21c26cdbfe1c8aa98_big_uint298, + 0x2ce8febdb8bad8f49db73ceede9683456d3be7e29ff8e70e8edb5792e78ccb8bbe36f6819d5_big_uint298, }}); constexpr g_value_type p2( {{ - 0x26c0c01f9c5ac08d1f67d8f7c140388f0e72baace84f8532cb58e60bd194772ad482dc2db24_bigui298, - 0x259768e62ff04c824f5e617ffcdafa0628e975627cdf260eed99fa18220db8134742cfba1ca_bigui298, + 0x26c0c01f9c5ac08d1f67d8f7c140388f0e72baace84f8532cb58e60bd194772ad482dc2db24_big_uint298, + 0x259768e62ff04c824f5e617ffcdafa0628e975627cdf260eed99fa18220db8134742cfba1ca_big_uint298, }}, {{ - 0x2cf2fe38bed35a4377a5aca9c9b90f328e1d9e4a301eadc8effd0f132a38e57434947f4630b_bigui298, - 0x1941e41c7b859b816fcabd405fd22922be84f518e37434df4b8244a1bf235c6d8bebdedd0fd_bigui298, + 0x2cf2fe38bed35a4377a5aca9c9b90f328e1d9e4a301eadc8effd0f132a38e57434947f4630b_big_uint298, + 0x1941e41c7b859b816fcabd405fd22922be84f518e37434df4b8244a1bf235c6d8bebdedd0fd_big_uint298, }}, {{ - 0x361a51963df89d966446b818735b9b50ad2b3c5641bfab0da37ef895f2a3504e584926cc721_bigui298, - 0x2245c06b5b8e29b0e0ce6c57dc1a79210e135e438ed8da978572589fb8795809c2d38ef0dc0_bigui298, + 0x361a51963df89d966446b818735b9b50ad2b3c5641bfab0da37ef895f2a3504e584926cc721_big_uint298, + 0x2245c06b5b8e29b0e0ce6c57dc1a79210e135e438ed8da978572589fb8795809c2d38ef0dc0_big_uint298, }}); constexpr g_value_type p_add( {{ - 0x12d011f779525b7b5d5f5f8a2dae1043fa2e5da9f1775a76dd36033011b6ad50e9de7d77f5c_bigui298, - 0x47fe4ec44216e7c32408440a632a196965a24f8e035cc0151ec66e327505cfbb573bbfa5a8_bigui298, + 0x12d011f779525b7b5d5f5f8a2dae1043fa2e5da9f1775a76dd36033011b6ad50e9de7d77f5c_big_uint298, + 0x47fe4ec44216e7c32408440a632a196965a24f8e035cc0151ec66e327505cfbb573bbfa5a8_big_uint298, }}, {{ - 0x3172399c37418fe2807f4169448475411f3f5c7ed5946715d379504f13a7bd27d7c0e70b337_bigui298, - 0xf7453acf9dfbf0da70375e100205aa6e5a0a985636e78a517892ed7fe166dca29fd90a1e55_bigui298, + 0x3172399c37418fe2807f4169448475411f3f5c7ed5946715d379504f13a7bd27d7c0e70b337_big_uint298, + 0xf7453acf9dfbf0da70375e100205aa6e5a0a985636e78a517892ed7fe166dca29fd90a1e55_big_uint298, }}, {{ - 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_bigui298, - 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_bigui298, + 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_big_uint298, + 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_big_uint298, }}); constexpr g_value_type p_sub( {{ - 0x27e2ec5fe6c03c75a49ece61e8d479b83ba7f5c194d1494ce4205b6f910d459c8ab602256ca_bigui298, - 0x38c606b68b431dc9a0ca8e54e0d7cb40ca7ed388949cc571d9284747a80229d3d05dbd7f734_bigui298, + 0x27e2ec5fe6c03c75a49ece61e8d479b83ba7f5c194d1494ce4205b6f910d459c8ab602256ca_big_uint298, + 0x38c606b68b431dc9a0ca8e54e0d7cb40ca7ed388949cc571d9284747a80229d3d05dbd7f734_big_uint298, }}, {{ - 0x2f0c28a9a31ca73a13ad70a808ae191ad926bf4259270874abb66fc34017708ea697fd5e893_bigui298, - 0x31b8bdeac49e4cef23bcd02d23194a49a06d403d4bbd68dd8b5120b90da84ff71f5203d58f6_bigui298, + 0x2f0c28a9a31ca73a13ad70a808ae191ad926bf4259270874abb66fc34017708ea697fd5e893_big_uint298, + 0x31b8bdeac49e4cef23bcd02d23194a49a06d403d4bbd68dd8b5120b90da84ff71f5203d58f6_big_uint298, }}, {{ - 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_bigui298, - 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_bigui298, + 0x2a09837cdd8680efe77f5347ac0da50257e678f38f76bcbaa1c8446248dc1b716279442f10f_big_uint298, + 0x18929e9d8a6da77075e75a3beaa2d385cab7791a6cb344d07b6763dfaba5364864940ed0cae_big_uint298, }}); constexpr g_value_type p_mul_C( {{ - 0x231f54b94ab9818a9589dcbf3a9244ed341cfab7d684e77b1c2c13574fdc70964fbfea9bb03_bigui298, - 0x2fb15e5d3c407d989b4d69106c06d8b27e605c34f12a8b9008e64565e87486e504882e0866f_bigui298, + 0x231f54b94ab9818a9589dcbf3a9244ed341cfab7d684e77b1c2c13574fdc70964fbfea9bb03_big_uint298, + 0x2fb15e5d3c407d989b4d69106c06d8b27e605c34f12a8b9008e64565e87486e504882e0866f_big_uint298, }}, {{ - 0x39f2bc82039293559d08d75dc0e7ff024f6778bd1ca4a7e11bb7ac3e918a5732ee7627522fa_bigui298, - 0x1557a37274e7367336455516935eaa561d36f2ec8894f5dda1868fe8d9cda169c8767d0055_bigui298, + 0x39f2bc82039293559d08d75dc0e7ff024f6778bd1ca4a7e11bb7ac3e918a5732ee7627522fa_big_uint298, + 0x1557a37274e7367336455516935eaa561d36f2ec8894f5dda1868fe8d9cda169c8767d0055_big_uint298, }}, {{ - 0x26e5bd64e7b7495084ef219f02bb56996d06256b106a0bd493c0188c86047df5711eb57606e_bigui298, - 0x368b1962424eb1f14bca10eed68b136effae88450d9e8b55d4d788eb0ace1355b3d55e9e55b_bigui298, + 0x26e5bd64e7b7495084ef219f02bb56996d06256b106a0bd493c0188c86047df5711eb57606e_big_uint298, + 0x368b1962424eb1f14bca10eed68b136effae88450d9e8b55d4d788eb0ace1355b3d55e9e55b_big_uint298, }}); - constexpr auto C1 = 0x2bb7bc77_bigui298; + constexpr auto C1 = 0x2bb7bc77_big_uint298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0x26726650ed2b9bc0568fabbe68508cf634d5b6332b563757c301fea0c8677c74a301ed6d304_bigui298, - 0x202a62fa559200cf31ff20c996046affee5985d0f38d49b655416866bcc8de540c7a05a4cee_bigui298, + 0x26726650ed2b9bc0568fabbe68508cf634d5b6332b563757c301fea0c8677c74a301ed6d304_big_uint298, + 0x202a62fa559200cf31ff20c996046affee5985d0f38d49b655416866bcc8de540c7a05a4cee_big_uint298, }}, {{ - 0x307dfe6cc9e141f53ce57001ce51f492196f8f04104a2a99ee28eca549f79b1e603d388d05a_bigui298, - 0x5ac431716e91aceff94567d15c3f7ae25c20bb401721cf654092805289c1fb709c7674f969_bigui298, + 0x307dfe6cc9e141f53ce57001ce51f492196f8f04104a2a99ee28eca549f79b1e603d388d05a_big_uint298, + 0x5ac431716e91aceff94567d15c3f7ae25c20bb401721cf654092805289c1fb709c7674f969_big_uint298, }}, {{ - 0x365802a6f8000d9cecf2c026bdb8636a053ab3398b091e043ca7aacc4e3cff014ac7671784a_bigui298, - 0x35c57d344509428b944c4517a26b2e71de6af80ffe81c2e582a3ef33adf4f89a830b409a30b_bigui298, + 0x365802a6f8000d9cecf2c026bdb8636a053ab3398b091e043ca7aacc4e3cff014ac7671784a_big_uint298, + 0x35c57d344509428b944c4517a26b2e71de6af80ffe81c2e582a3ef33adf4f89a830b409a30b_big_uint298, }}); - constexpr auto C2 = 0x2bb63f0d_bigui298; + constexpr auto C2 = 0x2bb63f0d_big_uint298; constexpr g_value_type_affine p_to_affine( {{ - 0xe4a4a941c54a49e9864402e2802dd02995ae0ccb2dec69d313fbef300c8e12e3079230df5b_bigui298, - 0x1d2264d6890ae100d330a744cfce4d652638d306d84f33e501157b715882ed6ea59a9e4179e_bigui298, + 0xe4a4a941c54a49e9864402e2802dd02995ae0ccb2dec69d313fbef300c8e12e3079230df5b_big_uint298, + 0x1d2264d6890ae100d330a744cfce4d652638d306d84f33e501157b715882ed6ea59a9e4179e_big_uint298, }}, {{ - 0xaf6ca9a009902c1c61f6234578a3ac5443c4c3fc8284d3837d73d778e0b354fd0bc95d46d6_bigui298, - 0x31a130fa72f42e8f7bdedaa05a9d69f08a9e5db44fbc0a4de8a5d50f9e9e48a880dca313091_bigui298, + 0xaf6ca9a009902c1c61f6234578a3ac5443c4c3fc8284d3837d73d778e0b354fd0bc95d46d6_big_uint298, + 0x31a130fa72f42e8f7bdedaa05a9d69f08a9e5db44fbc0a4de8a5d50f9e9e48a880dca313091_big_uint298, }}); static_assert(p1 + p2 == p_add, "add error"); @@ -402,40 +402,40 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt6_g1) { using g_value_type_projective = typename curve_type::g1_type::value_type; constexpr g_value_type p1( - 0x1ddb2c8af8fe69693b8f13167e2a777fe09eb91d463353c0d2206985fb5cc9a3f298b755383_bigui298, - 0xf9e00ccd15c34450589956a9ec92119be2357872a78eeab24b05b9c6049bf686722dfbc2da_bigui298, - 0x34f61578569ea7545e32977222b0ad4fd111ffb00e48bfea530f9b28148d6c66ecc25638715_bigui298); + 0x1ddb2c8af8fe69693b8f13167e2a777fe09eb91d463353c0d2206985fb5cc9a3f298b755383_big_uint298, + 0xf9e00ccd15c34450589956a9ec92119be2357872a78eeab24b05b9c6049bf686722dfbc2da_big_uint298, + 0x34f61578569ea7545e32977222b0ad4fd111ffb00e48bfea530f9b28148d6c66ecc25638715_big_uint298); constexpr g_value_type p2( - 0x335b9af13de99ba9967d434405334d3ca682f227bdcb5cafcff26ee59d9549206db3224aba8_bigui298, - 0x19df8867acc42990e842c680183e56f537fe67ed1b3a0b3b4e6a9a9d2f6b9c00728580f66bb_bigui298, - 0xc312d28a4b8dd159a148ec47a53c6f428075ee610049bf97e041058ae289176a347eeaa449_bigui298); + 0x335b9af13de99ba9967d434405334d3ca682f227bdcb5cafcff26ee59d9549206db3224aba8_big_uint298, + 0x19df8867acc42990e842c680183e56f537fe67ed1b3a0b3b4e6a9a9d2f6b9c00728580f66bb_big_uint298, + 0xc312d28a4b8dd159a148ec47a53c6f428075ee610049bf97e041058ae289176a347eeaa449_big_uint298); constexpr g_value_type p_add( - 0x3ba7cdb059289e6c2c79ac99f3c0a171e8a74d0802ae7c1dd20fe153e8b38da5e0223f741a5_bigui298, - 0x3aa9e50daf831fe1f92d2bec1d045b52201b72023b2846dd6c3013fe1f9649228dde3c437b9_bigui298, - 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_bigui298); + 0x3ba7cdb059289e6c2c79ac99f3c0a171e8a74d0802ae7c1dd20fe153e8b38da5e0223f741a5_big_uint298, + 0x3aa9e50daf831fe1f92d2bec1d045b52201b72023b2846dd6c3013fe1f9649228dde3c437b9_big_uint298, + 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_big_uint298); constexpr g_value_type p_sub( - 0x1ad61843a56ef2f3bfcf5447640bd8d441d84ab68a9ca37c818c5c5aa49776d3b9c1bb34f23_bigui298, - 0x354fc0efb6552ecb641058c423f42fff14d1655607159b5e4e4ad5f1500173bf6380b1a5449_bigui298, - 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_bigui298); + 0x1ad61843a56ef2f3bfcf5447640bd8d441d84ab68a9ca37c818c5c5aa49776d3b9c1bb34f23_big_uint298, + 0x354fc0efb6552ecb641058c423f42fff14d1655607159b5e4e4ad5f1500173bf6380b1a5449_big_uint298, + 0x1df9d34f97b980f385c6d0affcd37062d10e5ca55cc2521188c0cbd1e7a51e66b6f4a5ea223_big_uint298); constexpr g_value_type p_mul_C( - 0xdc2e25c576e7198843f161324c3d4fc163ee93f0b42122993fa41737e16618f312651de2d4_bigui298, - 0x32d35b5dd7359a5a6aa4aa7707366bd37ada05a185e416af60a9ded488ed08036d0e300cced_bigui298, - 0x2c885e23b668ab74c3cf0362b10ed725d22e474e754d90cb05aee3ba174b3c6770d860dbc6d_bigui298); - constexpr auto C1 = 0x182949bc_bigui298; + 0xdc2e25c576e7198843f161324c3d4fc163ee93f0b42122993fa41737e16618f312651de2d4_big_uint298, + 0x32d35b5dd7359a5a6aa4aa7707366bd37ada05a185e416af60a9ded488ed08036d0e300cced_big_uint298, + 0x2c885e23b668ab74c3cf0362b10ed725d22e474e754d90cb05aee3ba174b3c6770d860dbc6d_big_uint298); + constexpr auto C1 = 0x182949bc_big_uint298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( - 0x27afd87c01419311766686d035c6ebc281c18f5401ad75eb54126c79d20fd1e1e01bcba427b_bigui298, - 0x2c28ead8c2fa233ae647c9819df14cd657d4bc4e9d028bd9c22982601f0d91bfb23a56c1780_bigui298, - 0x222429673e7acd3578db38480bc1c2720cbf6a96477c13a04354f47bda90893087d7c9c3371_bigui298); - constexpr auto C2 = 0x3ea7e208_bigui298; + 0x27afd87c01419311766686d035c6ebc281c18f5401ad75eb54126c79d20fd1e1e01bcba427b_big_uint298, + 0x2c28ead8c2fa233ae647c9819df14cd657d4bc4e9d028bd9c22982601f0d91bfb23a56c1780_big_uint298, + 0x222429673e7acd3578db38480bc1c2720cbf6a96477c13a04354f47bda90893087d7c9c3371_big_uint298); + constexpr auto C2 = 0x3ea7e208_big_uint298; constexpr g_value_type_affine p_to_affine( - 0x99180b367e81aac8adcd54fd1ebd085d434d43e57304127deb54287885c301fb6a907a970f_bigui298, - 0x1358a1a7c7c7db2f60e48b38ee4845caa21958caa41743406eb5d689e666a369f82320f7aba_bigui298); + 0x99180b367e81aac8adcd54fd1ebd085d434d43e57304127deb54287885c301fb6a907a970f_big_uint298, + 0x1358a1a7c7c7db2f60e48b38ee4845caa21958caa41743406eb5d689e666a369f82320f7aba_big_uint298); static_assert(p1 + p2 == p_add, "add error"); static_assert(p1 - p2 == p_sub, "sub error"); @@ -452,118 +452,118 @@ BOOST_AUTO_TEST_CASE(curve_operation_test_mnt6_g2) { constexpr g_value_type p1( {{ - 0x15da78bbd604999fc1125b0c59287a0d3510803774c39e0392604cfc128a6a3d93197271647_bigui298, - 0x2f96c32ac6feb0c131182cb3f166f79d1d27da0acedef4886a0b1d5e23c54296b8ee7160139_bigui298, - 0x1bd181a3093c60e4508e02b99a3dfb219b2a63994c0270f15e762598441352b7a8f66289ef2_bigui298, + 0x15da78bbd604999fc1125b0c59287a0d3510803774c39e0392604cfc128a6a3d93197271647_big_uint298, + 0x2f96c32ac6feb0c131182cb3f166f79d1d27da0acedef4886a0b1d5e23c54296b8ee7160139_big_uint298, + 0x1bd181a3093c60e4508e02b99a3dfb219b2a63994c0270f15e762598441352b7a8f66289ef2_big_uint298, }}, {{ - 0x501d8d37d0eb035530f4086aab196119e1c9f9e9d742f534c5463f3d80f51ead20a19aac11_bigui298, - 0x8c6ae7d27359469281039a4ebf3d1e75427a019fb5b95c10f6e31ef3b7e638ad75129b9238_bigui298, - 0x3a8eb00bd449fb1a82609ba3c9b580ab0e97903383a3be6e4cc61d019d6fbde331ffe6b926a_bigui298, + 0x501d8d37d0eb035530f4086aab196119e1c9f9e9d742f534c5463f3d80f51ead20a19aac11_big_uint298, + 0x8c6ae7d27359469281039a4ebf3d1e75427a019fb5b95c10f6e31ef3b7e638ad75129b9238_big_uint298, + 0x3a8eb00bd449fb1a82609ba3c9b580ab0e97903383a3be6e4cc61d019d6fbde331ffe6b926a_big_uint298, }}, {{ - 0x10529eb0e3ad62508adf0a72458c7094145ffb867707b40534b93dd23c515570bb19b827b3a_bigui298, - 0xd52131aa267f5d09e19e1642771399602c1480f5d55390390ce7336be616d479f386c5ed3f_bigui298, - 0x31e30206c05edc932b953d0729a2795d5194766d9fda3e0a9530b6ff5140cf267f1bc315460_bigui298, + 0x10529eb0e3ad62508adf0a72458c7094145ffb867707b40534b93dd23c515570bb19b827b3a_big_uint298, + 0xd52131aa267f5d09e19e1642771399602c1480f5d55390390ce7336be616d479f386c5ed3f_big_uint298, + 0x31e30206c05edc932b953d0729a2795d5194766d9fda3e0a9530b6ff5140cf267f1bc315460_big_uint298, }}); constexpr g_value_type p2( {{ - 0x1966aea3f8eac82f244bb7b74afef1933b24369aee766ffffa940312f0c7d3cbc1f7b842c1d_bigui298, - 0x1ebcfc8c1f711c487edc9433a21369dd117f652107ad29761d69eb5e5ac7d3976089fc0d02d_bigui298, - 0xb6254c4b28bd678a46d94fbf17ddd107997d39da61bffcb4d31de9832dbfcd456a9a635f62_bigui298, + 0x1966aea3f8eac82f244bb7b74afef1933b24369aee766ffffa940312f0c7d3cbc1f7b842c1d_big_uint298, + 0x1ebcfc8c1f711c487edc9433a21369dd117f652107ad29761d69eb5e5ac7d3976089fc0d02d_big_uint298, + 0xb6254c4b28bd678a46d94fbf17ddd107997d39da61bffcb4d31de9832dbfcd456a9a635f62_big_uint298, }}, {{ - 0x1740a4e6686c5c21cfc4531a11b058a876e1eb78c54ab9b713fb7424fabdbe3915db906ce64_bigui298, - 0x35519cd02031c4f5f8169f77b77b01c338fd2c0dde7c1958fc6d646c15f7eb34a317283bf59_bigui298, - 0x361d88a99c1a956a86ddbfb2ce582c0005d494e6e70a63d961483d926b29a3ab8f0018bbea5_bigui298, + 0x1740a4e6686c5c21cfc4531a11b058a876e1eb78c54ab9b713fb7424fabdbe3915db906ce64_big_uint298, + 0x35519cd02031c4f5f8169f77b77b01c338fd2c0dde7c1958fc6d646c15f7eb34a317283bf59_big_uint298, + 0x361d88a99c1a956a86ddbfb2ce582c0005d494e6e70a63d961483d926b29a3ab8f0018bbea5_big_uint298, }}, {{ - 0x1178a07e802d91293cc5d121a37da8740a44c2820fae8876b4dde89e69c3f605ec632d1a22a_bigui298, - 0x13a043a487fd3c41f7f8719b7ec4d886a3a3a1a39e2e05fd88c41da757669d3f4305578023f_bigui298, - 0x281a2130ee2326a191099e093bf8f731e43f0481e9a308e1630284ba284711a2b4f5833ebd9_bigui298, + 0x1178a07e802d91293cc5d121a37da8740a44c2820fae8876b4dde89e69c3f605ec632d1a22a_big_uint298, + 0x13a043a487fd3c41f7f8719b7ec4d886a3a3a1a39e2e05fd88c41da757669d3f4305578023f_big_uint298, + 0x281a2130ee2326a191099e093bf8f731e43f0481e9a308e1630284ba284711a2b4f5833ebd9_big_uint298, }}); constexpr g_value_type p_add( {{ - 0x286ea7e4330a358a8cefd0523a6faffd55edd2fc8a886ebac349189697d792ff68a83c06e5d_bigui298, - 0x1591ca6dce1f85ca16fd330b9fc7c2238c905bdcf437248ace8e677f79393f4e4c9f2689e08_bigui298, - 0x2d19aa4b6c3e770674d594f9f60a1df1ccb6a1efc523b1b223f5b360613c4900ee1fee068f0_bigui298, + 0x286ea7e4330a358a8cefd0523a6faffd55edd2fc8a886ebac349189697d792ff68a83c06e5d_big_uint298, + 0x1591ca6dce1f85ca16fd330b9fc7c2238c905bdcf437248ace8e677f79393f4e4c9f2689e08_big_uint298, + 0x2d19aa4b6c3e770674d594f9f60a1df1ccb6a1efc523b1b223f5b360613c4900ee1fee068f0_big_uint298, }}, {{ - 0xb5a0b62486b8397124c5d8f4b4badd19e6fa0242c8058a056082cd9f18425996c6f74b5f49_bigui298, - 0x2aa0e105745810e02d21e15fd5c067b1f8ace341932b5dc665557aa297a4dbb898a6fd675e2_bigui298, - 0x21c4869ad25d55e5ac63fe01832445f57f7db6f69d210280232da4a115be4bdb43737558c8c_bigui298, + 0xb5a0b62486b8397124c5d8f4b4badd19e6fa0242c8058a056082cd9f18425996c6f74b5f49_big_uint298, + 0x2aa0e105745810e02d21e15fd5c067b1f8ace341932b5dc665557aa297a4dbb898a6fd675e2_big_uint298, + 0x21c4869ad25d55e5ac63fe01832445f57f7db6f69d210280232da4a115be4bdb43737558c8c_big_uint298, }}, {{ - 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_bigui298, - 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_bigui298, - 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_bigui298, + 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_big_uint298, + 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_big_uint298, + 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_big_uint298, }}); constexpr g_value_type p_sub( {{ - 0x38b477f6d57a1749428955eb86c10a5013fd573e61492113420dce42e7c461fcece378e2721_bigui298, - 0x2f0450a3baab9a36987082505ee28553c02745a6993d5fb46e83e4e5e2bcce3149cae39be6e_bigui298, - 0x12828908e5f99ffcd5299790c297fe6acc039e0acc4b7caecb39f8afbc87e489f7a6dfe73ba_bigui298, + 0x38b477f6d57a1749428955eb86c10a5013fd573e61492113420dce42e7c461fcece378e2721_big_uint298, + 0x2f0450a3baab9a36987082505ee28553c02745a6993d5fb46e83e4e5e2bcce3149cae39be6e_big_uint298, + 0x12828908e5f99ffcd5299790c297fe6acc039e0acc4b7caecb39f8afbc87e489f7a6dfe73ba_big_uint298, }}, {{ - 0x1d2d1879f1e03503da2d50c5d6db772c7cf2562aafbf2f99b551c2e4a666a8885161baf0aa7_bigui298, - 0x1ff619aa1c2d5e08872e53baccc57960d91845560646471e0ef1f68fd69f94c09fd0a0d7e0e_bigui298, - 0xfa8387d06db82c0d7ad20295e59bec7e51bafeeabbf805489b7bcee2f43f8a9ccb7ee38018_bigui298, + 0x1d2d1879f1e03503da2d50c5d6db772c7cf2562aafbf2f99b551c2e4a666a8885161baf0aa7_big_uint298, + 0x1ff619aa1c2d5e08872e53baccc57960d91845560646471e0ef1f68fd69f94c09fd0a0d7e0e_big_uint298, + 0xfa8387d06db82c0d7ad20295e59bec7e51bafeeabbf805489b7bcee2f43f8a9ccb7ee38018_big_uint298, }}, {{ - 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_bigui298, - 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_bigui298, - 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_bigui298, + 0xce450fcbf00c7a0071855273cd44eb809866c38a062efc57417520a00e700d6e8f464ca52f_big_uint298, + 0x3784776dcdafb623bb37158d94cfea9fe8d2f868e01bb527960c75da8f210469afb2f55c842_big_uint298, + 0xe705feaf05146e5e93f1286af29e8303160d3f47bbf19d992ad01ae1e42c675eb153ddfce7_big_uint298, }}); constexpr g_value_type p_mul_C( {{ - 0xf358e2e4f0a735ee8416253408fcb668c287608391763eea99567f2f28731e7627ea469ba7_bigui298, - 0x257a8a922bd63ed32ecb88ad4880fd586d45ca1df7e10285da4f0a9dc4d1ff835659905c004_bigui298, - 0x29c78c46f4fbaff26996deddbcf312bf8ce50adf52c32f425474afeb41760e323af03220437_bigui298, + 0xf358e2e4f0a735ee8416253408fcb668c287608391763eea99567f2f28731e7627ea469ba7_big_uint298, + 0x257a8a922bd63ed32ecb88ad4880fd586d45ca1df7e10285da4f0a9dc4d1ff835659905c004_big_uint298, + 0x29c78c46f4fbaff26996deddbcf312bf8ce50adf52c32f425474afeb41760e323af03220437_big_uint298, }}, {{ - 0xa95b7aaff44dc8ccbbf44e8aa76e6fdc3d7a7466ac8d0e0289cb3f883b98701f5566045f28_bigui298, - 0x1cdf0db54b00251d016854892591e1036ca536da3654369fc62c4133f2f3276b2eb6f490c4f_bigui298, - 0x33ac203454dd8b15577c697c2e19c1956c3f98c7543faf18b169775f0547a5011d319cc3292_bigui298, + 0xa95b7aaff44dc8ccbbf44e8aa76e6fdc3d7a7466ac8d0e0289cb3f883b98701f5566045f28_big_uint298, + 0x1cdf0db54b00251d016854892591e1036ca536da3654369fc62c4133f2f3276b2eb6f490c4f_big_uint298, + 0x33ac203454dd8b15577c697c2e19c1956c3f98c7543faf18b169775f0547a5011d319cc3292_big_uint298, }}, {{ - 0x373f09a0e36bd458c32091f03411ceeae30beef128d0a7fd15986701b5b4488dd04a0c38094_bigui298, - 0x24cd0a32c86fe5fe77085773d22a622d804c3829ea08141597e97eb00d7c665237d81ebc10d_bigui298, - 0x38d7bdb40b6cb4cd1ae9c939658fbb62618dd1346e643dca4513ad8ff2514284f1292596ed2_bigui298, + 0x373f09a0e36bd458c32091f03411ceeae30beef128d0a7fd15986701b5b4488dd04a0c38094_big_uint298, + 0x24cd0a32c86fe5fe77085773d22a622d804c3829ea08141597e97eb00d7c665237d81ebc10d_big_uint298, + 0x38d7bdb40b6cb4cd1ae9c939658fbb62618dd1346e643dca4513ad8ff2514284f1292596ed2_big_uint298, }}); - constexpr auto C1 = 0x3da94465_bigui298; + constexpr auto C1 = 0x3da94465_big_uint298; constexpr g_value_type p_mul_C1_plus_p_mul_C2( {{ - 0x26524ae056ee5ae0dd807f0e575d1383aef2d271c5aa47516a1bcdd7314933fa0b45cbaa8e9_bigui298, - 0x34a13d100b8a245841d4b7f093fae3c2b1bb339bf4774d234456492b6a54668a62d19e74c9_bigui298, - 0x228ef624a105d545e386a4033134790ca1658f228d4adf2891c7e6703dc517abbb2790892e1_bigui298, + 0x26524ae056ee5ae0dd807f0e575d1383aef2d271c5aa47516a1bcdd7314933fa0b45cbaa8e9_big_uint298, + 0x34a13d100b8a245841d4b7f093fae3c2b1bb339bf4774d234456492b6a54668a62d19e74c9_big_uint298, + 0x228ef624a105d545e386a4033134790ca1658f228d4adf2891c7e6703dc517abbb2790892e1_big_uint298, }}, {{ - 0xd7744722859fefca11bcb06c615d1ae83883bb14556ec92d67bc1a83ff53caaf469d33b395_bigui298, - 0x27df7ef0c9216ab59e9e576cd3ed2610f2fa2f739953f8fb77bd7e5e437919a29d558dad720_bigui298, - 0x194c561af60a2b6b81ac48048f7aef84c1a98c731cd95365cf61d949945600af9b6e57f94af_bigui298, + 0xd7744722859fefca11bcb06c615d1ae83883bb14556ec92d67bc1a83ff53caaf469d33b395_big_uint298, + 0x27df7ef0c9216ab59e9e576cd3ed2610f2fa2f739953f8fb77bd7e5e437919a29d558dad720_big_uint298, + 0x194c561af60a2b6b81ac48048f7aef84c1a98c731cd95365cf61d949945600af9b6e57f94af_big_uint298, }}, {{ - 0x241ab5965aa82b4f7ddcfbdf46406629a191cd1bd3b7e4de5d995649c137016db8201d68753_bigui298, - 0x2f72bc5310bd70c64445a639196240948d9bbfecd474608f68882d57e5f8e1b0bf92d684463_bigui298, - 0x3395ab796861b1a13545042bdc6e55f59a10e56cc88b1cb529eafdbf018ea0caf4533dae5d_bigui298, + 0x241ab5965aa82b4f7ddcfbdf46406629a191cd1bd3b7e4de5d995649c137016db8201d68753_big_uint298, + 0x2f72bc5310bd70c64445a639196240948d9bbfecd474608f68882d57e5f8e1b0bf92d684463_big_uint298, + 0x3395ab796861b1a13545042bdc6e55f59a10e56cc88b1cb529eafdbf018ea0caf4533dae5d_big_uint298, }}); - constexpr auto C2 = 0x33c96283_bigui298; + constexpr auto C2 = 0x33c96283_big_uint298; constexpr g_value_type_affine p_to_affine( {{ - 0x362c5501b25d0063dfa31dcf27b9862b51a8b89782424bfbfe688b2d042141e204e916aced4_bigui298, - 0x2b8f4aa9f2d7bf206f240bc12dfa029fd5c6474c7965ab5e9a764baf122ca38f10b8ed2e9aa_bigui298, - 0x39649249c1fbbf2fdf4479318167d1f7884fbc94f2644c18b40d8ca1c636d5b1afaac2808cd_bigui298, + 0x362c5501b25d0063dfa31dcf27b9862b51a8b89782424bfbfe688b2d042141e204e916aced4_big_uint298, + 0x2b8f4aa9f2d7bf206f240bc12dfa029fd5c6474c7965ab5e9a764baf122ca38f10b8ed2e9aa_big_uint298, + 0x39649249c1fbbf2fdf4479318167d1f7884fbc94f2644c18b40d8ca1c636d5b1afaac2808cd_big_uint298, }}, {{ - 0x46538ec45b82981bdf3aa73189f15304f421bb90d6762a956238a18bfe6baee0dd4d475463_bigui298, - 0x15ea8ac9b9323ebf7869211d0781fa8d04ee39f936ef38910528dab82c1b9dfa99b6d558f10_bigui298, - 0x5f297a07039e20469dd49c2b13ea266e419f1b189b7eda9d9a44787765894b9392500c9d98_bigui298, + 0x46538ec45b82981bdf3aa73189f15304f421bb90d6762a956238a18bfe6baee0dd4d475463_big_uint298, + 0x15ea8ac9b9323ebf7869211d0781fa8d04ee39f936ef38910528dab82c1b9dfa99b6d558f10_big_uint298, + 0x5f297a07039e20469dd49c2b13ea266e419f1b189b7eda9d9a44787765894b9392500c9d98_big_uint298, }}); static_assert(p1 + p2 == p_add, "add error"); diff --git a/crypto3/libs/algebra/test/fields_static.cpp b/crypto3/libs/algebra/test/fields_static.cpp index 2c4a6b016d..84b89cca36 100644 --- a/crypto3/libs/algebra/test/fields_static.cpp +++ b/crypto3/libs/algebra/test/fields_static.cpp @@ -129,17 +129,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fr) { // This is correct, bls12_fr<381> has 255-bit elements. static constexpr test_set_t elements1 = { - 0x209a9bf596288853d71eb5a070164b2d81fe36e956f8f70376712767fabb15d9_bigui255, - 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae7_bigui255, - 0x12c7c99db99e16869ecf06cbaf6683a5cd8af516e1f31d869fe85acb87b770bf_bigui255, - 0x2e6d6e4d72b2fa210f6e647530c612b5367178bbcbfed0804cf9f4046dbebaf3_bigui255, - 0x65915fd6511eb3afcf0648a4b4b1c3f298433ecaee3cdd97254aa3ce8a67303d_bigui255, - 0x413537eb2c5110a7ae3d6b40e02c965b03fc6dd2adf1ee06ece24ecff5762bb2_bigui255, - 0x01c40f7a911c57190db5382d3fc2d96473780452b78e60474add8fb7f1eddda6_bigui255, - 0x49757b377fe2a1de10c484db929a74ae02fdfae3aaab6098ea2ab8accfe613f0_bigui255, - 0x363f979f222c9970dc4291b62bc3e8d77c31c1b2caa88afeb414f3584b952000_bigui255, - 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae8_bigui255, - 0x53530b5d9374f4f45c1b2267998b8cd7d1bf6d19a90564fb898ed8970544ea28_bigui255 + 0x209a9bf596288853d71eb5a070164b2d81fe36e956f8f70376712767fabb15d9_big_uint255, + 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae7_big_uint255, + 0x12c7c99db99e16869ecf06cbaf6683a5cd8af516e1f31d869fe85acb87b770bf_big_uint255, + 0x2e6d6e4d72b2fa210f6e647530c612b5367178bbcbfed0804cf9f4046dbebaf3_big_uint255, + 0x65915fd6511eb3afcf0648a4b4b1c3f298433ecaee3cdd97254aa3ce8a67303d_big_uint255, + 0x413537eb2c5110a7ae3d6b40e02c965b03fc6dd2adf1ee06ece24ecff5762bb2_big_uint255, + 0x01c40f7a911c57190db5382d3fc2d96473780452b78e60474add8fb7f1eddda6_big_uint255, + 0x49757b377fe2a1de10c484db929a74ae02fdfae3aaab6098ea2ab8accfe613f0_big_uint255, + 0x363f979f222c9970dc4291b62bc3e8d77c31c1b2caa88afeb414f3584b952000_big_uint255, + 0x661ad4fb4d130b7afaea293348f2107d9f4a62308af88282297733628cfc5ae8_big_uint255, + 0x53530b5d9374f4f45c1b2267998b8cd7d1bf6d19a90564fb898ed8970544ea28_big_uint255 }; static constexpr const_set_t constants1 = {811706348}; check_field_operations_static(); @@ -152,22 +152,22 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x3d9cb62ebac9d6c7b94245d2d6144d500f218bb90a16a1e4f70d98fd44b4b9ee274de15a0a3d231dac1eaa449d31404_bigui381, - 0x15c88779fc8a30cca95ec4bbf71aa4c302bccf7dc571e6e45fbf1ed24989ec23dff741ca00597f4ab1fc628304e8761b_bigui381, - 0x19a252dce836ce3924f2e919247be99803aee83956135102af2ff8621dd537c2c26c1fdfa0fd517c8cbe4d274ebb8a1f_bigui381, - 0x81255d328a2533a1d51075779924ce962ac94c2beb495f956e28d5e8172559f21299c4a519e52e6e2c4882144ea4894_bigui381, - 0x4e02d210a60d52212c21056e050b7f7b6aa45c2fb85e692b1fef9e3e6fb43b2bf8103105f43daca458e4dccc9f5236c_bigui381, - 0x7b396c5d7593ad8f72848ba5ac289aa01e431772142d43c9ee1b31fa896973dc4e9bc2b4147a463b583d54893a62808_bigui381, - 0x68241cb698160ee94897ec6600bc997de3fed563dfc36a758334c71dc76a2473571cfbc0f674038ee748add41e4277a_bigui381, - 0xbb4588b98237fefeba65f928e69da9106c690e02c70361947b39d0f5a6d462096431d375d4b66ae7e4daef9f2400a09_bigui381, - 0x2e7ebd9b39f65a9485b32b52269baa84b2d33a80c8747c994b1e58c0caa09b4acf7685583898549db1029a1de657d8a_bigui381, - 0x4388a703cf5b5cda1bce2fa4c31081461ba7c072e132bdb0771b3cead270a003eb4be34b0fa80b508029d7cfb173490_bigui381, - 0x162746874dd3492dcf87835915ea6802638532c962e3a8a117bff9112265aa853c3721e910b02dcddf3d155bb62c96a7_bigui381}; + 0x3d9cb62ebac9d6c7b94245d2d6144d500f218bb90a16a1e4f70d98fd44b4b9ee274de15a0a3d231dac1eaa449d31404_big_uint381, + 0x15c88779fc8a30cca95ec4bbf71aa4c302bccf7dc571e6e45fbf1ed24989ec23dff741ca00597f4ab1fc628304e8761b_big_uint381, + 0x19a252dce836ce3924f2e919247be99803aee83956135102af2ff8621dd537c2c26c1fdfa0fd517c8cbe4d274ebb8a1f_big_uint381, + 0x81255d328a2533a1d51075779924ce962ac94c2beb495f956e28d5e8172559f21299c4a519e52e6e2c4882144ea4894_big_uint381, + 0x4e02d210a60d52212c21056e050b7f7b6aa45c2fb85e692b1fef9e3e6fb43b2bf8103105f43daca458e4dccc9f5236c_big_uint381, + 0x7b396c5d7593ad8f72848ba5ac289aa01e431772142d43c9ee1b31fa896973dc4e9bc2b4147a463b583d54893a62808_big_uint381, + 0x68241cb698160ee94897ec6600bc997de3fed563dfc36a758334c71dc76a2473571cfbc0f674038ee748add41e4277a_big_uint381, + 0xbb4588b98237fefeba65f928e69da9106c690e02c70361947b39d0f5a6d462096431d375d4b66ae7e4daef9f2400a09_big_uint381, + 0x2e7ebd9b39f65a9485b32b52269baa84b2d33a80c8747c994b1e58c0caa09b4acf7685583898549db1029a1de657d8a_big_uint381, + 0x4388a703cf5b5cda1bce2fa4c31081461ba7c072e132bdb0771b3cead270a003eb4be34b0fa80b508029d7cfb173490_big_uint381, + 0x162746874dd3492dcf87835915ea6802638532c962e3a8a117bff9112265aa853c3721e910b02dcddf3d155bb62c96a7_big_uint381}; static constexpr const_set_t constants1 = {865433380}; check_field_operations_static(); constexpr value_type not_square1 = { - 0x122ca301fc65d4c9fd02b7d919e691c448b3209081835c99fab65c12c0e60a25f7eabe1b506e494b45175b95a4a9ebfe_bigui381, + 0x122ca301fc65d4c9fd02b7d919e691c448b3209081835c99fab65c12c0e60a25f7eabe1b506e494b45175b95a4a9ebfe_big_uint381, }; static_assert(not_square1.is_square() == false, "not square error"); static_assert(not_square1.pow(2).is_square() == true, "square error"); @@ -181,55 +181,55 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq2) { static constexpr test_set_t elements1 = { {{ - 0x5aa9d5160c21229d4c73871dab039631da3722131b00713055854b2e6ff4f8abe4430358fc70ba351fda87dc9abdbb2_bigui381, - 0x2ccc1503d823ead782507cf3eb7c6b03ec4503bf8bb725111abe86ce8809f9c52ed32fa7178cdeb057f8ddb351b2de4_bigui381, + 0x5aa9d5160c21229d4c73871dab039631da3722131b00713055854b2e6ff4f8abe4430358fc70ba351fda87dc9abdbb2_big_uint381, + 0x2ccc1503d823ead782507cf3eb7c6b03ec4503bf8bb725111abe86ce8809f9c52ed32fa7178cdeb057f8ddb351b2de4_big_uint381, }, { - 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_bigui381, - 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_bigui381, + 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_big_uint381, + 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_big_uint381, }, { - 0x143ae02ecca5b64e58fa08cdba44639e93186c4b2c6c1df04ca34e6931e9ccf92519ee4144ccb520b90e0582270a2eef_bigui381, - 0xa6a45c3e8dcb337fb46adc8d595a51cf967475fb8bb418eb81c2e29fab05afff20bd847cd4095c7cf4e575e81819d1b_bigui381, + 0x143ae02ecca5b64e58fa08cdba44639e93186c4b2c6c1df04ca34e6931e9ccf92519ee4144ccb520b90e0582270a2eef_big_uint381, + 0xa6a45c3e8dcb337fb46adc8d595a51cf967475fb8bb418eb81c2e29fab05afff20bd847cd4095c7cf4e575e81819d1b_big_uint381, }, { - 0x111b6c5e2e5e549f9bb00fcc3e67bbff0ca5c37c2a7902f5253e2d9d92c5c840761a72288c156225a4ec4b796c4d3320_bigui381, - 0x15304ec6cba7b0bd401f098beb25951ae898a49d2c40b5d2d26c7550cd01da5cd27a8dabc705060df5afc457e8b46958_bigui381, + 0x111b6c5e2e5e549f9bb00fcc3e67bbff0ca5c37c2a7902f5253e2d9d92c5c840761a72288c156225a4ec4b796c4d3320_big_uint381, + 0x15304ec6cba7b0bd401f098beb25951ae898a49d2c40b5d2d26c7550cd01da5cd27a8dabc705060df5afc457e8b46958_big_uint381, }, { - 0x16c00305e0c73e7c87eff62ffcadc3b54e06d73bc6ba13bf64a6e12881b3be9a8bd441e174fa59bb75287609946ad160_bigui381, - 0x121e6a16e0b5a24b03bbb18ffb108c934781f5ecde689729b47c69a575592c4f6e3cf19d34140428cbf71a48dfef8bcb_bigui381, + 0x16c00305e0c73e7c87eff62ffcadc3b54e06d73bc6ba13bf64a6e12881b3be9a8bd441e174fa59bb75287609946ad160_big_uint381, + 0x121e6a16e0b5a24b03bbb18ffb108c934781f5ecde689729b47c69a575592c4f6e3cf19d34140428cbf71a48dfef8bcb_big_uint381, }, { - 0xb553aa2c1842453a98e70e3b56072c63b46e44263600e260ab0a965cdfe9f157c88606b1f8e1746a3fb50fb9357b764_bigui381, - 0x59982a07b047d5af04a0f9e7d6f8d607d88a077f176e4a22357d0d9d1013f38a5da65f4e2f19bd60aff1bb66a365bc8_bigui381, + 0xb553aa2c1842453a98e70e3b56072c63b46e44263600e260ab0a965cdfe9f157c88606b1f8e1746a3fb50fb9357b764_big_uint381, + 0x59982a07b047d5af04a0f9e7d6f8d607d88a077f176e4a22357d0d9d1013f38a5da65f4e2f19bd60aff1bb66a365bc8_big_uint381, }, { - 0x1004f42fded04e85fa8e21b945dc955abd3b349e52494a628d102e1240123038bdadd47f92750bdb8355b798d119a030_bigui381, - 0xe7eeef4fb0a1d7470dad9548096233fcf664d7178e62b8c8d716197b84e31d7da79bbf5be757d63519b997c81d5c95e_bigui381, + 0x1004f42fded04e85fa8e21b945dc955abd3b349e52494a628d102e1240123038bdadd47f92750bdb8355b798d119a030_big_uint381, + 0xe7eeef4fb0a1d7470dad9548096233fcf664d7178e62b8c8d716197b84e31d7da79bbf5be757d63519b997c81d5c95e_big_uint381, }, { - 0xef716581f3a2e7e2bf0f2850ea9bd3bbccf4933d4f4dcf616b181e1a894eb07e194b611cf5a2d532637b6ae800e33b6_bigui381, - 0x2054d1d319feb67161dcd0ba4ab91a498197d89f44158513b8ddee4e46a8b50b6752621e17a61e0952d6daf2e0d9e8a_bigui381, + 0xef716581f3a2e7e2bf0f2850ea9bd3bbccf4933d4f4dcf616b181e1a894eb07e194b611cf5a2d532637b6ae800e33b6_big_uint381, + 0x2054d1d319feb67161dcd0ba4ab91a498197d89f44158513b8ddee4e46a8b50b6752621e17a61e0952d6daf2e0d9e8a_big_uint381, }, { - 0x9f218e6d8b2f410874af5f7a8290dfa6ba23f059630fc7afe87138081863aed2730b5b19c3945c3bf5a03780d276861_bigui381, - 0x120c0b9fea1fdde517eee773dc43ba6c0f14b8594a7fd86e93b40a71e7ae9b118444713de4606eedc4391acfab10218a_bigui381, + 0x9f218e6d8b2f410874af5f7a8290dfa6ba23f059630fc7afe87138081863aed2730b5b19c3945c3bf5a03780d276861_big_uint381, + 0x120c0b9fea1fdde517eee773dc43ba6c0f14b8594a7fd86e93b40a71e7ae9b118444713de4606eedc4391acfab10218a_big_uint381, }, { - 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_bigui381, - 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_bigui381, + 0xe9042dd6be3a4248432d05bdf942a3b7574fa29fabc16dd474af9b64aea7d6e66d5be0bb505a97d67105d045d5e533d_big_uint381, + 0x79d8473ab5a748a8321a5f996ddde6cbaa2f723bfffcf3da67045bd122fbb639f1ea54d5bc7c7dcc9cec9834c666f37_big_uint381, }, { - 0x14567498d8bdd47076546f44689b737446d3d963c1d50bac61d87dee0fb1a6996067cfc9218cf45c680157823653cef9_bigui381, - 0x17345099fbfda7ecd2f69fe70493e62725b2fb48fac9a06e5584ea340e305687cbbecd043fdb3214b47f7224cae47cc7_bigui381, + 0x14567498d8bdd47076546f44689b737446d3d963c1d50bac61d87dee0fb1a6996067cfc9218cf45c680157823653cef9_big_uint381, + 0x17345099fbfda7ecd2f69fe70493e62725b2fb48fac9a06e5584ea340e305687cbbecd043fdb3214b47f7224cae47cc7_big_uint381, }}}; static constexpr const_set_t constants1 = {928943650}; check_field_operations_static(); constexpr value_type not_square1 = { - 0x72076a0fb063f674c504b550525707cbea30259021a274bc9dcba7a9fdaf9e36011466eea87f70870c4b91a400d3395_bigui381, - 0x1127508c363a11a7b6f6572124fe882786e91ad0a2ce25e139949d37b8a3d6f6392920c23b07e3896dd4e8f743c2567f_bigui381, + 0x72076a0fb063f674c504b550525707cbea30259021a274bc9dcba7a9fdaf9e36011466eea87f70870c4b91a400d3395_big_uint381, + 0x1127508c363a11a7b6f6572124fe882786e91ad0a2ce25e139949d37b8a3d6f6392920c23b07e3896dd4e8f743c2567f_big_uint381, }; static_assert(not_square1.is_square() == false, "not square error"); static_assert(not_square1.pow(2).is_square() == true, "square error"); @@ -242,129 +242,129 @@ BOOST_AUTO_TEST_CASE(field_operation_test_bls12_381_fq6) { using const_set_t = std::array; constexpr value_type element1( - {{0xe35bdcd1e6bea40fb5a65a36a415ef84cb2260e7c7a21b479352a56a257128bbd2f6b8e5d96dca7917292801387ca3f_bigui381, - 0x842c6e159819c8c3119def19ef737ef9d412ac4f720e96f807739f66f612fc3efa0ddefa8948bb897af24c57ffb0847_bigui381}}, - {{0x530d34cbd121e5d4889dc058b70e8c4d1113cb8fda0d324ca7c04e86b39f93a569946fb5896e04494e99aab3af56417_bigui381, - 0x66c9141b489a64a63108c7b1f019e760e4475a1c3deb8ca5805758a8d3bc99bba1e9cac8f610e9bc7b8ef295527957d_bigui381}}, - {{0x191648b522c815d6b754d0ae9811b8009faa26fad2fa9ebe1ec57d29575c5667cbf0cae8e048167f55b9f5f107de315_bigui381, - 0x18874ddc2384d2512f6b9c61dc1650f8c3f013e86e260af76dd326c6505041962b4c652db429eb9751788d323a9fe14d_bigui381}}); + {{0xe35bdcd1e6bea40fb5a65a36a415ef84cb2260e7c7a21b479352a56a257128bbd2f6b8e5d96dca7917292801387ca3f_big_uint381, + 0x842c6e159819c8c3119def19ef737ef9d412ac4f720e96f807739f66f612fc3efa0ddefa8948bb897af24c57ffb0847_big_uint381}}, + {{0x530d34cbd121e5d4889dc058b70e8c4d1113cb8fda0d324ca7c04e86b39f93a569946fb5896e04494e99aab3af56417_big_uint381, + 0x66c9141b489a64a63108c7b1f019e760e4475a1c3deb8ca5805758a8d3bc99bba1e9cac8f610e9bc7b8ef295527957d_big_uint381}}, + {{0x191648b522c815d6b754d0ae9811b8009faa26fad2fa9ebe1ec57d29575c5667cbf0cae8e048167f55b9f5f107de315_big_uint381, + 0x18874ddc2384d2512f6b9c61dc1650f8c3f013e86e260af76dd326c6505041962b4c652db429eb9751788d323a9fe14d_big_uint381}}); constexpr value_type element2( {{ - 0x12c6da93e6f1749bb5b55d45be19c3447ac88cefa858ff5ed5eccb5e8cb36ccf8923ed675278d5ed0b21f04d3770e191_bigui381, - 0x298353679126c9fad35a3ea30ab0a3307a256877ca8689641bc43d1689c801d215110906ed9ef31c0f03df8e1a1bbac_bigui381, + 0x12c6da93e6f1749bb5b55d45be19c3447ac88cefa858ff5ed5eccb5e8cb36ccf8923ed675278d5ed0b21f04d3770e191_big_uint381, + 0x298353679126c9fad35a3ea30ab0a3307a256877ca8689641bc43d1689c801d215110906ed9ef31c0f03df8e1a1bbac_big_uint381, }}, {{ - 0x19af88a6400fc27b35efde0bfd718cb83f7cf34abc1a66ae709a889084847930a94b1b706a3e0d8859f77c6cbdfb005c_bigui381, - 0x11d0d2e8f588862f71072a1131d2a680183e37687d73ea2271c50233e63be12dd7e3ced525de82aefde44d9c7dc4548d_bigui381, + 0x19af88a6400fc27b35efde0bfd718cb83f7cf34abc1a66ae709a889084847930a94b1b706a3e0d8859f77c6cbdfb005c_big_uint381, + 0x11d0d2e8f588862f71072a1131d2a680183e37687d73ea2271c50233e63be12dd7e3ced525de82aefde44d9c7dc4548d_big_uint381, }}, {{ - 0x3953b4d910cbcf606bd2e1cff60d71686058fe97df3f565e38c5eb62919e761123f27da473b7d74ab1b2c263acf8a67_bigui381, - 0xa5b6acd4357f48cdb0d890dc2f1dd294ca52aa4a63423b4208fa9b3865f6e6f663b02505b64d3383423ab07f155b0e0_bigui381, + 0x3953b4d910cbcf606bd2e1cff60d71686058fe97df3f565e38c5eb62919e761123f27da473b7d74ab1b2c263acf8a67_big_uint381, + 0xa5b6acd4357f48cdb0d890dc2f1dd294ca52aa4a63423b4208fa9b3865f6e6f663b02505b64d3383423ab07f155b0e0_big_uint381, }}); constexpr value_type element_add( {{ - 0x6fb8676cbdd784265f41b32e50f756563036779314e0e53e7f123143859893727a758f6febbb294e29582cd4af90125_bigui381, - 0xadafc17d294092bde4f82dbcfa24222a4e3814c73c95205c2337dc7d7fdafe110f1ee80176e7aea589f62be619cc3f3_bigui381, + 0x6fb8676cbdd784265f41b32e50f756563036779314e0e53e7f123143859893727a758f6febbb294e29582cd4af90125_big_uint381, + 0xadafc17d294092bde4f82dbcfa24222a4e3814c73c95205c2337dc7d7fdafe110f1ee80176e7aea589f62be619cc3f3_big_uint381, }}, {{ - 0x4df4a08c3a1fa3e335e125b4596c8a5ac16e47ec6362713d3e5bad7f90d7c46e138626d1180edcd34e21717f8f0b9c8_bigui381, - 0x183d642aaa122c79d417b68c50d444f62682ad0a4152a2ecc9ca77be7377aac992026b81b53f914ac59d3cc5d2ebea0a_bigui381, + 0x4df4a08c3a1fa3e335e125b4596c8a5ac16e47ec6362713d3e5bad7f90d7c46e138626d1180edcd34e21717f8f0b9c8_big_uint381, + 0x183d642aaa122c79d417b68c50d444f62682ad0a4152a2ecc9ca77be7377aac992026b81b53f914ac59d3cc5d2ebea0a_big_uint381, }}, {{ - 0x5269fd8e3393e5372327b27e8e1f296900032592b239f51c578b688be8facc78efe3488d53ffedca076cb854b4d6d7c_bigui381, - 0x8e1a6bf2d5ce043bf5d7db95bbc814aac1df30820d51bec2731fdd8dffeb9e172db677f5e3abecfcb9d383a2bf5e782_bigui381, + 0x5269fd8e3393e5372327b27e8e1f296900032592b239f51c578b688be8facc78efe3488d53ffedca076cb854b4d6d7c_big_uint381, + 0x8e1a6bf2d5ce043bf5d7db95bbc814aac1df30820d51bec2731fdd8dffeb9e172db677f5e3abecfcb9d383a2bf5e782_big_uint381, }}); constexpr value_type element_sub( {{ - 0x156ff52370fa5c3f90c0b013ef73488b3660e4a3c7a635150a7931990c549be052b77e25bc7206ba404fa232dc169359_bigui381, - 0x5aa91aae06f2fec83e43b076e4c2dbc959ed43d7a7880d93ebaf62506c4afa6ce4fcd5f39ba9c86d6bee6cc9e594c9b_bigui381, + 0x156ff52370fa5c3f90c0b013ef73488b3660e4a3c7a635150a7931990c549be052b77e25bc7206ba404fa232dc169359_big_uint381, + 0x5aa91aae06f2fec83e43b076e4c2dbc959ed43d7a7880d93ebaf62506c4afa6ce4fcd5f39ba9c86d6bee6cc9e594c9b_big_uint381, }}, {{ - 0x5825c90b682427c5db5a5afd14b08e3f60b94f3350b7f35c1124ef8dd66762dcbfa2b899facd2bbf4f11e3e7cfa0e66_bigui381, - 0xe9cd042f88106b53d250a20307aa4cd5a7d89be39efe1674d7145f79db0de9200e6cdd61ad68bec83d3a18cd762eb9b_bigui381, + 0x5825c90b682427c5db5a5afd14b08e3f60b94f3350b7f35c1124ef8dd66762dcbfa2b899facd2bbf4f11e3e7cfa0e66_big_uint381, + 0xe9cd042f88106b53d250a20307aa4cd5a7d89be39efe1674d7145f79db0de9200e6cdd61ad68bec83d3a18cd762eb9b_big_uint381, }}, {{ - 0x17fd3b27fa9fab01afd3c6a42d6bf140e86c5e0b22c0c7456590cbbd630cd429892be4d2f81d03f3043f7338d5ae0359_bigui381, - 0xe2be30ee02cddc4545e1354192473cf774ae943c7f1e7434d437d12c9f0d326c51162dd58c5185f1d54e22a494a306d_bigui381, + 0x17fd3b27fa9fab01afd3c6a42d6bf140e86c5e0b22c0c7456590cbbd630cd429892be4d2f81d03f3043f7338d5ae0359_big_uint381, + 0xe2be30ee02cddc4545e1354192473cf774ae943c7f1e7434d437d12c9f0d326c51162dd58c5185f1d54e22a494a306d_big_uint381, }}); constexpr value_type element_mul( {{ - 0xee860564acc5f0b9735eeb963c12b5f13e7185ee07cc64faa29f7625722ab4f22c5de62ba7bfbb2f4b89271e1c08cf5_bigui381, - 0x15da2707b1131595a4c8f52d21033bf4effa6f8bb329b87ff145c246996a06e5658f600cf48194d3de04de2b12440b05_bigui381, + 0xee860564acc5f0b9735eeb963c12b5f13e7185ee07cc64faa29f7625722ab4f22c5de62ba7bfbb2f4b89271e1c08cf5_big_uint381, + 0x15da2707b1131595a4c8f52d21033bf4effa6f8bb329b87ff145c246996a06e5658f600cf48194d3de04de2b12440b05_big_uint381, }}, {{ - 0x7d5becd415aa1ab429792cd7886c38f099b8822fe2addde4be8a4d6474b942ca3e1748e05f554399c4b91cd3b3f16a8_bigui381, - 0xa76f981e0a2529242f4ff7aed73d90f0edbbf42fb6eeafe7c2c1b00a06410cffd8aeb068642fd6acdc620d34b112d4c_bigui381, + 0x7d5becd415aa1ab429792cd7886c38f099b8822fe2addde4be8a4d6474b942ca3e1748e05f554399c4b91cd3b3f16a8_big_uint381, + 0xa76f981e0a2529242f4ff7aed73d90f0edbbf42fb6eeafe7c2c1b00a06410cffd8aeb068642fd6acdc620d34b112d4c_big_uint381, }}, {{ - 0x13cf641327fca9e6e6f030760e3c15db66560f38f9e3c0b01c145a618cabeff77a4eecb05ce3dd6fbcbacefd30be8d06_bigui381, - 0xc6d2165eb733e306f8cb4fa077fbcf150ddca205f82ed83018a9f25df5356029d6cebbcd949869db0d1fde551fbe5fb_bigui381, + 0x13cf641327fca9e6e6f030760e3c15db66560f38f9e3c0b01c145a618cabeff77a4eecb05ce3dd6fbcbacefd30be8d06_big_uint381, + 0xc6d2165eb733e306f8cb4fa077fbcf150ddca205f82ed83018a9f25df5356029d6cebbcd949869db0d1fde551fbe5fb_big_uint381, }}); constexpr value_type element_dbl( {{ - 0x26a69b00357ede7ab9923909137111934ed0098056f30a98b39820c4dfd2ef35bb2d71e09d9b94f68e62500270fe9d3_bigui381, - 0x10858dc2b30339186233bde33dee6fdf3a825589ee41d2df00ee73ecdec25f87df41bbdf512917712f5e498afff6108e_bigui381, + 0x26a69b00357ede7ab9923909137111934ed0098056f30a98b39820c4dfd2ef35bb2d71e09d9b94f68e62500270fe9d3_big_uint381, + 0x10858dc2b30339186233bde33dee6fdf3a825589ee41d2df00ee73ecdec25f87df41bbdf512917712f5e498afff6108e_big_uint381, }}, {{ - 0xa61a6997a243cba9113b80b16e1d189a2227971fb41a64994f809d0d673f274ad328df6b12dc08929d3355675eac82e_bigui381, - 0xcd9228369134c94c62118f63e033cec1c88eb4387bd7194b00aeb151a779337743d39591ec21d378f71de52aa4f2afa_bigui381, + 0xa61a6997a243cba9113b80b16e1d189a2227971fb41a64994f809d0d673f274ad328df6b12dc08929d3355675eac82e_big_uint381, + 0xcd9228369134c94c62118f63e033cec1c88eb4387bd7194b00aeb151a779337743d39591ec21d378f71de52aa4f2afa_big_uint381, }}, {{ - 0x322c916a45902bad6ea9a15d302370013f544df5a5f53d7c3d8afa52aeb8accf97e195d1c0902cfeab73ebe20fbc62a_bigui381, - 0x170d89ce0d89be0813bb910d74e0f51a2368dc4be8c7032f74757aeba9ef8d0837ecca5cb6ffd72ee8f21a64754017ef_bigui381, + 0x322c916a45902bad6ea9a15d302370013f544df5a5f53d7c3d8afa52aeb8accf97e195d1c0902cfeab73ebe20fbc62a_big_uint381, + 0x170d89ce0d89be0813bb910d74e0f51a2368dc4be8c7032f74757aeba9ef8d0837ecca5cb6ffd72ee8f21a64754017ef_big_uint381, }}); constexpr value_type element_inv( {{ - 0x12ee7ea5e0d228be7def0065aadeb7da8095517cb58fc1db216d0b7b2d744534757ae10609732ec72999898bdbbdf399_bigui381, - 0x6626a59529d1a4a5639122be3bf0c9840f0c47e083a6d2d7fd8fb11400d19efe488e987e3fcf90ae89d098fae2adb15_bigui381, + 0x12ee7ea5e0d228be7def0065aadeb7da8095517cb58fc1db216d0b7b2d744534757ae10609732ec72999898bdbbdf399_big_uint381, + 0x6626a59529d1a4a5639122be3bf0c9840f0c47e083a6d2d7fd8fb11400d19efe488e987e3fcf90ae89d098fae2adb15_big_uint381, }}, {{ - 0x987d5a6a07024d1728020ddc12fe8359aaa166216145d3830e01f8c397aa1b5b0df5b42f4c82b8481f8b327b20fc8b7_bigui381, - 0xd4566bba6b0d25880bb0c3be74ae401b0988116914166df91f1a61af5af32a7aec7967d12e040e528629136a3c8c9bc_bigui381, + 0x987d5a6a07024d1728020ddc12fe8359aaa166216145d3830e01f8c397aa1b5b0df5b42f4c82b8481f8b327b20fc8b7_big_uint381, + 0xd4566bba6b0d25880bb0c3be74ae401b0988116914166df91f1a61af5af32a7aec7967d12e040e528629136a3c8c9bc_big_uint381, }}, {{ - 0xd7a5de8dc422548facb0cd895f0fb045dbbf0872d5c257a91720916fc59552d14879c0a1954661e452606be48cf7bc6_bigui381, - 0x41669d95d4700d9d78b96f4292bfa008b60170188c8f6737157800c6cb8bd8887afa3411ff6e700f89f480ba8b889a3_bigui381, + 0xd7a5de8dc422548facb0cd895f0fb045dbbf0872d5c257a91720916fc59552d14879c0a1954661e452606be48cf7bc6_big_uint381, + 0x41669d95d4700d9d78b96f4292bfa008b60170188c8f6737157800c6cb8bd8887afa3411ff6e700f89f480ba8b889a3_big_uint381, }}); constexpr value_type element_pow_C( {{ - 0x289ab5220ebbed9d65e184825cc39c3ad9288269839db599ddc54fed213cb8dc29f668ef33a28352cb76133d3003f3b_bigui381, - 0x1924a52997eef1bd7ae41fb0ec3983e4cf1c6c2da62ad149e6f4d4bdbad63f701c5cff340d29d23516d058aea2deb5b4_bigui381, + 0x289ab5220ebbed9d65e184825cc39c3ad9288269839db599ddc54fed213cb8dc29f668ef33a28352cb76133d3003f3b_big_uint381, + 0x1924a52997eef1bd7ae41fb0ec3983e4cf1c6c2da62ad149e6f4d4bdbad63f701c5cff340d29d23516d058aea2deb5b4_big_uint381, }}, {{ - 0xcd023da96a2033fd26952aecdaad57c57f62ba9ce4864486d81991f8fcd8075b736cf799ee243d8d9291c20285dfc5d_bigui381, - 0x146f298a42cf556357a296833b14967329b954633f3b0dff55fbd269317c79d1d67ae65c6626032261fda641f7121f1_bigui381, + 0xcd023da96a2033fd26952aecdaad57c57f62ba9ce4864486d81991f8fcd8075b736cf799ee243d8d9291c20285dfc5d_big_uint381, + 0x146f298a42cf556357a296833b14967329b954633f3b0dff55fbd269317c79d1d67ae65c6626032261fda641f7121f1_big_uint381, }}, {{ - 0x18da863345461ccc88fa8918d151de5fa527839e59ece3575c73ab805a78f66e712974f2e27e641e18731934dd72c484_bigui381, - 0x7e8b156d32a43b79e904543ff5e79949488e5993c6a86c976b07826ec0b48957b4de5287333bd3452cfb34aabc63db8_bigui381, + 0x18da863345461ccc88fa8918d151de5fa527839e59ece3575c73ab805a78f66e712974f2e27e641e18731934dd72c484_big_uint381, + 0x7e8b156d32a43b79e904543ff5e79949488e5993c6a86c976b07826ec0b48957b4de5287333bd3452cfb34aabc63db8_big_uint381, }}); constexpr int C1 = 980386333; constexpr value_type element_pow_2( {{ - 0xd021823530aa495ad91e8ef633c8b36a6c6d5e5812fdb235aa35082f610dd3e5417f3f9b5476a5715bad9a03f41f531_bigui381, - 0x2ea43195614413f4c50621a1113ebc172ebb7d6233f741e4cc6c668d11937364a33df9bd3aec396eebc57c37d51cd19_bigui381, + 0xd021823530aa495ad91e8ef633c8b36a6c6d5e5812fdb235aa35082f610dd3e5417f3f9b5476a5715bad9a03f41f531_big_uint381, + 0x2ea43195614413f4c50621a1113ebc172ebb7d6233f741e4cc6c668d11937364a33df9bd3aec396eebc57c37d51cd19_big_uint381, }}, {{ - 0xe28656d2e81bf9db44a2ed61847fcf8d1413b99a8e4f056cb8d33cc72953745cb3d9142ff9c1270741cf8e91ee7017a_bigui381, - 0x101cb4244b677c1f85235503d9215dd97521158b008bf22fcea5700a1bd7b9e83ecaa5c371e4259727b6984781409022_bigui381, + 0xe28656d2e81bf9db44a2ed61847fcf8d1413b99a8e4f056cb8d33cc72953745cb3d9142ff9c1270741cf8e91ee7017a_big_uint381, + 0x101cb4244b677c1f85235503d9215dd97521158b008bf22fcea5700a1bd7b9e83ecaa5c371e4259727b6984781409022_big_uint381, }}, {{ - 0x96d2835c975421e540a1d70cdbbcf1f90ea98c39d5b894ab7185ae631efd6e4d0aa3896dca1cd280031806546151d9d_bigui381, - 0x194d9e3edf767e4c871506bf5d9b026f0998d835e46f1dd4717ba13922b78fec335ca5d9d1305420269bf7a423540b84_bigui381, + 0x96d2835c975421e540a1d70cdbbcf1f90ea98c39d5b894ab7185ae631efd6e4d0aa3896dca1cd280031806546151d9d_big_uint381, + 0x194d9e3edf767e4c871506bf5d9b026f0998d835e46f1dd4717ba13922b78fec335ca5d9d1305420269bf7a423540b84_big_uint381, }}); constexpr value_type minus_element( {{ - 0xbcb541d1b13fc594fc14212d90a4ddf17c52576770af10aedfba84a5459e398617c947053bd2358288c6d7fec77e06c_bigui381, - 0x11be4b08dffe4a0e1a01c8c4a45474e7c73620bffc64294fe6b998aa874fc6602f0b220f08bf7447224fdb3a8004a264_bigui381, + 0xbcb541d1b13fc594fc14212d90a4ddf17c52576770af10aedfba84a5459e398617c947053bd2358288c6d7fec77e06c_big_uint381, + 0x11be4b08dffe4a0e1a01c8c4a45474e7c73620bffc64294fe6b998aa874fc6602f0b220f08bf7447224fdb3a8004a264_big_uint381, }}, {{ - 0x14d03e9d7c6dc83d0291cbb0b7dac41293660ecbf5e43f9a9cb4cdb88b76fce9c812b90358bd1fbb25156554c50a4694_bigui381, - 0x139480a884f6404fe80b1b3b244a0e615632d5e32fa659f50f2b5d1669752c88648d635221f2f163f24610d6aad8152e_bigui381, + 0x14d03e9d7c6dc83d0291cbb0b7dac41293660ecbf5e43f9a9cb4cdb88b76fce9c812b90358bd1fbb25156554c50a4694_big_uint381, + 0x139480a884f6404fe80b1b3b244a0e615632d5e32fa659f50f2b5d1669752c88648d635221f2f163f24610d6aad8152e_big_uint381, }}, {{ - 0x186fad5ee753653cdfa65aab59ca91575a7ca915465568d385447ace613b30bda1ecf350234f7e97c4a360a0ef81c796_bigui381, - 0x179c40e15fb14491bb00b5467355bdea087379c855f07c7f95dabdaa660b48df35f9ad0fd2a1468688672cdc55fc95e_bigui381, + 0x186fad5ee753653cdfa65aab59ca91575a7ca915465568d385447ace613b30bda1ecf350234f7e97c4a360a0ef81c796_big_uint381, + 0x179c40e15fb14491bb00b5467355bdea087379c855f07c7f95dabdaa660b48df35f9ad0fd2a1468688672cdc55fc95e_big_uint381, }}); static constexpr test_set_t elements1 = { @@ -391,17 +391,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x1a1f0b89abd62c63c669a0cafeaa872558eeb1dffedc21f8ded61768d6ae02a0b973de3139b_bigui298, - 0x13557b8d70144c7c1a18ce98b3f9f52fbadbcda323d5cb293304f09f24b8ce2cf00cce7a2e9_bigui298, - 0x2d7487171bea78dfe0826f63b2a47c5513ca7f8322b1ed2211db0807fb66d0cda980acab684_bigui298, - 0x6c98ffc3bc1dfe7ac50d2324ab091f59e12e43cdb0656cfabd126c9b1f53473c9670fb70b2_bigui298, - 0x1a2fe564e8a33991ffa2e6ae2b09192db6f041ebc2019591666e27112edf80a4b1ca21f8721_bigui298, - 0x343e171357ac58c78cd34195fd550e4ab1dd63bffdb843f1bdac2ed1ad5c054172e7bc62736_bigui298, - 0x33d2be79b5b111967f10c7e3873bdf19f47ca81c5eee3601cbe0514fbde6a5f756a0e47b663_bigui298, - 0x70c2a23f094063c8a1f7cad92abfa0e8988973db14a1d71dcd1e2706fdbd57204f00e60df5_bigui298, - 0xc5b94b8804b94b443d9fd27dd32200114bccb9ffa650ad2ef53048c53ad1c8723e31f1ba90_bigui298, - 0x287a003fd725d9e62fc1ac6c94f2b9bcdb5a038feace4f7502e02161bc73c2a0759a47e5d18_bigui298, - 0x21b070439b63f9fe8370da3a4a4227c73d471f530fc7f8a5570efa980a7e8e2cac33382ec66_bigui298}; + 0x1a1f0b89abd62c63c669a0cafeaa872558eeb1dffedc21f8ded61768d6ae02a0b973de3139b_big_uint298, + 0x13557b8d70144c7c1a18ce98b3f9f52fbadbcda323d5cb293304f09f24b8ce2cf00cce7a2e9_big_uint298, + 0x2d7487171bea78dfe0826f63b2a47c5513ca7f8322b1ed2211db0807fb66d0cda980acab684_big_uint298, + 0x6c98ffc3bc1dfe7ac50d2324ab091f59e12e43cdb0656cfabd126c9b1f53473c9670fb70b2_big_uint298, + 0x1a2fe564e8a33991ffa2e6ae2b09192db6f041ebc2019591666e27112edf80a4b1ca21f8721_big_uint298, + 0x343e171357ac58c78cd34195fd550e4ab1dd63bffdb843f1bdac2ed1ad5c054172e7bc62736_big_uint298, + 0x33d2be79b5b111967f10c7e3873bdf19f47ca81c5eee3601cbe0514fbde6a5f756a0e47b663_big_uint298, + 0x70c2a23f094063c8a1f7cad92abfa0e8988973db14a1d71dcd1e2706fdbd57204f00e60df5_big_uint298, + 0xc5b94b8804b94b443d9fd27dd32200114bccb9ffa650ad2ef53048c53ad1c8723e31f1ba90_big_uint298, + 0x287a003fd725d9e62fc1ac6c94f2b9bcdb5a038feace4f7502e02161bc73c2a0759a47e5d18_big_uint298, + 0x21b070439b63f9fe8370da3a4a4227c73d471f530fc7f8a5570efa980a7e8e2cac33382ec66_big_uint298}; static constexpr const_set_t constants1 = {72022261}; check_field_operations_static(); } @@ -414,48 +414,48 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq2) { static constexpr test_set_t elements1 = { {{ - 0x1151c6efca2088ebb32162cb5d04bd8f95a6c5e45cb9e83551692a0073e7315ee195036fcc9_bigui298, - 0x2e2ba3c821f4d8efe6fc374a478954a2ea9081032d6e63cdc1398d234f189e0c31547552516_bigui298, + 0x1151c6efca2088ebb32162cb5d04bd8f95a6c5e45cb9e83551692a0073e7315ee195036fcc9_big_uint298, + 0x2e2ba3c821f4d8efe6fc374a478954a2ea9081032d6e63cdc1398d234f189e0c31547552516_big_uint298, }, { - 0x19c25638d56bdfd7ac08d72ec325d17ec5c1fa835f75669818f1012dce65a3e1c09fde080b5_bigui298, - 0x886a482d7d20161b9a9952def31f16025a1e9063d38dab6594e964ec56de38fd93a7b47994_bigui298, + 0x19c25638d56bdfd7ac08d72ec325d17ec5c1fa835f75669818f1012dce65a3e1c09fde080b5_big_uint298, + 0x886a482d7d20161b9a9952def31f16025a1e9063d38dab6594e964ec56de38fd93a7b47994_big_uint298, }, { - 0x2b141d289f8c68c35f2a39fa202a8f0e5b68c067bc2f4ecd6a5a2b2e424cd540a234e177d7e_bigui298, - 0x36b2484af9c6da51a0a5cc7836bb460310326a096aa73e841a8823721486819c0a8ef099eaa_bigui298, + 0x2b141d289f8c68c35f2a39fa202a8f0e5b68c067bc2f4ecd6a5a2b2e424cd540a234e177d7e_big_uint298, + 0x36b2484af9c6da51a0a5cc7836bb460310326a096aa73e841a8823721486819c0a8ef099eaa_big_uint298, }, { - 0x335eec843beecf7650f306a1e2cb9afd661a9c940be89c3b6e5d3ad386ae1e4a869c3bc7c15_bigui298, - 0x25a4ff454a22d78e2d52a21c58576342c4ee97fcf035891767eaf6d489aaba7c5819fa0ab82_bigui298, + 0x335eec843beecf7650f306a1e2cb9afd661a9c940be89c3b6e5d3ad386ae1e4a869c3bc7c15_big_uint298, + 0x25a4ff454a22d78e2d52a21c58576342c4ee97fcf035891767eaf6d489aaba7c5819fa0ab82_big_uint298, }, { - 0x231b2db64e90b460eb4b5eebcc66ac09a7546b0d1fff02b81dc61c82a840d32680117a98e79_bigui298, - 0x21c4451e3efba1d3deee73d089740ff6fc2e4318ab8a5d8cb68ec9235f5262809110ce05bbd_bigui298, + 0x231b2db64e90b460eb4b5eebcc66ac09a7546b0d1fff02b81dc61c82a840d32680117a98e79_big_uint298, + 0x21c4451e3efba1d3deee73d089740ff6fc2e4318ab8a5d8cb68ec9235f5262809110ce05bbd_big_uint298, }, { - 0x22a38ddf944111d76642c596ba097b1f2b4d8bc8b973d06aa2d25400e7ce62bdc32a06df992_bigui298, - 0x2087cbc2fcaf8b7d841df38f4625fa593eeb30d34c38acfd4c8e0845bd04ab4afd01d444a2b_bigui298, + 0x22a38ddf944111d76642c596ba097b1f2b4d8bc8b973d06aa2d25400e7ce62bdc32a06df992_big_uint298, + 0x2087cbc2fcaf8b7d841df38f4625fa593eeb30d34c38acfd4c8e0845bd04ab4afd01d444a2b_big_uint298, }, { - 0x33eb8e3c5c5cf4e81905e973afc4b1809df27c74f41cd41228f5b807e25d30948a673525aff_bigui298, - 0x3666450712d00c28ce3b6c17d7be4d41cc15882ff7813140ff4985b80c69eabafdc9e702da2_bigui298, + 0x33eb8e3c5c5cf4e81905e973afc4b1809df27c74f41cd41228f5b807e25d30948a673525aff_big_uint298, + 0x3666450712d00c28ce3b6c17d7be4d41cc15882ff7813140ff4985b80c69eabafdc9e702da2_big_uint298, }, { - 0x3b00f0f648ec6defbc68d6135d08331e58d16f9928496abfe6933dc4d0bece2ff435b3f1045_bigui298, - 0x1dfb4d888d1b137534826bc566536e54c0c3df69ba26f2173577bad45d7709d18fe89a2b3b5_bigui298, + 0x3b00f0f648ec6defbc68d6135d08331e58d16f9928496abfe6933dc4d0bece2ff435b3f1045_big_uint298, + 0x1dfb4d888d1b137534826bc566536e54c0c3df69ba26f2173577bad45d7709d18fe89a2b3b5_big_uint298, }, { - 0x31226162b0ed7eb00b3bd868ac9850f8d652056121a55e3f6d639877f5697a940aca9d5634c_bigui298, - 0x26a24e91b8347e0ca08efef5b20a5f1636c1270de7be1c5f378bb2628f17e6ca36ff6f203c2_bigui298, + 0x31226162b0ed7eb00b3bd868ac9850f8d652056121a55e3f6d639877f5697a940aca9d5634c_big_uint298, + 0x26a24e91b8347e0ca08efef5b20a5f1636c1270de7be1c5f378bb2628f17e6ca36ff6f203c2_big_uint298, }, { - 0x220d259471ce468a9dd1a3d685c6dd6dd073d6afaf2eb4061cf410d312c6eceba5073857f4c_bigui298, - 0x3348d74a6f6825009030e5d759babd8c7093e82cd16b3fe7dc967bb21bbead3d8c6c9b1866d_bigui298, + 0x220d259471ce468a9dd1a3d685c6dd6dd073d6afaf2eb4061cf410d312c6eceba5073857f4c_big_uint298, + 0x3348d74a6f6825009030e5d759babd8c7093e82cd16b3fe7dc967bb21bbead3d8c6c9b1866d_big_uint298, }, { - 0x2a7db4dd7d199d7696b91839ebe7f15d008f0b4eb1ea3268e47be8006d455f6e841212f0338_bigui298, - 0xda3d80525454d7262de43bb01635a49aba5502fe135b6d074ab84dd9213f2c13452a10daeb_bigui298, + 0x2a7db4dd7d199d7696b91839ebe7f15d008f0b4eb1ea3268e47be8006d455f6e841212f0338_big_uint298, + 0xda3d80525454d7262de43bb01635a49aba5502fe135b6d074ab84dd9213f2c13452a10daeb_big_uint298, }}}; static constexpr const_set_t constants1 = {11963068}; check_field_operations_static(); @@ -469,94 +469,94 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt4_fq4) { constexpr value_type element1( {{ - 0x2ec8702bfdda6a3cf3155e0b0fed1a45bdaeab2a50aeb383af86516091fdffb1dd929f408d4_bigui298, - 0x2db7a9802c314b194556ba1937cdf0e8fc38ecf09133815788dc03758c2a744cc0621330a85_bigui298, + 0x2ec8702bfdda6a3cf3155e0b0fed1a45bdaeab2a50aeb383af86516091fdffb1dd929f408d4_big_uint298, + 0x2db7a9802c314b194556ba1937cdf0e8fc38ecf09133815788dc03758c2a744cc0621330a85_big_uint298, }}, {{ - 0x110b67194f3169301ef71fce5c6bd9734f5d59c83f311b79d1e90e3554a824092e83ee3d1aa_bigui298, - 0x4d71748423267212fc9b71f2851f906b7caff8a8a371f4948e2f4cea3fbca99854b384f062_bigui298, + 0x110b67194f3169301ef71fce5c6bd9734f5d59c83f311b79d1e90e3554a824092e83ee3d1aa_big_uint298, + 0x4d71748423267212fc9b71f2851f906b7caff8a8a371f4948e2f4cea3fbca99854b384f062_big_uint298, }}); constexpr value_type element2( {{ - 0x309f7b7995abfbc6b15f27b8e54d5179a473af5a22277fcad58416ff58c91d2ea14c618323a_bigui298, - 0x260b66c38ced3023011d2588d0f6b91bc73ed3df10dbafcaec7b8554e2957183759796ff89d_bigui298, + 0x309f7b7995abfbc6b15f27b8e54d5179a473af5a22277fcad58416ff58c91d2ea14c618323a_big_uint298, + 0x260b66c38ced3023011d2588d0f6b91bc73ed3df10dbafcaec7b8554e2957183759796ff89d_big_uint298, }}, {{ - 0x277a801ef759c8fad30f16f3bb49ccbd22668b1dd1bc56f48be064b357f5f2248a6d4852d3e_bigui298, - 0x220b88fccb81a6ccaacfe031ad6c5d909e3d6415428afbe548f6111593e3310455b7ef1c6be_bigui298, + 0x277a801ef759c8fad30f16f3bb49ccbd22668b1dd1bc56f48be064b357f5f2248a6d4852d3e_big_uint298, + 0x220b88fccb81a6ccaacfe031ad6c5d909e3d6415428afbe548f6111593e3310455b7ef1c6be_big_uint298, }}); constexpr value_type element_add( {{ - 0x23986fd84c4c3fa15a9a0abeac4dbcd2cbec8951643218b04f25565f099a8c131937ea63b0d_bigui298, - 0x17f3947671e454d9fc99649cbfd7fb182d41ef9c936b16843f7276c98d935502d05293d0321_bigui298, + 0x23986fd84c4c3fa15a9a0abeac4dbcd2cbec8951643218b04f25565f099a8c131937ea63b0d_big_uint298, + 0x17f3947671e454d9fc99649cbfd7fb182d41ef9c936b16843f7276c98d935502d05293d0321_big_uint298, }}, {{ - 0x3885e738468b322af20636c217b5a63071c3e4e610ed726e5dc972e8ac9e162db8f1368fee8_bigui298, - 0x26e2a0450db40dedda999750d5be56975608639fccc21b2e91d905e437defb9ddb03276b720_bigui298, + 0x3885e738468b322af20636c217b5a63071c3e4e610ed726e5dc972e8ac9e162db8f1368fee8_big_uint298, + 0x26e2a0450db40dedda999750d5be56975608639fccc21b2e91d905e437defb9ddb03276b720_big_uint298, }}); constexpr value_type element_sub( {{ - 0x39f8707faf6894d88b90b157738c77b8af70cd033d2b4e570fe74c621a617350a1ed541d69b_bigui298, - 0x7ac42bc9f441af64439949066d737cd34fa19118057d18c9c607e20a99502c94aca7c311e8_bigui298, + 0x39f8707faf6894d88b90b157738c77b8af70cd033d2b4e570fe74c621a617350a1ed541d69b_big_uint298, + 0x7ac42bc9f441af64439949066d737cd34fa19118057d18c9c607e20a99502c94aca7c311e8_big_uint298, }}, {{ - 0x256062c79f11c69795c283dfea0ebba2c32c9fdd7c18df237bedbb82dddec2b209bdbc4a46d_bigui298, - 0x1e9b0a18bdeae6b6ced451f2c3d24a62afc36ca856503e0235d1f5b9f1452a62953a5f929a5_bigui298, + 0x256062c79f11c69795c283dfea0ebba2c32c9fdd7c18df237bedbb82dddec2b209bdbc4a46d_big_uint298, + 0x1e9b0a18bdeae6b6ced451f2c3d24a62afc36ca856503e0235d1f5b9f1452a62953a5f929a5_big_uint298, }}); constexpr value_type element_mul( {{ - 0x27adde109a6630689fafb4c98b4acafbbdf160d0149621253a6f216a963151d9d0b52cb9cd2_bigui298, - 0x37b128ce2442b354ea55c96ee99bb1d01eb2e51d999143d26348f5294c1568a824de5201c65_bigui298, + 0x27adde109a6630689fafb4c98b4acafbbdf160d0149621253a6f216a963151d9d0b52cb9cd2_big_uint298, + 0x37b128ce2442b354ea55c96ee99bb1d01eb2e51d999143d26348f5294c1568a824de5201c65_big_uint298, }}, {{ - 0x2df4acf1f2669edc372a8fe2aa867cb43c6474034226815dcb27208b3795f66be5983574224_bigui298, - 0x2bad83d2b5ea04a48f2378550261b0ff190d4844c01791a81e46cf172891e4fdeebdc9aab90_bigui298, + 0x2df4acf1f2669edc372a8fe2aa867cb43c6474034226815dcb27208b3795f66be5983574224_big_uint298, + 0x2bad83d2b5ea04a48f2378550261b0ff190d4844c01791a81e46cf172891e4fdeebdc9aab90_big_uint298, }}); constexpr value_type element_dbl( {{ - 0x21c1648ab47aae179c504110d6ed859ee527852192b94c69292790c042cf6e96557e28211a7_bigui298, - 0x1f9fd73311286fd040d2f92d26af32e5623c08ae13c2e810dbd2f4ea372857cc1b1d1001509_bigui298, + 0x21c1648ab47aae179c504110d6ed859ee527852192b94c69292790c042cf6e96557e28211a7_big_uint298, + 0x1f9fd73311286fd040d2f92d26af32e5623c08ae13c2e810dbd2f4ea372857cc1b1d1001509_big_uint298, }}, {{ - 0x2216ce329e62d2603dee3f9cb8d7b2e69ebab3907e6236f3a3d21c6aa95048125d07dc7a354_bigui298, - 0x9ae2e908464ce425f936e3e50a3f20d6f95ff15146e3e9291c5e99d47f795330a96709e0c4_bigui298, + 0x2216ce329e62d2603dee3f9cb8d7b2e69ebab3907e6236f3a3d21c6aa95048125d07dc7a354_big_uint298, + 0x9ae2e908464ce425f936e3e50a3f20d6f95ff15146e3e9291c5e99d47f795330a96709e0c4_big_uint298, }}); constexpr value_type element_inv( {{ - 0x275fe52589436c84119e92e612e306bb38a2bc6b0d2285f569de5c172b58ceb759043300dd_bigui298, - 0x9f87ebb8f67b631cbdf45085d4d658b850f08be02e1fcb059cbc390b52fe0b2cdfffc694a1_bigui298, + 0x275fe52589436c84119e92e612e306bb38a2bc6b0d2285f569de5c172b58ceb759043300dd_big_uint298, + 0x9f87ebb8f67b631cbdf45085d4d658b850f08be02e1fcb059cbc390b52fe0b2cdfffc694a1_big_uint298, }}, {{ - 0x931764a541aedb5a54fd67d1de71b0d5060c4aa4f7616208caa1eca6f5d946556a9986d631_bigui298, - 0x38bf08f1554cbfd41d3973d1c82cc9c4bfada40c384601ab53394165e86b32cebcb8b2c8397_bigui298, + 0x931764a541aedb5a54fd67d1de71b0d5060c4aa4f7616208caa1eca6f5d946556a9986d631_big_uint298, + 0x38bf08f1554cbfd41d3973d1c82cc9c4bfada40c384601ab53394165e86b32cebcb8b2c8397_big_uint298, }}); constexpr value_type element_pow_C( {{ - 0x1f856985ef90234acadd1a697214747a04c1dd270cdf98ca6a5c11ad800aa1d250b42457e0e_bigui298, - 0x2490e9fb909e98c51289b5effd25cdbdd6a996406ab808dd4d12f76105de85c739bf750909e_bigui298, + 0x1f856985ef90234acadd1a697214747a04c1dd270cdf98ca6a5c11ad800aa1d250b42457e0e_big_uint298, + 0x2490e9fb909e98c51289b5effd25cdbdd6a996406ab808dd4d12f76105de85c739bf750909e_big_uint298, }}, {{ - 0x243e7c0206aae33c5a4d9354486eeef1a784906a8217630c568edc3e0334ad03e8fb1831bd_bigui298, - 0x92a71ad08691b8a9daeb9be8c7419443a5fe4bf5fb6fb91ce362b376f54aabd065fc0c02e5_bigui298, + 0x243e7c0206aae33c5a4d9354486eeef1a784906a8217630c568edc3e0334ad03e8fb1831bd_big_uint298, + 0x92a71ad08691b8a9daeb9be8c7419443a5fe4bf5fb6fb91ce362b376f54aabd065fc0c02e5_big_uint298, }}); constexpr int C1 = 702385922; constexpr value_type element_pow_2( {{ - 0x3181739b8b5fcd6cc2bc6512bf1611ccac5b7018a0c63fa9841d6fb052ff6482a8721e4ca5f_bigui298, - 0x25bd4e0f0f15467cee761e28f8f9e2a693a50472d21744e08e254d14f75dff1fe16bacc266d_bigui298, + 0x3181739b8b5fcd6cc2bc6512bf1611ccac5b7018a0c63fa9841d6fb052ff6482a8721e4ca5f_big_uint298, + 0x25bd4e0f0f15467cee761e28f8f9e2a693a50472d21744e08e254d14f75dff1fe16bacc266d_big_uint298, }}, {{ - 0x1ac6a8f976369568d460f31c1df537a605c50fc6b1de558ff243d66b3d1f1ba4180eb981961_bigui298, - 0x1c017b5dfeadd6387bb4798bf3630eca6dcc3c8a4be79fc9b834c698dc1b7a3bc927eb6ce1_bigui298, + 0x1ac6a8f976369568d460f31c1df537a605c50fc6b1de558ff243d66b3d1f1ba4180eb981961_big_uint298, + 0x1c017b5dfeadd6387bb4798bf3630eca6dcc3c8a4be79fc9b834c698dc1b7a3bc927eb6ce1_big_uint298, }}); constexpr value_type minus_element( {{ - 0xd070ba1495fbc2556c51cfa38ff94a6d8872608bdf5671a865ec0a04f2e911b8814771f72d_bigui298, - 0xe17d24d1b08db490483c0ec111ebe0399fce4427d709946ad090e8b55021c80a545032f57c_bigui298, + 0xd070ba1495fbc2556c51cfa38ff94a6d8872608bdf5671a865ec0a04f2e911b8814771f72d_big_uint298, + 0xe17d24d1b08db490483c0ec111ebe0399fce4427d709946ad090e8b55021c80a545032f57c_big_uint298, }}, {{ - 0x2ac414b3f808bd322ae35b36ec80d57946d8776acf72ff2463fc03cb8c846cc437232822e57_bigui298, - 0x36f864850507bf411a10c3e6209ab5e5de6ad1a8846cfb54ed021d323d30c633e05bde10f9f_bigui298, + 0x2ac414b3f808bd322ae35b36ec80d57946d8776acf72ff2463fc03cb8c846cc437232822e57_big_uint298, + 0x36f864850507bf411a10c3e6209ab5e5de6ad1a8846cfb54ed021d323d30c633e05bde10f9f_big_uint298, }}); static constexpr test_set_t elements1 = { @@ -583,17 +583,17 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq) { using const_set_t = std::array; static constexpr test_set_t elements1 = { - 0x13e0a5422b598aaf0c031434995b02459b127b91c1d19c61a0b7e6305b367e9d6c4ecef24ca_bigui298, - 0x3a2ee65237145a6fec8c095b3acfa5e6e969214f2b1dfb4f47fd258dd1eeadf4a606892870e_bigui298, - 0x12400fc71b33bebcaeb4a28a8b3df93fee45cd9cd39fe31c283be5e77fe9785ec815581abd7_bigui298, - 0x15813abd3b7f56a1695185dea7780b4b47df2986b00355a71933e679368384dc108845c9dbd_bigui298, - 0xdfd40332fa67aaf44e1616dbed9461cc900b87a694ef5531100271a1a620c361c6b0944a2e_bigui298, - 0x27c14a8456b3155e1806286932b6048b3624f72383a338c3416fcc60b66cfd3ad89d9de4994_bigui298, - 0x27f311284963f256e9c61f2f413960b1baebdfe7052158a992b9239586173c5ef5d48021c0b_bigui298, - 0x3191fd7720fb4dbf2833ec75eeda111fa486fa664a30355b5328ade83a1901b876542cd1c4c_bigui298, - 0x2a5232860338c9a2e55e313e9ccd6f738b5e09d156f002f151295a73f188f688a5228623423_bigui298, - 0x1a0957b1025cbf25d4e71aa0e1d0905acccadf4ee31b945787c0048db4d063ea43976d78f3_bigui298, - 0x27eed68b1be09bb33dd766d0af91aca6fb2353b2577e18331fc13fa652053595ddf1310db37_bigui298}; + 0x13e0a5422b598aaf0c031434995b02459b127b91c1d19c61a0b7e6305b367e9d6c4ecef24ca_big_uint298, + 0x3a2ee65237145a6fec8c095b3acfa5e6e969214f2b1dfb4f47fd258dd1eeadf4a606892870e_big_uint298, + 0x12400fc71b33bebcaeb4a28a8b3df93fee45cd9cd39fe31c283be5e77fe9785ec815581abd7_big_uint298, + 0x15813abd3b7f56a1695185dea7780b4b47df2986b00355a71933e679368384dc108845c9dbd_big_uint298, + 0xdfd40332fa67aaf44e1616dbed9461cc900b87a694ef5531100271a1a620c361c6b0944a2e_big_uint298, + 0x27c14a8456b3155e1806286932b6048b3624f72383a338c3416fcc60b66cfd3ad89d9de4994_big_uint298, + 0x27f311284963f256e9c61f2f413960b1baebdfe7052158a992b9239586173c5ef5d48021c0b_big_uint298, + 0x3191fd7720fb4dbf2833ec75eeda111fa486fa664a30355b5328ade83a1901b876542cd1c4c_big_uint298, + 0x2a5232860338c9a2e55e313e9ccd6f738b5e09d156f002f151295a73f188f688a5228623423_big_uint298, + 0x1a0957b1025cbf25d4e71aa0e1d0905acccadf4ee31b945787c0048db4d063ea43976d78f3_big_uint298, + 0x27eed68b1be09bb33dd766d0af91aca6fb2353b2577e18331fc13fa652053595ddf1310db37_big_uint298}; static constexpr const_set_t constants1 = {332771434}; check_field_operations_static(); } @@ -606,59 +606,59 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq3) { static constexpr test_set_t elements1 = { {{ - 0x2ca04ab44858078455357ce7027f603b2e60169f6e2728089c31d43de94857de0f8cf4fecff_bigui298, - 0x17fe793178a3dc42295619e37d3c39c9ae5dc0a738d046d9744e9bdf8058661f0c3c82295af_bigui298, - 0x1806278fd83496047a6ff4572fe4dabe56820a6b4d73c0b06771d763a8f37d1f4c1745525be_bigui298, + 0x2ca04ab44858078455357ce7027f603b2e60169f6e2728089c31d43de94857de0f8cf4fecff_big_uint298, + 0x17fe793178a3dc42295619e37d3c39c9ae5dc0a738d046d9744e9bdf8058661f0c3c82295af_big_uint298, + 0x1806278fd83496047a6ff4572fe4dabe56820a6b4d73c0b06771d763a8f37d1f4c1745525be_big_uint298, }, { - 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_bigui298, - 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_bigui298, - 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_bigui298, + 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_big_uint298, + 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_big_uint298, + 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_big_uint298, }, { - 0x2a7c8a1ffe7bb9ad23d8cb33b017e75f5be62193e017b4297b3dcfd7afd66b98eb86c2ef3d3_bigui298, - 0x1169b081a6a026f87f4f3ebd8cecec1423941e36c5d3036f1a5cf84509793756315332b800_bigui298, - 0xf020ae6c0f21689b073d73d09502503d863a64b7379cd130bb6659bc4e967d1c15bd68a974_bigui298, + 0x2a7c8a1ffe7bb9ad23d8cb33b017e75f5be62193e017b4297b3dcfd7afd66b98eb86c2ef3d3_big_uint298, + 0x1169b081a6a026f87f4f3ebd8cecec1423941e36c5d3036f1a5cf84509793756315332b800_big_uint298, + 0xf020ae6c0f21689b073d73d09502503d863a64b7379cd130bb6659bc4e967d1c15bd68a974_big_uint298, }, { - 0x2ec40b489234555b86922e9a54e6d91700da0baafc369be7bd25d8a422ba44233393270e62b_bigui298, - 0x2ee6575ad6ddb614cab73fdb21a9a4d21a823f6b05435d7bf6f7683ab01938c8b563d12735e_bigui298, - 0x210a4438ef77157f446c117156799078d4a06e8b276db44dc32d492b8cfd926cd6d2b41a208_bigui298, + 0x2ec40b489234555b86922e9a54e6d91700da0baafc369be7bd25d8a422ba44233393270e62b_big_uint298, + 0x2ee6575ad6ddb614cab73fdb21a9a4d21a823f6b05435d7bf6f7683ab01938c8b563d12735e_big_uint298, + 0x210a4438ef77157f446c117156799078d4a06e8b276db44dc32d492b8cfd926cd6d2b41a208_big_uint298, }, { - 0x7e14908ff393a62f5c6e25db37271be6f44b06b1dfef0a4d359c6e98d2ad9eca128616b7ce_bigui298, - 0x307fb33edfa7981503d8f8236f9139d1e850e720d0c2a3ac956fc1882504ba72d3cf8056c88_bigui298, - 0x2c214a535d65c86b01d87d7a1609595037ccc97565bb242a93ff057a679728315267d4d3035_bigui298, + 0x7e14908ff393a62f5c6e25db37271be6f44b06b1dfef0a4d359c6e98d2ad9eca128616b7ce_big_uint298, + 0x307fb33edfa7981503d8f8236f9139d1e850e720d0c2a3ac956fc1882504ba72d3cf8056c88_big_uint298, + 0x2c214a535d65c86b01d87d7a1609595037ccc97565bb242a93ff057a679728315267d4d3035_big_uint298, }, { - 0x1d71199b4975e8a660907ec8bc121189c68a5dfac2fe9b7c77ea82a52554fb88d4d9e9fd9fd_bigui298, - 0x2ffcf262f147b88452ac33c6fa7873935cbb814e71a08db2e89d37bf00b0cc3e18790452b5e_bigui298, - 0x300c4f1fb0692c08f4dfe8ae5fc9b57cad0414d69ae78160cee3aec751e6fa3e982e8aa4b7c_bigui298, + 0x1d71199b4975e8a660907ec8bc121189c68a5dfac2fe9b7c77ea82a52554fb88d4d9e9fd9fd_big_uint298, + 0x2ffcf262f147b88452ac33c6fa7873935cbb814e71a08db2e89d37bf00b0cc3e18790452b5e_big_uint298, + 0x300c4f1fb0692c08f4dfe8ae5fc9b57cad0414d69ae78160cee3aec751e6fa3e982e8aa4b7c_big_uint298, }, { - 0x24daec3d446e4157ea7d86931c7cab59005910419fa7bcca958bdef9bb0484751421c7be9a7_bigui298, - 0x1fc4de5a19d41e618210e55a07a542061d6a32b4617b18cd144f71d805f68911378d08697a_bigui298, - 0x2064daaf7ff56ed4460a7689139a2313270bdb5f204a03ad6d2f7aff766941f06e27e9a119e_bigui298, + 0x24daec3d446e4157ea7d86931c7cab59005910419fa7bcca958bdef9bb0484751421c7be9a7_big_uint298, + 0x1fc4de5a19d41e618210e55a07a542061d6a32b4617b18cd144f71d805f68911378d08697a_big_uint298, + 0x2064daaf7ff56ed4460a7689139a2313270bdb5f204a03ad6d2f7aff766941f06e27e9a119e_big_uint298, }, { - 0x296448823914574c22b9cd9ccdc259206663d2d968fa3a4a017656de00a9da52417bf8c2b52_bigui298, - 0x3b3681274845f285af891a0d1d1ff27fcb167d902cb65b3a9bdccfab33b150d02eb20282f1b_bigui298, - 0x29a3f16f714a6894390659a393bef1c31bf8cad70868ef2e5cb7b2383159f6de9c938ae7d82_bigui298, + 0x296448823914574c22b9cd9ccdc259206663d2d968fa3a4a017656de00a9da52417bf8c2b52_big_uint298, + 0x3b3681274845f285af891a0d1d1ff27fcb167d902cb65b3a9bdccfab33b150d02eb20282f1b_big_uint298, + 0x29a3f16f714a6894390659a393bef1c31bf8cad70868ef2e5cb7b2383159f6de9c938ae7d82_big_uint298, }, { - 0x1177e716e67def7292e404a289d4d931d353ca156b80072db8dbd2dbad9cf7b6259d8e5cf5_bigui298, - 0x2f7454d98c65041a40025a34485c4878a29e8c0065a72eefb9b5919d23906ef61261c14cb8_bigui298, - 0x1a53d2ba023b90bbaf5941b79dcd7d131bc9eba69c5cc78f00a0deedd904745cc00d2ff6bef_bigui298, + 0x1177e716e67def7292e404a289d4d931d353ca156b80072db8dbd2dbad9cf7b6259d8e5cf5_big_uint298, + 0x2f7454d98c65041a40025a34485c4878a29e8c0065a72eefb9b5919d23906ef61261c14cb8_big_uint298, + 0x1a53d2ba023b90bbaf5941b79dcd7d131bc9eba69c5cc78f00a0deedd904745cc00d2ff6bef_big_uint298, }, { - 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_bigui298, - 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_bigui298, - 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_bigui298, + 0x39abbb38fd5dd88b187dc951f6853610c3bbda388b4040b59f85217073c9c7ee2639cdf06d5_big_uint298, + 0x24e79da3e9004c8fa879550da47f43e42a1150804cdc9df23dd0597b7d7ae189a118b102252_big_uint298, + 0x32cb5f242ff7a6e77fde5deb2257f93218176b243f55c0f764bdb40ec9319ee5bf8491383b7_big_uint298, }, { - 0xf2f3118fee21eddf4a4fe1e466d4eb167d5b8a4ab288c8c24475198c3f35c553ab30b01302_bigui298, - 0x23d1029bce964a2020846121cbb07522e7d80e9ce07f6dbb4c2a89f72ce34e143e037dd6a52_bigui298, - 0x23c9543d6f05905dcf6a86ae1907d42e3fb3c4d8cbdbf3e459074e7304483713fe28baada43_bigui298, + 0xf2f3118fee21eddf4a4fe1e466d4eb167d5b8a4ab288c8c24475198c3f35c553ab30b01302_big_uint298, + 0x23d1029bce964a2020846121cbb07522e7d80e9ce07f6dbb4c2a89f72ce34e143e037dd6a52_big_uint298, + 0x23c9543d6f05905dcf6a86ae1907d42e3fb3c4d8cbdbf3e459074e7304483713fe28baada43_big_uint298, }}}; static constexpr const_set_t constants1 = {1042617086}; @@ -673,114 +673,114 @@ BOOST_AUTO_TEST_CASE(field_operation_test_mnt6_fq6) { constexpr value_type element1( {{ - 0x2b254b9c632ab1cb93e575c1b0c5d890eb0a7ee656612c7c37d1c5f03fd346cbd4f9ceae2e1_bigui298, - 0x7370368322d2e40fa97c49d1b9cdc00cc6005a779b8e377dff6108bc7416b71c8f0bfa9938_bigui298, - 0x25b755a137f30bc5da6b21b28357a20669667eb5f6cbb6b821d8939d1370a2886334e7f90b7_bigui298, + 0x2b254b9c632ab1cb93e575c1b0c5d890eb0a7ee656612c7c37d1c5f03fd346cbd4f9ceae2e1_big_uint298, + 0x7370368322d2e40fa97c49d1b9cdc00cc6005a779b8e377dff6108bc7416b71c8f0bfa9938_big_uint298, + 0x25b755a137f30bc5da6b21b28357a20669667eb5f6cbb6b821d8939d1370a2886334e7f90b7_big_uint298, }}, {{ - 0x37020ec205dfd50d6629d194bb28e0231094f047902048bed7db660cadd135b05cc5b187c39_bigui298, - 0x30dfac7da797127d24d3bd5b66895c5139146b253e894bcc68a9a9229849079d46ab1821c95_bigui298, - 0xc5e81aaf1ed4f51ffad6ff70fa2c46d9eda55721079f37f4a9899c394719d0280aabfbf094_bigui298, + 0x37020ec205dfd50d6629d194bb28e0231094f047902048bed7db660cadd135b05cc5b187c39_big_uint298, + 0x30dfac7da797127d24d3bd5b66895c5139146b253e894bcc68a9a9229849079d46ab1821c95_big_uint298, + 0xc5e81aaf1ed4f51ffad6ff70fa2c46d9eda55721079f37f4a9899c394719d0280aabfbf094_big_uint298, }}); constexpr value_type element2( {{ - 0x938d85408f45627918f1ccebb48acf97d3fad71ebbcb368dcbb1fa32d17a05bd452164ab02_bigui298, - 0x2c475110a74073f1b9e81bb00fd5eb59e4c7fbcdb4fe4c9eeaa820074d058fd59d61376e916_bigui298, - 0x195d2d3dabdbbbdcfaceba4f7aba9aa58b45a3f06df7344cff6afe5df3a4806deaee9b50a6_bigui298, + 0x938d85408f45627918f1ccebb48acf97d3fad71ebbcb368dcbb1fa32d17a05bd452164ab02_big_uint298, + 0x2c475110a74073f1b9e81bb00fd5eb59e4c7fbcdb4fe4c9eeaa820074d058fd59d61376e916_big_uint298, + 0x195d2d3dabdbbbdcfaceba4f7aba9aa58b45a3f06df7344cff6afe5df3a4806deaee9b50a6_big_uint298, }}, {{ - 0x2a7aec578f966ff93df221571efd5cb4f8a6d250f90a68f0f74b0ee56321df789c4611cfa1f_bigui298, - 0x21464c1876b0a316b6b927c9aa93cff327a0e4ea1e24cbce279ccbdd62eaa00d723ebe70606_bigui298, - 0xea64135530377ac3298f41053bab4e9de742ae37453aed2f1bbfedbed5f970d529f08c6a42_bigui298, + 0x2a7aec578f966ff93df221571efd5cb4f8a6d250f90a68f0f74b0ee56321df789c4611cfa1f_big_uint298, + 0x21464c1876b0a316b6b927c9aa93cff327a0e4ea1e24cbce279ccbdd62eaa00d723ebe70606_big_uint298, + 0xea64135530377ac3298f41053bab4e9de742ae37453aed2f1bbfedbed5f970d529f08c6a42_big_uint298, }}); constexpr value_type element_add( {{ - 0x345e23f06c1f07f3257492906c0e858a684a2c58421ddfe5148ce5936ceae727a94be4f8de3_bigui298, - 0x337e5478d96da232b47fe04d2b72c75ab12801752eb73016ca9e30931446fb476651f71824e_bigui298, - 0x274d287512b0c783aa180d577b034bb0c21ad8f4fdab29fcf1cf4382f2aaea8f41e3d1ae15d_bigui298, + 0x345e23f06c1f07f3257492906c0e858a684a2c58421ddfe5148ce5936ceae727a94be4f8de3_big_uint298, + 0x337e5478d96da232b47fe04d2b72c75ab12801752eb73016ca9e30931446fb476651f71824e_big_uint298, + 0x274d287512b0c783aa180d577b034bb0c21ad8f4fdab29fcf1cf4382f2aaea8f41e3d1ae15d_big_uint298, }}, {{ - 0x25ad7f4c4e3c1ea45a4177e691398deb7305f3546fdafd1b0ead4f1b63b760f5aecbc357657_bigui298, - 0x16567cc8d70d8f3191b26a1fc8307d57ca7f80cb435e6305cfcd4f294df7f3776ea9d69229a_bigui298, - 0x1b04c2e044f0c6fe32466407635d79577d4e805584cda2523c54989f81d1340fd349c885ad6_bigui298, + 0x25ad7f4c4e3c1ea45a4177e691398deb7305f3546fdafd1b0ead4f1b63b760f5aecbc357657_big_uint298, + 0x16567cc8d70d8f3191b26a1fc8307d57ca7f80cb435e6305cfcd4f294df7f3776ea9d69229a_big_uint298, + 0x1b04c2e044f0c6fe32466407635d79577d4e805584cda2523c54989f81d1340fd349c885ad6_big_uint298, }}); constexpr value_type element_sub( {{ - 0x21ec73485a365ba4025658f2f57d2b976dcad1746aa479135b16a64d12bba67000a7b8637df_bigui298, - 0x16bf2e24d226e0b18a8a23f254b39f937dcdd91dde0a4b6db5c7165b27778fcf75cf883b023_bigui298, - 0x242182cd5d3550080abe360d8babf85c10b22476efec437351e1e3b734365a818485fe44011_bigui298, + 0x21ec73485a365ba4025658f2f57d2b976dcad1746aa479135b16a64d12bba67000a7b8637df_big_uint298, + 0x16bf2e24d226e0b18a8a23f254b39f937dcdd91dde0a4b6db5c7165b27778fcf75cf883b023_big_uint298, + 0x242182cd5d3550080abe360d8babf85c10b22476efec437351e1e3b734365a818485fe44011_big_uint298, }}, {{ - 0xc87226a764965142837b03d9c2b836e17ee1df69715dfcde09057274aaf5637c07f9fb821a_bigui298, - 0xf99606530e66f666e1a9591bbf58c5e1173863b20647ffe410cdd45355e678fd46c59b168f_bigui298, - 0x3987bc42e623fe0816eef6ec04d4be70569bf9d2b575f9411955c0be544dba28784bb6f8653_bigui298, + 0xc87226a764965142837b03d9c2b836e17ee1df69715dfcde09057274aaf5637c07f9fb821a_big_uint298, + 0xf99606530e66f666e1a9591bbf58c5e1173863b20647ffe410cdd45355e678fd46c59b168f_big_uint298, + 0x3987bc42e623fe0816eef6ec04d4be70569bf9d2b575f9411955c0be544dba28784bb6f8653_big_uint298, }}); constexpr value_type element_mul( {{ - 0x8d3a722d66e3deb9e3e23a817a672e4a7777b7227633de0cdbe83f3de0db084860ed6e05f5_bigui298, - 0x1d9da0ee2873cbddc6cbea8bd130b642a58252233a9517d821b23105867d1cc8f8e3762096c_bigui298, - 0x1ca200fb84e152e8e4cece1be0dc2c892996064d5127bea290c50cb5538c2d9a4d93a8e545e_bigui298, + 0x8d3a722d66e3deb9e3e23a817a672e4a7777b7227633de0cdbe83f3de0db084860ed6e05f5_big_uint298, + 0x1d9da0ee2873cbddc6cbea8bd130b642a58252233a9517d821b23105867d1cc8f8e3762096c_big_uint298, + 0x1ca200fb84e152e8e4cece1be0dc2c892996064d5127bea290c50cb5538c2d9a4d93a8e545e_big_uint298, }}, {{ - 0x32d226e51e190838ce9857905d0baf2fe1893f23139523b467ac924adec99c81b0337d98e08_bigui298, - 0x279a3e076479ed256f9165dcff1c51903cd36e7d043177fa8eac4015d4b16dfcefe18db1392_bigui298, - 0x37b12fff7cb9a2602ab0a1e6ad39cbf4e2e16ae51507528e836e837fda74e19d3964c6518d0_bigui298, + 0x32d226e51e190838ce9857905d0baf2fe1893f23139523b467ac924adec99c81b0337d98e08_big_uint298, + 0x279a3e076479ed256f9165dcff1c51903cd36e7d043177fa8eac4015d4b16dfcefe18db1392_big_uint298, + 0x37b12fff7cb9a2602ab0a1e6ad39cbf4e2e16ae51507528e836e837fda74e19d3964c6518d0_big_uint298, }}); constexpr value_type element_dbl( {{ - 0x1a7b1b6b7f1b3d34ddf0707e189f02353fdf2e889372a463af2a6609d26ad9645fb39d5c5c1_bigui298, - 0xe6e06d0645a5c81f52f893a3739b80198c00b4ef371c6efbfec21178e82d6e391e17f53270_bigui298, - 0xf9f2f7528abf1296afbc85fbdc295203c972e27d447b8db8338016379a590dd7c29cff216d_bigui298, + 0x1a7b1b6b7f1b3d34ddf0707e189f02353fdf2e889372a463af2a6609d26ad9645fb39d5c5c1_big_uint298, + 0xe6e06d0645a5c81f52f893a3739b80198c00b4ef371c6efbfec21178e82d6e391e17f53270_big_uint298, + 0xf9f2f7528abf1296afbc85fbdc295203c972e27d447b8db8338016379a590dd7c29cff216d_big_uint298, }}, {{ - 0x3234a1b6c48583b8827928242d6511598af4114b06f0dce8ef3da642ae66b72d6f4b630f871_bigui298, - 0x25efdd2e07f3fe97ffccffb1842609b5dbf3070663c2e30410da2c6e83565b0743163043929_bigui298, - 0x18bd0355e3da9ea3ff5adfee1f4588db3db4aae420f3e6fe9531338728e33a0501557f7e128_bigui298, + 0x3234a1b6c48583b8827928242d6511598af4114b06f0dce8ef3da642ae66b72d6f4b630f871_big_uint298, + 0x25efdd2e07f3fe97ffccffb1842609b5dbf3070663c2e30410da2c6e83565b0743163043929_big_uint298, + 0x18bd0355e3da9ea3ff5adfee1f4588db3db4aae420f3e6fe9531338728e33a0501557f7e128_big_uint298, }}); constexpr value_type element_inv( {{ - 0x2229740213208804b7a307caecd43fae547ce1d4a393980be860a3ca420037a6fb3fedecdc8_bigui298, - 0x2c21a740569cfb57d5c15e6743b60af44fccd06ed1088ee0b126af8e26ef78d1513759ce38e_bigui298, - 0x2f372d4fb01505ba001564145f042ce04d94cc88f008922a6cd8ed6d8357afa68e18b0da09a_bigui298, + 0x2229740213208804b7a307caecd43fae547ce1d4a393980be860a3ca420037a6fb3fedecdc8_big_uint298, + 0x2c21a740569cfb57d5c15e6743b60af44fccd06ed1088ee0b126af8e26ef78d1513759ce38e_big_uint298, + 0x2f372d4fb01505ba001564145f042ce04d94cc88f008922a6cd8ed6d8357afa68e18b0da09a_big_uint298, }}, {{ - 0xbe1724a204fce65a1de9f1f6f5145dc012216eb836a0026d202fa913aee26166c271bb609_bigui298, - 0x22b82b44d7d1b00961e24fd93e35729ef571a5bbfcd087f8b8cbf8898719d9ebc972555655e_bigui298, - 0x1cd0fd8863f24b2bce803c67a11f46a07c5d9458d5377def93cd8eda67a76280f9135e447d4_bigui298, + 0xbe1724a204fce65a1de9f1f6f5145dc012216eb836a0026d202fa913aee26166c271bb609_big_uint298, + 0x22b82b44d7d1b00961e24fd93e35729ef571a5bbfcd087f8b8cbf8898719d9ebc972555655e_big_uint298, + 0x1cd0fd8863f24b2bce803c67a11f46a07c5d9458d5377def93cd8eda67a76280f9135e447d4_big_uint298, }}); constexpr value_type element_pow_C( {{ - 0x13f6912825e1f33c39c955863e222227e40b01a5d609dbf9823754cc371fb75459ba0e4832e_bigui298, - 0x27bcef7ccb3cedd9fc14b02f2e5f72f9df9375c9ce236eea4a4938f2559ea68dd6745dd114a_bigui298, - 0x26b25efbe6119e9ffe0ef0930f9f6e676c9d2a0363cd26e428ced3a5c6b5e45f9171c4ed025_bigui298, + 0x13f6912825e1f33c39c955863e222227e40b01a5d609dbf9823754cc371fb75459ba0e4832e_big_uint298, + 0x27bcef7ccb3cedd9fc14b02f2e5f72f9df9375c9ce236eea4a4938f2559ea68dd6745dd114a_big_uint298, + 0x26b25efbe6119e9ffe0ef0930f9f6e676c9d2a0363cd26e428ced3a5c6b5e45f9171c4ed025_big_uint298, }}, {{ - 0x3a216edce558c508d70fa737a2165214e1040f52bdcb7bd982fb2ed3473b81ca0ab3d6224f8_bigui298, - 0x11fb3ef9eb611f7b499ab1a4966b50aee43d130ef1bd2dab0dd4d157e09c4f3522d32327bc_bigui298, - 0x2cb3c29d951cdc7e154524cb358680f48cfe823a4fa4bba794003b2682fb49efe7d7e13ce69_bigui298, + 0x3a216edce558c508d70fa737a2165214e1040f52bdcb7bd982fb2ed3473b81ca0ab3d6224f8_big_uint298, + 0x11fb3ef9eb611f7b499ab1a4966b50aee43d130ef1bd2dab0dd4d157e09c4f3522d32327bc_big_uint298, + 0x2cb3c29d951cdc7e154524cb358680f48cfe823a4fa4bba794003b2682fb49efe7d7e13ce69_big_uint298, }}); constexpr int C1 = 671190979; constexpr value_type element_pow_2( {{ - 0x39a90e53a451db4bd16cd928809d27b64dd89e69bf8d7550aaaf5ecb166527806f909b06272_bigui298, - 0x1f854c19c9a4e19b7fa4c05f119f0b01a8678c0b8f94244d07e56872f27569bde500d542cff_bigui298, - 0x369cd4cb21ddf49cbd57a11f7d59331dc46c98bd6e35eda00ce9d3a31501e5b72d3614f74a0_bigui298, + 0x39a90e53a451db4bd16cd928809d27b64dd89e69bf8d7550aaaf5ecb166527806f909b06272_big_uint298, + 0x1f854c19c9a4e19b7fa4c05f119f0b01a8678c0b8f94244d07e56872f27569bde500d542cff_big_uint298, + 0x369cd4cb21ddf49cbd57a11f7d59331dc46c98bd6e35eda00ce9d3a31501e5b72d3614f74a0_big_uint298, }}, {{ - 0x373b855899523e4c57836379670894e20c69c49864dec3a935b3953332f9909e021755b5b37_bigui298, - 0x1f7ba018368f998f5361fc232c07fac7a3a34d90b53492ab9f7d0c1f34b4935b17bc242fda0_bigui298, - 0x1cbab6642ca9a2c1111552f87aeb3d87dfc6fd9a89e77add4a829d3321af7916982bd42cde6_bigui298, + 0x373b855899523e4c57836379670894e20c69c49864dec3a935b3953332f9909e021755b5b37_big_uint298, + 0x1f7ba018368f998f5361fc232c07fac7a3a34d90b53492ab9f7d0c1f34b4935b17bc242fda0_big_uint298, + 0x1cbab6642ca9a2c1111552f87aeb3d87dfc6fd9a89e77add4a829d3321af7916982bd42cde6_big_uint298, }}); constexpr value_type minus_element( {{ - 0x10aa3030e40f7496b5f505439826d65bab2b505dc2ee881888a75fe66d686d6775463151d20_bigui298, - 0x34987865150cf8214f42b6682d4fd2ebc9d5c99c9f96d11ce083154ae5fa48c1814f40566c9_bigui298, - 0x1618262c0f471a9c6f6f5952c5950ce62ccf508e2283fddc9ea0923999cb11aae70b1806f4a_bigui298, + 0x10aa3030e40f7496b5f505439826d65bab2b505dc2ee881888a75fe66d686d6775463151d20_big_uint298, + 0x34987865150cf8214f42b6682d4fd2ebc9d5c99c9f96d11ce083154ae5fa48c1814f40566c9_big_uint298, + 0x1618262c0f471a9c6f6f5952c5950ce62ccf508e2283fddc9ea0923999cb11aae70b1806f4a_big_uint298, }}, {{ - 0x4cd6d0b415a5154e3b0a9708dc3cec985a0defc892f6bd5e89dbfc9ff6a7e82ed7a4e783c8_bigui298, - 0xaefcf4f9fa313e52506bda9e263529b5d21641edac668c857cf7cb414f2ac960394e7de36c_bigui298, - 0x2f70fa22554cd7104a2d0b0e3949ea7ef75b79d208d5c11575e08c1318ca1730c9954040f6d_bigui298, + 0x4cd6d0b415a5154e3b0a9708dc3cec985a0defc892f6bd5e89dbfc9ff6a7e82ed7a4e783c8_big_uint298, + 0xaefcf4f9fa313e52506bda9e263529b5d21641edac668c857cf7cb414f2ac960394e7de36c_big_uint298, + 0x2f70fa22554cd7104a2d0b0e3949ea7ef75b79d208d5c11575e08c1318ca1730c9954040f6d_big_uint298, }}); static constexpr test_set_t elements1 = { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp index 4985c5880d..684c191309 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/bbf/exp.hpp @@ -63,12 +63,12 @@ namespace nil { constexpr static const typename FieldType::value_type two_16 = 65536; constexpr static const typename FieldType::value_type two_32 = 4294967296; constexpr static const typename FieldType::value_type two_48 = 281474976710656; - constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const typename FieldType::value_type two_80 = 0x100000000000000000000_bigui254; - constexpr static const typename FieldType::value_type two_96 = 0x1000000000000000000000000_bigui254; - constexpr static const typename FieldType::value_type two112 = 0x10000000000000000000000000000_bigui254; - constexpr static const typename FieldType::value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const typename FieldType::value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two_80 = 0x100000000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two_96 = 0x1000000000000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two112 = 0x10000000000000000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp index 176d5ebab2..c6e50b3fd3 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/complete_addition.hpp @@ -604,7 +604,7 @@ namespace nil { typename Ed25519Type::base_field_type::integral_type d = typename Ed25519Type::base_field_type::integral_type( - 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_bigui256); + 0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_big_uint256); assignment.constant(component.C(0), row + 4) = d & mask; assignment.constant(component.C(0), row + 5) = (d >> 66) & mask; assignment.constant(component.C(0), row + 6) = (d >> 132) & mask; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp index bc1b83f2ea..f8cf361ff9 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/edwards/plonk/non_native/ec_point.hpp @@ -116,10 +116,10 @@ namespace nil { typename Ed25519Type::scalar_field_type::integral_type base = 1; typename Ed25519Type::scalar_field_type::integral_type mask = (base << 66) - 1; - typename Ed25519Type::base_field_type::integral_type a_coef_val = typename Ed25519Type::base_field_type::integral_type(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec_bigui255); + typename Ed25519Type::base_field_type::integral_type a_coef_val = typename Ed25519Type::base_field_type::integral_type(0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec_big_uint255); std::array a_coef = {a_coef_val & mask, (a_coef_val >>66) & mask, (a_coef_val >>132) & mask, (a_coef_val >>198) & mask}; - typename Ed25519Type::base_field_type::integral_type d_coef_val = typename Ed25519Type::base_field_type::integral_type(0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_bigui255); + typename Ed25519Type::base_field_type::integral_type d_coef_val = typename Ed25519Type::base_field_type::integral_type(0x52036cee2b6ffe738cc740797779e89800700a4d4141d8ab75eb4dca135978a3_big_uint255); std::array d_coef = {d_coef_val & mask, (d_coef_val >>66) & mask, (d_coef_val >>132) & mask, (d_coef_val >>198) & mask}; for (int i = 0; i < 4; i++) { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp index 0220c60f69..53c74ec28b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/endo_scalar.hpp @@ -65,9 +65,9 @@ namespace nil { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_big_uint255; }; template<> @@ -76,9 +76,9 @@ namespace nil { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_bigui255; + 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_big_uint255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_big_uint255; }; template diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp index 0ab344643d..dd62ef9e11 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/curves/pasta/plonk/variable_base_scalar_mul.hpp @@ -85,18 +85,18 @@ namespace nil { struct variable_base_scalar_mul_shifted_consts { using FieldType = nil::crypto3::algebra::fields::pallas_base_field; - constexpr static const typename FieldType::value_type shifted_minus_one = 0x224698fc0994a8dd8c46eb2100000000_bigui255; - constexpr static const typename FieldType::value_type shifted_zero = 0x200000000000000000000000000000003369e57a0e5efd4c526a60b180000001_bigui255; - constexpr static const typename FieldType::value_type shifted_one = 0x224698fc0994a8dd8c46eb2100000001_bigui255; + constexpr static const typename FieldType::value_type shifted_minus_one = 0x224698fc0994a8dd8c46eb2100000000_big_uint255; + constexpr static const typename FieldType::value_type shifted_zero = 0x200000000000000000000000000000003369e57a0e5efd4c526a60b180000001_big_uint255; + constexpr static const typename FieldType::value_type shifted_one = 0x224698fc0994a8dd8c46eb2100000001_big_uint255; }; template<> struct variable_base_scalar_mul_shifted_consts { using FieldType = nil::crypto3::algebra::fields::vesta_base_field; - constexpr static const typename FieldType::value_type shifted_minus_one = 0x448d31f81299f237325a61da00000001_bigui255; - constexpr static const typename FieldType::value_type shifted_zero = 0x448d31f81299f237325a61da00000002_bigui255; - constexpr static const typename FieldType::value_type shifted_one = 0x448d31f81299f237325a61da00000003_bigui255; + constexpr static const typename FieldType::value_type shifted_minus_one = 0x448d31f81299f237325a61da00000001_big_uint255; + constexpr static const typename FieldType::value_type shifted_zero = 0x448d31f81299f237325a61da00000002_big_uint255; + constexpr static const typename FieldType::value_type shifted_one = 0x448d31f81299f237325a61da00000003_big_uint255; }; //////////////////////////////// @@ -156,8 +156,8 @@ namespace nil { constexpr static const typename BlueprintFieldType::value_type shifted_zero = variable_base_scalar_mul_shifted_consts::shifted_zero; constexpr static const typename BlueprintFieldType::value_type shifted_one = variable_base_scalar_mul_shifted_consts::shifted_one; - constexpr static const typename BlueprintFieldType::value_type t_q = 0x224698fc0994a8dd8c46eb2100000001_bigui255; // q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255 = 2**254 + t_q - constexpr static const typename BlueprintFieldType::value_type t_p = 0x224698fc094cf91b992d30ed00000001_bigui255; // p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255 = 2**254 + t_p (q > p) + constexpr static const typename BlueprintFieldType::value_type t_q = 0x224698fc0994a8dd8c46eb2100000001_big_uint255; // q = 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_big_uint255 = 2**254 + t_q + constexpr static const typename BlueprintFieldType::value_type t_p = 0x224698fc094cf91b992d30ed00000001_big_uint255; // p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_big_uint255 = 2**254 + t_p (q > p) constexpr static const typename BlueprintFieldType::value_type two = 2; struct input_type { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp index 4eb9fe8727..4762affb88 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/algebra/fields/plonk/non_native/reduction.hpp @@ -162,14 +162,14 @@ namespace nil { typename ArithmetizationType::field_type::integral_type( var_value(assignment, instance_input.k[7]).data)}; - auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; - auto k = 0x00_bigui512; - auto shft = 0x01_bigui512; + auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint512; + auto k = 0x00_big_uint512; + auto shft = 0x01_big_uint512; for (std::size_t i = 0; i < 8; i++) { assignment.witness(component.W(i), row + 3) = data[i]; k = k + data[i] * (shft % L); - shft *= 0x10000000000000000_bigui512; + shft *= 0x10000000000000000_big_uint512; } auto r = k % L; @@ -256,23 +256,23 @@ namespace nil { using var = typename plonk_reduction::var; - auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; + auto L = 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint512; auto constraint_1 = - var(component.W(0), +1) * 0x01_bigui512 + var(component.W(1), +1) * 0x10000000000000000_bigui512 + - var(component.W(2), +1) * 0x100000000000000000000000000000000_bigui512 + - var(component.W(3), +1) * 0x1000000000000000000000000000000000000000000000000_bigui512 + + var(component.W(0), +1) * 0x01_big_uint512 + var(component.W(1), +1) * 0x10000000000000000_big_uint512 + + var(component.W(2), +1) * 0x100000000000000000000000000000000_big_uint512 + + var(component.W(3), +1) * 0x1000000000000000000000000000000000000000000000000_big_uint512 + var(component.W(4), +1) * - 0xffffffffffffffffffffffffffffffec6ef5bf4737dcf70d6ec31748d98951d_bigui512 + + 0xffffffffffffffffffffffffffffffec6ef5bf4737dcf70d6ec31748d98951d_big_uint512 + var(component.W(5), +1) * - 0xffffffffffffffeb2106215d086329a93b8c838d39a5e065812631a5cf5d3ed_bigui512 + + 0xffffffffffffffeb2106215d086329a93b8c838d39a5e065812631a5cf5d3ed_big_uint512 + var(component.W(6), +1) * - 0x2106215d086329a7ed9ce5a30a2c131b64a7f435e4fdd9539822129a02a6271_bigui512 + + 0x2106215d086329a7ed9ce5a30a2c131b64a7f435e4fdd9539822129a02a6271_big_uint512 + var(component.W(7), +1) * - 0xed9ce5a30a2c131b399411b7c309a3de24babbe38d1d7a979daf520a00acb65_bigui512 - + 0xed9ce5a30a2c131b399411b7c309a3de24babbe38d1d7a979daf520a00acb65_big_uint512 - var(component.W(4), -1) - - (var(component.W(0), 0) * 0x800000000000_bigui512 + var(component.W(1), 0) * 0x8000000_bigui512 + - var(component.W(2), 0) * 0x80_bigui512 + var(component.W(3), 0)) * + (var(component.W(0), 0) * 0x800000000000_big_uint512 + var(component.W(1), 0) * 0x8000000_big_uint512 + + var(component.W(2), 0) * 0x80_big_uint512 + var(component.W(3), 0)) * L; auto s_r = var(component.W(0), -1) + var(component.W(1), -1) + var(component.W(2), -1) + @@ -283,18 +283,18 @@ namespace nil { auto constraint_2 = var(component.W(4), 0) - - (var(component.W(3), 0) + var(component.W(2), 0) * 0x2000_bigui255 + - var(component.W(1), 0) * 0x200000000_bigui255 + - var(component.W(0), 0) * 0x20000000000000_bigui255 + - var(component.W(8), -1) * 0x2000000000000000000_bigui255 + - var(component.W(7), -1) * 0x200000000000000000000000_bigui255 + - var(component.W(6), -1) * 0x20000000000000000000000000000_bigui255 + - var(component.W(5), -1) * 0x2000000000000000000000000000000000_bigui255 + - var(component.W(4), -1) * 0x200000000000000000000000000000000000000_bigui255 + - var(component.W(3), -1) * 0x20000000000000000000000000000000000000000000_bigui255 + - var(component.W(2), -1) * 0x2000000000000000000000000000000000000000000000000_bigui255 + - var(component.W(1), -1) * 0x200000000000000000000000000000000000000000000000000000_bigui255 + - var(component.W(0), -1) * 0x20000000000000000000000000000000000000000000000000000000000_bigui255); + (var(component.W(3), 0) + var(component.W(2), 0) * 0x2000_big_uint255 + + var(component.W(1), 0) * 0x200000000_big_uint255 + + var(component.W(0), 0) * 0x20000000000000_big_uint255 + + var(component.W(8), -1) * 0x2000000000000000000_big_uint255 + + var(component.W(7), -1) * 0x200000000000000000000000_big_uint255 + + var(component.W(6), -1) * 0x20000000000000000000000000000_big_uint255 + + var(component.W(5), -1) * 0x2000000000000000000000000000000000_big_uint255 + + var(component.W(4), -1) * 0x200000000000000000000000000000000000000_big_uint255 + + var(component.W(3), -1) * 0x20000000000000000000000000000000000000000000_big_uint255 + + var(component.W(2), -1) * 0x2000000000000000000000000000000000000000000000000_big_uint255 + + var(component.W(1), -1) * 0x200000000000000000000000000000000000000000000000000000_big_uint255 + + var(component.W(0), -1) * 0x20000000000000000000000000000000000000000000000000000000000_big_uint255); auto constraint_3 = (s_r) * ((s_r)*var(component.W(5), 0) - 1); @@ -311,8 +311,8 @@ namespace nil { var(component.W(5), +1) * (m[2] & ((one << 73) - 1)) + var(component.W(6), +1) * (m[3] & ((one << 73) - 1)) + var(component.W(7), +1) * (m[4] & ((one << 73) - 1)) + - (var(component.W(0), 0) * 0x800000000000_bigui512 + var(component.W(1), 0) * 0x8000000_bigui512 + - var(component.W(2), 0) * 0x80_bigui512 + var(component.W(3), 0)) * + (var(component.W(0), 0) * 0x800000000000_big_uint512 + var(component.W(1), 0) * 0x8000000_big_uint512 + + var(component.W(2), 0) * 0x80_big_uint512 + var(component.W(3), 0)) * ((one << 73) - (crypto3::algebra::curves::ed25519::scalar_field_type::extended_integral_type(L) % (one << 73))) - (var(component.W(3), -1) + var(component.W(2), -1) * (one << 13) + var(component.W(1), -1) * (one << 33) + var(component.W(0), -1) * (one << 53)) - diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp index e65d5f7088..3f91bfa359 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_round.hpp @@ -240,7 +240,7 @@ namespace nil { const std::size_t gates_amount = get_gates_amount(this->witness_amount(), xor_with_mes, last_round_call, limit_permutation_column); - const value_type sparse_3 = 0x6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB_bigui256; + const value_type sparse_3 = 0x6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB6DB_big_uint256; const integral_type sparse_x80 = calculate_sparse(integral_type(0x8000000000000000)); const integral_type sparse_x7f = calculate_sparse(integral_type(0x8000000000000000 - 1)); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp index 6162fa975f..a154b3d813 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/keccak/keccak_table.hpp @@ -50,8 +50,8 @@ namespace nil { nil::crypto3::algebra::fields::field<256>::integral_type n(d); std::pair hash_value; - hash_value.first = (n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_bigui257) >> 128; - hash_value.second = n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257; + hash_value.first = (n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_big_uint257) >> 128; + hash_value.second = n & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint257; return hash_value; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp index d40d6a32b8..a1c9e41c12 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/poseidon/plonk/poseidon_constants.hpp @@ -49,185 +49,185 @@ namespace nil { constexpr static const std::array, state_size> mds = {{ - {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui255, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui255, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui255}}, - {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui255, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui255, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui255}}, - {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui255, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui255, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui255}}, + {{0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_big_uint255, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_big_uint255, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_big_uint255}}, + {{0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_big_uint255, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_big_uint255, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_big_uint255}}, + {{0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_big_uint255, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_big_uint255, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_big_uint255}}, }}; constexpr static const std::array, rounds_amount> round_constant = {{ - {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui255, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui255, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui255}}, - {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui255, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui255, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui255}}, - {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui255, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui255, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui255}}, - {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui255, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui255, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui255}}, - {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui255, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui255, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui255}}, - {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui255, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui255, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui255}}, - {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui255, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui255, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui255}}, - {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui255, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui255, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui255}}, - {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui255, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui255, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui255}}, - {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui255, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui255, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui255}}, - {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui255, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui255, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui255}}, - {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui255, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui255, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui255}}, - {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui255, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui255, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui255}}, - {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui255, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui255, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui255}}, - {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui255, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui255, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui255}}, - {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui255, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui255, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui255}}, - {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui255, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui255, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui255}}, - {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui255, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui255, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui255}}, - {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui255, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui255, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui255}}, - {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui255, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui255, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui255}}, - {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui255, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui255, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui255}}, - {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui255, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui255, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui255}}, - {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui255, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui255, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui255}}, - {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui255, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui255, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui255}}, - {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui255, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui255, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui255}}, - {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui255, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui255, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui255}}, - {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui255, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui255, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui255}}, - {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui255, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui255, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui255}}, - {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui255, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui255, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui255}}, - {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui255, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui255, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui255}}, - {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui255, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui255, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui255}}, - {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui255, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui255, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui255}}, - {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui255, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui255, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui255}}, - {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui255, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui255, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui255}}, - {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui255, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui255, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui255}}, - {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui255, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui255, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui255}}, - {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui255, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui255, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui255}}, - {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui255, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui255, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui255}}, - {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui255, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui255, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui255}}, - {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui255, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui255, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui255}}, - {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui255, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui255, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui255}}, - {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui255, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui255, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui255}}, - {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui255, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui255, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui255}}, - {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui255, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui255, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui255}}, - {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui255, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui255, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui255}}, - {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui255, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui255, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui255}}, - {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui255, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui255, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui255}}, - {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui255, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui255, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui255}}, - {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui255, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui255, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui255}}, - {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui255, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui255, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui255}}, - {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui255, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui255, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui255}}, - {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui255, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui255, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui255}}, - {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui255, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui255, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui255}}, - {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui255, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui255, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui255}}, - {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui255, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui255, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui255}}, + {{0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_big_uint255, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_big_uint255, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_big_uint255}}, + {{0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_big_uint255, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_big_uint255, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_big_uint255}}, + {{0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_big_uint255, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_big_uint255, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_big_uint255}}, + {{0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_big_uint255, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_big_uint255, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_big_uint255}}, + {{0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_big_uint255, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_big_uint255, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_big_uint255}}, + {{0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_big_uint255, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_big_uint255, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_big_uint255}}, + {{0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_big_uint255, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_big_uint255, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_big_uint255}}, + {{0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_big_uint255, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_big_uint255, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_big_uint255}}, + {{0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_big_uint255, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_big_uint255, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_big_uint255}}, + {{0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_big_uint255, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_big_uint255, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_big_uint255}}, + {{0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_big_uint255, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_big_uint255, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_big_uint255}}, + {{0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_big_uint255, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_big_uint255, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_big_uint255}}, + {{0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_big_uint255, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_big_uint255, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_big_uint255}}, + {{0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_big_uint255, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_big_uint255, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_big_uint255}}, + {{0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_big_uint255, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_big_uint255, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_big_uint255}}, + {{0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_big_uint255, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_big_uint255, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_big_uint255}}, + {{0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_big_uint255, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_big_uint255, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_big_uint255}}, + {{0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_big_uint255, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_big_uint255, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_big_uint255}}, + {{0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_big_uint255, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_big_uint255, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_big_uint255}}, + {{0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_big_uint255, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_big_uint255, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_big_uint255}}, + {{0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_big_uint255, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_big_uint255, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_big_uint255}}, + {{0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_big_uint255, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_big_uint255, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_big_uint255}}, + {{0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_big_uint255, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_big_uint255, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_big_uint255}}, + {{0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_big_uint255, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_big_uint255, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_big_uint255}}, + {{0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_big_uint255, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_big_uint255, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_big_uint255}}, + {{0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_big_uint255, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_big_uint255, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_big_uint255}}, + {{0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_big_uint255, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_big_uint255, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_big_uint255}}, + {{0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_big_uint255, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_big_uint255, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_big_uint255}}, + {{0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_big_uint255, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_big_uint255, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_big_uint255}}, + {{0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_big_uint255, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_big_uint255, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_big_uint255}}, + {{0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_big_uint255, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_big_uint255, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_big_uint255}}, + {{0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_big_uint255, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_big_uint255, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_big_uint255}}, + {{0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_big_uint255, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_big_uint255, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_big_uint255}}, + {{0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_big_uint255, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_big_uint255, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_big_uint255}}, + {{0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_big_uint255, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_big_uint255, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_big_uint255}}, + {{0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_big_uint255, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_big_uint255, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_big_uint255}}, + {{0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_big_uint255, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_big_uint255, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_big_uint255}}, + {{0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_big_uint255, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_big_uint255, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_big_uint255}}, + {{0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_big_uint255, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_big_uint255, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_big_uint255}}, + {{0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_big_uint255, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_big_uint255, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_big_uint255}}, + {{0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_big_uint255, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_big_uint255, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_big_uint255}}, + {{0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_big_uint255, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_big_uint255, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_big_uint255}}, + {{0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_big_uint255, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_big_uint255, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_big_uint255}}, + {{0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_big_uint255, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_big_uint255, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_big_uint255}}, + {{0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_big_uint255, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_big_uint255, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_big_uint255}}, + {{0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_big_uint255, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_big_uint255, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_big_uint255}}, + {{0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_big_uint255, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_big_uint255, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_big_uint255}}, + {{0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_big_uint255, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_big_uint255, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_big_uint255}}, + {{0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_big_uint255, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_big_uint255, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_big_uint255}}, + {{0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_big_uint255, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_big_uint255, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_big_uint255}}, + {{0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_big_uint255, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_big_uint255, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_big_uint255}}, + {{0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_big_uint255, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_big_uint255, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_big_uint255}}, + {{0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_big_uint255, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_big_uint255, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_big_uint255}}, + {{0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_big_uint255, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_big_uint255, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_big_uint255}}, + {{0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_big_uint255, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_big_uint255, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_big_uint255}}, }}; }; @@ -241,19 +241,19 @@ namespace nil { state_size> mds = {{ {{ - 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_bigui255, - 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_bigui255, - 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_bigui255, + 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_big_uint255, + 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_big_uint255, + 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_big_uint255, }}, {{ - 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_bigui255, - 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_bigui255, - 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_bigui255, + 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_big_uint255, + 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_big_uint255, + 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_big_uint255, }}, {{ - 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_bigui255, - 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_bigui255, - 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_bigui255, + 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_big_uint255, + 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_big_uint255, + 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_big_uint255, }}, }}; @@ -261,279 +261,279 @@ namespace nil { rounds_amount> round_constant = {{ {{ - 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_bigui255, - 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_bigui255, - 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_bigui255, + 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_big_uint255, + 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_big_uint255, + 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_big_uint255, }}, {{ - 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_bigui255, - 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_bigui255, - 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_bigui255, + 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_big_uint255, + 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_big_uint255, + 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_big_uint255, }}, {{ - 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_bigui255, - 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_bigui255, - 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_bigui255, + 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_big_uint255, + 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_big_uint255, + 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_big_uint255, }}, {{ - 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_bigui255, - 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_bigui255, - 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_bigui255, + 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_big_uint255, + 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_big_uint255, + 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_big_uint255, }}, {{ - 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_bigui255, - 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_bigui255, - 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_bigui255, + 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_big_uint255, + 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_big_uint255, + 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_big_uint255, }}, {{ - 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_bigui255, - 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_bigui255, - 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_bigui255, + 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_big_uint255, + 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_big_uint255, + 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_big_uint255, }}, {{ - 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_bigui255, - 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_bigui255, - 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_bigui255, + 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_big_uint255, + 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_big_uint255, + 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_big_uint255, }}, {{ - 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_bigui255, - 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_bigui255, - 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_bigui255, + 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_big_uint255, + 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_big_uint255, + 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_big_uint255, }}, {{ - 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_bigui255, - 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_bigui255, - 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_bigui255, + 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_big_uint255, + 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_big_uint255, + 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_big_uint255, }}, {{ - 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_bigui255, - 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_bigui255, - 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_bigui255, + 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_big_uint255, + 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_big_uint255, + 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_big_uint255, }}, {{ - 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_bigui255, - 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_bigui255, - 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_bigui255, + 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_big_uint255, + 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_big_uint255, + 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_big_uint255, }}, {{ - 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_bigui255, - 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_bigui255, - 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_bigui255, + 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_big_uint255, + 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_big_uint255, + 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_big_uint255, }}, {{ - 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_bigui255, - 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_bigui255, - 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_bigui255, + 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_big_uint255, + 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_big_uint255, + 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_big_uint255, }}, {{ - 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_bigui255, - 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_bigui255, - 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_bigui255, + 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_big_uint255, + 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_big_uint255, + 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_big_uint255, }}, {{ - 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_bigui255, - 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_bigui255, - 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_bigui255, + 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_big_uint255, + 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_big_uint255, + 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_big_uint255, }}, {{ - 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_bigui255, - 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_bigui255, - 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_bigui255, + 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_big_uint255, + 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_big_uint255, + 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_big_uint255, }}, {{ - 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_bigui255, - 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_bigui255, - 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_bigui255, + 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_big_uint255, + 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_big_uint255, + 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_big_uint255, }}, {{ - 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_bigui255, - 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_bigui255, - 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_bigui255, + 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_big_uint255, + 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_big_uint255, + 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_big_uint255, }}, {{ - 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_bigui255, - 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_bigui255, - 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_bigui255, + 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_big_uint255, + 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_big_uint255, + 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_big_uint255, }}, {{ - 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_bigui255, - 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_bigui255, - 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_bigui255, + 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_big_uint255, + 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_big_uint255, + 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_big_uint255, }}, {{ - 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_bigui255, - 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_bigui255, - 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_bigui255, + 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_big_uint255, + 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_big_uint255, + 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_big_uint255, }}, {{ - 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_bigui255, - 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_bigui255, - 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_bigui255, + 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_big_uint255, + 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_big_uint255, + 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_big_uint255, }}, {{ - 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_bigui255, - 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_bigui255, - 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_bigui255, + 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_big_uint255, + 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_big_uint255, + 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_big_uint255, }}, {{ - 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_bigui255, - 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_bigui255, - 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_bigui255, + 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_big_uint255, + 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_big_uint255, + 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_big_uint255, }}, {{ - 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_bigui255, - 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_bigui255, - 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_bigui255, + 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_big_uint255, + 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_big_uint255, + 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_big_uint255, }}, {{ - 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_bigui255, - 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_bigui255, - 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_bigui255, + 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_big_uint255, + 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_big_uint255, + 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_big_uint255, }}, {{ - 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_bigui255, - 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_bigui255, - 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_bigui255, + 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_big_uint255, + 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_big_uint255, + 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_big_uint255, }}, {{ - 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_bigui255, - 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_bigui255, - 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_bigui255, + 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_big_uint255, + 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_big_uint255, + 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_big_uint255, }}, {{ - 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_bigui255, - 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_bigui255, - 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_bigui255, + 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_big_uint255, + 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_big_uint255, + 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_big_uint255, }}, {{ - 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_bigui255, - 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_bigui255, - 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_bigui255, + 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_big_uint255, + 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_big_uint255, + 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_big_uint255, }}, {{ - 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_bigui255, - 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_bigui255, - 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_bigui255, + 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_big_uint255, + 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_big_uint255, + 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_big_uint255, }}, {{ - 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_bigui255, - 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_bigui255, - 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_bigui255, + 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_big_uint255, + 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_big_uint255, + 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_big_uint255, }}, {{ - 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_bigui255, - 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_bigui255, - 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_bigui255, + 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_big_uint255, + 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_big_uint255, + 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_big_uint255, }}, {{ - 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_bigui255, - 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_bigui255, - 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_bigui255, + 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_big_uint255, + 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_big_uint255, + 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_big_uint255, }}, {{ - 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_bigui255, - 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_bigui255, - 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_bigui255, + 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_big_uint255, + 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_big_uint255, + 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_big_uint255, }}, {{ - 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_bigui255, - 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_bigui255, - 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_bigui255, + 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_big_uint255, + 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_big_uint255, + 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_big_uint255, }}, {{ - 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_bigui255, - 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_bigui255, - 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_bigui255, + 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_big_uint255, + 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_big_uint255, + 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_big_uint255, }}, {{ - 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_bigui255, - 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_bigui255, - 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_bigui255, + 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_big_uint255, + 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_big_uint255, + 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_big_uint255, }}, {{ - 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_bigui255, - 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_bigui255, - 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_bigui255, + 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_big_uint255, + 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_big_uint255, + 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_big_uint255, }}, {{ - 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_bigui255, - 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_bigui255, - 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_bigui255, + 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_big_uint255, + 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_big_uint255, + 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_big_uint255, }}, {{ - 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_bigui255, - 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_bigui255, - 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_bigui255, + 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_big_uint255, + 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_big_uint255, + 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_big_uint255, }}, {{ - 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_bigui255, - 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_bigui255, - 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_bigui255, + 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_big_uint255, + 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_big_uint255, + 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_big_uint255, }}, {{ - 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_bigui255, - 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_bigui255, - 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_bigui255, + 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_big_uint255, + 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_big_uint255, + 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_big_uint255, }}, {{ - 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_bigui255, - 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_bigui255, - 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_bigui255, + 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_big_uint255, + 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_big_uint255, + 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_big_uint255, }}, {{ - 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_bigui255, - 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_bigui255, - 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_bigui255, + 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_big_uint255, + 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_big_uint255, + 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_big_uint255, }}, {{ - 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_bigui255, - 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_bigui255, - 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_bigui255, + 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_big_uint255, + 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_big_uint255, + 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_big_uint255, }}, {{ - 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_bigui255, - 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_bigui255, - 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_bigui255, + 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_big_uint255, + 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_big_uint255, + 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_big_uint255, }}, {{ - 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_bigui255, - 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_bigui255, - 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_bigui255, + 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_big_uint255, + 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_big_uint255, + 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_big_uint255, }}, {{ - 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_bigui255, - 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_bigui255, - 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_bigui255, + 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_big_uint255, + 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_big_uint255, + 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_big_uint255, }}, {{ - 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_bigui255, - 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_bigui255, - 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_bigui255, + 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_big_uint255, + 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_big_uint255, + 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_big_uint255, }}, {{ - 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_bigui255, - 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_bigui255, - 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_bigui255, + 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_big_uint255, + 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_big_uint255, + 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_big_uint255, }}, {{ - 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_bigui255, - 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_bigui255, - 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_bigui255, + 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_big_uint255, + 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_big_uint255, + 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_big_uint255, }}, {{ - 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_bigui255, - 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_bigui255, - 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_bigui255, + 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_big_uint255, + 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_big_uint255, + 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_big_uint255, }}, {{ - 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_bigui255, - 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_bigui255, - 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_bigui255, + 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_big_uint255, + 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_big_uint255, + 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_big_uint255, }}, {{ - 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_bigui255, - 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_bigui255, - 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_bigui255, + 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_big_uint255, + 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_big_uint255, + 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_big_uint255, }}, }}; }; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp index 7427871e1c..b244d38388 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/decomposition.hpp @@ -255,13 +255,13 @@ namespace nil { using var = typename plonk_native_decomposition::var; auto constraint_1 = - var(component.W(8), -1) - (var(component.W(3), 0) + var(component.W(2), 0) * 0x100000000_bigui255 + - var(component.W(1), 0) * 0x10000000000000000_bigui255 + - var(component.W(0), 0) * 0x1000000000000000000000000_bigui255); + var(component.W(8), -1) - (var(component.W(3), 0) + var(component.W(2), 0) * 0x100000000_big_uint255 + + var(component.W(1), 0) * 0x10000000000000000_big_uint255 + + var(component.W(0), 0) * 0x1000000000000000000000000_big_uint255); auto constraint_2 = - var(component.W(8), 1) - (var(component.W(7), 0) + var(component.W(6), 0) * 0x100000000_bigui255 + - var(component.W(5), 0) * 0x10000000000000000_bigui255 + - var(component.W(4), 0) * 0x1000000000000000000000000_bigui255); + var(component.W(8), 1) - (var(component.W(7), 0) + var(component.W(6), 0) * 0x100000000_big_uint255 + + var(component.W(5), 0) * 0x10000000000000000_big_uint255 + + var(component.W(4), 0) * 0x1000000000000000000000000_big_uint255); auto constraint_3 = var(component.W(3), 0) - (var(component.W(0), -1) + var(component.W(1), -1) * (65536)); auto constraint_4 = var(component.W(2), 0) - diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp index d5aff35443..ff0e4bf8c8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/hashes/sha2/plonk/sha512_process.hpp @@ -89,26 +89,26 @@ namespace nil { constexpr static const std::array round_constant = { - 0x428a2f98d728ae22_bigui64, 0x7137449123ef65cd_bigui64, 0xb5c0fbcfec4d3b2f_bigui64, 0xe9b5dba58189dbbc_bigui64, - 0x3956c25bf348b538_bigui64, 0x59f111f1b605d019_bigui64, 0x923f82a4af194f9b_bigui64, 0xab1c5ed5da6d8118_bigui64, - 0xd807aa98a3030242_bigui64, 0x12835b0145706fbe_bigui64, 0x243185be4ee4b28c_bigui64, 0x550c7dc3d5ffb4e2_bigui64, - 0x72be5d74f27b896f_bigui64, 0x80deb1fe3b1696b1_bigui64, 0x9bdc06a725c71235_bigui64, 0xc19bf174cf692694_bigui64, - 0xe49b69c19ef14ad2_bigui64, 0xefbe4786384f25e3_bigui64, 0x0fc19dc68b8cd5b5_bigui64, 0x240ca1cc77ac9c65_bigui64, - 0x2de92c6f592b0275_bigui64, 0x4a7484aa6ea6e483_bigui64, 0x5cb0a9dcbd41fbd4_bigui64, 0x76f988da831153b5_bigui64, - 0x983e5152ee66dfab_bigui64, 0xa831c66d2db43210_bigui64, 0xb00327c898fb213f_bigui64, 0xbf597fc7beef0ee4_bigui64, - 0xc6e00bf33da88fc2_bigui64, 0xd5a79147930aa725_bigui64, 0x06ca6351e003826f_bigui64, 0x142929670a0e6e70_bigui64, - 0x27b70a8546d22ffc_bigui64, 0x2e1b21385c26c926_bigui64, 0x4d2c6dfc5ac42aed_bigui64, 0x53380d139d95b3df_bigui64, - 0x650a73548baf63de_bigui64, 0x766a0abb3c77b2a8_bigui64, 0x81c2c92e47edaee6_bigui64, 0x92722c851482353b_bigui64, - 0xa2bfe8a14cf10364_bigui64, 0xa81a664bbc423001_bigui64, 0xc24b8b70d0f89791_bigui64, 0xc76c51a30654be30_bigui64, - 0xd192e819d6ef5218_bigui64, 0xd69906245565a910_bigui64, 0xf40e35855771202a_bigui64, 0x106aa07032bbd1b8_bigui64, - 0x19a4c116b8d2d0c8_bigui64, 0x1e376c085141ab53_bigui64, 0x2748774cdf8eeb99_bigui64, 0x34b0bcb5e19b48a8_bigui64, - 0x391c0cb3c5c95a63_bigui64, 0x4ed8aa4ae3418acb_bigui64, 0x5b9cca4f7763e373_bigui64, 0x682e6ff3d6b2b8a3_bigui64, - 0x748f82ee5defb2fc_bigui64, 0x78a5636f43172f60_bigui64, 0x84c87814a1f0ab72_bigui64, 0x8cc702081a6439ec_bigui64, - 0x90befffa23631e28_bigui64, 0xa4506cebde82bde9_bigui64, 0xbef9a3f7b2c67915_bigui64, 0xc67178f2e372532b_bigui64, - 0xca273eceea26619c_bigui64, 0xd186b8c721c0c207_bigui64, 0xeada7dd6cde0eb1e_bigui64, 0xf57d4f7fee6ed178_bigui64, - 0x06f067aa72176fba_bigui64, 0x0a637dc5a2c898a6_bigui64, 0x113f9804bef90dae_bigui64, 0x1b710b35131c471b_bigui64, - 0x28db77f523047d84_bigui64, 0x32caab7b40c72493_bigui64, 0x3c9ebe0a15c9bebc_bigui64, 0x431d67c49c100d4c_bigui64, - 0x4cc5d4becb3e42b6_bigui64, 0x597f299cfc657e2a_bigui64, 0x5fcb6fab3ad6faec_bigui64, 0x6c44198c4a475817_bigui64}; + 0x428a2f98d728ae22_big_uint64, 0x7137449123ef65cd_big_uint64, 0xb5c0fbcfec4d3b2f_big_uint64, 0xe9b5dba58189dbbc_big_uint64, + 0x3956c25bf348b538_big_uint64, 0x59f111f1b605d019_big_uint64, 0x923f82a4af194f9b_big_uint64, 0xab1c5ed5da6d8118_big_uint64, + 0xd807aa98a3030242_big_uint64, 0x12835b0145706fbe_big_uint64, 0x243185be4ee4b28c_big_uint64, 0x550c7dc3d5ffb4e2_big_uint64, + 0x72be5d74f27b896f_big_uint64, 0x80deb1fe3b1696b1_big_uint64, 0x9bdc06a725c71235_big_uint64, 0xc19bf174cf692694_big_uint64, + 0xe49b69c19ef14ad2_big_uint64, 0xefbe4786384f25e3_big_uint64, 0x0fc19dc68b8cd5b5_big_uint64, 0x240ca1cc77ac9c65_big_uint64, + 0x2de92c6f592b0275_big_uint64, 0x4a7484aa6ea6e483_big_uint64, 0x5cb0a9dcbd41fbd4_big_uint64, 0x76f988da831153b5_big_uint64, + 0x983e5152ee66dfab_big_uint64, 0xa831c66d2db43210_big_uint64, 0xb00327c898fb213f_big_uint64, 0xbf597fc7beef0ee4_big_uint64, + 0xc6e00bf33da88fc2_big_uint64, 0xd5a79147930aa725_big_uint64, 0x06ca6351e003826f_big_uint64, 0x142929670a0e6e70_big_uint64, + 0x27b70a8546d22ffc_big_uint64, 0x2e1b21385c26c926_big_uint64, 0x4d2c6dfc5ac42aed_big_uint64, 0x53380d139d95b3df_big_uint64, + 0x650a73548baf63de_big_uint64, 0x766a0abb3c77b2a8_big_uint64, 0x81c2c92e47edaee6_big_uint64, 0x92722c851482353b_big_uint64, + 0xa2bfe8a14cf10364_big_uint64, 0xa81a664bbc423001_big_uint64, 0xc24b8b70d0f89791_big_uint64, 0xc76c51a30654be30_big_uint64, + 0xd192e819d6ef5218_big_uint64, 0xd69906245565a910_big_uint64, 0xf40e35855771202a_big_uint64, 0x106aa07032bbd1b8_big_uint64, + 0x19a4c116b8d2d0c8_big_uint64, 0x1e376c085141ab53_big_uint64, 0x2748774cdf8eeb99_big_uint64, 0x34b0bcb5e19b48a8_big_uint64, + 0x391c0cb3c5c95a63_big_uint64, 0x4ed8aa4ae3418acb_big_uint64, 0x5b9cca4f7763e373_big_uint64, 0x682e6ff3d6b2b8a3_big_uint64, + 0x748f82ee5defb2fc_big_uint64, 0x78a5636f43172f60_big_uint64, 0x84c87814a1f0ab72_big_uint64, 0x8cc702081a6439ec_big_uint64, + 0x90befffa23631e28_big_uint64, 0xa4506cebde82bde9_big_uint64, 0xbef9a3f7b2c67915_big_uint64, 0xc67178f2e372532b_big_uint64, + 0xca273eceea26619c_big_uint64, 0xd186b8c721c0c207_big_uint64, 0xeada7dd6cde0eb1e_big_uint64, 0xf57d4f7fee6ed178_big_uint64, + 0x06f067aa72176fba_big_uint64, 0x0a637dc5a2c898a6_big_uint64, 0x113f9804bef90dae_big_uint64, 0x1b710b35131c471b_big_uint64, + 0x28db77f523047d84_big_uint64, 0x32caab7b40c72493_big_uint64, 0x3c9ebe0a15c9bebc_big_uint64, 0x431d67c49c100d4c_big_uint64, + 0x4cc5d4becb3e42b6_big_uint64, 0x597f299cfc657e2a_big_uint64, 0x5fcb6fab3ad6faec_big_uint64, 0x6c44198c4a475817_big_uint64}; const std::size_t rows_amount = get_rows_amount(this->witness_amount()); constexpr static const std::size_t gates_amount = 10; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp index 4afbfbe1cc..e437ad17b5 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/batch_verify_scalar_field.hpp @@ -454,7 +454,7 @@ namespace nil { std::size_t row = start_row_index; typename BlueprintFieldType::value_type endo_factor = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint255; std::size_t endo_num_bits = 128; var zero = var(0, start_row_index, false, var::column_type::constant); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp index 5031e931d2..345131e3c8 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/compare.hpp @@ -371,8 +371,8 @@ namespace nil { std::size_t row = component_start_row; typename BlueprintFieldType::value_type base = 2; assignment.constant(0)[row] = - 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_bigui255 - - 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; + 0x40000000000000000000000000000000224698fc0994a8dd8c46eb2100000001_big_uint255 - + 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_big_uint255; row++; assignment.constant(0)[row] = base.pow(87); row++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp index 3c154956e7..013c3e1ed0 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/detail/to_group.hpp @@ -591,25 +591,25 @@ namespace nil { if (std::is_same::value) { - u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255; - fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_bigui255; + u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint255; + fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_big_uint255; inv_three_u_squared_val = - 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5B88A612661E209E00000001_bigui255; + 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5B88A612661E209E00000001_big_uint255; sqrt_neg_three_u_squared_val = - 0x25999506959B74E25955ABB8AF5563603A3F17A46F5A62923B5ABD7BFBFC9573_bigui255; + 0x25999506959B74E25955ABB8AF5563603A3F17A46F5A62923B5ABD7BFBFC9573_big_uint255; sqrt_neg_three_u_squared_minus_u_over_2_val = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; - b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_bigui255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint255; + b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_big_uint255; } else { // vesta - u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255; - fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_bigui255; + u_val = 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint255; + fu_val = 0x0000000000000000000000000000000000000000000000000000000000000006_big_uint255; inv_three_u_squared_val = - 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5BB87093B2D9F21600000001_bigui255; + 0x2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC18465FD5BB87093B2D9F21600000001_big_uint255; sqrt_neg_three_u_squared_val = - 0x0D0334B0507CA51CA23B69B039EE1EB41FDA8CFA8F80675E5553A5C0A1541C9F_bigui255; + 0x0D0334B0507CA51CA23B69B039EE1EB41FDA8CFA8F80675E5553A5C0A1541C9F_big_uint255; sqrt_neg_three_u_squared_minus_u_over_2_val = - 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_bigui255; - b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_bigui255; + 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_big_uint255; + b_val = 0x0000000000000000000000000000000000000000000000000000000000000005_big_uint255; } // var u; assignment.constant(0)[row] = u_val; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp index 4c590233e6..6b3489e3b1 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/components/systems/snark/plonk/kimchi/oracles_scalar.hpp @@ -480,7 +480,7 @@ namespace nil { std::size_t row = start_row_index; typename BlueprintFieldType::value_type endo_factor = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint255; std::size_t num_bits = 128; var fq_digest = params.fq_output.fq_digest; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp index f1f2bbe525..ddfe071a73 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/addmod.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; zkevm_addmod_operation(){ this->stack_input = 3; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp index 5d593338a8..a9bd04ec22 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldataload.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp index 038bcddaa2..b4fafa1ffd 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/calldatasize.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp index 678b7aaf3b..c3d3f9eae6 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/callvalue.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp index 43ba0cc8af..fa1f1d0f31 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div.hpp @@ -50,9 +50,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp index 3ee35e7098..ed93e1bd68 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/div_mod.hpp @@ -61,9 +61,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp index 095825763c..e802224fde 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/jumpi.hpp @@ -61,9 +61,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; // Table layout Row # // +------------------+-+----------------+---+--------------+ diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp index f64cff2090..20ee222407 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/memory.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, @@ -106,9 +106,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp index a220ba7e9e..d5d2354ada 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mul.hpp @@ -58,9 +58,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp index 82cd7d2c78..82815b2826 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/mulmod.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; zkevm_mulmod_operation(){ this->stack_input = 3; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp index f9bca92f6e..540e34208d 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/padding.hpp @@ -55,9 +55,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp index 0c6338367c..1e3fc98a83 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/pop.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp index 5ee32ae9ee..98df585720 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/return.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp index 7fb89f79f8..61070dee06 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sar.hpp @@ -52,9 +52,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; zkevm_sar_operation(){ this->stack_input = 2; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp index ef8f4ee3a0..6ef21cc057 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/sdiv_smod.hpp @@ -60,9 +60,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp index 495200c291..347454f3a5 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shl.hpp @@ -56,9 +56,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp index 97e27d75e7..217674b848 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/shr.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; template T chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp index d0d21240a2..80fb66f85a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/operations/storage.hpp @@ -57,9 +57,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, @@ -109,9 +109,9 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; - constexpr static const value_type two128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; + constexpr static const value_type two128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const value_type two192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; std::map>, diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp index f9c18222ea..db034f77c0 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_machine_interface.hpp @@ -221,7 +221,7 @@ namespace nil { break; case zkevm_opcode::NOT:{ word_type a = stack_pop(); - word_type not_a = word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257) - a; + word_type not_a = word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint257) - a; stack.push(not_a); pc++; gas -= 3; break; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp index ba220708dc..bd8e5d809d 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm/zkevm_word.hpp @@ -37,7 +37,7 @@ namespace nil { namespace blueprint { constexpr inline auto zkevm_modulus = - 0x10000000000000000000000000000000000000000000000000000000000000000_bigui257; + 0x10000000000000000000000000000000000000000000000000000000000000000_big_uint257; using zkevm_word_type = nil::crypto3::multiprecision::auto_big_mod; @@ -106,7 +106,7 @@ namespace nil { typename BlueprintFieldType::value_type w_hi(const zkevm_word_type &val){ using integral_type = nil::crypto3::multiprecision::big_uint<257>; - integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_bigui257; + integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000_big_uint257; return (integral_type(val) & mask) >> 128; } @@ -114,7 +114,7 @@ namespace nil { typename BlueprintFieldType::value_type w_lo(const zkevm_word_type &val){ using integral_type = nil::crypto3::multiprecision::big_uint<257>; - integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257; + integral_type mask = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint257; return integral_type(val) & mask; } diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp index e431624f8e..cbd0331278 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/input_generators/opcode_tester_input_generator.hpp @@ -424,7 +424,7 @@ namespace nil { zkevm_word_type a = stack.back(); stack.pop_back(); _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, false, a)); - zkevm_word_type result = zkevm_word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui257) - a;; + zkevm_word_type result = zkevm_word_type(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint257) - a;; _rw_operations.push_back(stack_rw_operation(call_id, stack.size(), rw_counter++, true, result)); stack.push_back(result); pc++; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp index 6b4e937fe2..d232818f3b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/addmod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp index d79620c567..f83e172e1f 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/div_mod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp index b98b8a5f96..3bce9bfc6b 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mul.hpp @@ -49,9 +49,9 @@ namespace nil { using typename generic_component::TYPE; using integral_type = zkevm_word_integral_type; - constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_bigui257; - constexpr static const typename FieldType::value_type two_128 = 0x100000000000000000000000000000000_bigui254; - constexpr static const typename FieldType::value_type two_192 = 0x1000000000000000000000000000000000000000000000000_bigui254; + constexpr static const typename FieldType::value_type two_64 = 0x10000000000000000_big_uint257; + constexpr static const typename FieldType::value_type two_128 = 0x100000000000000000000000000000000_big_uint254; + constexpr static const typename FieldType::value_type two_192 = 0x1000000000000000000000000000000000000000000000000_big_uint254; TYPE chunk_sum_64(const std::vector &chunks, const unsigned char chunk_idx) const { BOOST_ASSERT(chunk_idx < 4); diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp index f7e8a3cc28..5b2268d464 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/mulmod.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp index af3d6b552e..6ac2042988 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sar.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp index 2554b0a192..94bbaddf6a 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/sdiv_smod.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp index 10408544a3..f8692c6094 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shl.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp index a7dda0fa04..dd9378ba02 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/shr.hpp @@ -52,11 +52,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp index 195babc501..061cfe8677 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/opcodes/signextend.hpp @@ -51,11 +51,11 @@ namespace nil { constexpr static const value_type two_16 = 65536; constexpr static const value_type two_32 = 4294967296; constexpr static const value_type two_48 = 281474976710656; - constexpr static const value_type two_64 = 0x10000000000000000_bigui254; + constexpr static const value_type two_64 = 0x10000000000000000_big_uint254; constexpr static const value_type two_128 = - 0x100000000000000000000000000000000_bigui254; + 0x100000000000000000000000000000000_big_uint254; constexpr static const value_type two_192 = - 0x1000000000000000000000000000000000000000000000000_bigui254; + 0x1000000000000000000000000000000000000000000000000_big_uint254; public: using typename generic_component::TYPE; diff --git a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp index ef82de6d3f..19950f42af 100644 --- a/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp +++ b/crypto3/libs/blueprint/include/nil/blueprint/zkevm_bbf/util.hpp @@ -75,8 +75,8 @@ namespace nil { zkevm_word_type exp_by_squaring(zkevm_word_type a, zkevm_word_type n) { using integral_type = nil::crypto3::multiprecision::big_uint<257>; - if (n == 0x00_bigui257) return 1; - if (n == 0x01_bigui257) return a; + if (n == 0x00_big_uint257) return 1; + if (n == 0x01_big_uint257) return a; zkevm_word_type exp = exp_by_squaring(a, zkevm_word_type(integral_type(n) >> 1)); zkevm_word_type exp2 = exp * exp; diff --git a/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp b/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp index cfb423ef51..6bec01b428 100644 --- a/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp +++ b/crypto3/libs/blueprint/test/algebra/curves/plonk/endo_scalar.cpp @@ -56,9 +56,9 @@ struct endo_scalar_params { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui255; + 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_big_uint255; }; template<> @@ -67,9 +67,9 @@ struct endo_scalar_params { using scalar_field_type = typename curve_type::scalar_field_type; using base_field_type = typename curve_type::base_field_type; constexpr static const typename scalar_field_type::value_type endo_r = - 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_bigui255; + 0x397E65A7D7C1AD71AEE24B27E308F0A61259527EC1D4752E619D1840AF55F1B1_big_uint255; constexpr static const typename base_field_type::value_type endo_q = - 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui255; + 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_big_uint255; }; template @@ -179,14 +179,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_vesta) { using curve_type = nil::crypto3::algebra::curves::vesta; using BlueprintFieldType = typename curve_type::scalar_field_type; - typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui255; - typename BlueprintFieldType::value_type result = 0x004638173549A4C55A118327904B54E5F6F6314225C8C862F5AFA2506C77AC65_bigui255; + typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_big_uint255; + typename BlueprintFieldType::value_type result = 0x004638173549A4C55A118327904B54E5F6F6314225C8C862F5AFA2506C77AC65_big_uint255; test_endo_scalar({challenge}, result); test_endo_scalar({1}, calculate_endo_scalar(1)); test_endo_scalar({0}, calculate_endo_scalar(0)); - test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255}, - calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255)); + test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255}, + calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255)); nil::crypto3::random::algebraic_engine generate_random; boost::random::mt19937 seed_seq; @@ -195,7 +195,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_vesta) { for (std::size_t i = 0; i < random_tests_amount; i++){ typename curve_type::scalar_field_type::value_type input = generate_random(); typename curve_type::scalar_field_type::integral_type input_integral = typename curve_type::scalar_field_type::integral_type(input.data); - input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255; + input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255; typename curve_type::scalar_field_type::value_type input_scalar = input_integral; test_endo_scalar({input_scalar}, calculate_endo_scalar(input_scalar)); } @@ -205,13 +205,13 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_pallas) { using curve_type = nil::crypto3::algebra::curves::pallas; using BlueprintFieldType = typename curve_type::scalar_field_type; - typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui255; + typename BlueprintFieldType::value_type challenge = 0x00000000000000000000000000000000FC93536CAE0C612C18FBE5F6D8E8EEF2_big_uint255; test_endo_scalar({challenge}, calculate_endo_scalar(challenge)); test_endo_scalar({1}, calculate_endo_scalar(1)); test_endo_scalar({0}, calculate_endo_scalar(0)); - test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255}, - calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255)); + test_endo_scalar({0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255}, + calculate_endo_scalar(0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255)); nil::crypto3::random::algebraic_engine generate_random; boost::random::mt19937 seed_seq; @@ -220,7 +220,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_endo_scalar_pallas) { for (std::size_t i = 0; i < random_tests_amount; i++){ typename curve_type::scalar_field_type::value_type input = generate_random(); typename curve_type::scalar_field_type::integral_type input_integral = typename curve_type::scalar_field_type::integral_type(input.data); - input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui255; + input_integral = input_integral & 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint255; typename curve_type::scalar_field_type::value_type input_scalar = input_integral; test_endo_scalar({input_scalar}, calculate_endo_scalar(input_scalar)); } diff --git a/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp b/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp index 7778ae3098..122adfbf16 100644 --- a/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp +++ b/crypto3/libs/blueprint/test/algebra/curves/plonk/variable_base_endo_scalar_mul.cpp @@ -84,7 +84,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_base_endo_scalar_mul) { std::vector public_input = {T.X, T.Y, b_scalar}; constexpr static const typename BlueprintFieldType::value_type endo = component_type::endo; - typename BlueprintFieldType::value_type endo_scalar = 0x244630A7EE5033DA383B3677B4C5CA94A3EBE4156FC4FA4E08B35974929CA2C5_bigui255; + typename BlueprintFieldType::value_type endo_scalar = 0x244630A7EE5033DA383B3677B4C5CA94A3EBE4156FC4FA4E08B35974929CA2C5_big_uint255; typename curve_type::template g1_type::value_type testResult = endo_scalar * T; std::cout<<"Expected result for endo_scalar * T: "<(random_point(), two + two.pow(255) + 1); @@ -248,9 +248,9 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_variable_base_scalar_mul_random_scalar_pall random_scalar.seed(pallas_seed_seq); typename pallas_curve_type::scalar_field_type::value_type pallas_two = 2; - typename pallas_curve_type::scalar_field_type::value_type pallas_threefff = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui255; + typename pallas_curve_type::scalar_field_type::value_type pallas_threefff = 0x3fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint255; typename pallas_curve_type::scalar_field_type::value_type pallas_unshifted_threefff = 2*pallas_threefff + pallas_two.pow(255) + 1; - typename pallas_curve_type::scalar_field_type::value_type pallas_p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_bigui255; + typename pallas_curve_type::scalar_field_type::value_type pallas_p = 0x40000000000000000000000000000000224698fc094cf91b992d30ed00000001_big_uint255; test_vbsm(pallas_random_point(), pallas_two + pallas_two.pow(255) + 1); test_vbsm(pallas_random_point(), pallas_two - pallas_two + pallas_two.pow(255) + 1); diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp index b9d6530111..42c70e27e4 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/multiplication.cpp @@ -183,8 +183,8 @@ void test_field_mul_all_cases() { } test_field_mul_useable( - glue_non_native({0, 0, 0x3ffffffffffffffff_bigui255, 0}), - glue_non_native({0, 0, 0x3ffffffffffffffff_bigui255, 0})); + glue_non_native({0, 0, 0x3ffffffffffffffff_big_uint255, 0}), + glue_non_native({0, 0, 0x3ffffffffffffffff_big_uint255, 0})); test_field_mul_useable(0, 0); test_field_mul_useable(1, 1); @@ -203,16 +203,16 @@ void test_field_mul_all_cases() { glue_non_native({1, 0, 0, 0})); test_field_mul_useable( - glue_non_native({0x2BCA8C5A0FDF3D53E_bigui253, 0x39840DDF4C421B2D5_bigui253, - 0x24FCE5728D26931CA_bigui253, 0xFBD6153B4CE63_bigui253}), - glue_non_native({0x3CD7BA9506A76AA1C_bigui253, 0x15C58810F101DDB2F_bigui253, - 0x1AA5750251F6DA658_bigui253, 0x1323F61B67242F_bigui253})); + glue_non_native({0x2BCA8C5A0FDF3D53E_big_uint253, 0x39840DDF4C421B2D5_big_uint253, + 0x24FCE5728D26931CA_big_uint253, 0xFBD6153B4CE63_big_uint253}), + glue_non_native({0x3CD7BA9506A76AA1C_big_uint253, 0x15C58810F101DDB2F_big_uint253, + 0x1AA5750251F6DA658_big_uint253, 0x1323F61B67242F_big_uint253})); test_field_mul_useable( glue_non_native( - {0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255}), + {0xc801afd_big_uint255, 0xc801afd_big_uint255, 0xc801afd_big_uint255, 0xc801afd_big_uint255}), glue_non_native( - {0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255, 0xc801afd_bigui255})); + {0xc801afd_big_uint255, 0xc801afd_big_uint255, 0xc801afd_big_uint255, 0xc801afd_big_uint255})); for (std::size_t i = 0; i < 10; i++) { test_field_mul_useable(rand(), rand()); } diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp index 23f04a6fdb..30905db4f4 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/range.cpp @@ -130,11 +130,11 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_range_test0) { BOOST_AUTO_TEST_CASE(blueprint_non_native_range_test_must_fail) { test_field_range( //ed25519 modulus - {0x3ffffffffffffffed_bigui255, 0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x1ffffffffffffff_bigui255}, false + {0x3ffffffffffffffed_big_uint255, 0x3ffffffffffffffff_big_uint255, 0x3ffffffffffffffff_big_uint255, 0x1ffffffffffffff_big_uint255}, false ); test_field_range( - {0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x3ffffffffffffffff_bigui255, 0x1ffffffffffffff_bigui255}, false + {0x3ffffffffffffffff_big_uint255, 0x3ffffffffffffffff_big_uint255, 0x3ffffffffffffffff_big_uint255, 0x1ffffffffffffff_big_uint255}, false ); } diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp index f0782b4a91..9f59306991 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/reduction.cpp @@ -93,7 +93,7 @@ void test_reduction(std::vector public_ using extended_integral_type = nil::crypto3::multiprecision::big_uint<513>; constexpr static const extended_integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui512; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint512; constexpr static const extended_integral_type one = 1; constexpr static const extended_integral_type max512 = (one << 512) - 1; @@ -101,7 +101,7 @@ template std::vector vector_from_extended_integral(extended_integral_type input) { std::vector pub_inp; for (std::size_t i = 0; i < 8; i++) { - extended_integral_type mask = 0xffffffffffffffff_bigui512; + extended_integral_type mask = 0xffffffffffffffff_big_uint512; typename FieldType::value_type current = typename FieldType::value_type((input >> (64*i)) & mask); pub_inp.push_back(current); } @@ -124,7 +124,7 @@ BOOST_AUTO_TEST_CASE(blueprint_variable_base_decomposition_edward25519) { test_reduction_input_expended_integral_calculate_expected(max512); test_reduction_input_expended_integral_calculate_expected(0); test_reduction_input_expended_integral_calculate_expected(1); - test_reduction_input_expended_integral_calculate_expected(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui512); + test_reduction_input_expended_integral_calculate_expected(0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint512); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus * 2); test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus + 1); @@ -132,7 +132,7 @@ BOOST_AUTO_TEST_CASE(blueprint_variable_base_decomposition_edward25519) { test_reduction_input_expended_integral_calculate_expected(ed25519_scalar_modulus << 256); test_reduction_input_expended_integral_calculate_expected( max512 - extended_integral_type( - 0x399411b7c309a3dceec73d217f5be65d00e1ba768859347a40611e3449c0f00_bigui512)); + 0x399411b7c309a3dceec73d217f5be65d00e1ba768859347a40611e3449c0f00_big_uint512)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp index f970e6a11b..a0dd7c071e 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/non_native/subtraction.cpp @@ -170,8 +170,8 @@ void test_field_sub_all_cases(){ glue_non_native({1,0,0,0})); test_field_sub_useable( - glue_non_native({0x2BCA8C5A0FDF3D53E_bigui253, 0x39840DDF4C421B2D5_bigui253, 0x24FCE5728D26931CA_bigui253, 0xFBD6153B4CE63_bigui253}), - glue_non_native({0x3CD7BA9506A76AA1C_bigui253, 0x15C58810F101DDB2F_bigui253, 0x1AA5750251F6DA658_bigui253, 0x1323F61B67242F_bigui253})); + glue_non_native({0x2BCA8C5A0FDF3D53E_big_uint253, 0x39840DDF4C421B2D5_big_uint253, 0x24FCE5728D26931CA_big_uint253, 0xFBD6153B4CE63_big_uint253}), + glue_non_native({0x3CD7BA9506A76AA1C_big_uint253, 0x15C58810F101DDB2F_big_uint253, 0x1AA5750251F6DA658_big_uint253, 0x1323F61B67242F_big_uint253})); for (std::size_t i = 0; i < 10; i++) { test_field_sub_useable(rand(), rand()); diff --git a/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp b/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp index 72d957d0eb..797a9e9cbb 100644 --- a/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp +++ b/crypto3/libs/blueprint/test/algebra/fields/plonk/range_check.cpp @@ -143,7 +143,7 @@ void test_range_check_specific_inputs() { test_range_check(-1); test_range_check(value_type(2).pow(R)); test_range_check( - 0x4000000000000000000000000000000000000000000000000000000000000000_bigui256 + 0x4000000000000000000000000000000000000000000000000000000000000000_big_uint256 ); } diff --git a/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp b/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp index fd818be015..ff26021abc 100644 --- a/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp +++ b/crypto3/libs/blueprint/test/bbf/exp_wrapper.cpp @@ -109,8 +109,8 @@ word_type random_word_type(nil::crypto3::random::algebraic_engine &g) } word_type exp_by_squaring(word_type a, word_type n) { - if (n == 0x00_bigui257) return 1; - if (n == 0x01_bigui257) return a; + if (n == 0x00_big_uint257) return 1; + if (n == 0x01_big_uint257) return a; word_type exp = exp_by_squaring(a, n >> 1); word_type exp2 = exp * exp; @@ -129,14 +129,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_exp_wrapper_test) { std::vector> inputs; word_type a1 = - 0xa00e9bd49962d7b217963a3daed6f4591c2bdbd41562d5f1446dc932ac9e1975_bigui257; + 0xa00e9bd49962d7b217963a3daed6f4591c2bdbd41562d5f1446dc932ac9e1975_big_uint257; word_type d1 = - 0xacab9c07aa7d08b7652965f01307cf5a3ed09cbf08325c10af9d2029e918ac7d_bigui257; + 0xacab9c07aa7d08b7652965f01307cf5a3ed09cbf08325c10af9d2029e918ac7d_big_uint257; word_type A1 = - 0x22fcc8f007a53fb4d231a691075afd85980214380e16a5994ff90de783c28b85_bigui257; - word_type a2 = 0x2_bigui257; - word_type d2 = 0x100_bigui257; - word_type A2 = 0x0_bigui257; + 0x22fcc8f007a53fb4d231a691075afd85980214380e16a5994ff90de783c28b85_big_uint257; + word_type a2 = 0x2_big_uint257; + word_type d2 = 0x100_big_uint257; + word_type A2 = 0x0_big_uint257; inputs.push_back({a1, d1, A1}); inputs.push_back({a2, d2, A2}); diff --git a/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp b/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp index bcd4c422c4..0ec6f6d24f 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/decomposition.cpp @@ -135,8 +135,8 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_test0) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; test_decomposition( - {0x8d741211e928fdd4d33a13970d0ce7f3_bigui255, 0x92f209334030f9ec8fa8a025e987a5dd_bigui255}, - calculate_decomposition({0x8d741211e928fdd4d33a13970d0ce7f3_bigui255, 0x92f209334030f9ec8fa8a025e987a5dd_bigui255}), + {0x8d741211e928fdd4d33a13970d0ce7f3_big_uint255, 0x92f209334030f9ec8fa8a025e987a5dd_big_uint255}, + calculate_decomposition({0x8d741211e928fdd4d33a13970d0ce7f3_big_uint255, 0x92f209334030f9ec8fa8a025e987a5dd_big_uint255}), true); test_decomposition( @@ -145,15 +145,15 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_test0) { true); test_decomposition( - {0xffffffffffffffffffffffffffffffff_bigui255, 0xffffffffffffffffffffffffffffffff_bigui255}, - calculate_decomposition({0xffffffffffffffffffffffffffffffff_bigui255, 0xffffffffffffffffffffffffffffffff_bigui255}), + {0xffffffffffffffffffffffffffffffff_big_uint255, 0xffffffffffffffffffffffffffffffff_big_uint255}, + calculate_decomposition({0xffffffffffffffffffffffffffffffff_big_uint255, 0xffffffffffffffffffffffffffffffff_big_uint255}), true); } BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_must_fail) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; - typename field_type::value_type bad = 0x100000000000000000000000000000000_bigui255; + typename field_type::value_type bad = 0x100000000000000000000000000000000_big_uint255; test_decomposition( {0u, bad}, @@ -165,7 +165,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_decomposition_must_fail) { calculate_decomposition({bad, 0u}), false); - bad = 0x4000000000000000000000000000000000000000000000000000000000000000_bigui255; + bad = 0x4000000000000000000000000000000000000000000000000000000000000000_big_uint255; test_decomposition( {0u, bad}, diff --git a/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp b/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp index 98554a43fb..1f8a06ce52 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/poseidon.cpp @@ -126,7 +126,7 @@ void test_poseidon_specfic_data(){ input = {-1,-1,-1}; test_poseidon(input, calculate_expected_poseidon(input)); - typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui256; + typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint256; input = {threeFFF, threeFFF, threeFFF}; test_poseidon(input, calculate_expected_poseidon(input)); } diff --git a/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp b/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp index 48ed2af6ab..b2dbdeefbb 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/sha256.cpp @@ -161,35 +161,35 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha256_test0) { test_sha256_with_stretching( {s, s + 1, s + 2, s + 3}, - {0xf5790a69d0a3f69cb85d0b5a233405fb_bigui255, 0xa47050b703fce590fd6585dd02b175f8_bigui255}); + {0xf5790a69d0a3f69cb85d0b5a233405fb_big_uint255, 0xa47050b703fce590fd6585dd02b175f8_big_uint255}); test_sha256_with_stretching({ - 0xf5a5fd42d16a20302798ef6ed309979b_bigui255, 0x43003d2320d9f0e8ea9831a92759fb4b_bigui255, - 0xdb56114e00fdd4c1f85c892bf35ac9a8_bigui255, 0x9289aaecb1ebd0a96cde606a748b5d71_bigui255}, - {0x42b052541dce45557d83d34634a45a56_bigui255, 0xd216d4375e5a9584f6445ce4e63324af_bigui255}); + 0xf5a5fd42d16a20302798ef6ed309979b_big_uint255, 0x43003d2320d9f0e8ea9831a92759fb4b_big_uint255, + 0xdb56114e00fdd4c1f85c892bf35ac9a8_big_uint255, 0x9289aaecb1ebd0a96cde606a748b5d71_big_uint255}, + {0x42b052541dce45557d83d34634a45a56_big_uint255, 0xd216d4375e5a9584f6445ce4e63324af_big_uint255}); test_sha256_with_stretching({ - 0xc78009fdf07fc56a11f122370658a353_bigui255, 0xaaa542ed63e44c4bc15ff4cd105ab33c_bigui255, - 0x536d98837f2dd165a55d5eeae9148595_bigui255, 0x4472d56f246df256bf3cae19352a123c_bigui255}, - {0x69113382140943e8205d01244f562096_bigui255, 0x4d5b92a1cb78bf9fe35ab0bbd2f1f8c2_bigui255}); + 0xc78009fdf07fc56a11f122370658a353_big_uint255, 0xaaa542ed63e44c4bc15ff4cd105ab33c_big_uint255, + 0x536d98837f2dd165a55d5eeae9148595_big_uint255, 0x4472d56f246df256bf3cae19352a123c_big_uint255}, + {0x69113382140943e8205d01244f562096_big_uint255, 0x4d5b92a1cb78bf9fe35ab0bbd2f1f8c2_big_uint255}); test_sha256_with_stretching({ - 0x9efde052aa15429fae05bad4d0b1d7c6_bigui255, 0x4da64d03d7a1854a588c2cb8430c0d30_bigui255, - 0xd88ddfeed400a8755596b21942c1497e_bigui255, 0x114c302e6118290f91e6772976041fa1_bigui255}, - {0x60a7f836b0b42a41d74143c1ae465c25_bigui255, 0xed04376190677ef7d589bd69bc4d79c8_bigui255}); + 0x9efde052aa15429fae05bad4d0b1d7c6_big_uint255, 0x4da64d03d7a1854a588c2cb8430c0d30_big_uint255, + 0xd88ddfeed400a8755596b21942c1497e_big_uint255, 0x114c302e6118290f91e6772976041fa1_big_uint255}, + {0x60a7f836b0b42a41d74143c1ae465c25_big_uint255, 0xed04376190677ef7d589bd69bc4d79c8_big_uint255}); test_sha256_with_stretching({ - 0x87eb0ddba57e35f6d286673802a4af59_bigui255, 0x75e22506c7cf4c64bb6be5ee11527f2c_bigui255, - 0x26846476fd5fc54a5d43385167c95144_bigui255, 0xf2643f533cc85bb9d16b782f8d7db193_bigui255}, - {0x841510f2de07868d707940400d618c9e_bigui255, 0xeeb91d1bd77177f196a238e272cb9bc3_bigui255}); + 0x87eb0ddba57e35f6d286673802a4af59_big_uint255, 0x75e22506c7cf4c64bb6be5ee11527f2c_big_uint255, + 0x26846476fd5fc54a5d43385167c95144_big_uint255, 0xf2643f533cc85bb9d16b782f8d7db193_big_uint255}, + {0x841510f2de07868d707940400d618c9e_big_uint255, 0xeeb91d1bd77177f196a238e272cb9bc3_big_uint255}); test_sha256_with_stretching({ - 0x506d86582d252405b840018792cad2bf_bigui255, 0x1259f1ef5aa5f887e13cb2f0094f51e1_bigui255, - 0xffff0ad7e659772f9534c195c815efc4_bigui255, 0x14ef1e1daed4404c06385d11192e92b_bigui255}, - {0x88b8aa87277a142cbe3d58e7a85ced04_bigui255, 0x4fec5eb57f1828caf06b5fae9c8c67fd_bigui255}); + 0x506d86582d252405b840018792cad2bf_big_uint255, 0x1259f1ef5aa5f887e13cb2f0094f51e1_big_uint255, + 0xffff0ad7e659772f9534c195c815efc4_big_uint255, 0x14ef1e1daed4404c06385d11192e92b_big_uint255}, + {0x88b8aa87277a142cbe3d58e7a85ced04_big_uint255, 0x4fec5eb57f1828caf06b5fae9c8c67fd_big_uint255}); test_sha256_with_stretching( - {0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64, 0xffffffffffffffff_bigui64}, - {0xf58ac0f0665e3f1886f2eae35542987b_bigui255, 0x9d61cc98e5d3ed2a5a9d8e3b9b7d9f2f_bigui255}); + {0xffffffffffffffff_big_uint64, 0xffffffffffffffff_big_uint64, 0xffffffffffffffff_big_uint64, 0xffffffffffffffff_big_uint64}, + {0xf58ac0f0665e3f1886f2eae35542987b_big_uint255, 0x9d61cc98e5d3ed2a5a9d8e3b9b7d9f2f_big_uint255}); test_sha256_with_stretching( {1, 1, 1, 1}, - {0x8e1caeb2418a07d7d88f710dccd882d5_bigui255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_bigui255}); + {0x8e1caeb2418a07d7d88f710dccd882d5_big_uint255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_big_uint255}); } @@ -198,6 +198,6 @@ BOOST_AUTO_TEST_CASE(sha256_test1) { test_and_print( {1, 1, 1, 1}, - {0x8e1caeb2418a07d7d88f710dccd882d5_bigui255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_bigui255}); + {0x8e1caeb2418a07d7d88f710dccd882d5_big_uint255, 0xb5772c88ae5ca4442ccc46c4518a3d3b_big_uint255}); } BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file diff --git a/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp b/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp index b6fc726f3b..d163cc62db 100644 --- a/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp +++ b/crypto3/libs/blueprint/test/hashes/plonk/sha512_process.cpp @@ -64,14 +64,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha512_process) { using component_type = blueprint::components::sha512_process; typename BlueprintFieldType::value_type s = typename BlueprintFieldType::value_type(2).pow(59); - std::array public_input = {0x6a09e667f3bcc908_bigui64, - 0xbb67ae8584caa73b_bigui64, - 0x3c6ef372fe94f82b_bigui64, - 0xa54ff53a5f1d36f1_bigui64, - 0x510e527fade682d1_bigui64, - 0x9b05688c2b3e6c1f_bigui64, - 0x1f83d9abfb41bd6b_bigui64, - 0x5be0cd19137e2179_bigui64, + std::array public_input = {0x6a09e667f3bcc908_big_uint64, + 0xbb67ae8584caa73b_big_uint64, + 0x3c6ef372fe94f82b_big_uint64, + 0xa54ff53a5f1d36f1_big_uint64, + 0x510e527fade682d1_big_uint64, + 0x9b05688c2b3e6c1f_big_uint64, + 0x1f83d9abfb41bd6b_big_uint64, + 0x5be0cd19137e2179_big_uint64, s - 5, s + 5, s - 6, @@ -95,26 +95,26 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_sha512_process) { var(0, 6, false, var::column_type::public_input), var(0, 7, false, var::column_type::public_input)}; std::array round_constant = { - 0x428a2f98d728ae22_bigui64, 0x7137449123ef65cd_bigui64, 0xb5c0fbcfec4d3b2f_bigui64, 0xe9b5dba58189dbbc_bigui64, - 0x3956c25bf348b538_bigui64, 0x59f111f1b605d019_bigui64, 0x923f82a4af194f9b_bigui64, 0xab1c5ed5da6d8118_bigui64, - 0xd807aa98a3030242_bigui64, 0x12835b0145706fbe_bigui64, 0x243185be4ee4b28c_bigui64, 0x550c7dc3d5ffb4e2_bigui64, - 0x72be5d74f27b896f_bigui64, 0x80deb1fe3b1696b1_bigui64, 0x9bdc06a725c71235_bigui64, 0xc19bf174cf692694_bigui64, - 0xe49b69c19ef14ad2_bigui64, 0xefbe4786384f25e3_bigui64, 0x0fc19dc68b8cd5b5_bigui64, 0x240ca1cc77ac9c65_bigui64, - 0x2de92c6f592b0275_bigui64, 0x4a7484aa6ea6e483_bigui64, 0x5cb0a9dcbd41fbd4_bigui64, 0x76f988da831153b5_bigui64, - 0x983e5152ee66dfab_bigui64, 0xa831c66d2db43210_bigui64, 0xb00327c898fb213f_bigui64, 0xbf597fc7beef0ee4_bigui64, - 0xc6e00bf33da88fc2_bigui64, 0xd5a79147930aa725_bigui64, 0x06ca6351e003826f_bigui64, 0x142929670a0e6e70_bigui64, - 0x27b70a8546d22ffc_bigui64, 0x2e1b21385c26c926_bigui64, 0x4d2c6dfc5ac42aed_bigui64, 0x53380d139d95b3df_bigui64, - 0x650a73548baf63de_bigui64, 0x766a0abb3c77b2a8_bigui64, 0x81c2c92e47edaee6_bigui64, 0x92722c851482353b_bigui64, - 0xa2bfe8a14cf10364_bigui64, 0xa81a664bbc423001_bigui64, 0xc24b8b70d0f89791_bigui64, 0xc76c51a30654be30_bigui64, - 0xd192e819d6ef5218_bigui64, 0xd69906245565a910_bigui64, 0xf40e35855771202a_bigui64, 0x106aa07032bbd1b8_bigui64, - 0x19a4c116b8d2d0c8_bigui64, 0x1e376c085141ab53_bigui64, 0x2748774cdf8eeb99_bigui64, 0x34b0bcb5e19b48a8_bigui64, - 0x391c0cb3c5c95a63_bigui64, 0x4ed8aa4ae3418acb_bigui64, 0x5b9cca4f7763e373_bigui64, 0x682e6ff3d6b2b8a3_bigui64, - 0x748f82ee5defb2fc_bigui64, 0x78a5636f43172f60_bigui64, 0x84c87814a1f0ab72_bigui64, 0x8cc702081a6439ec_bigui64, - 0x90befffa23631e28_bigui64, 0xa4506cebde82bde9_bigui64, 0xbef9a3f7b2c67915_bigui64, 0xc67178f2e372532b_bigui64, - 0xca273eceea26619c_bigui64, 0xd186b8c721c0c207_bigui64, 0xeada7dd6cde0eb1e_bigui64, 0xf57d4f7fee6ed178_bigui64, - 0x06f067aa72176fba_bigui64, 0x0a637dc5a2c898a6_bigui64, 0x113f9804bef90dae_bigui64, 0x1b710b35131c471b_bigui64, - 0x28db77f523047d84_bigui64, 0x32caab7b40c72493_bigui64, 0x3c9ebe0a15c9bebc_bigui64, 0x431d67c49c100d4c_bigui64, - 0x4cc5d4becb3e42b6_bigui64, 0x597f299cfc657e2a_bigui64, 0x5fcb6fab3ad6faec_bigui64, 0x6c44198c4a475817_bigui64}; + 0x428a2f98d728ae22_big_uint64, 0x7137449123ef65cd_big_uint64, 0xb5c0fbcfec4d3b2f_big_uint64, 0xe9b5dba58189dbbc_big_uint64, + 0x3956c25bf348b538_big_uint64, 0x59f111f1b605d019_big_uint64, 0x923f82a4af194f9b_big_uint64, 0xab1c5ed5da6d8118_big_uint64, + 0xd807aa98a3030242_big_uint64, 0x12835b0145706fbe_big_uint64, 0x243185be4ee4b28c_big_uint64, 0x550c7dc3d5ffb4e2_big_uint64, + 0x72be5d74f27b896f_big_uint64, 0x80deb1fe3b1696b1_big_uint64, 0x9bdc06a725c71235_big_uint64, 0xc19bf174cf692694_big_uint64, + 0xe49b69c19ef14ad2_big_uint64, 0xefbe4786384f25e3_big_uint64, 0x0fc19dc68b8cd5b5_big_uint64, 0x240ca1cc77ac9c65_big_uint64, + 0x2de92c6f592b0275_big_uint64, 0x4a7484aa6ea6e483_big_uint64, 0x5cb0a9dcbd41fbd4_big_uint64, 0x76f988da831153b5_big_uint64, + 0x983e5152ee66dfab_big_uint64, 0xa831c66d2db43210_big_uint64, 0xb00327c898fb213f_big_uint64, 0xbf597fc7beef0ee4_big_uint64, + 0xc6e00bf33da88fc2_big_uint64, 0xd5a79147930aa725_big_uint64, 0x06ca6351e003826f_big_uint64, 0x142929670a0e6e70_big_uint64, + 0x27b70a8546d22ffc_big_uint64, 0x2e1b21385c26c926_big_uint64, 0x4d2c6dfc5ac42aed_big_uint64, 0x53380d139d95b3df_big_uint64, + 0x650a73548baf63de_big_uint64, 0x766a0abb3c77b2a8_big_uint64, 0x81c2c92e47edaee6_big_uint64, 0x92722c851482353b_big_uint64, + 0xa2bfe8a14cf10364_big_uint64, 0xa81a664bbc423001_big_uint64, 0xc24b8b70d0f89791_big_uint64, 0xc76c51a30654be30_big_uint64, + 0xd192e819d6ef5218_big_uint64, 0xd69906245565a910_big_uint64, 0xf40e35855771202a_big_uint64, 0x106aa07032bbd1b8_big_uint64, + 0x19a4c116b8d2d0c8_big_uint64, 0x1e376c085141ab53_big_uint64, 0x2748774cdf8eeb99_big_uint64, 0x34b0bcb5e19b48a8_big_uint64, + 0x391c0cb3c5c95a63_big_uint64, 0x4ed8aa4ae3418acb_big_uint64, 0x5b9cca4f7763e373_big_uint64, 0x682e6ff3d6b2b8a3_big_uint64, + 0x748f82ee5defb2fc_big_uint64, 0x78a5636f43172f60_big_uint64, 0x84c87814a1f0ab72_big_uint64, 0x8cc702081a6439ec_big_uint64, + 0x90befffa23631e28_big_uint64, 0xa4506cebde82bde9_big_uint64, 0xbef9a3f7b2c67915_big_uint64, 0xc67178f2e372532b_big_uint64, + 0xca273eceea26619c_big_uint64, 0xd186b8c721c0c207_big_uint64, 0xeada7dd6cde0eb1e_big_uint64, 0xf57d4f7fee6ed178_big_uint64, + 0x06f067aa72176fba_big_uint64, 0x0a637dc5a2c898a6_big_uint64, 0x113f9804bef90dae_big_uint64, 0x1b710b35131c471b_big_uint64, + 0x28db77f523047d84_big_uint64, 0x32caab7b40c72493_big_uint64, 0x3c9ebe0a15c9bebc_big_uint64, 0x431d67c49c100d4c_big_uint64, + 0x4cc5d4becb3e42b6_big_uint64, 0x597f299cfc657e2a_big_uint64, 0x5fcb6fab3ad6faec_big_uint64, 0x6c44198c4a475817_big_uint64}; std::array input_words_var; for (int i = 0; i < 16; i++) { diff --git a/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp b/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp index 1ac456aed7..22bc8dff13 100644 --- a/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp +++ b/crypto3/libs/blueprint/test/non_native/plonk/add_mul_zkllvm_compatible.cpp @@ -439,7 +439,7 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_mul_1) { typename CurveType::base_field_type::integral_type scal_integral; typename CurveType::base_field_type::value_type scal_rand; typename CurveType::base_field_type::value_type scal_max = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui256; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint256; typename CurveType::base_field_type::value_type scal_zero = 0; typename Ed25519Type::template g1_type diff --git a/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp b/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp index ebb3c2d33f..7e858613bc 100644 --- a/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp +++ b/crypto3/libs/blueprint/test/non_native/plonk/scalar_non_native_range.cpp @@ -96,8 +96,8 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_scalar_range_test1) { using field_type = typename crypto3::algebra::curves::pallas::base_field_type; typename field_type::integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui255; - typename field_type::value_type ones = 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui255; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint255; + typename field_type::value_type ones = 0x0fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint255; test_scalar_non_native_range({typename field_type::value_type(ed25519_scalar_modulus - 1)}, true); @@ -131,7 +131,7 @@ BOOST_AUTO_TEST_CASE(blueprint_non_native_scalar_range_test_must_fail) { rand.seed(seed_seq); typename field_type::integral_type ed25519_scalar_modulus = - 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_bigui255; + 0x1000000000000000000000000000000014def9dea2f79cd65812631a5cf5d3ed_big_uint255; typename field_type::extended_integral_type pow_bits = 1u; pow_bits <<= field_type::modulus_bits; typename field_type::integral_type ed25519_scalar_overage = pow_bits - field_type::extended_integral_type( diff --git a/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp b/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp index c8c3c9c886..48642b7300 100644 --- a/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp +++ b/crypto3/libs/blueprint/test/verifiers/flexible/linear_check.cpp @@ -277,22 +277,22 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_dfri_linear_check_test_pallas_m_13_k_3) { constexpr std::size_t m = 13; constexpr std::size_t k = 3; constexpr std::size_t n = 7; - value_type theta = 0x17f3269be06ff6c76417c00b03b877502ec58a8292c09a689aad0de2e3e6a209_bigui255; - value_type x = 0x1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a11794627_bigui255; + value_type theta = 0x17f3269be06ff6c76417c00b03b877502ec58a8292c09a689aad0de2e3e6a209_big_uint255; + value_type x = 0x1109ad4c5183f69681888cf1ac9c73233ae4e3bd5ca9ad8e34b81c1a11794627_big_uint255; std::array y = { - 0x109c08b6434fdac4656b1b3b9c169ea0bb3763c54a0f226544f2e7cbb07699d3_bigui255, - 0x29807c67ad0e77f1cb7df52eaacda8c8aeb7323998949e1e6dc96ace49d7ffdb_bigui255, - 0x1e3b7cc212edf2735ccafdfe4ed9cb66692b11ad423a6980084a7fc3fd3c174c_bigui255, - 0x2597470a24d0a2cbbbc6d526352a994e8238fc24baeb88e8101812c861ac984b_bigui255, - 0x1ce5a2c4753bad5ebe0a964361f32d6407d1b2b3424371d7202059510025a368_bigui255, - 0x171f218f4a75c541784cc7754b0ce73200eeb37529f6d49df003e453ca9243b4_bigui255, - 0xbd0de19ad7279aef43773c595c3d8b8cfd9c7469e3192e86f1f9abf3adb3ad2_bigui255 + 0x109c08b6434fdac4656b1b3b9c169ea0bb3763c54a0f226544f2e7cbb07699d3_big_uint255, + 0x29807c67ad0e77f1cb7df52eaacda8c8aeb7323998949e1e6dc96ace49d7ffdb_big_uint255, + 0x1e3b7cc212edf2735ccafdfe4ed9cb66692b11ad423a6980084a7fc3fd3c174c_big_uint255, + 0x2597470a24d0a2cbbbc6d526352a994e8238fc24baeb88e8101812c861ac984b_big_uint255, + 0x1ce5a2c4753bad5ebe0a964361f32d6407d1b2b3424371d7202059510025a368_big_uint255, + 0x171f218f4a75c541784cc7754b0ce73200eeb37529f6d49df003e453ca9243b4_big_uint255, + 0xbd0de19ad7279aef43773c595c3d8b8cfd9c7469e3192e86f1f9abf3adb3ad2_big_uint255 }; std::array xi = { - 0x3c4b5c29d2934183497c35596d868ddb8e0005397f67d2f26c91188ada9bd1c3_bigui255, - 0x21ec40745cf822c5d422dc11f80a07845c4cb6ba727804c56a340f52bcfc6ace_bigui255, - 0x15f359e7d0a1a4b1eff1de3a593890a472f721a83b8d7145bd1a4e830bc72298_bigui255 + 0x3c4b5c29d2934183497c35596d868ddb8e0005397f67d2f26c91188ada9bd1c3_big_uint255, + 0x21ec40745cf822c5d422dc11f80a07845c4cb6ba727804c56a340f52bcfc6ace_big_uint255, + 0x15f359e7d0a1a4b1eff1de3a593890a472f721a83b8d7145bd1a4e830bc72298_big_uint255 }; @@ -315,19 +315,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_dfri_linear_check_test_pallas_m_13_k_3) { std::vector> z(n, std::vector()); std::array, n> z_ij; - z_ij[0][0] = 0x20d25fb8470fd8fabc58145cb26ad8742c475753ae5ca5d8f3c1b44684ce4f0_bigui255; - z_ij[1][0] = 0x33c5922b908b7477233c66f1794147c57e3efd2bb2521669380e8178fac300c1_bigui255; - z_ij[2][0] = 0xd4c90ee14439e9196e9d185b8ca15dda515922c05ca40df31cf7f770e6aa49d_bigui255; - z_ij[3][0] = 0x228cee3a770a9e2f04a8fa727b31864730a2183747a1ef6d6a2b6b0946d099a4_bigui255; - z_ij[3][1] = 0x1784c045ae5ab50022bc3f598811196d5c195a66ec67b8d0aa43c45d321288bb_bigui255; - z_ij[3][2] = 0x23df4e8277cb5df68d32d783b1887bfb179f15717571db08c5579894e8c0ea42_bigui255; - z_ij[4][0] = 0x3806fca6f22cd78d49d22c125e67d81f6fd336faed8e8d16303309e4f9165b90_bigui255; - z_ij[4][1] = 0x3e5190c6669cce05fb6b3d63156f59f100cea0ff9730894e6133407213b8fc4b_bigui255; - z_ij[4][2] = 0x175df5a226a4870b5b45d0b050471dee42c433c8ecc42cab79829156528711bf_bigui255; - z_ij[5][0] = 0x2e8f89d9ffb7318286019c2ff4b8eba03fa812c97243a3e636b158c25e858c70_bigui255; - z_ij[5][2] = 0x29c647fa69040c8b336a6bd63fc97477441b147f4c98e6d9632ba3290f434b8d_bigui255; - z_ij[6][0] = 0x2a6a12ac90b00570b8b7dcb18540363ee0d7069aab9ab74bc30e92b8c3534cf1_bigui255; - z_ij[6][2] = 0xf244b829bb26edce0aed5a36c70c09c43e6e612cd9b328bbc6518f427fe5988_bigui255; + z_ij[0][0] = 0x20d25fb8470fd8fabc58145cb26ad8742c475753ae5ca5d8f3c1b44684ce4f0_big_uint255; + z_ij[1][0] = 0x33c5922b908b7477233c66f1794147c57e3efd2bb2521669380e8178fac300c1_big_uint255; + z_ij[2][0] = 0xd4c90ee14439e9196e9d185b8ca15dda515922c05ca40df31cf7f770e6aa49d_big_uint255; + z_ij[3][0] = 0x228cee3a770a9e2f04a8fa727b31864730a2183747a1ef6d6a2b6b0946d099a4_big_uint255; + z_ij[3][1] = 0x1784c045ae5ab50022bc3f598811196d5c195a66ec67b8d0aa43c45d321288bb_big_uint255; + z_ij[3][2] = 0x23df4e8277cb5df68d32d783b1887bfb179f15717571db08c5579894e8c0ea42_big_uint255; + z_ij[4][0] = 0x3806fca6f22cd78d49d22c125e67d81f6fd336faed8e8d16303309e4f9165b90_big_uint255; + z_ij[4][1] = 0x3e5190c6669cce05fb6b3d63156f59f100cea0ff9730894e6133407213b8fc4b_big_uint255; + z_ij[4][2] = 0x175df5a226a4870b5b45d0b050471dee42c433c8ecc42cab79829156528711bf_big_uint255; + z_ij[5][0] = 0x2e8f89d9ffb7318286019c2ff4b8eba03fa812c97243a3e636b158c25e858c70_big_uint255; + z_ij[5][2] = 0x29c647fa69040c8b336a6bd63fc97477441b147f4c98e6d9632ba3290f434b8d_big_uint255; + z_ij[6][0] = 0x2a6a12ac90b00570b8b7dcb18540363ee0d7069aab9ab74bc30e92b8c3534cf1_big_uint255; + z_ij[6][2] = 0xf244b829bb26edce0aed5a36c70c09c43e6e612cd9b328bbc6518f427fe5988_big_uint255; for(std::size_t i=0; i(public_inputs, expected_res, m, eval_map); test_dfri_linear_check(public_inputs, expected_res, m, eval_map); diff --git a/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp b/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp index 381fec532c..55949743c4 100644 --- a/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp +++ b/crypto3/libs/blueprint/test/verifiers/flexible/poseidon.cpp @@ -120,7 +120,7 @@ void test_poseidon_specfic_data(){ input = {-1,-1,-1}; test_poseidon(input, calculate_expected_poseidon(input)); - typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_bigui256; + typename FieldType::value_type threeFFF = 0x3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF_big_uint256; input = {threeFFF, threeFFF, threeFFF}; test_poseidon(input, calculate_expected_poseidon(input)); } diff --git a/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp b/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp index 1d26aa11d8..3a3f8cddd2 100644 --- a/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp +++ b/crypto3/libs/blueprint/test/verifiers/pickles/scalar_details/evals_of_split_evals.cpp @@ -136,7 +136,7 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_oracles_test) { zk::snark::pickles_proof kimchi_proof = test_proof(); typename BlueprintFieldType::value_type zeta_val = - 0x0000000000000000000000000000000062F9AE3696EA8F0A85043221DE133E32_bigui256; + 0x0000000000000000000000000000000062F9AE3696EA8F0A85043221DE133E32_big_uint256; zk::components::kimchi_proof_scalar proof; diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp index f78f15db89..41b9722a84 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/f1_loop.cpp @@ -105,18 +105,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_bigui255, // gamma - 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_bigui255, // beta - 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_bigui255, - 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_bigui255, - 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_bigui255, - 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_bigui255, - 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_bigui255, - 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_bigui255, + 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_big_uint255, // gamma + 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_big_uint255, // beta + 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_big_uint255, + 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_big_uint255, + 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_big_uint255, + 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_big_uint255, + 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_big_uint255, + 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_big_uint255, }; typename BlueprintFieldType::value_type expected_res = - 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_bigui255; + 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -132,25 +132,25 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_bigui255, // gamma - 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_bigui255, // beta - 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_bigui255, - 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_bigui255, - 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_bigui255, - 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_bigui255, - 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_bigui255, - 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_bigui255, - 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_bigui255, - 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_bigui255, - 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_bigui255, - 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_bigui255, - 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_bigui255, - 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_bigui255, - 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_bigui255, - 0x39354121b4b606762eb088e4fed35a3aedd44feecfaebd6aecb0e508da13f0f3_bigui255}; + 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_big_uint255, // gamma + 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_big_uint255, // beta + 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_big_uint255, + 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_big_uint255, + 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_big_uint255, + 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_big_uint255, + 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_big_uint255, + 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_big_uint255, + 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_big_uint255, + 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_big_uint255, + 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_big_uint255, + 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_big_uint255, + 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_big_uint255, + 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_big_uint255, + 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_big_uint255, + 0x39354121b4b606762eb088e4fed35a3aedd44feecfaebd6aecb0e508da13f0f3_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x10fdfb2f515ec48c32c7b31b7e3039739bb22cd7bee475b5a74327ccd0dd0f6d_bigui255; + 0x10fdfb2f515ec48c32c7b31b7e3039739bb22cd7bee475b5a74327ccd0dd0f6d_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -164,25 +164,25 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test2) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_big_uint255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, - 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_bigui255, - 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_bigui255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255, - 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_bigui255, - 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_bigui255, 0x0_bigui255, 0x0_bigui255, - 0x0_bigui255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_bigui255, - 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_bigui255, - 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_bigui255, - 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_bigui255, - 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_bigui255, - 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_bigui255, 0x0_bigui255, 0x0_bigui255, - 0x0_bigui255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_big_uint255, + 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_big_uint255, + 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_big_uint255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_big_uint255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_big_uint255, + 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_big_uint255, + 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_big_uint255, 0x0_big_uint255, 0x0_big_uint255, + 0x0_big_uint255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_big_uint255, + 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_big_uint255, + 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_big_uint255, + 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_big_uint255, + 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_big_uint255, + 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_big_uint255, 0x0_big_uint255, 0x0_big_uint255, + 0x0_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x1fe0cedb4028c10c6fbb7984040bacd33a3644a3df6c157a7d253af03168ee8b_bigui255; + 0x1fe0cedb4028c10c6fbb7984040bacd33a3644a3df6c157a7d253af03168ee8b_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -196,14 +196,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test3) { std::vector public_input = { /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_big_uint255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, - 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_bigui255, - 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_bigui255}; + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_big_uint255, + 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_big_uint255, + 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x3df91b519c56c1661226abe86c59cd26f3a63c2dbaac2cdeecb286d4735dcbf2_bigui255; + 0x3df91b519c56c1661226abe86c59cd26f3a63c2dbaac2cdeecb286d4735dcbf2_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -217,16 +217,16 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test4) { std::vector public_input = { /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_big_uint255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, - 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_bigui255, - 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_bigui255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255}; + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_big_uint255, + 0x1b5ed497136f6e508532fd859a0cb4fdad54c84549a665d5d580943fa88bb5de_big_uint255, + 0x45d83c89ccb02eceedf188623a5cc960fe523678bb70567bcfcada4a8f1d7aa_big_uint255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_big_uint255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x3368f12ac6c75aceaed6f7f2e9af9926674370ddb3d12c00c83c225cc6b88380_bigui255; + 0x3368f12ac6c75aceaed6f7f2e9af9926674370ddb3d12c00c83c225cc6b88380_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -241,18 +241,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test5) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_big_uint255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, - 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_bigui255, - 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_bigui255, - 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_bigui255, - 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_bigui255, - 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_bigui255, - 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_bigui255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_big_uint255, + 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_big_uint255, + 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_big_uint255, + 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_big_uint255, + 0x29566d61a92beabbe4124f3c1140e1621e6dbf40685efcdd3654ebb4a120936f_big_uint255, + 0x371ed596cbfbef3fb137c07f7387f0694fb9df229725ecbfa7275460091e5292_big_uint255, + 0x5b880339bcbe06aad36ac71638d5d3e831f1dec5ca6f97a456f9936b6690c4c_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x37b68c62a05782ebfe610897109adc5e0c343a4468372c305e050b4a133860d5_bigui255; + 0x37b68c62a05782ebfe610897109adc5e0c343a4468372c305e050b4a133860d5_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -267,24 +267,24 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test6) { std::vector public_input = { /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_big_uint255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, - 0x3a7580268e270952e70bf455392b34d33608d4291f37c778edf18a1df79b3d02_bigui255, - 0x12cc7a905f5ba0f349772eccf0a4f893255895eab99b4654971beb32c3d18e4c_bigui255, - 0x233de57bb49faf3747f8065836f6e150326ffbcec7f5ff84ab3ed517dff9f782_bigui255, - 0x46ac9a0a0a61d85811114d1b5a59055a1476d224220100ea28aef3ff5057b36_bigui255, - 0x19527a8b49c446bf75b243da6ac78d7c48e4b60c1071a4e5d369c3b46ab184d8_bigui255, - 0xbfdd514782dd17a99538aab6f7c447bb39607098ff684d907d05c4ee6b47364_bigui255, - 0x3cfd22f42d7f4bb00884f12035ac3b507bb19e482dd2e7787754e5cf67dd72a1_bigui255, - 0x1e0fb613aca0c659711bd4c889a691aa78953f8738d6005673123c2667c3cd50_bigui255, - 0x218014cf84950736b0d9c62ccb68ee90f755fc6dd0ed60a208d09da39e64bfd2_bigui255, - 0x237428f92e0be38a22c6220ea2cf7b010a2eae8670f062647bebcab8506fdddc_bigui255, - 0xc0af31fd4848be3dd24df1eb1681e13cb4de4395df9a3c1c8835270e4ae1699_bigui255, - 0x2708b8c59416e906abec12349b0aa4bd8e4e22dfc216b1a78f82daf83aa219df_bigui255}; + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_big_uint255, + 0x3a7580268e270952e70bf455392b34d33608d4291f37c778edf18a1df79b3d02_big_uint255, + 0x12cc7a905f5ba0f349772eccf0a4f893255895eab99b4654971beb32c3d18e4c_big_uint255, + 0x233de57bb49faf3747f8065836f6e150326ffbcec7f5ff84ab3ed517dff9f782_big_uint255, + 0x46ac9a0a0a61d85811114d1b5a59055a1476d224220100ea28aef3ff5057b36_big_uint255, + 0x19527a8b49c446bf75b243da6ac78d7c48e4b60c1071a4e5d369c3b46ab184d8_big_uint255, + 0xbfdd514782dd17a99538aab6f7c447bb39607098ff684d907d05c4ee6b47364_big_uint255, + 0x3cfd22f42d7f4bb00884f12035ac3b507bb19e482dd2e7787754e5cf67dd72a1_big_uint255, + 0x1e0fb613aca0c659711bd4c889a691aa78953f8738d6005673123c2667c3cd50_big_uint255, + 0x218014cf84950736b0d9c62ccb68ee90f755fc6dd0ed60a208d09da39e64bfd2_big_uint255, + 0x237428f92e0be38a22c6220ea2cf7b010a2eae8670f062647bebcab8506fdddc_big_uint255, + 0xc0af31fd4848be3dd24df1eb1681e13cb4de4395df9a3c1c8835270e4ae1699_big_uint255, + 0x2708b8c59416e906abec12349b0aa4bd8e4e22dfc216b1a78f82daf83aa219df_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x3a204699d97747058b03b75350f8969b7022230a7b6a46bb764050759b6a7363_bigui255; + 0x3a204699d97747058b03b75350f8969b7022230a7b6a46bb764050759b6a7363_big_uint255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp index f038d299fc..0e22ec1c93 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/f3_loop.cpp @@ -106,18 +106,18 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_bigui255, - 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_bigui255, - 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_bigui255, - 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_bigui255, - 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_bigui255, - 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_bigui255, - 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_bigui255, - 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_bigui255, - 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_bigui255}; + 0x343841a32c928eb4e2ae534f59cc5cf1e25c53e307a5b81b75c131c73b6fc7a0_big_uint255, + 0x69e9e35f0c0f9c2c99fa7d570a5c269a886544f6708a4d2bb1e6f227c44ac62_big_uint255, + 0x3ed0f74ff54a53257fc6836fec09caef8293a302ea145f6aa536b1c1eea3ab46_big_uint255, + 0x1acd7d04aa7b58b4eece036b22952608b6d36426fb7b6886580f0b94fba78027_big_uint255, + 0xff593d0141cbe02fec2f5a6423c83388c61787ac53ba0bf30c7176b21e93004_big_uint255, + 0x27a5ffbc960919dd52e5e701d1cbf1b34bca1178031bc6a669c4d569234397d7_big_uint255, + 0x3e1bdecdd496459ee5a11c2665460a832d084d28c68f98eeb035f2549e994be4_big_uint255, + 0x39786922cdb8e0f0e8338bd6796833d3c653e5ef7b22478a01b24f3c0ff43402_big_uint255, + 0x29edab3fc33b0e6d6a75f53dac8612ac902a363340da6f1e5f0f91af80ff9e5e_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x10f04580466164e2155d833e6489f63f259071438925993668473cf36d4e3826_bigui255; + 0x10f04580466164e2155d833e6489f63f259071438925993668473cf36d4e3826_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -130,24 +130,24 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_bigui255, - 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_bigui255, - 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_bigui255, - 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_bigui255, - 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_bigui255, - 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_bigui255, - 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_bigui255, - 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_bigui255, - 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_bigui255, - 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_bigui255, - 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_bigui255, - 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_bigui255, - 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_bigui255, - 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_bigui255, - 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_bigui255}; + 0x13d38859e00f79df76e547b36dee3c0d19c5a4c6b7bc33ae284ec653e2db0e66_big_uint255, + 0x2d05f8356617f5060a8c5593d0bcbf5e15c74eb5fd681140b018139c0b453e48_big_uint255, + 0xf7436a0e17af4814bd5da359d8b3c3c01bd2dd85d67ba4eb66e73a6852f694b_big_uint255, + 0x3fd11cbab87d551cc8b10411f1ee2abfbc68cc27e9fe275912670a794ebc6b06_big_uint255, + 0x366217783833274a413583bb6fcfaa3de8dfee3c2885526255a28302bb93231_big_uint255, + 0x3b5e28af60706486205ddb4f197e3b8923199c89e043392d36489b299a5ac600_big_uint255, + 0xec45e2ee30419aa67682743019246bb630a2d35abcc64ef51295b1dabc9cc4f_big_uint255, + 0x1a0f8fdb5e646f277cd13d360a1238a0bcfc13b2dc1acb89dc4cbe90a0e296b9_big_uint255, + 0x3f479ebb49bb54c6e7bedf53b04ab68682de35c188ab61096fc433991c567186_big_uint255, + 0x2ad86697004fb86c9ff21eefb5a5302ee93a5af6d66e9177039070e0d9008b08_big_uint255, + 0x2fbb8c6fa08d8deff7dede25f772a7660e7f3d6214a9924ea6401086b218c21a_big_uint255, + 0x2c7bcd2773ec55c8f5833ff46e1542c5390746e05185b379f19d00c5248adb56_big_uint255, + 0xf4c65e93df2d11107677b1096c1177c0acb9a3b373cda815b5c5b739862abf2_big_uint255, + 0xf163e52958ab4026cc78a067a636cd7c9c358354c747829e0706a77267fe32a_big_uint255, + 0x3147dc26cd071216a5cceb16291d35c68ce3e01505adff83b690bd3f82655ae3_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x3627e4bec2ef12578906bbc3d1820ad3e351949cbff1a8cf4783e82caaa4a225_bigui255; + 0x3627e4bec2ef12578906bbc3d1820ad3e351949cbff1a8cf4783e82caaa4a225_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -160,27 +160,27 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_loop_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_bigui255, - 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_bigui255, - 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_bigui255, - 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_bigui255, - 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_bigui255, - 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_bigui255, - 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_bigui255, - 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_bigui255, - 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_bigui255, - 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_bigui255, - 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_bigui255, - 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_bigui255, - 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_bigui255, - 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_bigui255, - 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_bigui255, - 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_bigui255, - 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_bigui255, - 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_bigui255}; + 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_big_uint255, + 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_big_uint255, + 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_big_uint255, + 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_big_uint255, + 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_big_uint255, + 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_big_uint255, + 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_big_uint255, + 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_big_uint255, + 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_big_uint255, + 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_big_uint255, + 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_big_uint255, + 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_big_uint255, + 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_big_uint255, + 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_big_uint255, + 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_big_uint255, + 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_big_uint255, + 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_big_uint255, + 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_big_uint255}; typename BlueprintFieldType::value_type expected_res = - 0x2cc334d4e4f1ba642074f6700758d854b5ae4862b5a9cb4b8f8e1fb814b767df_bigui255; + 0x2cc334d4e4f1ba642074f6700758d854b5ae4862b5a9cb4b8f8e1fb814b767df_big_uint255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp index 95b6e82d21..f4810b61b3 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/fri_cosets.cpp @@ -135,8 +135,8 @@ void field_operations_test() { test_fri_cosets({46744073709551615}, 3, 2); test_fri_cosets({46744073709551615}, 5, 2); // more realistic data - test_fri_cosets({0xa53a16c34fb833b5_bigui255}, 4, - 0x1ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd_bigui255 + test_fri_cosets({0xa53a16c34fb833b5_big_uint255}, 4, + 0x1ff2863fd35bfc59e51f3693bf37e2d841d1b5fbed4138f755a638bec8750abd_big_uint255 ); } diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp index 0bd6b2c7d0..4db2e59fa1 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_argument_verifier.cpp @@ -105,12 +105,12 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3c670eabac71e05f3e29255748e080b2ec288a774fdf4c3b6b7685183f2186c0_bigui255, // theta - 0x6e152a2ee7cd62e55993e72b0c32aeb48241c792f48d789cbe35606a72f3c45_bigui255, // C_1_0 - 0x30457a793c861dd0044f6f5bcfb8775b99dd2313c7686f120f1f334997fcbea0_bigui255}; // q_2 + 0x3c670eabac71e05f3e29255748e080b2ec288a774fdf4c3b6b7685183f2186c0_big_uint255, // theta + 0x6e152a2ee7cd62e55993e72b0c32aeb48241c792f48d789cbe35606a72f3c45_big_uint255, // C_1_0 + 0x30457a793c861dd0044f6f5bcfb8775b99dd2313c7686f120f1f334997fcbea0_big_uint255}; // q_2 typename BlueprintFieldType::value_type expected_res = - 0x274f55a187ab99ed7946f85953dc499dee73941bbfeefe80a74c0fe42d254fb4_bigui255; // F + 0x274f55a187ab99ed7946f85953dc499dee73941bbfeefe80a74c0fe42d254fb4_big_uint255; // F test(public_input, expected_res, {1}); test(public_input, expected_res, {1}); @@ -122,14 +122,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x3b68a611d0a4896cf54a3130a166367ce9e3c02584842d117ceca4e7e5100e00_bigui255, // theta - 0x775559d0e51d93ff23e78cfb5b51b797225769e058e37729fb8ed291234d62_bigui255, // C_1_0 - 0x1c454f840f62d7deb28c1161f420930ccc521572e68af58150fe9fdd42246b7c_bigui255, // q_1 - 0x3713eddbd6e7723d5ec49d4865af9a764ba0877d4d54659b1ad2ee3ae0efe344_bigui255, // C_2_0 - 0x1e251c5521af2a481096841a65deb34bfac8a09a05096b6f83db060bbf823217_bigui255}; // q_2 + 0x3b68a611d0a4896cf54a3130a166367ce9e3c02584842d117ceca4e7e5100e00_big_uint255, // theta + 0x775559d0e51d93ff23e78cfb5b51b797225769e058e37729fb8ed291234d62_big_uint255, // C_1_0 + 0x1c454f840f62d7deb28c1161f420930ccc521572e68af58150fe9fdd42246b7c_big_uint255, // q_1 + 0x3713eddbd6e7723d5ec49d4865af9a764ba0877d4d54659b1ad2ee3ae0efe344_big_uint255, // C_2_0 + 0x1e251c5521af2a481096841a65deb34bfac8a09a05096b6f83db060bbf823217_big_uint255}; // q_2 typename BlueprintFieldType::value_type expected_res = - 0x1196613de39bdeef57744700e540ba900d8be069a0dc963bce25ae3b550c2a37_bigui255; // F + 0x1196613de39bdeef57744700e540ba900d8be069a0dc963bce25ae3b550c2a37_big_uint255; // F test(public_input, expected_res, {1, 1}); test(public_input, expected_res, {1, 1}); @@ -141,19 +141,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255, // q_3 - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255 // q_2 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_big_uint255, // theta + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_big_uint255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_big_uint255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_big_uint255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_big_uint255, // q_3 + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_big_uint255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_big_uint255, // q_1 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_big_uint255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_big_uint255 // q_2 }; typename BlueprintFieldType::value_type expected_res = - 0x33ceac2f8ef925e1f95a6d60334a8e4e3a9c5a925ecd73d6f8a676a5e56efc6c_bigui255; // F + 0x33ceac2f8ef925e1f95a6d60334a8e4e3a9c5a925ecd73d6f8a676a5e56efc6c_big_uint255; // F test(public_input, expected_res, {3, 1, 1}); test(public_input, expected_res, {3, 1, 1}); @@ -165,19 +165,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255, // q_2 - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255 // q_3 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_big_uint255, // theta + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_big_uint255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_big_uint255, // q_1 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_big_uint255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_big_uint255, // q_2 + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_big_uint255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_big_uint255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_big_uint255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_big_uint255 // q_3 }; typename BlueprintFieldType::value_type expected_res = - 0x1c347e1b881df3bce20b36de4249336d1e650ec283955b9d5ec16c0ab319e51a_bigui255; // F + 0x1c347e1b881df3bce20b36de4249336d1e650ec283955b9d5ec16c0ab319e51a_big_uint255; // F test(public_input, expected_res, {1, 1, 3}); test(public_input, expected_res, {1, 1, 3}); @@ -189,19 +189,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test3) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_bigui255, // theta - 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_bigui255, // C_1_0 - 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_bigui255, // q_1 - 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_bigui255, // C_3_0 - 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_bigui255, // C_3_1 - 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_bigui255, // C_3_2 - 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_bigui255, // q_3 - 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_bigui255, // C_2_0 - 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_bigui255 // q_2 + 0x107af4ffd5e6a759be7c279d5eac2d5e893a89d703e52a3184b2331d3acbdfc1_big_uint255, // theta + 0x2c3c7fd7ad540677c20238e931ab15eec3f30b0d19c0465dcbb2c79500f52959_big_uint255, // C_1_0 + 0x39d9d3ce89500f9bbaeefb254fff8d0c25c17cebe2a1c4586630b3c168622e8c_big_uint255, // q_1 + 0x815ea6af6ba30435bfe42b04942a42354b7ac5bcb970d2c7fd29600afba4c76_big_uint255, // C_3_0 + 0xca85be77a54d63ae5d08aa369c21df7cc559803fa92d44cf06ad801165ba0eb_big_uint255, // C_3_1 + 0x11ee26b867cf7bce6b41152282cadb4bf8044b9e2722acf91c8fa01fa634bafb_big_uint255, // C_3_2 + 0x32df974641fa733bfafde92e7f86e0f967af2744d6b1d239530419921f8460be_big_uint255, // q_3 + 0x37fb8feeafe97cc91109beeda57125d20266990bbbeff2d0f206e51fa447d72_big_uint255, // C_2_0 + 0x2b673c52209b43e4735ecb7fe0ba59f4b5cce80ccc1643f56a067ecbbeeba8c3_big_uint255 // q_2 }; typename BlueprintFieldType::value_type expected_res = - 0x160e3212397bc43fab22922a46f77280c614ab11fc9567c4659b035d46c29827_bigui255; // F + 0x160e3212397bc43fab22922a46f77280c614ab11fc9567c4659b035d46c29827_big_uint255; // F test(public_input, expected_res, {1, 3, 1}); test(public_input, expected_res, {1, 3, 1}); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp index 3adec47976..5250a032c9 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/gate_component.cpp @@ -102,13 +102,13 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_big_uint255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_big_uint255, // c1 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_big_uint255}; // q typename BlueprintFieldType::value_type expected_res = - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255; + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -120,14 +120,14 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test2) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255, // c2 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_big_uint255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_big_uint255, // c1 + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_big_uint255, // c2 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_big_uint255}; // q typename BlueprintFieldType::value_type expected_res = - 0x1ab9e0ab4db80e2649fe1c44791b231a165329cb8e1cb3186fd42311dfb96ba7_bigui255; + 0x1ab9e0ab4db80e2649fe1c44791b231a165329cb8e1cb3186fd42311dfb96ba7_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -141,15 +141,15 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test3) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, // theta - 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_bigui255, // c0 - 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_bigui255, // c1 - 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_bigui255, // c2 - 0x42d09cbf0dbb3ec8e566f3835b8c70cdc6ffb4ee160b7e974174cb84b656c94_bigui255, // c3 - 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_bigui255}; // q + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, // theta + 0x38e1a856aae5cf012d142449cfe878b1a827f08fec4ac2d1724b7ebf37d3a637_big_uint255, // c0 + 0x854a9d175f7eece4dd7bb82babe799b2369571e75d2386264b512bc4f049ee6_big_uint255, // c1 + 0xf60c8e3799f676371137e184244aaf6859123322600128b05aed7e26223cfd1_big_uint255, // c2 + 0x42d09cbf0dbb3ec8e566f3835b8c70cdc6ffb4ee160b7e974174cb84b656c94_big_uint255, // c3 + 0x393d97b04bc5d4490ae53903974c1d0aa65e11b4e9ae487a1d3aede2f6edec92_big_uint255}; // q typename BlueprintFieldType::value_type expected_res = - 0x1d8aaff35b7c1a8afe535c508bda43c907bc059ced7720df45cb83fcce35d632_bigui255; + 0x1d8aaff35b7c1a8afe535c508bda43c907bc059ced7720df45cb83fcce35d632_big_uint255; test(public_input, expected_res); test(public_input, expected_res); @@ -163,19 +163,19 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_component_test4) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_bigui255, // theta + 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_big_uint255, // theta 1, // c0 - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, // c1 - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, // c2 - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, // c3 - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, // c4 - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, // c5 - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, // c6 - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, // c7 - 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_bigui255}; // q + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_big_uint255, // c1 + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_big_uint255, // c2 + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_big_uint255, // c3 + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_big_uint255, // c4 + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_big_uint255, // c5 + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_big_uint255, // c6 + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_big_uint255, // c7 + 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_big_uint255}; // q typename BlueprintFieldType::value_type expected_res = - 0xa98684e2e2f94ea94934ca0cf06778ccda845b247f2eb226eff63171181a160_bigui255; + 0xa98684e2e2f94ea94934ca0cf06778ccda845b247f2eb226eff63171181a160_big_uint255; test(public_input, expected_res); test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp index 2ac5cbd108..60fc1b40de 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/lookup_argument_verifier.cpp @@ -199,111 +199,111 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test) { std::vector public_input = { /*theta: */ - 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_bigui255, + 0x1f91750ec43107c824e1b79cb0e5b0ce2d5a99ee4d931726955dd619926b3ac8_big_uint255, /*beta: */ - 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_bigui255, + 0x181227226c1423739b9ac923321ed2f09ed6b194314f01fa63cf06a993087d47_big_uint255, /*gamma: */ - 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_bigui255, + 0x2e42a7ce383a60b4a57ead1d59609e3c77d54efdbc3fb3b78df45906b61fa26c_big_uint255, /*alpha: */ - 0x12c35108408002e011a77b1385fafa519b0c049dda69edeec76a5582aefdf679_bigui255, - 0x3c43857ea745aebffbf5b5a15c1f19f6c544fc6f4c058200e8c1fcfc94be97a2_bigui255, - 0xed5489c9d40c4d8a7214f245430ca28651cf789957e34a192e5a25bbe99a36f_bigui255, - 0x24a490b07a66d4d3c7889869f50b54b7d45e049c959d2c7b3908127cc0166736_bigui255, - 0x20082215dffd067489b93a647a77e2d063a0a020b1d1c833fac1d38127789a52_bigui255, - 0x2535b195a0c7d604ab78762b644abe5eb3ce5bb9bf637954b073753c08b913ed_bigui255, - 0xb4959a45c71c0be90a8a6df21b547679746452337f85337087f18498e96b39f_bigui255, - 0x1009604828f0b005c222820f19d2586ce28ff73d888558ea1bae36dc10923fe4_bigui255, + 0x12c35108408002e011a77b1385fafa519b0c049dda69edeec76a5582aefdf679_big_uint255, + 0x3c43857ea745aebffbf5b5a15c1f19f6c544fc6f4c058200e8c1fcfc94be97a2_big_uint255, + 0xed5489c9d40c4d8a7214f245430ca28651cf789957e34a192e5a25bbe99a36f_big_uint255, + 0x24a490b07a66d4d3c7889869f50b54b7d45e049c959d2c7b3908127cc0166736_big_uint255, + 0x20082215dffd067489b93a647a77e2d063a0a020b1d1c833fac1d38127789a52_big_uint255, + 0x2535b195a0c7d604ab78762b644abe5eb3ce5bb9bf637954b073753c08b913ed_big_uint255, + 0xb4959a45c71c0be90a8a6df21b547679746452337f85337087f18498e96b39f_big_uint255, + 0x1009604828f0b005c222820f19d2586ce28ff73d888558ea1bae36dc10923fe4_big_uint255, /*V_L: */ - 0x2f067360ee454281ed80c4bfd37b9e0140071ed383651858abb37d0d868238a2_bigui255, - 0xd079c9f0f66462d4dcf74077bcf5d4e1fb62214198a22d789637d6651d840de_bigui255, + 0x2f067360ee454281ed80c4bfd37b9e0140071ed383651858abb37d0d868238a2_big_uint255, + 0xd079c9f0f66462d4dcf74077bcf5d4e1fb62214198a22d789637d6651d840de_big_uint255, /*q_last_0: */ - 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_bigui255, - 0x36041a6ee4c9d83ca3b8f282a8212e5ecd3a1304f01aeb6fc81dd055c30a115d_bigui255, + 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_big_uint255, + 0x36041a6ee4c9d83ca3b8f282a8212e5ecd3a1304f01aeb6fc81dd055c30a115d_big_uint255, /*q_blind_0: */ - 0x143ef00c6cd28361b04c9c9e3782c1cb5e4543f1faea52c9b22a93803bed7f9d_bigui255, - 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_bigui255, + 0x143ef00c6cd28361b04c9c9e3782c1cb5e4543f1faea52c9b22a93803bed7f9d_big_uint255, + 0x2fe713a78f776121b2d68cfe5d35db3f34ca42b4973228a520617b5d92e8e449_big_uint255, /*L_0: */ - 0x3c8519a916c0ddd81a0992eeb1fc91bc33674d02900ba9977478c89af7e5fd37_bigui255, + 0x3c8519a916c0ddd81a0992eeb1fc91bc33674d02900ba9977478c89af7e5fd37_big_uint255, /*gate selectors: */ - 0x31269dc016cbeeb0720063dcd5494f9eb9348c5dd1d03c98a7ea90340c6cf4e3_bigui255, - 0x3bd9fc4c03b61b7c9cdcd6636b4762f5b17dab51807d76c85fce52fc31299c1d_bigui255, - 0x3f54e2a2ecf53da482d34374b94ad139a05cf74af9bec64c8482bb4e39439ee7_bigui255, + 0x31269dc016cbeeb0720063dcd5494f9eb9348c5dd1d03c98a7ea90340c6cf4e3_big_uint255, + 0x3bd9fc4c03b61b7c9cdcd6636b4762f5b17dab51807d76c85fce52fc31299c1d_big_uint255, + 0x3f54e2a2ecf53da482d34374b94ad139a05cf74af9bec64c8482bb4e39439ee7_big_uint255, /*table_ids: */ 1, 2, 3, /*lookup gate constraint lookup inputs: */ - 0x124971c6cce767192245d6688a4af4482b1c5e935bbdec7825da26763c93e6fc_bigui255, - 0x3a57f30b24c9aec7984dd8bed4f52cf9497665344886c51d9bb9821309c4623b_bigui255, - 0x3ebc055241d36e5d1c8afb9ef7466f8e5d01ac3d16ce2c707d78a92820e61a1c_bigui255, - 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_bigui255, - 0x186be39596fdb9314fbb1f081dcd7056eefe8beec42a1cf745a42863028325c2_bigui255, - 0x9ea111bf6543ac23f0cb51d9ec6a57265709bf3d294df922d7b6841348c255c_bigui255, - 0x2d93a78ddc155e05f452fbf35778c89283dc93503bed266bda527150a440a17b_bigui255, - 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_bigui255, - 0x10e3d915ddd49ca40f1011a754ef3e1e3fa146fed50413be1d8b0c2c9b1a6484_bigui255, - 0x2fddfd79e3de586bd5a03b21b6592cae2ef255e993a07c77dd51d26a6afbfaa8_bigui255, + 0x124971c6cce767192245d6688a4af4482b1c5e935bbdec7825da26763c93e6fc_big_uint255, + 0x3a57f30b24c9aec7984dd8bed4f52cf9497665344886c51d9bb9821309c4623b_big_uint255, + 0x3ebc055241d36e5d1c8afb9ef7466f8e5d01ac3d16ce2c707d78a92820e61a1c_big_uint255, + 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_big_uint255, + 0x186be39596fdb9314fbb1f081dcd7056eefe8beec42a1cf745a42863028325c2_big_uint255, + 0x9ea111bf6543ac23f0cb51d9ec6a57265709bf3d294df922d7b6841348c255c_big_uint255, + 0x2d93a78ddc155e05f452fbf35778c89283dc93503bed266bda527150a440a17b_big_uint255, + 0x32da319a20e51a7808c32e35c73434b5f72e0f5031e8c10cdce4b218fc87781a_big_uint255, + 0x10e3d915ddd49ca40f1011a754ef3e1e3fa146fed50413be1d8b0c2c9b1a6484_big_uint255, + 0x2fddfd79e3de586bd5a03b21b6592cae2ef255e993a07c77dd51d26a6afbfaa8_big_uint255, /*lookup tables selcetors: */ - 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_bigui255, - 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_bigui255, - 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_bigui255, + 0xcb0e17a777c9ade431b8751afd8057cdd15f74a6795dedd6c1f56bdcdfcff41_big_uint255, + 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_big_uint255, + 0x32a401287578a2c63fb7bc230972cbbcc34700009228e76f186364906b469fa6_big_uint255, /* lookup tables lookup option: */ - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, - 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_bigui255, - 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_bigui255, - 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_bigui255, - 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_bigui255, - 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_bigui255, - 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_bigui255, - 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_bigui255, + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_big_uint255, + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_big_uint255, + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_big_uint255, + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_big_uint255, + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_big_uint255, + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_big_uint255, + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_big_uint255, + 0x1b058d4ad7a64a076158339af0f28f31b92d727545c3d63fc2d682721d7849fc_big_uint255, + 0x13c8cbb50c4a86600d432cc5340ef1bfa78bb5a35c9381e67b1fe23584a5c12_big_uint255, + 0x3628c1c830ae70a28bf4129c6a01662df74ded3b0529e820fdc3ccf8377ee0e2_big_uint255, + 0x1f36ae1c91b093f88ab05c97230c85bdd79c4d791ac2b0e8bf5c7889bb80aafd_big_uint255, + 0x27b1ece6c803fcf6de3fd9aa5207378466f574a6e9b30e188b1158962fec34cf_big_uint255, + 0x31acc41a65db47a663c27d691157e2f9dcf92de98d482f347c6fa0a78e67d988_big_uint255, + 0x2f971ec81c0309f69e82434a3c6596a509f586fa36712e7fd965ab31ce83b8c2_big_uint255, /*lookup tables shifted selcetors: */ - 0xb9481d2c72ffdac988d67079b8eeb9a17a0883db91507b650af1fb2992cdd7d_bigui255, - 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_bigui255, - 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_bigui255, + 0xb9481d2c72ffdac988d67079b8eeb9a17a0883db91507b650af1fb2992cdd7d_big_uint255, + 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_big_uint255, + 0x3a41600a57bc459360967cd9279748fceee9a90ae09a7cbde02e93e0d4f2ad44_big_uint255, /* lookup tables shifted lookup option: */ - 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_bigui255, - 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_bigui255, - 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_bigui255, - 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_bigui255, - 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_bigui255, - 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_bigui255, - 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_bigui255, - 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_bigui255, - 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_bigui255, - 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_bigui255, - 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_bigui255, - 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_bigui255, - 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_bigui255, - 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_bigui255, + 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_big_uint255, + 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_big_uint255, + 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_big_uint255, + 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_big_uint255, + 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_big_uint255, + 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_big_uint255, + 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_big_uint255, + 0x1db8ba9b27956295bdf26c4b9502d384ce2447fa7d596fc62263314822fec898_big_uint255, + 0x342b0f9fb517871584711bfbefe1ffa3e79d7bdf47980a15f6954402d5e7d8a2_big_uint255, + 0x1ed54bb4ec015e30fe0bef1cfc7e702391b1d73dc45f4289b67b04acd2dcf2e9_big_uint255, + 0x139c294a0d36efa023e4a91d157774ce8e78f8da9172c90915184b683eaa93d2_big_uint255, + 0x4e7594148540be9d7608b428fc578288bb480844be045c03bf67bb63a6425df_big_uint255, + 0x14d6b4ef9917aa59be762b845f2befa11a438bc9b52548b1e1a50649c0f3be7a_big_uint255, + 0x6042e08d361d89c0d0344212ae9043ba052d5708398387d0e911392a2f3d340_big_uint255, /* sorted :*/ - 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_bigui255, - 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_bigui255, - 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_bigui255, - 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_bigui255, - 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_bigui255, - 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_bigui255, 0x0_bigui255, 0x0_bigui255, - 0x0_bigui255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_bigui255, - 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_bigui255, - 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_bigui255, - 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_bigui255, - 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_bigui255, - 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_bigui255, 0x0_bigui255, 0x0_bigui255, - 0x0_bigui255, 0x2187d355d7ebd8be30402d16877e181cca486f51fad291095b33096277e13e_bigui255, - 0x1ef8272e914c2ccd659341031794f603a21dcf3ac35d2e0a9c26bf8881c1ea18_bigui255, - 0x36954d713e9209b0975b87b6b3d51d89ddf76338178177a0b5a503dad5bebd9c_bigui255, - 0x169244a31230525091fa126d82a977e8a7c65705d7aacf73cc28732ed1447f71_bigui255, - 0x28395c6c442a250e83922de639e4296d8925f96f2f0ac1fcd6c129391c76b423_bigui255, - 0x189d2fbb6f71ef06571eeed614cbd374257fb5205ca63b28a5414d3997c1ae4e_bigui255, 0x0_bigui255, 0x0_bigui255}; + 0x3d08d7113ec5ad138d4d720b44f3a8839a8541ee8f677bd6b688a821e34c2df6_big_uint255, + 0x130b302c3079f281cef9b0082567fb0a5504ae46546dbe46a6a0c1a217148bd1_big_uint255, + 0x1601b0e7bc9d588bfd28ebc94bc310654ab24669f26645d575cbfb1423cb0f90_big_uint255, + 0x3cd9714e6b5440733518b80c64a3aaa050516c848b3a09c456d2c99112f396c3_big_uint255, + 0x20e9e41aa6d693d979e31d4cd3426d1ba1138f59b18f3e354758343ba6e857d9_big_uint255, + 0x3f48aa78bdb07bc9dea0e8b9c5050f653a3e883061fb3e7242975c11cfafa9bc_big_uint255, 0x0_big_uint255, 0x0_big_uint255, + 0x0_big_uint255, 0x18582466937834d434ceff70fa27ea4a1486d5c835080ebc13cb1f7b5bbd4850_big_uint255, + 0x1979a1d3b8e9bfc29212140b1f38ea9120aa47febf6a0df823348102f783be15_big_uint255, + 0x7d60e5c26d15b2aa293d72a00194e20e533fc3f38aa259ac899b4e82b0b3a3b_big_uint255, + 0x3a3c06a35de362be982b6bd008c05efce84f297d4893cb61faee0e230e465502_big_uint255, + 0x51a74265a7a5c53a24d9d461403d93aba9c5151e77a4da184dab3c417f687f6_big_uint255, + 0xae1137ab4cd9d26666d9dbc0ee2f21a1f1692730311f89f97a5f825992e0f26_big_uint255, 0x0_big_uint255, 0x0_big_uint255, + 0x0_big_uint255, 0x2187d355d7ebd8be30402d16877e181cca486f51fad291095b33096277e13e_big_uint255, + 0x1ef8272e914c2ccd659341031794f603a21dcf3ac35d2e0a9c26bf8881c1ea18_big_uint255, + 0x36954d713e9209b0975b87b6b3d51d89ddf76338178177a0b5a503dad5bebd9c_big_uint255, + 0x169244a31230525091fa126d82a977e8a7c65705d7aacf73cc28732ed1447f71_big_uint255, + 0x28395c6c442a250e83922de639e4296d8925f96f2f0ac1fcd6c129391c76b423_big_uint255, + 0x189d2fbb6f71ef06571eeed614cbd374257fb5205ca63b28a5414d3997c1ae4e_big_uint255, 0x0_big_uint255, 0x0_big_uint255}; std::array expected_res = { - 0x3fb663ded7ac8eb4b399cf60ec20e4a5e51e1d2fe3fc28759f012f13fac238a7_bigui255, - 0x5f511600d82c0f86b86133984c868d32994819f499e0403b5eb708129de72ae_bigui255, - 0x19278da4bf5d19e98a445ebadc0910733d4ad48527b3417af89b9571a7b886c4_bigui255, - 0x20faeea92ea55a96f57dea87d5ce112778185cb59ef6a1252242d571d1a3f3aa_bigui255}; // F + 0x3fb663ded7ac8eb4b399cf60ec20e4a5e51e1d2fe3fc28759f012f13fac238a7_big_uint255, + 0x5f511600d82c0f86b86133984c868d32994819f499e0403b5eb708129de72ae_big_uint255, + 0x19278da4bf5d19e98a445ebadc0910733d4ad48527b3417af89b9571a7b886c4_big_uint255, + 0x20faeea92ea55a96f57dea87d5ce112778185cb59ef6a1252242d571d1a3f3aa_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -332,81 +332,81 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test1) { std::vector public_input = { /*theta: */ - 0x1bfbff1c2f23e10837c97d97f72c907607f1bcfd3b4700ee2b6781dfc732fbca_bigui255, + 0x1bfbff1c2f23e10837c97d97f72c907607f1bcfd3b4700ee2b6781dfc732fbca_big_uint255, /*beta: */ - 0x314d7748efea79faaa93c1b943ce278d30e412a8a293df7f21674ac0da207ddf_bigui255, + 0x314d7748efea79faaa93c1b943ce278d30e412a8a293df7f21674ac0da207ddf_big_uint255, /*gamma: */ - 0xc4b0a8e57586aeb49fa3282f7d4584da1b8c127ae316a599a37654c83577aac_bigui255, + 0xc4b0a8e57586aeb49fa3282f7d4584da1b8c127ae316a599a37654c83577aac_big_uint255, /*alpha: */ - 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_bigui255, - 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_bigui255, - 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_bigui255, - 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_bigui255, - 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_bigui255, - 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_bigui255, + 0x3ac916e994eb085e73928ffcf7349bd78232597abe727e5419efca5da3352762_big_uint255, + 0x28c5329493df6684237fe29b099bd63b8e308890d824cc22e1cae645ca74d16e_big_uint255, + 0x20850cee63944d67e20b3a7bbb287445d56d896b21dfad679371f92d7c8cfdde_big_uint255, + 0x733d8c425ee853f86e19b732693e23fb0b3455e4716461232558a95c507edc7_big_uint255, + 0x10107a265a3e1c84a7bfba1098d21f8c454e7b924dbd1da5ac8b3aab636c6a0c_big_uint255, + 0x350d9495311fef9a4b0209edb4a3c4bddd5ffb56ce2f191ef970ab9c0ed0ea89_big_uint255, /*V_L: */ - 0x2f9124776b548d7c11e42c640a80bac1629a259098c027712ac5c8d03861f9a1_bigui255, - 0x26e20a54731d9020cd3a49f4f93647a9fc6c4220c04c12252381b38822bde8ff_bigui255, + 0x2f9124776b548d7c11e42c640a80bac1629a259098c027712ac5c8d03861f9a1_big_uint255, + 0x26e20a54731d9020cd3a49f4f93647a9fc6c4220c04c12252381b38822bde8ff_big_uint255, /*q_last_0: */ - 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_bigui255, - 0x55b0e97fa86bdb951a6f982ebb8e625911af5d675ae321772de8859ef16759_bigui255, + 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_big_uint255, + 0x55b0e97fa86bdb951a6f982ebb8e625911af5d675ae321772de8859ef16759_big_uint255, /*q_blind_0: */ - 0x15cb10dc31dd9dd99205932dc89d5f4cc9d516dd93c82c005e49eb276a565fc3_bigui255, - 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_bigui255, + 0x15cb10dc31dd9dd99205932dc89d5f4cc9d516dd93c82c005e49eb276a565fc3_big_uint255, + 0x3e4be0f60a0892de53ce64e30dbeeb2ad97a4a9f48f8d0de90179dff9b655ee_big_uint255, /*L_0: */ - 0x3e480b88f7e13e682fbd0e71b75ae9b7e779f1e5513868152c6cacece130159_bigui255, + 0x3e480b88f7e13e682fbd0e71b75ae9b7e779f1e5513868152c6cacece130159_big_uint255, /*gate selectors: */ - 0x265031146d81d8f888bd86840686b200aad9dd7480f5400d51e1cbe59bf34a51_bigui255, - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, + 0x265031146d81d8f888bd86840686b200aad9dd7480f5400d51e1cbe59bf34a51_big_uint255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_big_uint255, /*table_ids: */ 1, 2, 2, /*lookup gate constraint lookup inputs: */ - 0x38cf0677a1def0c0aebaa6d9df9a338e213824e22eaae2279d8e824189bcc666_bigui255, - 0x1bc6cc84db93e32cdcb39fcf0b737ce973ec99e2139941a1eaf10e1f4358f9bb_bigui255, - 0x277581609fba694550ec7d87c8d3c92fdaf392f7303ff5e4d26ad9e187c2a4af_bigui255, + 0x38cf0677a1def0c0aebaa6d9df9a338e213824e22eaae2279d8e824189bcc666_big_uint255, + 0x1bc6cc84db93e32cdcb39fcf0b737ce973ec99e2139941a1eaf10e1f4358f9bb_big_uint255, + 0x277581609fba694550ec7d87c8d3c92fdaf392f7303ff5e4d26ad9e187c2a4af_big_uint255, /*lookup tables selcetors: */ - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, - 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_bigui255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_big_uint255, + 0x226bb05bde03c51205c1b59ceb1103652c623e562be1b98bff1b0116cde048f8_big_uint255, /* lookup tables lookup option: */ - 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_bigui255, - 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_bigui255, - 0x3fcbb4a2a370463d52277fd6f5ed1ad2b814a3c19bad97c660a2c1d638c348ec_bigui255, - 0x1d0c444e682d3cd84514835b04cc28bd46f35621d6c6dbea5e34e783a6836b9a_bigui255, + 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_big_uint255, + 0x13b142d74d5d6ce3355ef3c65e9809d91eb69e0ad2deea4197761e3e3361dc16_big_uint255, + 0x3fcbb4a2a370463d52277fd6f5ed1ad2b814a3c19bad97c660a2c1d638c348ec_big_uint255, + 0x1d0c444e682d3cd84514835b04cc28bd46f35621d6c6dbea5e34e783a6836b9a_big_uint255, /*lookup tables shifted selcetors: */ - 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_bigui255, - 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_bigui255, + 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_big_uint255, + 0x25fa802aedd96d1cf3a316ebd7cb239e51c82e17199a5cebdab3e35ffd01e2f8_big_uint255, /* lookup tables shifted lookup option: */ - 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_bigui255, - 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_bigui255, - 0x39729f1872018851ef8eb0a3706b37dc0aa16a8f3988602e73d9376435d7c326_bigui255, - 0x7be020326311d5b6ba5130e1d85ab6ae573fa30f2218b4d10325204dc16a399_bigui255, + 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_big_uint255, + 0x3b8e1e41ccc266c12d5f3e08397385c4d88c4f0fd56b7ae5f9dd594b44ce5451_big_uint255, + 0x39729f1872018851ef8eb0a3706b37dc0aa16a8f3988602e73d9376435d7c326_big_uint255, + 0x7be020326311d5b6ba5130e1d85ab6ae573fa30f2218b4d10325204dc16a399_big_uint255, /* sorted :*/ - 0x144cf6b94befcde04ca399aa28f7c19b9c7abe4516b149d51c979578c26132aa_bigui255, - 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_bigui255, - 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_bigui255, - 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_bigui255, - 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_bigui255, - 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_bigui255, - 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_bigui255, - 0x2be0a5cb81a428769c7a00a5c286d190daa41649ce8cc80dd48da8ddb6541ff4_bigui255, - 0x37822189c5f080b02ce93fd126be0cd976149faf2c698a05f8e67716c95fff2c_bigui255, - 0x3c107fd152981cf471acbcec2bc52731776ee7572a0358668751955be7ebe5e3_bigui255, - 0x20a347ef86111d08804823c1e81f6c7bffa4c768533e19f86bbd4dacb9539fb5_bigui255, - 0x22e3fb00764626ac8e7f5765869236b03c60e073c00bfd01e63a662ab7a66199_bigui255, - 0x3f4bda0c68abd98d7b543381553ac4523dc3510eb347a1072a08246a7a454491_bigui255, - 0x44ac8e5824fe8aa17842a4a4fe23aadcbbc09f07b02c60df78e22fcb4bcec46_bigui255, - 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_bigui255, - 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_bigui255, - 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_bigui255, - 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_bigui255, - 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_bigui255, - 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_bigui255}; + 0x144cf6b94befcde04ca399aa28f7c19b9c7abe4516b149d51c979578c26132aa_big_uint255, + 0x4f4a9468effe3b8b593752aa6ca4076d9548e7ad0db0dd4db34775c4806d44f_big_uint255, + 0x3f3c910aa039f6a9c696978cffd810099023bac4778c6a25df3e7cc4882e249f_big_uint255, + 0x362a6fe7cda76313effd4f422c2aa30517af2e8cf75cbd6cacd18592f8504465_big_uint255, + 0x2a6d49e1c07f61f3356cde688fb9807c7efa8120c1357b768292038c29c33ca1_big_uint255, + 0x2fc44c30d66a005631bab5e36186f6f2df3d82695bb41025d12706204a8e98fa_big_uint255, + 0x34aa8f0b44149c23df98d0a7950f11945bcaf1588a589d8442fcf6a4551ff475_big_uint255, + 0x2be0a5cb81a428769c7a00a5c286d190daa41649ce8cc80dd48da8ddb6541ff4_big_uint255, + 0x37822189c5f080b02ce93fd126be0cd976149faf2c698a05f8e67716c95fff2c_big_uint255, + 0x3c107fd152981cf471acbcec2bc52731776ee7572a0358668751955be7ebe5e3_big_uint255, + 0x20a347ef86111d08804823c1e81f6c7bffa4c768533e19f86bbd4dacb9539fb5_big_uint255, + 0x22e3fb00764626ac8e7f5765869236b03c60e073c00bfd01e63a662ab7a66199_big_uint255, + 0x3f4bda0c68abd98d7b543381553ac4523dc3510eb347a1072a08246a7a454491_big_uint255, + 0x44ac8e5824fe8aa17842a4a4fe23aadcbbc09f07b02c60df78e22fcb4bcec46_big_uint255, + 0x384d6cead91ac3c0ae1a8acc9f4d753121afe02066774dd10a381ce3f30649f9_big_uint255, + 0x181e07ef1cacc19be824f2d02109b1863ab1740bdc82e0e184b3246af28f8773_big_uint255, + 0x17a9cdd5c4c1fe3143318316c5a9b18d879813ebda0c56f2b3ab5faaf8e530af_big_uint255, + 0x1df2aafa1674d30190d7e9fc28bb72263c0e73ff16f4558736d45836e45de71a_big_uint255, + 0x1c397b8d8e0b71e74a95b05b6769850aa0cff9c3d29bf0e48c7df205c571f7ab_big_uint255, + 0x3fc816df5e71c581a52cdbbd4cee972b9b56cb08b5d838dfe317b93e0243e11a_big_uint255}; std::array expected_res = { - 0x35e69c5ddd12ba21112c825dbece7df98c7e250b0c4e4517a8aa79f0925499b0_bigui255, - 0x246009173489a2c898257f798838fbbf15099b5e311b765e0114cbb017472baa_bigui255, - 0x1f4800182b9b832ceaca69367a60809745976e7793157079f305358ecc0d1034_bigui255, - 0x3784c3bbe15ea3db50780f6d73698cd40e98f82aafdc6dfd62f7d3f29aa4f1ff_bigui255}; // F + 0x35e69c5ddd12ba21112c825dbece7df98c7e250b0c4e4517a8aa79f0925499b0_big_uint255, + 0x246009173489a2c898257f798838fbbf15099b5e311b765e0114cbb017472baa_big_uint255, + 0x1f4800182b9b832ceaca69367a60809745976e7793157079f305358ecc0d1034_big_uint255, + 0x3784c3bbe15ea3db50780f6d73698cd40e98f82aafdc6dfd62f7d3f29aa4f1ff_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -435,54 +435,54 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test2) { std::vector public_input = { /*theta: */ - 0x1d7f68089e58314bd0fd09de62903aa5ec3268b574f97bf7cad8e1af15952f05_bigui255, + 0x1d7f68089e58314bd0fd09de62903aa5ec3268b574f97bf7cad8e1af15952f05_big_uint255, /*beta: */ - 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_bigui255, + 0x815e5816cf879a118c629f6f724e75486494f53371ad59a031e8acf03199b88_big_uint255, /*gamma: */ - 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_bigui255, + 0x257158c4ad84265ed8011284ea62f8d24834881034b1d1bf2bdf6dfd0d87aab6_big_uint255, /*alpha: */ - 0xc5f37c144b3d9a3727c15cb2860927aa1852b09741fa40473fc9eb1787dc89e_bigui255, + 0xc5f37c144b3d9a3727c15cb2860927aa1852b09741fa40473fc9eb1787dc89e_big_uint255, /*V_L: */ - 0x3d71d8822355d24ec28a4689490af52a0edec77b1a1e1a336b00136ca5b2aa55_bigui255, - 0x39bfbccba576b46aadd07a1269e2167a8af30ee2f5b63d18da633976f8d39b90_bigui255, + 0x3d71d8822355d24ec28a4689490af52a0edec77b1a1e1a336b00136ca5b2aa55_big_uint255, + 0x39bfbccba576b46aadd07a1269e2167a8af30ee2f5b63d18da633976f8d39b90_big_uint255, /*q_last_0: */ - 0x289716269efe8d211ed1c4b73cf3a1a8a92c4f35b60c88610e2a2274a9462e4d_bigui255, - 0x3938ee6f665648111b1fb38692685fc58d13dd96eb282fa132df606fc13c24ff_bigui255, + 0x289716269efe8d211ed1c4b73cf3a1a8a92c4f35b60c88610e2a2274a9462e4d_big_uint255, + 0x3938ee6f665648111b1fb38692685fc58d13dd96eb282fa132df606fc13c24ff_big_uint255, /*q_blind_0: */ - 0x2ce4873d86986fd9fd9f80e3d17f77086d77fa3600ffcc14a5b151735026659_bigui255, - 0x1d9d793626a197fb1ca1b02a9283241f3de2f6291d8e3009ef5c5a2f90ccb87b_bigui255, + 0x2ce4873d86986fd9fd9f80e3d17f77086d77fa3600ffcc14a5b151735026659_big_uint255, + 0x1d9d793626a197fb1ca1b02a9283241f3de2f6291d8e3009ef5c5a2f90ccb87b_big_uint255, /*L_0: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_big_uint255, /*gate selectors: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_big_uint255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_big_uint255, 0x0_big_uint255, 0x0_big_uint255, /*lookup tables selcetors: */ - 0x1835a3d6c64d2cbc4854ed08838c5cb178c38be251bc63a735bc4624ef775382_bigui255, + 0x1835a3d6c64d2cbc4854ed08838c5cb178c38be251bc63a735bc4624ef775382_big_uint255, /* lookup tables lookup option: */ - 0x3d3c325d1c415801ca4b9f57fe82a5e5ee1dd4f0cd544d2bac86cf6507d1411b_bigui255, - 0x1af97179aa0bd4ba7e094db08509b6cbacec4fed8db50f972262a7ace7a61268_bigui255, - 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_bigui255, + 0x3d3c325d1c415801ca4b9f57fe82a5e5ee1dd4f0cd544d2bac86cf6507d1411b_big_uint255, + 0x1af97179aa0bd4ba7e094db08509b6cbacec4fed8db50f972262a7ace7a61268_big_uint255, + 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_big_uint255, /*lookup tables shifted selcetors: */ - 0x1b61b2f62241a3d026348fb3f38c07218775858811553d73a6f5c9de607b465e_bigui255, + 0x1b61b2f62241a3d026348fb3f38c07218775858811553d73a6f5c9de607b465e_big_uint255, /* lookup tables shifted lookup option: */ - 0x175e6f086c5693df7708a3e28771c101266b8e2e2f291fe92d4e5ae919e62a42_bigui255, - 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_bigui255, - 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_bigui255, + 0x175e6f086c5693df7708a3e28771c101266b8e2e2f291fe92d4e5ae919e62a42_big_uint255, + 0x40343edb5eb0ff0af2bebd16c1a46206109f759e22c1d8a79a76ef546951c1c_big_uint255, + 0x3c64fd8ec24abf24f8ff563202680a359bc5d73caac1096da418e429324017db_big_uint255, /* sorted :*/ - 0xaae87d4c1a9c5f67fd8d128e52c19df71cae8ae988616ccdf64469b1f622167_bigui255, - 0x88ac88639b105ff6b4c74b858b9a6956b54ec13dc00aa5db193d934078a6744_bigui255, - 0x22cf6baa70e28b08de79a41bffe3ba33dff26ef9269dee9488688f53652a3f6c_bigui255, - 0x3ad0b47143a7797996a7583b7b976d1d65dd0dfb82c24e3095d5ad597451ebd8_bigui255, - 0x2882c884e7588cb74da62fb359b02d5143f2eff9d3e475112caee5f237f5265c_bigui255}; + 0xaae87d4c1a9c5f67fd8d128e52c19df71cae8ae988616ccdf64469b1f622167_big_uint255, + 0x88ac88639b105ff6b4c74b858b9a6956b54ec13dc00aa5db193d934078a6744_big_uint255, + 0x22cf6baa70e28b08de79a41bffe3ba33dff26ef9269dee9488688f53652a3f6c_big_uint255, + 0x3ad0b47143a7797996a7583b7b976d1d65dd0dfb82c24e3095d5ad597451ebd8_big_uint255, + 0x2882c884e7588cb74da62fb359b02d5143f2eff9d3e475112caee5f237f5265c_big_uint255}; std::array expected_res = { - 0x1d38affafcaea87529bfbd1eecfb8bdfec63c8477ef34d81ed7524a4b3dfd0ee_bigui255, - 0x1517c78abe81de6b6ab6cea789d87b139ae198de67059be4da160d4eef47a120_bigui255, - 0x1c6d84769c65a19b6291825efc7e31c970629504b4c88816a90e7d339ebe2252_bigui255, - 0x3c74bf9104f97f4019d75b317c1df2629f1f421002b7abc02344d53707b21de2_bigui255}; // F + 0x1d38affafcaea87529bfbd1eecfb8bdfec63c8477ef34d81ed7524a4b3dfd0ee_big_uint255, + 0x1517c78abe81de6b6ab6cea789d87b139ae198de67059be4da160d4eef47a120_big_uint255, + 0x1c6d84769c65a19b6291825efc7e31c970629504b4c88816a90e7d339ebe2252_big_uint255, + 0x3c74bf9104f97f4019d75b317c1df2629f1f421002b7abc02344d53707b21de2_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -511,54 +511,54 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test3) { std::vector public_input = { /*theta: */ - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, /*beta: */ - 0x234beb2f67e10c0b52a8162be56be6d0b441bfb15b18ea41167ff3eb6f07160e_bigui255, + 0x234beb2f67e10c0b52a8162be56be6d0b441bfb15b18ea41167ff3eb6f07160e_big_uint255, /*gamma: */ - 0x1855e317848ad8aa18904176c2af32d853dfc7698d97dc19b608992e6bdaa052_bigui255, + 0x1855e317848ad8aa18904176c2af32d853dfc7698d97dc19b608992e6bdaa052_big_uint255, /*alpha: */ - 0x17f36241082dc5dc4e12968736300a389c2cbab471ace605aa7eb8d1cc91016f_bigui255, + 0x17f36241082dc5dc4e12968736300a389c2cbab471ace605aa7eb8d1cc91016f_big_uint255, /*V_L: */ - 0x2aad0ea7357d6d6bc3e696cb9f53a669b36ef1888fd3daefda299547d5222873_bigui255, - 0x20d25dca706ce16e69797886802260ca4dbfbde1dbc488d97c44af1b752dc2cb_bigui255, + 0x2aad0ea7357d6d6bc3e696cb9f53a669b36ef1888fd3daefda299547d5222873_big_uint255, + 0x20d25dca706ce16e69797886802260ca4dbfbde1dbc488d97c44af1b752dc2cb_big_uint255, /*q_last_0: */ - 0x30895ee54f09f37d02e99a406c6c8af394e4dd638575bb48bb97498bea211940_bigui255, - 0x2afc6ee2bd64a76ce5d5a2345bed6c99dd4452d7d1712321e497c67b3906a86c_bigui255, + 0x30895ee54f09f37d02e99a406c6c8af394e4dd638575bb48bb97498bea211940_big_uint255, + 0x2afc6ee2bd64a76ce5d5a2345bed6c99dd4452d7d1712321e497c67b3906a86c_big_uint255, /*q_blind_0: */ - 0x31849db7e2ccf46d25b15a478e4da18972e88efdeccd4525110e636f945a2b3c_bigui255, - 0x16c598e3d182c4be8e8c706fd77a79e03918b7cd335d74768864041a54a195eb_bigui255, + 0x31849db7e2ccf46d25b15a478e4da18972e88efdeccd4525110e636f945a2b3c_big_uint255, + 0x16c598e3d182c4be8e8c706fd77a79e03918b7cd335d74768864041a54a195eb_big_uint255, /*L_0: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_big_uint255, /*gate selectors: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_big_uint255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, 0x0_bigui255, 0x0_bigui255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_big_uint255, 0x0_big_uint255, 0x0_big_uint255, /*lookup tables selcetors: */ - 0x3aafabf9cb4dee6fcf3597fa74684696bc5c1e6e64ebc113875c558ab7822c55_bigui255, + 0x3aafabf9cb4dee6fcf3597fa74684696bc5c1e6e64ebc113875c558ab7822c55_big_uint255, /* lookup tables lookup option: */ - 0x334125c610355fc7c5f126ca247e9a5233590241e3050c6a97c4f3c942db3c7a_bigui255, - 0x76e8633bb188ea8094471304fe9ac4489031c2c81e6b4a8ef9761c174a6efdb_bigui255, - 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_bigui255, + 0x334125c610355fc7c5f126ca247e9a5233590241e3050c6a97c4f3c942db3c7a_big_uint255, + 0x76e8633bb188ea8094471304fe9ac4489031c2c81e6b4a8ef9761c174a6efdb_big_uint255, + 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_big_uint255, /*lookup tables shifted selcetors: */ - 0x32f5948010c470a8f18f6943a95866e981c20bbad832c7c31a4a1f50487e131c_bigui255, + 0x32f5948010c470a8f18f6943a95866e981c20bbad832c7c31a4a1f50487e131c_big_uint255, /* lookup tables shifted lookup option: */ - 0x2ab0dd9cbdf3b84e1173e4ade0c739312bad5c50c69ede7a671cf2023ea97f0e_bigui255, - 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_bigui255, - 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_bigui255, + 0x2ab0dd9cbdf3b84e1173e4ade0c739312bad5c50c69ede7a671cf2023ea97f0e_big_uint255, + 0x844b6e352d0b85ae01b8495c8912db85614af6a1193e948b32d2d4e09d4940e_big_uint255, + 0x2342576902db29a6082f737d90dd8ceca2aa402444b829d177859040ca028f33_big_uint255, /* sorted :*/ - 0x309c3f5b27a9decbc857a77c4de0dcf924ab52beef5f1fe1478b4d5f0cdea83d_bigui255, - 0x2f84548fee17235fa8b337133a77b4325accc997229273a513d7eeb2c26d8c72_bigui255, - 0x3c3a027f046e121eb28f3f3a8c595f722b5711aca301ac25563a0bc13f600a8c_bigui255, - 0x3aa7d1881a22a4408949c2b9e4ad31bba1329e386882f6454c8070c3673f2783_bigui255, - 0xf47f8092f969b60daabd4cb1ef68b595a76c42fdc9e217912e4ced2f7dcad3a_bigui255}; + 0x309c3f5b27a9decbc857a77c4de0dcf924ab52beef5f1fe1478b4d5f0cdea83d_big_uint255, + 0x2f84548fee17235fa8b337133a77b4325accc997229273a513d7eeb2c26d8c72_big_uint255, + 0x3c3a027f046e121eb28f3f3a8c595f722b5711aca301ac25563a0bc13f600a8c_big_uint255, + 0x3aa7d1881a22a4408949c2b9e4ad31bba1329e386882f6454c8070c3673f2783_big_uint255, + 0xf47f8092f969b60daabd4cb1ef68b595a76c42fdc9e217912e4ced2f7dcad3a_big_uint255}; std::array expected_res = { - 0xed0fd5a4c7353bbe05c6b605c83fbec891cdf62c9e137b630aea8fc23eba213_bigui255, - 0x2730aed0d40e486fefa62d17dceffdd430ddd4e1129876f1be75b0440887f59a_bigui255, - 0x509b68f48912d1abc42fead48c7aae0adc49dfc05aafcabbcd1b4a84a81822b_bigui255, - 0x126cb3995ab0d911bb988e50df2ece7ba3d22d3fd272421c29579d7c091bbea4_bigui255}; // F + 0xed0fd5a4c7353bbe05c6b605c83fbec891cdf62c9e137b630aea8fc23eba213_big_uint255, + 0x2730aed0d40e486fefa62d17dceffdd430ddd4e1129876f1be75b0440887f59a_big_uint255, + 0x509b68f48912d1abc42fead48c7aae0adc49dfc05aafcabbcd1b4a84a81822b_big_uint255, + 0x126cb3995ab0d911bb988e50df2ece7ba3d22d3fd272421c29579d7c091bbea4_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -587,56 +587,56 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test4) { std::vector public_input = { /*theta: */ - 0x3570e3894c1215e257f32b60a2506ab1bb838dd71e5bdd070aeea75eef5c04e1_bigui255, + 0x3570e3894c1215e257f32b60a2506ab1bb838dd71e5bdd070aeea75eef5c04e1_big_uint255, /*beta: */ - 0x4110a75d7bb3b6119d90555bef2ef98a5cc6d02b863d166a8478e7db7d097b7_bigui255, + 0x4110a75d7bb3b6119d90555bef2ef98a5cc6d02b863d166a8478e7db7d097b7_big_uint255, /*gamma: */ - 0xd8c6a785dd97b0298dec35c05b9a644434fb8ffb8fd571b0efa28269166320f_bigui255, + 0xd8c6a785dd97b0298dec35c05b9a644434fb8ffb8fd571b0efa28269166320f_big_uint255, /*alpha: */ - 0x22c705f52e10b6f5c581348c05068b813972db6286d46fe377bc0e5cd43b6986_bigui255, + 0x22c705f52e10b6f5c581348c05068b813972db6286d46fe377bc0e5cd43b6986_big_uint255, /*V_L: */ - 0xfed12cbd566c5b8f2643428652eb43c7bc927475b69c7a4e24deacb830e18b2_bigui255, - 0x19e5f35744d2e897dc93a79eb0ad4840205abcb9f75a7bbc25c82c09d7d12b86_bigui255, + 0xfed12cbd566c5b8f2643428652eb43c7bc927475b69c7a4e24deacb830e18b2_big_uint255, + 0x19e5f35744d2e897dc93a79eb0ad4840205abcb9f75a7bbc25c82c09d7d12b86_big_uint255, /*q_last_0: */ - 0x25f7509bea7b2d56c9ff4f491e4414772c978dca237a1fae98d9f51bf31ae22d_bigui255, - 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_bigui255, + 0x25f7509bea7b2d56c9ff4f491e4414772c978dca237a1fae98d9f51bf31ae22d_big_uint255, + 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_big_uint255, /*q_blind_0: */ - 0x23b533ff1c373758f4acbd22122f1c0262a368e2b7fe16da8407f08650e476b3_bigui255, - 0x36b42752f807b80ecc9b48c46f7af88581f8a1d01062d7b6599c88e22cfde5d1_bigui255, + 0x23b533ff1c373758f4acbd22122f1c0262a368e2b7fe16da8407f08650e476b3_big_uint255, + 0x36b42752f807b80ecc9b48c46f7af88581f8a1d01062d7b6599c88e22cfde5d1_big_uint255, /*L_0: */ - 0x3b34f6cecb7a7e839ae09301afc44b95407a20905b8a14be97abd9f4d8d9173e_bigui255, + 0x3b34f6cecb7a7e839ae09301afc44b95407a20905b8a14be97abd9f4d8d9173e_big_uint255, /*gate selectors: */ - 0x2b041988e0bcf922cb877fb2c7b9c78f089b71c49697abfb91c120c7c2eba5a3_bigui255, + 0x2b041988e0bcf922cb877fb2c7b9c78f089b71c49697abfb91c120c7c2eba5a3_big_uint255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x216a008a9b4cb540a650f5b8ce4ffa32ed13b0b36d772aa4b44c34e7089b30ec_bigui255, - 0xf34378a7a7d68ec55dc448195fe4d8230e3e586f8d33e253fa06b55c9bb2c81_bigui255, - 0x3f89dc06cbc9ed36f7c9eb31a5ba50c08c81b20e3cc6df6392088d3e70560457_bigui255, + 0x216a008a9b4cb540a650f5b8ce4ffa32ed13b0b36d772aa4b44c34e7089b30ec_big_uint255, + 0xf34378a7a7d68ec55dc448195fe4d8230e3e586f8d33e253fa06b55c9bb2c81_big_uint255, + 0x3f89dc06cbc9ed36f7c9eb31a5ba50c08c81b20e3cc6df6392088d3e70560457_big_uint255, /*lookup tables selcetors: */ - 0x3b1e84962dd31ccca67360931fc883f1971eb3b6e4e4a00b16f9d32fe3278fe6_bigui255, + 0x3b1e84962dd31ccca67360931fc883f1971eb3b6e4e4a00b16f9d32fe3278fe6_big_uint255, /* lookup tables lookup option: */ - 0x2270b42c8a18543699ab4604e78e1fa874b8bbd2921a33b51ec991ce9917dc3c_bigui255, - 0x3feea6bec6d7e5cfec0942e3cd3ad1b016583f8dae822d4928482006c3edc444_bigui255, - 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_bigui255, + 0x2270b42c8a18543699ab4604e78e1fa874b8bbd2921a33b51ec991ce9917dc3c_big_uint255, + 0x3feea6bec6d7e5cfec0942e3cd3ad1b016583f8dae822d4928482006c3edc444_big_uint255, + 0x349f44e2ae4743a2763ccf01c567c9b869a176070df81d96a490c496cad8c2c4_big_uint255, /*lookup tables shifted selcetors: */ - 0x1b436824b0657adcb1724930a2505ce4bb0c54429299e1770e7b7a0f127e45f_bigui255, + 0x1b436824b0657adcb1724930a2505ce4bb0c54429299e1770e7b7a0f127e45f_big_uint255, /* lookup tables shifted lookup option: */ - 0x3920d125f461b2c1993aeae529f95de7da14a84e2df91eec971d5994c7541af9_bigui255, - 0x3b2fddd766fb36fcba6a1daf528db241a30d0d253faf6bdd87dee4161f39cba3_bigui255, - 0x2dd16f49dbd11094236e7703222655f02d5ddec78d6f0f3a1365fe24ce3f1979_bigui255, + 0x3920d125f461b2c1993aeae529f95de7da14a84e2df91eec971d5994c7541af9_big_uint255, + 0x3b2fddd766fb36fcba6a1daf528db241a30d0d253faf6bdd87dee4161f39cba3_big_uint255, + 0x2dd16f49dbd11094236e7703222655f02d5ddec78d6f0f3a1365fe24ce3f1979_big_uint255, /* sorted :*/ - 0x29caaf2bb1ed8d76799585de1615640b5e860512b975eddc1ccc07f3c98b7020_bigui255, - 0x3dec9024d47503f3c555ecc92ff68f5341be354cfb6f996d3891259b01f9b447_bigui255, - 0x2f5a6a904d8e435c78790bc85d1451d353480bbca304a67878b4d130098d7faa_bigui255, - 0x3a5fb8b401914e92a328bc1f72fb8671d39432059ed0b4b17e457899ae244e47_bigui255, - 0x561e67687c658bf77f8a1bac00def678dcd280cd0e94cb52cb4870589541c9e_bigui255}; + 0x29caaf2bb1ed8d76799585de1615640b5e860512b975eddc1ccc07f3c98b7020_big_uint255, + 0x3dec9024d47503f3c555ecc92ff68f5341be354cfb6f996d3891259b01f9b447_big_uint255, + 0x2f5a6a904d8e435c78790bc85d1451d353480bbca304a67878b4d130098d7faa_big_uint255, + 0x3a5fb8b401914e92a328bc1f72fb8671d39432059ed0b4b17e457899ae244e47_big_uint255, + 0x561e67687c658bf77f8a1bac00def678dcd280cd0e94cb52cb4870589541c9e_big_uint255}; std::array expected_res = { - 0x304cec1d36435a3e6b2b0d8a03d7ca470fe20f1e0664b0a87b330020abeb7790_bigui255, - 0xc87379013fea37f144c3272f082dd7687a98f7531d6ecd8030e58ebe38bb21d_bigui255, - 0x2db7784e371e44e5a2c8bd73f52edf1a0e24801444f312c67a41054f4367cfe4_bigui255, - 0x1300ba94cabf85c2f178f39aa3322edf9db9fb27e284fd75f03fdc0f5ba3711a_bigui255}; // F + 0x304cec1d36435a3e6b2b0d8a03d7ca470fe20f1e0664b0a87b330020abeb7790_big_uint255, + 0xc87379013fea37f144c3272f082dd7687a98f7531d6ecd8030e58ebe38bb21d_big_uint255, + 0x2db7784e371e44e5a2c8bd73f52edf1a0e24801444f312c67a41054f4367cfe4_big_uint255, + 0x1300ba94cabf85c2f178f39aa3322edf9db9fb27e284fd75f03fdc0f5ba3711a_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, @@ -665,56 +665,56 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_gate_argument_verifier_test5) { std::vector public_input = { /*theta: */ - 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, + 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, /*beta: */ - 0x3e13fbff8a3e86fd9f2008fad7038a4cd7f131714459e26db3dcd6d4ade21176_bigui255, + 0x3e13fbff8a3e86fd9f2008fad7038a4cd7f131714459e26db3dcd6d4ade21176_big_uint255, /*gamma: */ - 0x3812204b2d8a8231ea5b286ba560cb5f81d79413f41da18e1e46864c4b4f8d91_bigui255, + 0x3812204b2d8a8231ea5b286ba560cb5f81d79413f41da18e1e46864c4b4f8d91_big_uint255, /*alpha: */ - 0x248372a47839f741d202d4c85de0073259242acc0d885a2d6bde0962fa8a6a10_bigui255, + 0x248372a47839f741d202d4c85de0073259242acc0d885a2d6bde0962fa8a6a10_big_uint255, /*V_L: */ - 0x4e37933c31782d66c0562d7d9cb454160e1978332bd5bd21e5ea353b5683e17_bigui255, - 0xe6354934aa089780f37b58f2a1e06d3e86abe87b914e9fd570874bb50b7d824_bigui255, + 0x4e37933c31782d66c0562d7d9cb454160e1978332bd5bd21e5ea353b5683e17_big_uint255, + 0xe6354934aa089780f37b58f2a1e06d3e86abe87b914e9fd570874bb50b7d824_big_uint255, /*q_last_0: */ - 0x27e2f5b264645452ea918502e707d6bfbd367964a9941a43c60b4c3a1cf07a6d_bigui255, - 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_bigui255, + 0x27e2f5b264645452ea918502e707d6bfbd367964a9941a43c60b4c3a1cf07a6d_big_uint255, + 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_big_uint255, /*q_blind_0: */ - 0x207dc1c6703c47f4d2677a9d22b5067a0286f863e7d111d36141ab7c2c47cf95_bigui255, - 0x640e57a8467b4ac8c5f28df2de4c22e9bfe4ebe2a38d9463c88af718fe8eff9_bigui255, + 0x207dc1c6703c47f4d2677a9d22b5067a0286f863e7d111d36141ab7c2c47cf95_big_uint255, + 0x640e57a8467b4ac8c5f28df2de4c22e9bfe4ebe2a38d9463c88af718fe8eff9_big_uint255, /*L_0: */ - 0x216c498e3d3ac1475457bdf32d60392f8c5ba174e750103cdecad98748c8f76f_bigui255, + 0x216c498e3d3ac1475457bdf32d60392f8c5ba174e750103cdecad98748c8f76f_big_uint255, /*gate selectors: */ - 0x1be57e68b61a28070b21d2c655643b1ba0f3ac40f1b420dae429069f370284f4_bigui255, + 0x1be57e68b61a28070b21d2c655643b1ba0f3ac40f1b420dae429069f370284f4_big_uint255, /*table_ids: */ 1, /*lookup gate constraint lookup inputs: */ - 0x286d7641832338fb96156dc92b252e9373ebf6467885af29d34af6eeaa3f4d0f_bigui255, - 0x172b41321a52e33fbc0dc04bafc25ddd93b28d1dafa4769e9a2c3e17bddbf593_bigui255, - 0x66e1ce661dd815a11bad6d33497ff7c90a77ab56c90fc777203287884102451_bigui255, + 0x286d7641832338fb96156dc92b252e9373ebf6467885af29d34af6eeaa3f4d0f_big_uint255, + 0x172b41321a52e33fbc0dc04bafc25ddd93b28d1dafa4769e9a2c3e17bddbf593_big_uint255, + 0x66e1ce661dd815a11bad6d33497ff7c90a77ab56c90fc777203287884102451_big_uint255, /*lookup tables selcetors: */ - 0x1632fef8ee24a270eeaf426cc8e2e996f8741eba99e4b5e32c42909c6dfebe92_bigui255, + 0x1632fef8ee24a270eeaf426cc8e2e996f8741eba99e4b5e32c42909c6dfebe92_big_uint255, /* lookup tables lookup option: */ - 0x3827f3dafcadebcc13addd89f6e1fb57f23d5371cc843d18dfea03bde8f33af5_bigui255, - 0x3419c210464e9866e7b872d501983124cc47c214608a54038b7f9b7b066a477b_bigui255, - 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_bigui255, + 0x3827f3dafcadebcc13addd89f6e1fb57f23d5371cc843d18dfea03bde8f33af5_big_uint255, + 0x3419c210464e9866e7b872d501983124cc47c214608a54038b7f9b7b066a477b_big_uint255, + 0x185ff7f1d1095cb5afd3453b60b94979e86bae25d109aebe649b37f686a5166e_big_uint255, /*lookup tables shifted selcetors: */ - 0x1f3f50955a5607029333bb249589d94c9c641209b02b1761a672322d30229f93_bigui255, + 0x1f3f50955a5607029333bb249589d94c9c641209b02b1761a672322d30229f93_big_uint255, /* lookup tables shifted lookup option: */ - 0x3b81c607a0e9cac79bbfc5e837079988edadb93a8afb339fa2332f4be2135594_bigui255, - 0x22193ce8a7d60a0a06f6cf97c74ab8724e72f5a242a75afb39f0260e67947718_bigui255, - 0x1fc7fbe92ba48f1663da984e9628b1de09d1a54bfb7a8e5a7b4ecbc7624e2487_bigui255, + 0x3b81c607a0e9cac79bbfc5e837079988edadb93a8afb339fa2332f4be2135594_big_uint255, + 0x22193ce8a7d60a0a06f6cf97c74ab8724e72f5a242a75afb39f0260e67947718_big_uint255, + 0x1fc7fbe92ba48f1663da984e9628b1de09d1a54bfb7a8e5a7b4ecbc7624e2487_big_uint255, /* sorted :*/ - 0x1ad4c042735d793d01537bad9f89a0f1dacacdc47495cd16a638e9ddf74b7f90_bigui255, - 0xeef4260e7f2f40ebcf749089fb3bcc22a0d504a0c4b0b0bb581832fb8597e3d_bigui255, - 0x263a119ae0c496c4a6a289302d2eb77f1acbb3cf11c71b7594b8102060192c5_bigui255, - 0x3c6db664b0ff67f755a19001fdd120088a06e162e3ef0cb16dfe35095040147b_bigui255, - 0x3d35e0079956b46536464e7edd6e72c1cfd8c58c07d9127ef7c79b03776e5ee3_bigui255}; + 0x1ad4c042735d793d01537bad9f89a0f1dacacdc47495cd16a638e9ddf74b7f90_big_uint255, + 0xeef4260e7f2f40ebcf749089fb3bcc22a0d504a0c4b0b0bb581832fb8597e3d_big_uint255, + 0x263a119ae0c496c4a6a289302d2eb77f1acbb3cf11c71b7594b8102060192c5_big_uint255, + 0x3c6db664b0ff67f755a19001fdd120088a06e162e3ef0cb16dfe35095040147b_big_uint255, + 0x3d35e0079956b46536464e7edd6e72c1cfd8c58c07d9127ef7c79b03776e5ee3_big_uint255}; std::array expected_res = { - 0x2413f12ba244014bb6d17827fdf209681c9f3a27fbce3708282075180377399d_bigui255, - 0x1b8893815550e740989d0307c537ee686917e97aeedc6373cf074bb385d4b1bc_bigui255, - 0x3b6b19adb84d93d44f6d20a4d2e7318130609cf9d0dbcf032265e31b92dd20ec_bigui255, - 0x39ee0a3ffd9389e182c7918896bc78ba74b7af4fc8e2ae5e585b4566b0ea183_bigui255}; // F + 0x2413f12ba244014bb6d17827fdf209681c9f3a27fbce3708282075180377399d_big_uint255, + 0x1b8893815550e740989d0307c537ee686917e97aeedc6373cf074bb385d4b1bc_big_uint255, + 0x3b6b19adb84d93d44f6d20a4d2e7318130609cf9d0dbcf032265e31b92dd20ec_big_uint255, + 0x39ee0a3ffd9389e182c7918896bc78ba74b7af4fc8e2ae5e585b4566b0ea183_big_uint255}; // F test(public_input, expected_res, lookup_gates_size, gate_constraints_sizes, gate_constraint_lookup_input_sizes, lookup_tables_size, diff --git a/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp b/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp index 9bc45614a8..dd1505b7c3 100644 --- a/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp +++ b/crypto3/libs/blueprint/test/verifiers/placeholder/permutation_argument_verifier.cpp @@ -110,30 +110,30 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_argument_verifier_test0) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - /*.f = */ 0xad2bcf3656123a451e5ae737a10600efd60eb61a019329f54336e570a35ab9_bigui255, - 0x3a229abbe186e216f2c24d215d3a14ec65f213fda941f5d4ee6894ea0f20331e_bigui255, - 0x314564d4bb2dc124ebe6977105d2a16a70e5bc0a100095e28a9931be6a37770a_bigui255, - 0x20b742463ddb6422a9638a1e1e024b97f67786fded20e091254f2d6a0476f847_bigui255, - /*.Se = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_bigui255, - 0x3512e6cbc8242f438407a36a7d6cafe0a4f03fd5aa67a2a8b6a3c9006c86a5d_bigui255, - 0x1095e81fae8b4ec5194263114731f6f6338b13f2c54062d4b9132ed021ea13d1_bigui255, - 0x12ed889e68b889d97e4bef5663f9d2cedf70cac1d0f4f50c0432b923a9926314_bigui255, - /*.Ssigma = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_bigui255, - 0x740745f98a84b4a006f567611871547c31fc448c6a32fd0b31e2ae2cb614ef6_bigui255, - 0x2a966cffe76f3bf716c6f0abfb15f48472f34b3284e716a4c52108f4e1a9365b_bigui255, - 0x3c814ce925e32a65c269304816c7e0114dfe0cf6a234ca8140fd133f2c19cf2c_bigui255, - /*.L0_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_bigui255, - /*.Vsigma_y = */ 0xb69213d83fd8da544645b1bcf69e827f5327ee15437632222676104ad1b08a3_bigui255, - /*.Vsigma_zetay = */ 0x1d4e3ecd39d89a37045c909602e88968d376bc444b6c8976ff0d2d0d407a4ac5_bigui255, - /*.q_last_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_bigui255, - /*.q_pad_y = */ 0xeae8e9652b38b988bfcd8e9ef1a418990021cd4fa6981461d0e1c50049b76f2_bigui255, - /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, - 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_bigui255}; + /*.f = */ 0xad2bcf3656123a451e5ae737a10600efd60eb61a019329f54336e570a35ab9_big_uint255, + 0x3a229abbe186e216f2c24d215d3a14ec65f213fda941f5d4ee6894ea0f20331e_big_uint255, + 0x314564d4bb2dc124ebe6977105d2a16a70e5bc0a100095e28a9931be6a37770a_big_uint255, + 0x20b742463ddb6422a9638a1e1e024b97f67786fded20e091254f2d6a0476f847_big_uint255, + /*.Se = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_big_uint255, + 0x3512e6cbc8242f438407a36a7d6cafe0a4f03fd5aa67a2a8b6a3c9006c86a5d_big_uint255, + 0x1095e81fae8b4ec5194263114731f6f6338b13f2c54062d4b9132ed021ea13d1_big_uint255, + 0x12ed889e68b889d97e4bef5663f9d2cedf70cac1d0f4f50c0432b923a9926314_big_uint255, + /*.Ssigma = */ 0xd76a2e28c1a0d640b40187154c48effa28452984730b0a7a0eb15e5ce281546_big_uint255, + 0x740745f98a84b4a006f567611871547c31fc448c6a32fd0b31e2ae2cb614ef6_big_uint255, + 0x2a966cffe76f3bf716c6f0abfb15f48472f34b3284e716a4c52108f4e1a9365b_big_uint255, + 0x3c814ce925e32a65c269304816c7e0114dfe0cf6a234ca8140fd133f2c19cf2c_big_uint255, + /*.L0_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_big_uint255, + /*.Vsigma_y = */ 0xb69213d83fd8da544645b1bcf69e827f5327ee15437632222676104ad1b08a3_big_uint255, + /*.Vsigma_zetay = */ 0x1d4e3ecd39d89a37045c909602e88968d376bc444b6c8976ff0d2d0d407a4ac5_big_uint255, + /*.q_last_y = */ 0x22e9429d6b3f5e7b775dab62879dbaf184cbd89c713ee99e165040d7052d550d_big_uint255, + /*.q_pad_y = */ 0xeae8e9652b38b988bfcd8e9ef1a418990021cd4fa6981461d0e1c50049b76f2_big_uint255, + /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, + 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_big_uint255}; std::array expected_res = { - 0x164cd4eb4883a25e30db9cf84de858ae429a9e8bc1cc6afa78610548c0455b69_bigui255, - 0x644e8375bddf7d18597aab619542335c0767f3398461c70b3ca1ad73c9a89c1_bigui255, - 0x34bbaf6e1e85fef1a66b63e96f343e34c02cbcfc8531d7f18dea0e1c9425ca24_bigui255, + 0x164cd4eb4883a25e30db9cf84de858ae429a9e8bc1cc6afa78610548c0455b69_big_uint255, + 0x644e8375bddf7d18597aab619542335c0767f3398461c70b3ca1ad73c9a89c1_big_uint255, + 0x34bbaf6e1e85fef1a66b63e96f343e34c02cbcfc8531d7f18dea0e1c9425ca24_big_uint255, }; test(public_input, expected_res); @@ -144,27 +144,27 @@ BOOST_AUTO_TEST_CASE(blueprint_plonk_permutation_argument_verifier_test1) { using BlueprintFieldType = typename crypto3::algebra::curves::pallas::base_field_type; std::vector public_input = { - /*.f = */ 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_bigui255, - 0x0_bigui255, - 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_bigui255, - /*.Se = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_bigui255, - 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_bigui255, - 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_bigui255, - /*.Ssigma = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_bigui255, - 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_bigui255, - 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_bigui255, - /*.L0_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_bigui255, - /*.Vsigma_y = */ 0x1_bigui255, - /*.Vsigma_zetay = */ 0x1_bigui255, - /*.q_last_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_bigui255, - /*.q_pad_y = */ 0x362c09c9697f3d477eee786396c2e690cc2f73d44a5650e351b2b844dba3fb73_bigui255, - /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_bigui255, - 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_bigui255}; + /*.f = */ 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_big_uint255, + 0x0_big_uint255, + 0x15d6ac6a26ba0bf2d81357fc2009ca5c8df2ee41a3442fdb40f9ef7d31d2968f_big_uint255, + /*.Se = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_big_uint255, + 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_big_uint255, + 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_big_uint255, + /*.Ssigma = */ 0x3b96bf475105236e888b56379c4a37e56e694e4778d96480b2bff231b3448fd8_big_uint255, + 0x29f1bc649519b128aab8af160d73177a9ef42375370b1215190af7448056cf34_big_uint255, + 0x11b8adf6e98075cb559b6b6e433f7564b3f0e655f7506f16b1af418f81b20c01_big_uint255, + /*.L0_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_big_uint255, + /*.Vsigma_y = */ 0x1_big_uint255, + /*.Vsigma_zetay = */ 0x1_big_uint255, + /*.q_last_y = */ 0x2a37d8915b58f641a50e3d4e43869c2987f7988f0ff7dac56a285ee684e53af3_big_uint255, + /*.q_pad_y = */ 0x362c09c9697f3d477eee786396c2e690cc2f73d44a5650e351b2b844dba3fb73_big_uint255, + /*.theta = {*/ 0xc51d84f8427d67ce47566fb043b6415f91196129cb6fd0ea3362f213a0e8cc8_big_uint255, + 0x3301d234398523d96772d81b9b06b066888f67fcc3f1d0af919bbc7b856cf854_big_uint255}; std::array expected_res = { - 0x0_bigui255, - 0x0_bigui255, - 0x0_bigui255, + 0x0_big_uint255, + 0x0_big_uint255, + 0x0_big_uint255, }; test(public_input, expected_res); diff --git a/crypto3/libs/blueprint/test/zkevm/bytecode.cpp b/crypto3/libs/blueprint/test/zkevm/bytecode.cpp index 1f17ea6a3e..f2add076eb 100644 --- a/crypto3/libs/blueprint/test/zkevm/bytecode.cpp +++ b/crypto3/libs/blueprint/test/zkevm/bytecode.cpp @@ -130,7 +130,7 @@ BOOST_AUTO_TEST_SUITE(blueprint_bytecode_input_test_suite) BOOST_AUTO_TEST_CASE(input_test){ nil::blueprint::components::bytecode_input_type input; input.new_bytecode(hex_string_to_bytes(bytecode_for)); - input.new_bytecode({hex_string_to_bytes(bytecode_addition), zkevm_word_type(0x1234ab000_bigui257)}); + input.new_bytecode({hex_string_to_bytes(bytecode_addition), zkevm_word_type(0x1234ab000_big_uint257)}); auto ind = input.new_bytecode(); input.push_byte(ind, 0x60); input.push_byte(ind, 0x40); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp index 7d2dd540a7..7767f59943 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/add_sub.cpp @@ -63,23 +63,23 @@ BOOST_AUTO_TEST_CASE(zkevm_add_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp index f2b5e643fe..4ca007e5d7 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/bitwise.cpp @@ -63,41 +63,41 @@ BOOST_AUTO_TEST_CASE(zkevm_bitwise_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp index a28adf52cf..93b34b9825 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/byte_ops.cpp @@ -63,164 +63,164 @@ BOOST_AUTO_TEST_CASE(zkevm_byte_ops_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHL); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp index d7d9b1f1c0..970224a04e 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/cmp.cpp @@ -63,50 +63,50 @@ BOOST_AUTO_TEST_CASE(zkevm_cmp_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp index 3df5d9cf69..1babb5ac66 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/div.cpp @@ -63,52 +63,52 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); @@ -124,17 +124,17 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); // below is the overflow case for signed division - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp index 6a9df75d65..ad2000799d 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/err0.cpp @@ -141,8 +141,8 @@ BOOST_AUTO_TEST_CASE(zkevm_err0_test_2) { zkevm_table zkevm_table(zkevm_circuit, assignment); zkevm_machine_type machine = get_empty_machine(8); - machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); zkevm_table.assign_opcode(machine); - machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); zkevm_table.assign_opcode(machine); + machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); zkevm_table.assign_opcode(machine); + machine.apply_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); zkevm_table.assign_opcode(machine); // produce an out-of-gas error zkevm_table.finalize_test(); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp index efda52329a..948223cb1a 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/mod_ops.cpp @@ -64,52 +64,52 @@ BOOST_AUTO_TEST_CASE(zkevm_mod_ops_test) { // incorrect test logic, but we have no memory operations so opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 3); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::ADDMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 3); // N - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); // b + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); // b opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); // a opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x12b8f010425938504d73ebc8801e2e0161b70726fb8d3a24da9ff9647225a184_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADDMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x6789012345_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MULMOD); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp index bf62a6e36e..5db608845a 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/mul.cpp @@ -63,16 +63,16 @@ BOOST_AUTO_TEST_CASE(zkevm_mul_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp index 9920686edf..547e449574 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/not.cpp @@ -62,11 +62,11 @@ BOOST_AUTO_TEST_CASE(zkevm_not_test) { zkevm_table zkevm_table(evm_circuit, assignment); zkevm_opcode_tester opcode_tester; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp b/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp index bd75e0cc98..021f6c6df6 100644 --- a/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp +++ b/crypto3/libs/blueprint/test/zkevm/opcodes/workload.cpp @@ -116,9 +116,9 @@ BOOST_AUTO_TEST_CASE(zkevm_workload_test) { // incorrect test logic, but we have no memory operations so for(std::size_t i = 0; i < workload; i++) { - opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x11_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x22_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x33_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x11_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x22_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x33_big_uint257); opcode_tester.push_opcode(implemented_opcodes[i % num_of_opcodes]); } opcode_tester.push_opcode(zkevm_opcode::RETURN); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp index 8397827dc7..b8758e1c9a 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/add_sub.cpp @@ -68,23 +68,23 @@ BOOST_AUTO_TEST_CASE(add_sub) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::ADD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SUB); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp index 5c6b69db4a..1e7770fd1b 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/bitwise.cpp @@ -68,41 +68,41 @@ BOOST_AUTO_TEST_CASE(bitwize) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x3_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::AND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::OR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::XOR); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp index 10d993427e..7ee817256a 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/byte_ops.cpp @@ -69,167 +69,167 @@ BOOST_AUTO_TEST_CASE(byte_ops) { l1_size_restrictions max_sizes; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,0); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 257); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 65538); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x8b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,65538); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 10); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,10); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 30); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,30); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 50); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,50); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,1); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,32); opcode_tester.push_opcode(zkevm_opcode::BYTE); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SIGNEXTEND); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 31); opcode_tester.push_opcode(zkevm_opcode::SHL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32,31); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SAR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32,0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHR); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x33_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x33_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SHL); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp index 6ccdd6bb03..8534a91e3c 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/cmp.cpp @@ -68,50 +68,50 @@ BOOST_AUTO_TEST_CASE(cmp) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::GT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::LT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EQ); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SGT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SLT); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp index c1dc76cbc7..a11414bbb9 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/div.cpp @@ -68,52 +68,52 @@ BOOST_AUTO_TEST_CASE(divs) { l1_size_restrictions max_sizes; // incorrect test logic, but we have no memory operations so - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0); @@ -129,17 +129,17 @@ BOOST_AUTO_TEST_CASE(divs) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::SMOD); // below is the overflow case for signed division - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::DIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SDIV); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8000000000000000000000000000000000000000000000000000000000000000_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::SMOD); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp index 52aadd86f5..ac64258317 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/exp.cpp @@ -81,24 +81,24 @@ BOOST_AUTO_TEST_CASE(exp) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 255); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::EXP); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::EXP); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp index cc182d9c1c..3b376c437e 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/mul.cpp @@ -70,31 +70,31 @@ BOOST_AUTO_TEST_CASE(mul) { opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1111111111111111111111111111111111111111111111111111111111111111_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1111111111111111111111111111111111111111111111111111111111111111_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x4444444444444444333333333333333322222222222222221111111111111111_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x4444444444444444333333333333333322222222222222221111111111111111_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x88888888888888888888888888888888_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x88888888888888888888888888888888_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8888888888888888888888888888888888888888888888888888888888888888_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x8888888888888888888888888888888888888888888888888888888888888888_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 2); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::MUL); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 1234567890); opcode_tester.push_opcode(zkevm_opcode::MUL); opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1e); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp index da9082d607..8e8e1be496 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/not.cpp @@ -68,11 +68,11 @@ BOOST_AUTO_TEST_CASE(opcode_not) { l1_size_restrictions max_sizes; - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1234567890_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0xFb70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::NOT); opcode_tester.push_opcode(zkevm_opcode::STOP); diff --git a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp index b6204efa55..9cf90ab554 100644 --- a/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp +++ b/crypto3/libs/blueprint/test/zkevm_bbf/opcodes/pushx.cpp @@ -113,38 +113,38 @@ BOOST_AUTO_TEST_CASE(pushx) { zkevm_opcode_tester opcode_tester; opcode_tester.push_opcode(zkevm_opcode::PUSH0); - opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x12_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH2, 0x1234_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH3, 0x123456_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH4, 0x12345678_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH5, 0x1b70726fb8_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH6, 0x1b70726fb8d3_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH7, 0x1b70726fb8d3a2_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH8, 0x1b70726fb8d3a24d_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH9, 0x1b70726fb8d3a24da9_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH10, 0x1b70726fb8d3a24da9ff_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH11, 0x1b70726fb8d3a24da9ff96_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH12, 0x1b70726fb8d3a24da9ff9647_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH13, 0x1b70726fb8d3a24da9ff964722_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH14, 0x1b70726fb8d3a24da9ff9647225a_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH15, 0x1b70726fb8d3a24da9ff9647225a18_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH16, 0x1b70726fb8d3a24da9ff9647225a1841_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH17, 0x1b70726fb8d3a24da9ff9647225a18412b_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH18, 0x1b70726fb8d3a24da9ff9647225a18412b8f_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH19, 0x1b70726fb8d3a24da9ff9647225a18412b8f01_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH20, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH21, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH22, 0x1b70726fb8d3a24da9ff9647225a18412b8f01042593_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH23, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104259385_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH24, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH25, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d7_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH26, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73e_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH27, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH28, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc88_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH29, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH30, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH31, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e0_bigui257); - opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_bigui257); + opcode_tester.push_opcode(zkevm_opcode::PUSH1, 0x12_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH2, 0x1234_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH3, 0x123456_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH4, 0x12345678_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH5, 0x1b70726fb8_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH6, 0x1b70726fb8d3_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH7, 0x1b70726fb8d3a2_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH8, 0x1b70726fb8d3a24d_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH9, 0x1b70726fb8d3a24da9_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH10, 0x1b70726fb8d3a24da9ff_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH11, 0x1b70726fb8d3a24da9ff96_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH12, 0x1b70726fb8d3a24da9ff9647_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH13, 0x1b70726fb8d3a24da9ff964722_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH14, 0x1b70726fb8d3a24da9ff9647225a_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH15, 0x1b70726fb8d3a24da9ff9647225a18_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH16, 0x1b70726fb8d3a24da9ff9647225a1841_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH17, 0x1b70726fb8d3a24da9ff9647225a18412b_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH18, 0x1b70726fb8d3a24da9ff9647225a18412b8f_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH19, 0x1b70726fb8d3a24da9ff9647225a18412b8f01_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH20, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH21, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH22, 0x1b70726fb8d3a24da9ff9647225a18412b8f01042593_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH23, 0x1b70726fb8d3a24da9ff9647225a18412b8f0104259385_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH24, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH25, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d7_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH26, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73e_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH27, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH28, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc88_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH29, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH30, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH31, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e0_big_uint257); + opcode_tester.push_opcode(zkevm_opcode::PUSH32, 0x1b70726fb8d3a24da9ff9647225a18412b8f010425938504d73ebc8801e2e016_big_uint257); opcode_tester.push_opcode(zkevm_opcode::STOP); l1_size_restrictions max_sizes; diff --git a/crypto3/libs/containers/test/merkle/merkle.cpp b/crypto3/libs/containers/test/merkle/merkle.cpp index 4098e9427f..62f64f282a 100644 --- a/crypto3/libs/containers/test/merkle/merkle.cpp +++ b/crypto3/libs/containers/test/merkle/merkle.cpp @@ -284,14 +284,14 @@ BOOST_AUTO_TEST_CASE(merkletree_validate_test_1) { BOOST_STATIC_ASSERT_MSG(algebra::is_field_element::value, "Expecting Poseidon to consume field elements"); std::vector> v_field = { - {0x0_bigui255}, - {0x1_bigui255}, - {0x2_bigui255}, - {0x3_bigui255}, - {0x4_bigui255}, - {0x5_bigui255}, - {0x6_bigui255}, - {0x7_bigui255} + {0x0_big_uint255}, + {0x1_big_uint255}, + {0x2_big_uint255}, + {0x3_big_uint255}, + {0x4_big_uint255}, + {0x5_big_uint255}, + {0x6_big_uint255}, + {0x7_big_uint255} }; testing_validate_template(v_field); testing_validate_template(v_field); @@ -354,7 +354,7 @@ BOOST_AUTO_TEST_CASE(merkletree_hash_test_1) { wrappers.emplace_back(inner_containers); } merkle_tree tree = make_merkle_tree(wrappers.begin(), wrappers.end()); - BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_bigui255); + BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_big_uint255); } BOOST_AUTO_TEST_CASE(merkletree_hash_test_2) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp index 9a6f3a286c..9234d0b84c 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_functions.hpp @@ -72,65 +72,65 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_big_uint381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_big_uint381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_big_uint381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_big_uint381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_big_uint381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_big_uint381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_big_uint381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_big_uint381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_big_uint381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_big_uint381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_big_uint381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_big_uint381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_big_uint381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_big_uint381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_big_uint381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_big_uint381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_big_uint381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_big_uint381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_big_uint381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_big_uint381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_big_uint381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_big_uint381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_big_uint381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_big_uint381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_big_uint381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_big_uint381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_big_uint381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_big_uint381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_big_uint381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_big_uint381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_big_uint381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_big_uint381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_big_uint381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_big_uint381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_big_uint381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_big_uint381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_big_uint381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_big_uint381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_big_uint381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_big_uint381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_big_uint381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_big_uint381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_big_uint381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_big_uint381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_big_uint381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_big_uint381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_big_uint381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_big_uint381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_big_uint381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_big_uint381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_big_uint381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_big_uint381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_big_uint381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -186,38 +186,38 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_big_uint381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_big_uint381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_big_uint381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_big_uint381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_big_uint381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_big_uint381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_big_uint381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_big_uint381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp index 982bdc3c52..cb21ed6113 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_iso_map.hpp @@ -52,65 +52,65 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array k_x_num = { - 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_bigui381, - 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_bigui381, - 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_bigui381, - 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_bigui381, - 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_bigui381, - 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_bigui381, - 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_bigui381, - 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_bigui381, - 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_bigui381, - 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_bigui381, - 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_bigui381, - 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_bigui381}; + 0x11a05f2b1e833340b809101dd99815856b303e88a2d7005ff2627b56cdb4e2c85610c2d5f2e62d6eaeac1662734649b7_big_uint381, + 0x17294ed3e943ab2f0588bab22147a81c7c17e75b2f6a8417f565e33c70d1e86b4838f2a6f318c356e834eef1b3cb83bb_big_uint381, + 0xd54005db97678ec1d1048c5d10a9a1bce032473295983e56878e501ec68e25c958c3e3d2a09729fe0179f9dac9edcb0_big_uint381, + 0x1778e7166fcc6db74e0609d307e55412d7f5e4656a8dbf25f1b33289f1b330835336e25ce3107193c5b388641d9b6861_big_uint381, + 0xe99726a3199f4436642b4b3e4118e5499db995a1257fb3f086eeb65982fac18985a286f301e77c451154ce9ac8895d9_big_uint381, + 0x1630c3250d7313ff01d1201bf7a74ab5db3cb17dd952799b9ed3ab9097e68f90a0870d2dcae73d19cd13c1c66f652983_big_uint381, + 0xd6ed6553fe44d296a3726c38ae652bfb11586264f0f8ce19008e218f9c86b2a8da25128c1052ecaddd7f225a139ed84_big_uint381, + 0x17b81e7701abdbe2e8743884d1117e53356de5ab275b4db1a682c62ef0f2753339b7c8f8c8f475af9ccb5618e3f0c88e_big_uint381, + 0x80d3cf1f9a78fc47b90b33563be990dc43b756ce79f5574a2c596c928c5d1de4fa295f296b74e956d71986a8497e317_big_uint381, + 0x169b1f8e1bcfa7c42e0c37515d138f22dd2ecb803a0c5c99676314baf4bb1b7fa3190b2edc0327797f241067be390c9e_big_uint381, + 0x10321da079ce07e272d8ec09d2565b0dfa7dccdde6787f96d50af36003b14866f69b771f8c285decca67df3f1605fb7b_big_uint381, + 0x6e08c248e260e70bd1e962381edee3d31d79d7e22c837bc23c0bf1bc24c6b68c24b1b80b64d391fa9c8ba2e8ba2d229_big_uint381}; constexpr static std::array k_x_den = { - 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_bigui381, - 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_bigui381, - 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_bigui381, - 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_bigui381, - 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_bigui381, - 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_bigui381, - 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_bigui381, - 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_bigui381, - 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_bigui381, - 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_bigui381}; + 0x8ca8d548cff19ae18b2e62f4bd3fa6f01d5ef4ba35b48ba9c9588617fc8ac62b558d681be343df8993cf9fa40d21b1c_big_uint381, + 0x12561a5deb559c4348b4711298e536367041e8ca0cf0800c0126c2588c48bf5713daa8846cb026e9e5c8276ec82b3bff_big_uint381, + 0xb2962fe57a3225e8137e629bff2991f6f89416f5a718cd1fca64e00b11aceacd6a3d0967c94fedcfcc239ba5cb83e19_big_uint381, + 0x3425581a58ae2fec83aafef7c40eb545b08243f16b1655154cca8abc28d6fd04976d5243eecf5c4130de8938dc62cd8_big_uint381, + 0x13a8e162022914a80a6f1d5f43e7a07dffdfc759a12062bb8d6b44e833b306da9bd29ba81f35781d539d395b3532a21e_big_uint381, + 0xe7355f8e4e667b955390f7f0506c6e9395735e9ce9cad4d0a43bcef24b8982f7400d24bc4228f11c02df9a29f6304a5_big_uint381, + 0x772caacf16936190f3e0c63e0596721570f5799af53a1894e2e073062aede9cea73b3538f0de06cec2574496ee84a3a_big_uint381, + 0x14a7ac2a9d64a8b230b3f5b074cf01996e7f63c21bca68a81996e1cdf9822c580fa5b9489d11e2d311f7d99bbdcc5a5e_big_uint381, + 0xa10ecf6ada54f825e920b3dafc7a3cce07f8d1d7161366b74100da67f39883503826692abba43704776ec3a79a1d641_big_uint381, + 0x95fc13ab9e92ad4476d6e3eb3a56680f682b4ee96f7d03776df533978f31c1593174e4b4b7865002d6384d168ecdd0a_big_uint381}; constexpr static std::array k_y_num = { - 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_bigui381, - 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_bigui381, - 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_bigui381, - 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_bigui381, - 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_bigui381, - 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_bigui381, - 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_bigui381, - 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_bigui381, - 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_bigui381, - 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_bigui381, - 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_bigui381, - 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_bigui381, - 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_bigui381, - 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_bigui381, - 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_bigui381, - 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_bigui381}; + 0x90d97c81ba24ee0259d1f094980dcfa11ad138e48a869522b52af6c956543d3cd0c7aee9b3ba3c2be9845719707bb33_big_uint381, + 0x134996a104ee5811d51036d776fb46831223e96c254f383d0f906343eb67ad34d6c56711962fa8bfe097e75a2e41c696_big_uint381, + 0xcc786baa966e66f4a384c86a3b49942552e2d658a31ce2c344be4b91400da7d26d521628b00523b8dfe240c72de1f6_big_uint381, + 0x1f86376e8981c217898751ad8746757d42aa7b90eeb791c09e4a3ec03251cf9de405aba9ec61deca6355c77b0e5f4cb_big_uint381, + 0x8cc03fdefe0ff135caf4fe2a21529c4195536fbe3ce50b879833fd221351adc2ee7f8dc099040a841b6daecf2e8fedb_big_uint381, + 0x16603fca40634b6a2211e11db8f0a6a074a7d0d4afadb7bd76505c3d3ad5544e203f6326c95a807299b23ab13633a5f0_big_uint381, + 0x4ab0b9bcfac1bbcb2c977d027796b3ce75bb8ca2be184cb5231413c4d634f3747a87ac2460f415ec961f8855fe9d6f2_big_uint381, + 0x987c8d5333ab86fde9926bd2ca6c674170a05bfe3bdd81ffd038da6c26c842642f64550fedfe935a15e4ca31870fb29_big_uint381, + 0x9fc4018bd96684be88c9e221e4da1bb8f3abd16679dc26c1e8b6e6a1f20cabe69d65201c78607a360370e577bdba587_big_uint381, + 0xe1bba7a1186bdb5223abde7ada14a23c42a0ca7915af6fe06985e7ed1e4d43b9b3f7055dd4eba6f2bafaaebca731c30_big_uint381, + 0x19713e47937cd1be0dfd0b8f1d43fb93cd2fcbcb6caf493fd1183e416389e61031bf3a5cce3fbafce813711ad011c132_big_uint381, + 0x18b46a908f36f6deb918c143fed2edcc523559b8aaf0c2462e6bfe7f911f643249d9cdf41b44d606ce07c8a4d0074d8e_big_uint381, + 0xb182cac101b9399d155096004f53f447aa7b12a3426b08ec02710e807b4633f06c851c1919211f20d4c04f00b971ef8_big_uint381, + 0x245a394ad1eca9b72fc00ae7be315dc757b3b080d4c158013e6632d3c40659cc6cf90ad1c232a6442d9d3f5db980133_big_uint381, + 0x5c129645e44cf1102a159f748c4a3fc5e673d81d7e86568d9ab0f5d396a7ce46ba1049b6579afb7866b1e715475224b_big_uint381, + 0x15e6be4e990f03ce4ea50b3b42df2eb5cb181d8f84965a3957add4fa95af01b2b665027efec01c7704b456be69c8b604_big_uint381}; constexpr static std::array k_y_den = { - 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_bigui381, - 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_bigui381, - 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_bigui381, - 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_bigui381, - 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_bigui381, - 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_bigui381, - 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_bigui381, - 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_bigui381, - 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_bigui381, - 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_bigui381, - 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_bigui381, - 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_bigui381, - 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_bigui381, - 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_bigui381, - 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_bigui381}; + 0x16112c4c3a9c98b252181140fad0eae9601a6de578980be6eec3232b5be72e7a07f3688ef60c206d01479253b03663c1_big_uint381, + 0x1962d75c2381201e1a0cbd6c43c348b885c84ff731c4d59ca4a10356f453e01f78a4260763529e3532f6102c2e49a03d_big_uint381, + 0x58df3306640da276faaae7d6e8eb15778c4855551ae7f310c35a5dd279cd2eca6757cd636f96f891e2538b53dbf67f2_big_uint381, + 0x16b7d288798e5395f20d23bf89edb4d1d115c5dbddbcd30e123da489e726af41727364f2c28297ada8d26d98445f5416_big_uint381, + 0xbe0e079545f43e4b00cc912f8228ddcc6d19c9f0f69bbb0542eda0fc9dec916a20b15dc0fd2ededda39142311a5001d_big_uint381, + 0x8d9e5297186db2d9fb266eaac783182b70152c65550d881c5ecd87b6f0f5a6449f38db9dfa9cce202c6477faaf9b7ac_big_uint381, + 0x166007c08a99db2fc3ba8734ace9824b5eecfdfa8d0cf8ef5dd365bc400a0051d5fa9c01a58b1fb93d1a1399126a775c_big_uint381, + 0x16a3ef08be3ea7ea03bcddfabba6ff6ee5a4375efa1f4fd7feb34fd206357132b920f5b00801dee460ee415a15812ed9_big_uint381, + 0x1866c8ed336c61231a1be54fd1d74cc4f9fb0ce4c6af5920abc5750c4bf39b4852cfe2f7bb9248836b233d9d55535d4a_big_uint381, + 0x167a55cda70a6e1cea820597d94a84903216f763e13d87bb5308592e7ea7d4fbc7385ea3d529b35e346ef48bb8913f55_big_uint381, + 0x4d2f259eea405bd48f010a01ad2911d9c6dd039bb61a6290e591b36e636a5c871a5c29f4f83060400f8b49cba8f6aa8_big_uint381, + 0xaccbb67481d033ff5852c1e48c50c477f94ff8aefce42d28c0f9a88cea7913516f968986f7ebbea9684b529e2561092_big_uint381, + 0xad6b9514c767fe3c3613144b45f1496543346d98adf02267d5ceef9a00d9b8693000763e3b90ac11e99b138573345cc_big_uint381, + 0x2660400eb2e4f3b628bdd0d53cd76f2bf565b94e72927c1cb748df27942480e420517bd8714cc80d1fadc1326ed06f7_big_uint381, + 0xe0fa1d816ddc03e6b24255e0d7819c171c40f65e273b853324efcd6356caa205ca2f570f13497804415473a1d634b8f_big_uint381}; public: static inline group_value_type process(const group_value_type &ci) { @@ -165,38 +165,38 @@ namespace nil { // TODO: change integral_type on field_value_type when constexpr will be finished constexpr static std::array, 4> k_x_num = { - {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_bigui381}}, + {{{0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97d6_big_uint381}}, {{0, - 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_bigui381}}, - {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_bigui381, + 0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71a_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71e_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38d_big_uint381}}, + {{0x171d6541fa38ccfaed6dea691f5fb614cb14b4e7f4e810aa22d6108f142b85757098e38d0f671c7188e2aaaaaaaa5ed1_big_uint381, 0}}}}; constexpr static std::array, 2> k_x_den = { {{{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa63_big_uint381}}, {{0xc, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa9f_big_uint381}}}}; constexpr static std::array, 4> k_y_num = { - {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381, - 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_bigui381}}, + {{{0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381, + 0x1530477c7ab4113b59a4c18b076d11930f7da5d4a07f649bf54439d87d27e500fc8c25ebf8c92f6812cfc71c71c6d706_big_uint381}}, {{0, - 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_bigui381}}, - {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_bigui381, - 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_bigui381}}, - {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_bigui381, + 0x5c759507e8e333ebb5b7a9a47d7ed8532c52d39fd3a042a88b58423c50ae15d5c2638e343d9c71c6238aaaaaaaa97be_big_uint381}}, + {{0x11560bf17baa99bc32126fced787c88f984f87adf7ae0c7f9a208c6b4f20a4181472aaa9cb8d555526a9ffffffffc71c_big_uint381, + 0x8ab05f8bdd54cde190937e76bc3e447cc27c3d6fbd7063fcd104635a790520c0a395554e5c6aaaa9354ffffffffe38f_big_uint381}}, + {{0x124c9ad43b6cf79bfbf7043de3811ad0761b0f37a1e26286b0e977c69aa274524e79097a56dc4bd9e1b371c71c718b10_big_uint381, 0}}}}; constexpr static std::array, 3> k_y_den = { - {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_bigui381}}, + {{{0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa8fb_big_uint381}}, {{0, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_bigui381}}, + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffa9d3_big_uint381}}, {{0x12, - 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_bigui381}}}}; + 0x1a0111ea397fe69a4b1ba7b6434bacd764774b84f38512bf6730d2a0f6b0f6241eabfffeb153ffffb9feffffffffaa99_big_uint381}}}}; public: static inline group_value_type process(const group_value_type &ci) { diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp index 3a070bbf3f..ffba9cc819 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/h2c/h2c_suites.hpp @@ -65,11 +65,11 @@ namespace nil { constexpr static std::size_t L = 64; constexpr static inline const field_value_type Ai = field_value_type( - 0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d_bigui381); + 0x144698a3b8e9433d693a02c96d4982b0ea985383ee66a8d8e8981aefd881ac98936f8da0e0f97f5cf428082d584c1d_big_uint381); constexpr static inline const field_value_type Bi = field_value_type( - 0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0_bigui381); + 0x12e2908d11688030018b12e8753eee3b2016c1f0f24f4070a0b9c14fcef35ef55a23215a316ceaa5d1cc48e98e172be0_big_uint381); constexpr static inline const field_value_type Z = field_value_type(11u); - constexpr static integral_type h_eff = 0xd201000000010001_bigui381; + constexpr static integral_type h_eff = 0xd201000000010001_big_uint381; }; template<> @@ -103,7 +103,7 @@ namespace nil { constexpr static inline field_value_type Z = -field_value_type(2u, 1u); #endif constexpr static inline auto h_eff = - 0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551_bigui636; + 0xbc69f08f2ee75b3584c6a0ea91b352888e2a8e9145ad7689986ff031508ffe1329c2f178731db956d82bf015d1212b02ec0ec69d7477c1ae954cbc06689f6a359894c0adebbf6b4e8020005aaa95551_big_uint636; }; } // namespace hashes } // namespace crypto3 diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp index 818e620b4d..e4dfdd01b3 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/kimchi_constants.hpp @@ -37,19 +37,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_bigui255, - 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_bigui255, - 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_bigui255 + 0x1a9bd250757e29ef4959b9bef59b4e60e20a56307d6491e7b7ea1fac679c7903_big_uint255, + 0x384aa09faf3a48737e2d64f6a030aa242e6d5d455ae4a13696b48a7320c506cd_big_uint255, + 0x3d2b7b0209bc3080064d5ce4a7a03653f8346506bfa6d076061217be9e6cfed5_big_uint255 }}, {{ - 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_bigui255, - 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_bigui255, - 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_bigui255 + 0x9ee57c70bc351220b107983afcfabbea79868a4a8a5913e24b7aaf3b4bf3a42_big_uint255, + 0x20989996bc29a96d17684d3ad4c859813115267f35225d7e1e9a5b5436a2458f_big_uint255, + 0x14e39adb2e171ae232116419ee7f26d9191edde8a5632298347cdb74c3b2e69d_big_uint255 }}, {{ - 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_bigui255, - 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_bigui255, - 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_bigui255 + 0x174544357b687f65a9590c1df621818b5452d5d441597a94357f112316ef67cb_big_uint255, + 0x3ca9263dc1a19d17cfbf15b0166bb25f95dffc53212db207fcee35f02c2c4137_big_uint255, + 0x3cf1fbef75d4ab63b7a812f80b7b0373b2dc21d269ba7c4c4d6581d50aae114c_big_uint255 }}, }}; @@ -57,279 +57,279 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_bigui255, - 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_bigui255, - 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_bigui255 + 0x2ec559cd1a1f2f6889fc8ae5f07757f202b364429677c8ff6603fd6d93659b47_big_uint255, + 0x2553b08c788551bfe064d91c17eb1edb8662283229757711b2b30895f0aa3bad_big_uint255, + 0x25a706fb0f35b260b6f28d61e082d36a8f161be1f4d9416371a7b65f2bfafe4e_big_uint255 }}, {{ - 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_bigui255, - 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_bigui255, - 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_bigui255 + 0x37c0281fda664cc2448d0e7dd77aaa04752250817a945abeea8cfaaf3ee39ba0_big_uint255, + 0x140488321291998b8582eaceeb3fa9ca3980eb64a453573c5aaa2910405936b6_big_uint255, + 0x3a73fe35b1bdd66b809aad5eab47b5c83b0146fd7fc632dfb49cd91ae1169378_big_uint255 }}, {{ - 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_bigui255, - 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_bigui255, - 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_bigui255 + 0x21b7c2b35fd7710b06245711f26c0635d3e21de4db10dd3a7369f59f468d7be6_big_uint255, + 0x1803a068d25fef2ef652c8a4847aa18a29d1885e7bf77fd6a34d66536d09cad7_big_uint255, + 0x291de61c5e6268213772cf7e03c80c2e833eb77c58c46548d158a70fbbd9724b_big_uint255 }}, {{ - 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_bigui255, - 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_bigui255, - 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_bigui255 + 0x230043a0dc2dfab63607cbe1b9c482fdd937fdefecc6905aa5012e89babead13_big_uint255, + 0x218af77a05c502d3fa3144efcf47a0f2a0292498c10c6e2368565674e78764f4_big_uint255, + 0x223e2d94c177d27e071d55729d13a9b216955c7102cc9a95ea40058efb506117_big_uint255 }}, {{ - 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_bigui255, - 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_bigui255, - 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_bigui255 + 0x2a18257c15ad9b6fe8b7c5ad2129394e902c3c3802e738f24ce2f585ae5f6a38_big_uint255, + 0xa6f7ba75f216403d2e4940469d199474a65aa5ef814e36400bddef06158dcf8_big_uint255, + 0x169be41c6227956efef5b4cdde65d00d5e04fe766178bdc731615c6e5b93e31e_big_uint255 }}, {{ - 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_bigui255, - 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_bigui255, - 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_bigui255 + 0x2e28f50a9a55d2e91774083072734544417e290a1cfebc01801b94d0728fe663_big_uint255, + 0xfdedf8da8654a22831040cfc74432464b173ee68628fd90498480b9902f2819_big_uint255, + 0x46a3ed9863d2d739dd8bc9e90a746fda1197162d0a0bec3db1f2f6042cf04e2_big_uint255 }}, {{ - 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_bigui255, - 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_bigui255, - 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_bigui255 + 0x219e08b460c305b428670bacab86ac1e9458075778d35c3619ae7ba1f9b2ed76_big_uint255, + 0x38bb36a12ebcec4d4e8728eb43e3f12a6e33b1ffa1463379018d4e12424e62ca_big_uint255, + 0x1e9aa3fe25d116ccfbd6a8fccdae0aa9bc164a03ab7e951704ee9a715fbedee6_big_uint255 }}, {{ - 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_bigui255, - 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_bigui255, - 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_bigui255 + 0x30f33ed70da4c2bfb844ff1a7558b817d1ec300da86a1694f2db45047d5f18b_big_uint255, + 0x282b04137350495ab417cf2c47389bf681c39f6c22d9e370b7af75cbcbe4bb1_big_uint255, + 0x9b1528dea2eb5bd96905b88ff05fdf3e0f220fe1d93d1b54953ac98fec825f0_big_uint255 }}, {{ - 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_bigui255, - 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_bigui255, - 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_bigui255 + 0x30083dbbb5eab39311c7a8bfd5e55567fa864b3468b5f9200e529cda03d9ef71_big_uint255, + 0x17eace73cf67c6112239cbf51dec0e714ee4e5a91dbc9209dc17bbea5bcd094_big_uint255, + 0x37af1de8f5475ba165b90f8d568683d54e215df97e9287943370cf4118428097_big_uint255 }}, {{ - 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_bigui255, - 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_bigui255, - 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_bigui255 + 0x16ff7592836a45340ec6f2b0f122736d03f0bcb84012f922a4baa73ea0e66f51_big_uint255, + 0x1a5985d4b359d03de60b2edabb1853f476915febc0e40f83a2d1d0084efc3fd9_big_uint255, + 0x255a9d4beb9b5ea18ab9782b1abb267fc5b773b98ab655fd4d469698e1e1f975_big_uint255 }}, {{ - 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_bigui255, - 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_bigui255, - 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_bigui255 + 0x34a8d9f45200a9ac28021712be81e905967bac580a0b9ee57bc4231f5ecb936a_big_uint255, + 0x979556cb3edcbe4f33edd2094f1443b4b4ec6c457b0425b8463e788b9a2dcda_big_uint255, + 0x2a4d028c09ad39c30666b78b45cfadd5279f6239379c689a727f626679272654_big_uint255 }}, {{ - 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_bigui255, - 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_bigui255, - 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_bigui255 + 0xc31b68f6850b3bd71fe4e89984e2c87415523fb54f24ec8ae71430370154b33_big_uint255, + 0x1a27ca0b953d3dba6b8e01cf07d76c611a211d139f2dff5ac023ed2454f2ed90_big_uint255, + 0x109ae97c25d60242b86d7169196d2212f268b952dfd95a3937916b9905303180_big_uint255 }}, {{ - 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_bigui255, - 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_bigui255, - 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_bigui255 + 0x3698c932f2a16f7bb9abac089ec2de79c9965881708878683caf53caa83ad9c4_big_uint255, + 0x3c7e25e0ac8fba3dc1360f8a9a9fa0be0e031c8c76a93497b7cac7ed32ade6c0_big_uint255, + 0x2fc5023c5e4aed5aa7dfca0f5492f1b6efab3099360ec960237512f48c858a79_big_uint255 }}, {{ - 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_bigui255, - 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_bigui255, - 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_bigui255 + 0x2c124735f3f924546fb4fdfa2a018e03f53063d3a2e87fd285ba8d647eda6765_big_uint255, + 0x12c875c9b79591acf9033f8b6c1e357126c44b23f3486fbee0d98340a3382251_big_uint255, + 0x3cda935e895857d39a7db8476aeda5a5131cb165a353073fd3e473fd8855528d_big_uint255 }}, {{ - 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_bigui255, - 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_bigui255, - 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_bigui255 + 0x218eb756fa5f1df9f1eb922ef80b0852588779a7368e3d010def1512815d8759_big_uint255, + 0x23bcf1032957015ef171fbb4329bca0c57d59885522f25f4b082a3cf301cfbc6_big_uint255, + 0x17474c3b6a9bc1057df64b9e4d62badbc7f3867b3dd757c71c1f656205d7bceb_big_uint255 }}, {{ - 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_bigui255, - 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_bigui255, - 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_bigui255 + 0x19826c0ee22972deb41745d3bd412c2ae3d4c18535f4b60c9e870edffa3d550_big_uint255, + 0x30bcb17dfd622c46f3275f698319b68d8816bed0368ded435ed61992bc43efa9_big_uint255, + 0x3bd816c214c66410229cfbd1f4a3a42e6a0f82f3c0d49b09bc7b4c042ff2c94b_big_uint255 }}, {{ - 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_bigui255, - 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_bigui255, - 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_bigui255 + 0x8943ec01d9fb9f43c840757738979b146c3b6d1982280e92a52e8d045633ea1_big_uint255, + 0x2670bf8c01822e31c70976269d89ed58bc79ad2f9d1e3145df890bf898b57e47_big_uint255, + 0xdd53b41599ae78dbd3e689b65ebcca493effa94ed765eeec75a0d3bb20407f9_big_uint255 }}, {{ - 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_bigui255, - 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_bigui255, - 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_bigui255 + 0x68177d293585e0b8c8e76a8a565c8689a1d88e6a9afa79220bb0a2253f203c3_big_uint255, + 0x35216f471043866edc324ad8d8cf0cc792fe7a10bf874b1eeac67b451d6b2cf5_big_uint255, + 0x1fd6efb2536bfe11ec3736e7f7448c01eb2a5a9041bbf84631cc83ee0464f6af_big_uint255 }}, {{ - 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_bigui255, - 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_bigui255, - 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_bigui255 + 0x2c982c7352102289fc1b48dafcd9e3cc364d5a4324575e4721daf0af10033c67_big_uint255, + 0x352f7e8c7662d86db9c722d4d07778858771b832af5bb5dc3b13cf94851c1b45_big_uint255, + 0x18e3c0c1caa5e3ed66ee1ab6f55a5c8063d8c9b034ae47db43435147149e37d5_big_uint255 }}, {{ - 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_bigui255, - 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_bigui255, - 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_bigui255 + 0x3124b12deb37dcbb3d96c1a08d507523e30e03e0919559bf2daaab238422eade_big_uint255, + 0x143bf0def31437eb21095200d2d406e6e5727833683d9740b9bfc1713215dc9a_big_uint255, + 0x1ebee92143f32b4f9d9a90ad62b8483c977480767b53c71f6bde934a8ef38f17_big_uint255 }}, {{ - 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_bigui255, - 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_bigui255, - 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_bigui255 + 0xff6c794ad1afaa494088d5f8ee6c47bf9e83013478628cf9f41f2e81383ebeb_big_uint255, + 0x3d0a10ac3ee707c62e8bdf2cdb49ac2cf4096cf41a7f214fdd1f8f9a24804f17_big_uint255, + 0x1d61014cd3ef0d87d037c56bdfa370a73352b95d472ead1937bed06a31801c91_big_uint255 }}, {{ - 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_bigui255, - 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_bigui255, - 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_bigui255 + 0x123e185b2ec7f072507ac1e4e743589bb25c8fdb468e329e7de169875f90c525_big_uint255, + 0x30b780c0c1cb0609623732824c75017da9799bdc7e08b527bae7f409ebdbecf2_big_uint255, + 0x1dfb3801b7ae4e209f68195612965c6e37a2ed5cf1eeee3d46edf655d6f5afef_big_uint255 }}, {{ - 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_bigui255, - 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_bigui255, - 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_bigui255 + 0x2fdee42805b2774064e963c741552556019a9611928dda728b78311e1f049528_big_uint255, + 0x31b2b65c431212ed36fdda5358d90cd9cb51c9f493bff71cdc75654547e4a22b_big_uint255, + 0x1e3ca033d8413b688db7a543e62ac2e69644c0614801379cfe62fa220319e0ef_big_uint255 }}, {{ - 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_bigui255, - 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_bigui255, - 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_bigui255 + 0xc8ef1168425028c52a32d93f9313153e52e9cf15e5ec2b4ca09d01730dad432_big_uint255, + 0x378c73373a36a5ed94a34f75e5de7a7a6187ea301380ecfb6f1a22cf8552638e_big_uint255, + 0x3218aeec20048a564015e8f221657fbe489ba404d7f5f15b829c7a75a85c2f44_big_uint255 }}, {{ - 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_bigui255, - 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_bigui255, - 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_bigui255 + 0x3312ef7cbbad31430f20f30931b070379c77119c1825c6560cd2c82cf767794e_big_uint255, + 0x356449a71383674c607fa31ded8c0c0d2d20fb45c36698d258cecd982dba478c_big_uint255, + 0xcc88d1c91481d5321174e55b49b2485682c87fac2adb332167a20bcb57db359_big_uint255 }}, {{ - 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_bigui255, - 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_bigui255, - 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_bigui255 + 0x1defccbd33740803ad284bc48ab959f349b94e18d773c6c0c58a4b9390cc300f_big_uint255, + 0x2d263cc2e9af126d768d9e1d2bf2cbf32063be831cb1548ffd716bc3ee7034fe_big_uint255, + 0x111e314db6fb1a28e241028ce3d347c52558a33b6b11285a97fffa1b479e969d_big_uint255 }}, {{ - 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_bigui255, - 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_bigui255, - 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_bigui255 + 0x27409401e92001d434cba2868e9e371703199c2372d23ef329e537b513f453e_big_uint255, + 0x24a852bdf9cb2a8fedd5e85a59867d4916b8a57bdd5f84e1047d410770ffffa0_big_uint255, + 0x205d1b0ee359f621845ac64ff7e383a3eb81e03d2a2966557746d21b47329d6e_big_uint255 }}, {{ - 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_bigui255, - 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_bigui255, - 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_bigui255 + 0x25c327e2cc93ec6f0f23b5e41c931bfbbe4c12da7d55a2b1c91c79db982df903_big_uint255, + 0x39df3e22d22b09b4265da50ef175909ce79e8f0b9599dff01cf80e70884982b9_big_uint255, + 0x9b08d58853d8ac908c5b14e5eb8611b45f40faaa59cb8dff98fb30efcdfaa01_big_uint255 }}, {{ - 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_bigui255, - 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_bigui255, - 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_bigui255 + 0x1ece62374d79e717db4a68f9cddaaf52f8884f397375c0f3c5c1dbaa9c57a0a6_big_uint255, + 0x3bd089b727a0ee08e263fa5e35b618db87d7bcce03441475e3fd49639b9fa1c1_big_uint255, + 0x3fedea75f37ad9cfc94c95141bfb4719ee9b32b874b93dcfc0cc12f51a7b2aff_big_uint255 }}, {{ - 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_bigui255, - 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_bigui255, - 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_bigui255 + 0x36dfa18a9ba1b194228494a8acaf0668cb43aca9d4e0a251b20ec3424d0e65cd_big_uint255, + 0x119e98db3f49cd7fcb3b0632567d9ccaa5498b0d411a1437f57c658f41931d0c_big_uint255, + 0x1100b21c306475d816b3efcd75c3ae135c54ad3cc56ca22abd9b7f45e6d02c19_big_uint255 }}, {{ - 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_bigui255, - 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_bigui255, - 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_bigui255 + 0x15791f9bbea213937208c82794eb667f157f003c65b64aa9800f4bbee4ea5119_big_uint255, + 0x1adbeb5e9c4d515ecfd250ebee56a2a816eb3e3dc8d5d440c1ab4285b350be64_big_uint255, + 0x1fbf4738844a9a249aec253e8e4260e4ab09e26bea29ab0020bf0e813ceecbc3_big_uint255 }}, {{ - 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_bigui255, - 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_bigui255, - 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_bigui255 + 0x3418a929556ec51a086459bb9e63a821d407388cce83949b9af3e3b0434eaf0e_big_uint255, + 0x9406b5c3af0290f997405d0c51be69544afb240d48eeab1736cda0432e8ff9e_big_uint255, + 0x23ece5d70b38ccc9d43cd923e5e3e2f62d1d873c9141ef01f89b6de1336f5bc7_big_uint255 }}, {{ - 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_bigui255, - 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_bigui255, - 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_bigui255 + 0x1852d574e46d370a0b1e64f6c41eeb8d40cf96c524a62965661f2ef87e67234d_big_uint255, + 0xa657027cce8d4f238ea896dde273b7537b508674a366c66b3789d9828b0ce90_big_uint255, + 0x3482f98a46ec358108fbbb68fd94f8f2baa73c723baf21922a850e45511f5a2d_big_uint255 }}, {{ - 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_bigui255, - 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_bigui255, - 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_bigui255 + 0x3f62f164f8c905b335a6cbf76131d2430237e17ad6abc76d2a6329c1ec5463ee_big_uint255, + 0x7e397f503f9c1cea028465b2950ea444b15c5eab567d5a69ea2925685694df0_big_uint255, + 0x405f1fc711872373d6eb50a09fbfb05b2703ae0a0b4edb86aedb216db17a876_big_uint255 }}, {{ - 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_bigui255, - 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_bigui255, - 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_bigui255 + 0xbe0848eb3e09c7027110ad842c502441c97afa14a844406fcfec754a25658c1_big_uint255, + 0x26b78788fd98ac020bac92d0e7792bb5ffed06b697d847f61d984f905d9ba870_big_uint255, + 0x38fd5318d39055c82fef9bdd33315a541c0ec4363e6cc0687005871355dfa573_big_uint255 }}, {{ - 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_bigui255, - 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_bigui255, - 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_bigui255 + 0x380bd03b840c48c8ba3830e7cace72f91a5002218c617294e8c8bc687d5216de_big_uint255, + 0x2c6e57ddc1d7c81a0299ed49c3d74759416bc8426f30e2af5622895c531b4e1c_big_uint255, + 0x11d3a81b262fc76ef506ee6d88e5991d0de8cb9dd162d97c58b175e3bc4584f3_big_uint255 }}, {{ - 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_bigui255, - 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_bigui255, - 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_bigui255 + 0x9b6b283ebaf45fbb1e448969ace9be62adf67ddf58614925741deb6a1ba7def_big_uint255, + 0x15d5095164c885763fa83cdf776d436382821a17bc5563a5b6f6dfcdac504ade_big_uint255, + 0x3427fdbfca3cea23063eb138c5055c6cad9c4252b23d12c12293308eff7d9124_big_uint255 }}, {{ - 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_bigui255, - 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_bigui255, - 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_bigui255 + 0x272f12e731077b74317ef2543c33b86194db1da5f6a7e1eee0656672c81685fe_big_uint255, + 0x5323f85deb8c07c193c37a73d76f6114967913a2bdce11995f183e769f42967_big_uint255, + 0x3d5ce415ecae4ba42b417ea3a501b44694f46efddff2fcca952b097f3852d3d8_big_uint255 }}, {{ - 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_bigui255, - 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_bigui255, - 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_bigui255 + 0xe8ec18c7b52c514d42047f1f0b2a90cb8c0c7391cf9479cd7fd5bfe1d3db8f2_big_uint255, + 0x1591c865ea7065d54304519f8bb268bddbeaf3afae54edcd01a833ed0a9ef1a_big_uint255, + 0x3eddbeeee5eca5deee4bf1789c435e1241e0d71186d8f0f62d74729dfc3119fb_big_uint255 }}, {{ - 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_bigui255, - 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_bigui255, - 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_bigui255 + 0x23691c7009b9283b268766e8d491716d3c1993e6ecf458def8f762af3e355707_big_uint255, + 0x26cdab2c837ebeac5bea4be1d6f0488034907374d81a61a34f1c4db397d4c09b_big_uint255, + 0x2d2206730664d58be0676dad1fee0e990c264a7410a2cdb6b55653c1df72ef56_big_uint255 }}, {{ - 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_bigui255, - 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_bigui255, - 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_bigui255 + 0x2bb74bb185372334a4ef5f6d18e2ece54086e62b04985dd794b7117b0be9217f_big_uint255, + 0x366250fe928c45d8d5aa35f0a142754907ff3c598410199b589b28cd851b2204_big_uint255, + 0x1868f8118482c6b4a5a61a81c8aaca128953179c20f73a44022d9976bdc34af1_big_uint255 }}, {{ - 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_bigui255, - 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_bigui255, - 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_bigui255 + 0xb7901c670e1d75d726eb88d000950b3c963f0f7a6ca24994bdc07ae2f78b4d3_big_uint255, + 0x32c4bd8ab70e1f25af77af57dd340c8e6c8a101dfc5e8dd03314566db90b870_big_uint255, + 0x1ce36db31fe6ea3cd9308db9aa43a8af5c41a8f0a6509bfe00f0e7b486c0ab8a_big_uint255 }}, {{ - 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_bigui255, - 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_bigui255, - 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_bigui255 + 0x26596ea9e1915e53da3479e9d13c3c920505e2449e325810ff6ca855fe4b7c6e_big_uint255, + 0x30f296a269868a7fca8f5b1e269c0116304df31729559a270e713509d3a6d5dc_big_uint255, + 0x2588961eff7897d87eb6ac72350ef9f52640647cbd23136919a994dfd1979d5_big_uint255 }}, {{ - 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_bigui255, - 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_bigui255, - 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_bigui255 + 0x16a49e69721e80690d41e06229e9bc2dbaf9a2abf4b89388db2485595409d62b_big_uint255, + 0x3d7aca02c051fcad8073cfd67210cd423a31888afc4a444d9d3adf3d6c5da7bf_big_uint255, + 0x299bd48a740b7790075268312ab8072c72421de5a6437fa5e25431ef951847b4_big_uint255 }}, {{ - 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_bigui255, - 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_bigui255, - 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_bigui255 + 0x11a69b867d9ea22ec1b2f28e96617129e36eefaea9e8126bdc6a42b99072902b_big_uint255, + 0x25bc1af391f3c1f2284a95da92b5883d1b3a40794b2358b2e7a70fca22da64ce_big_uint255, + 0x361ab3843f4d8ddadede39d82bb1a8109f89b6d9aa117b8f365de43895de0baa_big_uint255 }}, {{ - 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_bigui255, - 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_bigui255, - 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_bigui255 + 0x38ef3ab5b61c117a3465a017a9c8ba4c227659b41fdf145206d5c960f49dd45b_big_uint255, + 0x3992f83f26143dbdbd335604a1a14daf238ae43c249783f694feaf560aaae20f_big_uint255, + 0x350287977eb71c81b10ecd039aad99cfa9ed84a04301cb30869e1dc7fa1dc638_big_uint255 }}, {{ - 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_bigui255, - 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_bigui255, - 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_bigui255 + 0x3afb5bc126020586dcccba32dd054cd9a3f3b834ca9678d6802c48b1da97d6ed_big_uint255, + 0x172b7c2d8e7e4b06d183a2575b790749d0970c54966407fa8f59072c729de671_big_uint255, + 0x2eb53fe3a278688a70494569e54a0f0d269935aec6c897bef4d368c1f67d57e4_big_uint255 }}, {{ - 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_bigui255, - 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_bigui255, - 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_bigui255 + 0x375ae56b8d9310d553ed77d406dedc3f0393e5a321b71caee6a5bb7078b5035_big_uint255, + 0x1d49a0d53bc2993cbf1fb5d1da9bb76fe46a7031d5e5d43fadbf54bc17c1ef38_big_uint255, + 0x132d17b87cab6d707ddfa1f01df1724ad37957e989c44f1ff71426367f953160_big_uint255 }}, {{ - 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_bigui255, - 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_bigui255, - 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_bigui255 + 0x62da5280948d8c6c4acc7e6a1aa421f0f9ec179a44146750060be4be6755f85_big_uint255, + 0xa4b4d5cde54a974ea4e57ee4132d2ab2510c300f21930d6bbbf211d1add80f9_big_uint255, + 0x3356f1fbeac493ccab752b70bbed821ce49965c19284d7aacd78fbf3ff864e91_big_uint255 }}, {{ - 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_bigui255, - 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_bigui255, - 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_bigui255 + 0x42721e8a9cc32557851feb0e0190c5dfbf4cb1b8f47d37e7e653ec6ff8a4059_big_uint255, + 0x53d9b2633fff31ca4fc5724ce6b4422318128cdf01897d321e86f47cdf748b1_big_uint255, + 0x267d96caeafde5dbd3db1f0668b09ccd532a22f0205494716a786219fb4c801c_big_uint255 }}, {{ - 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_bigui255, - 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_bigui255, - 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_bigui255 + 0x39316997737610193c3f9ffcfd4e23d38aac12cd7b95b8d256d774101650a6ca_big_uint255, + 0x191e377462986563fdabf9b23529f7c84c6b200b9101b3a5096bca5f377981fb_big_uint255, + 0x20f89af9722f79c860d2059a0ec209cf3a7925ad0798cab655eca62fe73ff3d9_big_uint255 }}, {{ - 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_bigui255, - 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_bigui255, - 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_bigui255 + 0x1ca568aeddb2ef391a7c78ecf104d32d785b9ca145d97e35879df3534a7d1e0b_big_uint255, + 0x25de9ba0a37472c3b4c0b9c3bc25cbbf78d91881b6f94ee70e4abf090211251c_big_uint255, + 0x3393debd38d311881c7583bee07e605ef0e55c62f0508ccc2d26518cd568e1ef_big_uint255 }}, {{ - 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_bigui255, - 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_bigui255, - 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_bigui255 + 0x38df2fd18a8d7563806aa9d994a611f642d5c397388d1dd3e78bc7a4515c5b1_big_uint255, + 0x5c6503ff1ee548f2435ad9148d7fb94c9222b0908f445537a6667047f6d501c_big_uint255, + 0x104c88d6d0682d82d3d664826dc9565db101a220aa8f90572eb798468a82a2ab_big_uint255 }}, {{ - 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_bigui255, - 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_bigui255, - 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_bigui255 + 0x2caad6108c09ee6aee7851b4a2d2d3b7c3ca3c56a80003c8471f90bfa4ac628b_big_uint255, + 0xa57dbd4c327826c8a97bc7285f94bcddb966177346f1792c4bd7088aa0353f3_big_uint255, + 0x3c15552f9124318b8433d01bb53ba04ba1cc9eb91d83b918e32fea39fbe908fa_big_uint255 }}, {{ - 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_bigui255, - 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_bigui255, - 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_bigui255 + 0xe10c10cbbe1717a9441c6299c4fc087c222208bd4fa8f3be66d2075f623b513_big_uint255, + 0x1e8b254cbff2c92a83dff1728c81dd22a9570f590e497cb2d640042cb879a930_big_uint255, + 0x1812dbcd70c440610057bbfdd0cc4d31d1faf5786419b53841c4adc43f2b2352_big_uint255 }}, }}; }; @@ -344,19 +344,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_bigui255, - 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_bigui255, - 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_bigui255, + 0x3e28f7dd17f47a7e304a54d377dd7aeead6b92027d60baf300246cf023dd594e_big_uint255, + 0x30db06abb696fccb92b28ac214f4893d3fd84b3d4a9018754975e24477c32600_big_uint255, + 0x174110bc1b058c6016ff5e8152ab3ffb6e2e6c4d01e66aba302659c51b7f563a_big_uint255, }}, {{ - 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_bigui255, - 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_bigui255, - 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_bigui255, + 0x12d36fa83503146980c05a1d48bcd50d2e9d4390e353a158a0fe387e2b4aeb0c_big_uint255, + 0x2ab17c8eb369bea76e9f0c385e8bafc71536bedc8e06d06fd65c1670e94d9c55_big_uint255, + 0xcc915328165c13986af127e108b9e5d9a60c5dc92e3e7636b8c3da5b4a8537_big_uint255, }}, {{ - 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_bigui255, - 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_bigui255, - 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_bigui255, + 0x4d9a6d270696688eb4346153b380c613a3dcaf0fb5a1e8380409ae0a143d31b_big_uint255, + 0x2a805eee3317c8bae1f7d15abe4d27fee5fabcf9a3334d18b1932a33774c324_big_uint255, + 0x19b092e9c6dffd1eb1b6df2dbc00bb2283b9a787273dcbad9b8d89cd502b7bbd_big_uint255, }}, }}; @@ -364,279 +364,279 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_bigui255, - 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_bigui255, - 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_bigui255, + 0x590ef2a14ba3cef7e8f93a6dde4d481057d5d0547f6f09341b6b8be19c00ee6_big_uint255, + 0x77faa77ed78ff8b695859df34db5157f6b491567f5f382a8fce538f0e5ffe6f_big_uint255, + 0x3e54b7c94955c8994ed16ec9950d59aca4c9b6e419ef4935682528c2eba2de50_big_uint255, }}, {{ - 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_bigui255, - 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_bigui255, - 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_bigui255, + 0x37d991dc8d4de3912355745c7d78f8b04516b14d30e29324bb5dd075ca0f0c1d_big_uint255, + 0xc0614dd1cff6c6817aff09d82ef828e80caed4da023823088fd021020f81f0e_big_uint255, + 0x3335e335a3fed44842359528b3e88e1824a173da819d7ee6905e82eed054243_big_uint255, }}, {{ - 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_bigui255, - 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_bigui255, - 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_bigui255, + 0xb2202aa54d42f4f07693766723b9624c9fca4d33a2b9ee40f1c809a15a48a1d_big_uint255, + 0x290253e0e1d2c72b32a5b272137a0892b5934b0b8f26b4fc25ea00d63a70e9df_big_uint255, + 0x3e99873e73025d7c8b71fd209d13dba7a1021013f0815ea33a42ae94b63d00f3_big_uint255, }}, {{ - 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_bigui255, - 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_bigui255, - 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_bigui255, + 0x164682f55ec314f639f5f8062a4ddf11ed80d5822591a22ff54f340d90165d85_big_uint255, + 0x309ba21093c9d04c81bd5273ad1064e1bd9067312d3269dddadf74c2eb1d3e01_big_uint255, + 0x159e72bb030cb8994b2eac1d4ee7d0f06b0b092e7611d460605b3d8c60a274d9_big_uint255, }}, {{ - 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_bigui255, - 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_bigui255, - 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_bigui255, + 0xd743dbfc6f3c833ce2ef4956bead3c118fd3198652038781903ac929218fdd6_big_uint255, + 0x18cb5a9230eb74045ede834ac6dd129bd2a0462dca1d96d167b9be0e1e96a688_big_uint255, + 0x2d82f85fc222b215902d61c85c968b39759d6c2e9aa0e11fd08881bfae311e66_big_uint255, }}, {{ - 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_bigui255, - 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_bigui255, - 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_bigui255, + 0x2920828be5972cb8ff8023386a90a837bbfcca99be240137f7d211ecb72521e6_big_uint255, + 0x3101774e1c3d72d010efb29c16c476e988bdb47321af3f82e05cc9c6b0360853_big_uint255, + 0x327b4e6353c099e41a8ffab9103996b9d29d07da0f1a191aa6fb55c0720c6f54_big_uint255, }}, {{ - 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_bigui255, - 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_bigui255, - 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_bigui255, + 0x71c29018dd48d5c557379ea9d4afd80b92788ed509ced6bac47a65ba8b475c_big_uint255, + 0x25efdeef6c5ad56834b24cfe03d57360b4335ec902c78ee9348ebaceab726038_big_uint255, + 0x109ffe5cd918fcd7da7fdb40d32ac406f453874fda431c35c9e35601bcf708e9_big_uint255, }}, {{ - 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_bigui255, - 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_bigui255, - 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_bigui255, + 0x1f4de5d78b4378e0eca49ed94999d8bc91489fadfd896c8affbaa6e2654d18bf_big_uint255, + 0x173185e1eaad0664ba1c01b8e417a4422c22a43d622c5df98c11481e205e499e_big_uint255, + 0x161a0e8b31a6fd42727dc0a37ae4f715683af35873bd37e78e10abcb0e21fabd_big_uint255, }}, {{ - 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_bigui255, - 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_bigui255, - 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_bigui255, + 0x3decab3f42934acc644cc227315ecd6bcee79e5d92dc686823f60e6a3c40a7cd_big_uint255, + 0x29d7541d2a4fcdf9c7f144ce1e957a5e5c6d5d064618416817d0ad39708b2807_big_uint255, + 0x1d0525558685977d321fe86c05f462ae2e569e6d202bd5c62b0815320454114a_big_uint255, }}, {{ - 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_bigui255, - 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_bigui255, - 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_bigui255, + 0x27d1aec0ccc80f71d09d2a9c0b76ee5fe9a87516f0e691a9f5fba360cb79f32_big_uint255, + 0x1c28ed68159e54df8296e654b0c1b5872de41557b7b02adc256dcc1600229ba8_big_uint255, + 0x15c9cbe29bf4e7d8bae22dd2213c86724e9944ea4b9e34b6681beb1b0972215e_big_uint255, }}, {{ - 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_bigui255, - 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_bigui255, - 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_bigui255, + 0xd479e19db4686f5cb1ef9a8331a1ab680c5d3770e9a9a8a7a6ac58f8006c38a_big_uint255, + 0x3494f6ecf12d5c3d758c5380652154e26f7f3c888d362ea512da8dc265fc32b0_big_uint255, + 0x37ed9343bcc46adb4300f3d8cb88c311383061710836351ded0a146de837966_big_uint255, }}, {{ - 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_bigui255, - 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_bigui255, - 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_bigui255, + 0x35548be14e1cbcbd7d2c0e8c4a95e5fc2893daba34197ef41c350ae7072cde4e_big_uint255, + 0x34e58327efe8d41b81b66b6c3fad424b2ff9008392909bb90eb10f08462b998b_big_uint255, + 0xf55c1223abf50500c4ac4103f679dcfea4eebb368cf64ef3a63ee27146846f_big_uint255, }}, {{ - 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_bigui255, - 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_bigui255, - 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_bigui255, + 0x11dd4ab1734f7069498cc390a41b7de375d8968cec91b5c74cef9812e8ee7ce7_big_uint255, + 0x1e344f255d7c5e537439e75f9c4ea64dd1fda1b0988e5c83626055859369b43c_big_uint255, + 0x147db9afad2d2f7c4249357587faba99a6a38da16fe9ba74ef2f3fc5a0878f44_big_uint255, }}, {{ - 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_bigui255, - 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_bigui255, - 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_bigui255, + 0x31774ce29d00f566bd499f181517df231be7205c05e7527d71a1c89cb0e841a7_big_uint255, + 0x32bdf60a6685665871f654169996f508be8710c99f3fa6f44a7bc4d2c25fbfd8_big_uint255, + 0x2f567f84ec13720611900c4b9e8303f04c8cc5c57daa4d95d9ee009514205e65_big_uint255, }}, {{ - 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_bigui255, - 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_bigui255, - 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_bigui255, + 0x2dbd279621e591da57f54459f4160dde2f5c78e478d20f2f4763832e013bc07f_big_uint255, + 0x1275fb5ba53b7d2b5322e63f09a48026d684369c8e12241a808085a78ab3a369_big_uint255, + 0x1dd0beba925fe1df13f732b03287cad943569d62ec9059afc2c8120655e97d78_big_uint255, }}, {{ - 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_bigui255, - 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_bigui255, - 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_bigui255, + 0xa37d78e392a5c8441f98e9dbd51a9151e78fb877885ecb885b0834c50cfea4d_big_uint255, + 0x1ebb7e2592122cd16d27e13410b2b48d520d8e99d38c1d86af0ac13565dfeb88_big_uint255, + 0x24a6454b0a69c59916d64f532b56226f8d49969432b7d0efc675f599c3bdb64f_big_uint255, }}, {{ - 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_bigui255, - 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_bigui255, - 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_bigui255, + 0x269668b3e7835df2f85b82e9ef8647c43205e799135ce669256bf55f07448209_big_uint255, + 0x15c87375d4514bbdddbfd84e51f246446f1b16bb58bd4bd9fa2ff57e6aa66057_big_uint255, + 0x11ce62bbe1242334c260a67817be908a9422d9b9c6ee96c00772fcc8fc501db6_big_uint255, }}, {{ - 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_bigui255, - 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_bigui255, - 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_bigui255, + 0x20348b7d6b381bfd3ac923d60b965086d281d8a654ad5f3210d277789641fe98_big_uint255, + 0x1398d090fd1144d1e84798e3a0efa942abfe650947e4a3cfa409ff14b541fae9_big_uint255, + 0x2461a1a2d6e3a0b2e5185ae6c844fe2a3b2d85dfb1cf891efc79ae80dd776bed_big_uint255, }}, {{ - 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_bigui255, - 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_bigui255, - 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_bigui255, + 0x3e1f1de94c4af008188ba5eaef1da9ab9792ce54eda56bb5a519a65cd808885b_big_uint255, + 0x1dee6ead07fbc0fe883f4d397994d75ba3c4f90720e74ae2da13066bc3a7dc3b_big_uint255, + 0x287d06396bcb63555cb2ff408ea075cf402b10a3c608043d0cf2e3685ec6e2ad_big_uint255, }}, {{ - 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_bigui255, - 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_bigui255, - 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_bigui255, + 0x36d84c953d584607478da6183dc4da71bdbf737d45fb57d5a53badc123ae071c_big_uint255, + 0x24c8fd13d2687a9f90c61da26823d4934b350cfa488d528482399e106a70ac74_big_uint255, + 0x52e052a6a493457c9476ccc4fd9924e5c7247b98e58a3cfa688c0f8314bea68_big_uint255, }}, {{ - 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_bigui255, - 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_bigui255, - 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_bigui255, + 0x2fd32bae8a40ab498f6ba290733bb82504de1be782c1cdf039e2fbc843a01e52_big_uint255, + 0x4e8e7d3413c8c8ccfe154dc51f31c7682627c71fa4b50daab27f2a4d2623ea6_big_uint255, + 0x20c16d0097cebeb385508b606487baaf3bad515ba8a0b977f15cb50239418e38_big_uint255, }}, {{ - 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_bigui255, - 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_bigui255, - 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_bigui255, + 0x34f1df6035aac75204368125b0c4cec107e2f9eb0005517d26d6113e1f366271_big_uint255, + 0x375973b59ed7b4bdb33642d20e6364f37a942f9018f6bca5abc10705481425e0_big_uint255, + 0x269e8c978803e51d43439b7c18c4260e819e09e7d8c8d38706463bbb811c698c_big_uint255, }}, {{ - 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_bigui255, - 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_bigui255, - 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_bigui255, + 0x21be1913f874f3edb88a1f60cd157fcb76ff20b4eb139aae205b5a2764098782_big_uint255, + 0x37a0a8ba83db884f721c25027d188c7ab7c7840b7860675b33e1c93e4023927f_big_uint255, + 0x56d0e67fde779b7be5f308a3ce119e23e0503e6dabdbbd5189bb44dc6a6f0a4_big_uint255, }}, {{ - 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_bigui255, - 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_bigui255, - 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_bigui255, + 0x144723436a329da5644cce96fee4952b066092c36bd12838b4ffd4283cfe82c4_big_uint255, + 0xec0b5f14ba50aa2b022d06fbb920a2aafb465b8c7f81fc119371a4cbb6acff7_big_uint255, + 0x685de18d9a346a35c44a2a4ac7283d6fe2e4a9dc058bd537700bc2495271721_big_uint255, }}, {{ - 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_bigui255, - 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_bigui255, - 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_bigui255, + 0x178dcb74b546adea41afd5d93ef564cb3adb0ef5200201daea0faa5026bb8cbc_big_uint255, + 0x1c1dcb1ef6cf5f036ae0030bf78f1643c439843959dd74fa28ea3663735cc923_big_uint255, + 0xcfae6c99994c5f702cba3b32a4e38f3764207bfe7cd9bf577633b41843ea138_big_uint255, }}, {{ - 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_bigui255, - 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_bigui255, - 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_bigui255, + 0x2838a02558716d2b49c06fb34c49cd820ec71e861caa935f4a303e42030ae3df_big_uint255, + 0x2c1944f3ec2852ed6b50fbc4abbc8f284797b36a23b321d2763ef48b1a5a0212_big_uint255, + 0x30a218acd109f04657954e82f9faccc477731f4a954cf8ac12d15ebd450e9dcb_big_uint255, }}, {{ - 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_bigui255, - 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_bigui255, - 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_bigui255, + 0x2488defa4553fa5bd5afbb5fd28a1e99c585c5f541c6242e702215b2212c1d23_big_uint255, + 0x3d0c9d7282245c776daa1655697fa879e470a26fcbb3bea62fa8ff32a4f04e50_big_uint255, + 0x33aac46524f32f3556ed16a0912ef27482c2afcacbfb99ced98394b6c0e3765f_big_uint255, }}, {{ - 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_bigui255, - 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_bigui255, - 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_bigui255, + 0x1858a5f543ab0a70cb3957e0884b146b42cc3863fba4e034145ab09cc77d428d_big_uint255, + 0x2d9d6fae68eff2e79396617207e28dba3d793b1e3739d30e9e9b10644e9f99cd_big_uint255, + 0x1747fab074b37cc1ca7dbf7d6dc136740f5d26e30319b3577fc8987f1247caae_big_uint255, }}, {{ - 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_bigui255, - 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_bigui255, - 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_bigui255, + 0x38f905db5128f24e498e36a84df5a58ed3c0b0ed8f39336eb792cb634f86b87_big_uint255, + 0xfffe42ce4a87a0b3a9ebe7eedf16c0cdb29c959b6e594faa69c0727c6e825f_big_uint255, + 0x314c3090cd0a465da95afd515c0771703e4ee2a8eabe8fa405daf8bd49bce458_big_uint255, }}, {{ - 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_bigui255, - 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_bigui255, - 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_bigui255, + 0x3e5fb71d9071c658c39fe64392e90bac65bdaf8f723b6790cce7dd7440ce06aa_big_uint255, + 0x3e9fe7b8fd0aaa379fa7be0dbd64309607cc5b00474ef6670370e631902e98cd_big_uint255, + 0x33ee4f76ff95bd735ec602ee6f4d1664caec27a7c435ead3b4c8df6cb51f010e_big_uint255, }}, {{ - 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_bigui255, - 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_bigui255, - 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_bigui255, + 0x1670c2080f2965bed3f49db0b63aef5f562b347235645b921c0132b01cc82130_big_uint255, + 0x210565224e2ee64dd479be3a969dc30c65933352ba9b2271a0942bf1bf485743_big_uint255, + 0x9a7c6dd48dfbf50b13055b30fe85f934be9518b8af074b88f9de4b1df689616_big_uint255, }}, {{ - 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_bigui255, - 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_bigui255, - 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_bigui255, + 0x1f9116811eaadf677e6cb50fb59ce0fab11fa9f0ddf1432403610e1932a7aa1c_big_uint255, + 0x19b51a48c225daf9b34611ccc5ba077ebbc0a19cfc9bbbd78ade11cfa655075f_big_uint255, + 0x3286d29eb60c3d6204eb534d13f40d1af6364f0fe1622a12ba5fa069886f31fe_big_uint255, }}, {{ - 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_bigui255, - 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_bigui255, - 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_bigui255, + 0x9bd403d05db137ea793f10b6dd087a74a78c9b01bcd6f9daf39af2ef57d346e_big_uint255, + 0x3a71654023e43363e60889eac50eb1f17c044606886771eaaf851bb2d00b3aeb_big_uint255, + 0x3415b94f62c59466f102442b4bae7d6bb348987154cce16bd187525a6fb5b443_big_uint255, }}, {{ - 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_bigui255, - 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_bigui255, - 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_bigui255, + 0x3ca35f0fc660092b81f15dd6f0b3d17a16a053480ef2f935fce806dd0d9a3466_big_uint255, + 0x26e1360af7fdc62e9be08651c2c5900ed5aefcb0d84b3aa88e354c6658a07863_big_uint255, + 0x30d05884174d7a1de9d34c89224d17f3b9dbdfb0793b54c0d2aaaeedcc357bd6_big_uint255, }}, {{ - 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_bigui255, - 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_bigui255, - 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_bigui255, + 0x2c7f66f8b0580236f025dd626520049a09e1bfff0e5fd9f69cbc70daf0ac56c4_big_uint255, + 0xc5cb9a350d2dc463dd05dbd696e122c6917b76654180c323937dee44c6beb93_big_uint255, + 0x14d4d799d43d91b4d09d9c2bfdc13a64b48d18750503324361f9bf7267ec9b92_big_uint255, }}, {{ - 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_bigui255, - 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_bigui255, - 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_bigui255, + 0x60c56a884cd6a1d3514f2895816b84e7160df5106e8d031710769be1ac5c04c_big_uint255, + 0x23e15f37c21266c86ead998a46e42f6e97fbd5d1c384f51d8b54d051a80d753d_big_uint255, + 0x25eb2911034ab6bef4a969653f5cc33e6914b8b6411f064ec01bcf157fea4e55_big_uint255, }}, {{ - 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_bigui255, - 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_bigui255, - 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_bigui255, + 0x1e95c04c5057abd1b43a2fbc942b2391d0e0daef873838b3494e6d5fb067a117_big_uint255, + 0x1547602fc83558aa1327221fd220fa22bcb1f6ec42edb7cc05eff508c65883cb_big_uint255, + 0x16b669eac31e72a9e739fb03fd7ea3882fc5791b157143929ae12fc2fefe8b3d_big_uint255, }}, {{ - 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_bigui255, - 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_bigui255, - 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_bigui255, + 0x7034f4e251a65c4423479dc9d5287a341c108e0b56e29a391f9a07a0ca822f1_big_uint255, + 0x3fdf9d5731ba040dc568e61b8571ea95ead2e89f0a9856b2d12a7e87e43f5683_big_uint255, + 0x33f2cdf6960139a0fb4a3a8127992e2abbd42847728425228a35ee72bd5b01c7_big_uint255, }}, {{ - 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_bigui255, - 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_bigui255, - 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_bigui255, + 0x35616d55033d8fc092398f6c58bfc6eaaf2ec9dd500122516f489dbc631457b_big_uint255, + 0x1eca80189643df1473e98da93fe58a9576def0d192d4153faebcd1b210c1603f_big_uint255, + 0x26223ca4af2d8d878ca5530c3e67ff1c95b50b9c5b8295e19150bc31ef90ba98_big_uint255, }}, {{ - 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_bigui255, - 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_bigui255, - 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_bigui255, + 0x19180fa5facb64ee9b4827ccd766622adf12fe80ab17c7395075368e10a2a361_big_uint255, + 0x169f165855e097501f25d6b3aae815ce6e8a1c289850936d956657f0ed99446_big_uint255, + 0x363a8f891de5974f06bae043bc6a26b4518d217af6590e9318e325fb215cda00_big_uint255, }}, {{ - 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_bigui255, - 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_bigui255, - 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_bigui255, + 0x122aaa7c330ddcb57180749e659600a4dfac5dda7b9b68ab0f8b2ee6de350ced_big_uint255, + 0xed203defca13ebdf6af805a9f5dbdfef90007df2ad32fb1c83165e837ab5e3f_big_uint255, + 0x11cce94bbc7a96e9708e99d3666c0a275329ac4bff42634a5f989ddcfc28fd68_big_uint255, }}, {{ - 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_bigui255, - 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_bigui255, - 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_bigui255, + 0x1705663587a03cb11485ac9d01fd10cb1138be1820d26a14e4ab7b1c0fdec8d2_big_uint255, + 0x12ad28a60485a2d911639051971f43dd15a0dfd2f8a0de756f0c847fed63ed7d_big_uint255, + 0xa9e61cc35eba9374eea117753aaaa93d6b29f550c2c54bce0a6078e05db9475_big_uint255, }}, {{ - 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_bigui255, - 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_bigui255, - 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_bigui255, + 0x72c3d62cf006a95dc8b2a53f878bb26fcaf3c28d709a91634f3a09f525054ad_big_uint255, + 0x1ce8f168b446f7e797b91677fc46a975d2caa63dc359132c7c9729f5be24a7c_big_uint255, + 0xe846a7211efda3d8115b5bf76aab7eac2b6099026fc7504fb81ac4a77c5560d_big_uint255, }}, {{ - 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_bigui255, - 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_bigui255, - 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_bigui255, + 0xabb8fd9d6fa3772022fa88800c12bdcbb1234473022cd141213d452255a0f55_big_uint255, + 0x1c5d9938bc35a4832e8375dc307dba7a116d2a566e406ab31e8b03a36ec807cf_big_uint255, + 0x35bea7ac6f40e0f50f08d325be9f051fd75ada8c03461f4d15b2c5e1a3d72431_big_uint255, }}, {{ - 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_bigui255, - 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_bigui255, - 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_bigui255, + 0x419357c205a7e1e028c0f49cbdeab85b82f4db78f1afb1b5568ec1bd2e48cb0_big_uint255, + 0x1933e424c788e7466a159f1fe015ac7210f47044d9df6872cdfa227ae4d2190a_big_uint255, + 0xde27ccdda95abb3d98db76d6f7f152a08d37ba81758beaf2eddbc58d13e560f_big_uint255, }}, {{ - 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_bigui255, - 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_bigui255, - 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_bigui255, + 0x35a312d5d6cbf00d55f097febaf9bd5eac5f2881ebf0afa377e2ba7cdcf2f51_big_uint255, + 0xce6f415449ca515e4da9177527c9242adcc988de5e1846d07cdd5284f39f9d0_big_uint255, + 0x38fd71543da5c4c0447dc22aa2c1e3744cb84eb1ff17040640b50f5ddf8c8e61_big_uint255, }}, {{ - 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_bigui255, - 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_bigui255, - 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_bigui255, + 0x158de859aad53c6a17de455ab067a09ad6cba22f4101d19e77d8a2975c0dc965_big_uint255, + 0x2c300588eeae8cbc3814bd1d7646f472ef6b44a60c710bf6100937504e532c8b_big_uint255, + 0xb198cf742a029409ac02397b91e2704fa94ecf147909fa8d71ece5087e2cfc3_big_uint255, }}, {{ - 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_bigui255, - 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_bigui255, - 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_bigui255, + 0x100b375c21d357d5679d8e6d9eb7bff8edd4575535bf651ba0b1bd83cfb54598_big_uint255, + 0x15a474d44590e2b23b8bb1e79f5613f1659e7ae2bce10def0ce1a101eb3e3ce5_big_uint255, + 0x2aa20e6642a989e1e6f9814c24f022991c23a7e40af505d4b931079025b7ed4d_big_uint255, }}, {{ - 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_bigui255, - 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_bigui255, - 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_bigui255, + 0x196597f2d65c5692706795bf46eb7be96b31647c23441213642ccceedc01ebc4_big_uint255, + 0x248291aa516daa0a6cd191c1c651a82f7d1b5f087dcb7cee91a27c488483e2bd_big_uint255, + 0x36c02b98ad2722b774aeb131b31bfd087c6a7f2d0a3faa40bd9899e5f270877f_big_uint255, }}, {{ - 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_bigui255, - 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_bigui255, - 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_bigui255, + 0x1240e06949a1ad92bd8ae90772b5d8505174182c87a23227aa74b7630dba4195_big_uint255, + 0x3b83f7e36f30939a78ec63cb2554aa0669a1bfc1b8b8714c6b8a3958beb6a163_big_uint255, + 0x1668b0582ce04f7f5b1e35e1b7cc3e05be23cc2c9e0be9436559193f2a8d102e_big_uint255, }}, {{ - 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_bigui255, - 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_bigui255, - 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_bigui255, + 0x26d6a708e9464c85e9c7605e87fb96036fd1fe87379ac43ad560885582e4026d_big_uint255, + 0x594fccf1863993b43ad0a13c5fc7a53f59f7d622e7b206d425907243a69e62d_big_uint255, + 0x78e4c588b6ddd0fe7ed53a9f25b6ac3c2eac1c63faecc7e916f4d4599051940_big_uint255, }}, {{ - 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_bigui255, - 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_bigui255, - 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_bigui255, + 0xf44ea3e14c3e4849ee7a525fe77170b8658a6753680e269c9fd1d12932af69d_big_uint255, + 0x2e8567bc9e8e369bdf7748d6c7f677837c601455d4651a2f102b94ff1f951379_big_uint255, + 0x37c35b056171982cc7d74e6081fcac2f764f1fe30ee985db306a22b097d51bae_big_uint255, }}, {{ - 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_bigui255, - 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_bigui255, - 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_bigui255, + 0x29dbcffd5b55d671c85ca42037ac5e64d2ef42d2704af47a20877e3a5e5f1d9d_big_uint255, + 0x201098422e054c1ddcc465411d002d2bc5a824e1c7f4f2ded9443c37bd04a520_big_uint255, + 0x7de32ed4c5143430ef43aef100f948ef859ab3793aa52640156f5e7d92cdc84_big_uint255, }}, {{ - 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_bigui255, - 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_bigui255, - 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_bigui255, + 0x34e95adcc0c5c34fd38ab9246a04cc1029f678ba53c0f6fd27f8805094e36199_big_uint255, + 0x1d5faf157126c599232982356ca0ea7b81d875c01d842b5cd1998a5c470fa623_big_uint255, + 0x160a80176bd281e3fa9b82e44063cc7bf86eb81397e51e41fe4745e27c57e1d2_big_uint255, }}, {{ - 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_bigui255, - 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_bigui255, - 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_bigui255, + 0x17ecc7f5deb148c542a22d02b098439724910a3bbd4903428c8fc680f31b2406_big_uint255, + 0x20a6aae17f822bc7035da3b8931896c82152346f2a43ab4e0029dbf0101b3d_big_uint255, + 0x9ea0ec10c0e77b9385a58ccd5ecc3c88b5bed58af72a6d87bb446e14fa7c8d6_big_uint255, }}, }}; }; diff --git a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp index c55a4d6400..855bd25a35 100644 --- a/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp +++ b/crypto3/libs/hash/include/nil/crypto3/hash/detail/poseidon/original_constants.hpp @@ -43,19 +43,19 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x109b7f411ba0e4c9b2b70caf5c36a7b194be7c11ad24378bfedb68592ba8118b_bigui254, - 0x16ed41e13bb9c0c66ae119424fddbcbc9314dc9fdbdeea55d6c64543dc4903e0_bigui254, - 0x2b90bba00fca0589f617e7dcbfe82e0df706ab640ceb247b791a93b74e36736d_bigui254 + 0x109b7f411ba0e4c9b2b70caf5c36a7b194be7c11ad24378bfedb68592ba8118b_big_uint254, + 0x16ed41e13bb9c0c66ae119424fddbcbc9314dc9fdbdeea55d6c64543dc4903e0_big_uint254, + 0x2b90bba00fca0589f617e7dcbfe82e0df706ab640ceb247b791a93b74e36736d_big_uint254 }}, {{ - 0x2969f27eed31a480b9c36c764379dbca2cc8fdd1415c3dded62940bcde0bd771_bigui254, - 0x2e2419f9ec02ec394c9871c832963dc1b89d743c8c7b964029b2311687b1fe23_bigui254, - 0x101071f0032379b697315876690f053d148d4e109f5fb065c8aacc55a0f89bfa_bigui254 + 0x2969f27eed31a480b9c36c764379dbca2cc8fdd1415c3dded62940bcde0bd771_big_uint254, + 0x2e2419f9ec02ec394c9871c832963dc1b89d743c8c7b964029b2311687b1fe23_big_uint254, + 0x101071f0032379b697315876690f053d148d4e109f5fb065c8aacc55a0f89bfa_big_uint254 }}, {{ - 0x143021ec686a3f330d5f9e654638065ce6cd79e28c5b3753326244ee65a1b1a7_bigui254, - 0x176cc029695ad02582a70eff08a6fd99d057e12e58e7d7b6b16cdfabc8ee2911_bigui254, - 0x19a3fc0a56702bf417ba7fee3802593fa644470307043f7773279cd71d25d5e0_bigui254 + 0x143021ec686a3f330d5f9e654638065ce6cd79e28c5b3753326244ee65a1b1a7_big_uint254, + 0x176cc029695ad02582a70eff08a6fd99d057e12e58e7d7b6b16cdfabc8ee2911_big_uint254, + 0x19a3fc0a56702bf417ba7fee3802593fa644470307043f7773279cd71d25d5e0_big_uint254 }} }}; #endif @@ -66,329 +66,329 @@ namespace nil { constexpr static const std::array, round_count> round_constants = {{ {{ - 0x0ee9a592ba9a9518d05986d656f40c2114c4993c11bb29938d21d47304cd8e6e_bigui254, - 0x00f1445235f2148c5986587169fc1bcd887b08d4d00868df5696fff40956e864_bigui254, - 0x08dff3487e8ac99e1f29a058d0fa80b930c728730b7ab36ce879f3890ecf73f5_bigui254 + 0x0ee9a592ba9a9518d05986d656f40c2114c4993c11bb29938d21d47304cd8e6e_big_uint254, + 0x00f1445235f2148c5986587169fc1bcd887b08d4d00868df5696fff40956e864_big_uint254, + 0x08dff3487e8ac99e1f29a058d0fa80b930c728730b7ab36ce879f3890ecf73f5_big_uint254 }}, {{ - 0x2f27be690fdaee46c3ce28f7532b13c856c35342c84bda6e20966310fadc01d0_bigui254, - 0x2b2ae1acf68b7b8d2416bebf3d4f6234b763fe04b8043ee48b8327bebca16cf2_bigui254, - 0x0319d062072bef7ecca5eac06f97d4d55952c175ab6b03eae64b44c7dbf11cfa_bigui254 + 0x2f27be690fdaee46c3ce28f7532b13c856c35342c84bda6e20966310fadc01d0_big_uint254, + 0x2b2ae1acf68b7b8d2416bebf3d4f6234b763fe04b8043ee48b8327bebca16cf2_big_uint254, + 0x0319d062072bef7ecca5eac06f97d4d55952c175ab6b03eae64b44c7dbf11cfa_big_uint254 }}, {{ - 0x28813dcaebaeaa828a376df87af4a63bc8b7bf27ad49c6298ef7b387bf28526d_bigui254, - 0x2727673b2ccbc903f181bf38e1c1d40d2033865200c352bc150928adddf9cb78_bigui254, - 0x234ec45ca27727c2e74abd2b2a1494cd6efbd43e340587d6b8fb9e31e65cc632_bigui254 + 0x28813dcaebaeaa828a376df87af4a63bc8b7bf27ad49c6298ef7b387bf28526d_big_uint254, + 0x2727673b2ccbc903f181bf38e1c1d40d2033865200c352bc150928adddf9cb78_big_uint254, + 0x234ec45ca27727c2e74abd2b2a1494cd6efbd43e340587d6b8fb9e31e65cc632_big_uint254 }}, {{ - 0x15b52534031ae18f7f862cb2cf7cf760ab10a8150a337b1ccd99ff6e8797d428_bigui254, - 0x0dc8fad6d9e4b35f5ed9a3d186b79ce38e0e8a8d1b58b132d701d4eecf68d1f6_bigui254, - 0x1bcd95ffc211fbca600f705fad3fb567ea4eb378f62e1fec97805518a47e4d9c_bigui254 + 0x15b52534031ae18f7f862cb2cf7cf760ab10a8150a337b1ccd99ff6e8797d428_big_uint254, + 0x0dc8fad6d9e4b35f5ed9a3d186b79ce38e0e8a8d1b58b132d701d4eecf68d1f6_big_uint254, + 0x1bcd95ffc211fbca600f705fad3fb567ea4eb378f62e1fec97805518a47e4d9c_big_uint254 }}, {{ - 0x10520b0ab721cadfe9eff81b016fc34dc76da36c2578937817cb978d069de559_bigui254, - 0x1f6d48149b8e7f7d9b257d8ed5fbbaf42932498075fed0ace88a9eb81f5627f6_bigui254, - 0x1d9655f652309014d29e00ef35a2089bfff8dc1c816f0dc9ca34bdb5460c8705_bigui254 + 0x10520b0ab721cadfe9eff81b016fc34dc76da36c2578937817cb978d069de559_big_uint254, + 0x1f6d48149b8e7f7d9b257d8ed5fbbaf42932498075fed0ace88a9eb81f5627f6_big_uint254, + 0x1d9655f652309014d29e00ef35a2089bfff8dc1c816f0dc9ca34bdb5460c8705_big_uint254 }}, {{ - 0x04df5a56ff95bcafb051f7b1cd43a99ba731ff67e47032058fe3d4185697cc7d_bigui254, - 0x0672d995f8fff640151b3d290cedaf148690a10a8c8424a7f6ec282b6e4be828_bigui254, - 0x099952b414884454b21200d7ffafdd5f0c9a9dcc06f2708e9fc1d8209b5c75b9_bigui254 + 0x04df5a56ff95bcafb051f7b1cd43a99ba731ff67e47032058fe3d4185697cc7d_big_uint254, + 0x0672d995f8fff640151b3d290cedaf148690a10a8c8424a7f6ec282b6e4be828_big_uint254, + 0x099952b414884454b21200d7ffafdd5f0c9a9dcc06f2708e9fc1d8209b5c75b9_big_uint254 }}, {{ - 0x052cba2255dfd00c7c483143ba8d469448e43586a9b4cd9183fd0e843a6b9fa6_bigui254, - 0x0b8badee690adb8eb0bd74712b7999af82de55707251ad7716077cb93c464ddc_bigui254, - 0x119b1590f13307af5a1ee651020c07c749c15d60683a8050b963d0a8e4b2bdd1_bigui254 + 0x052cba2255dfd00c7c483143ba8d469448e43586a9b4cd9183fd0e843a6b9fa6_big_uint254, + 0x0b8badee690adb8eb0bd74712b7999af82de55707251ad7716077cb93c464ddc_big_uint254, + 0x119b1590f13307af5a1ee651020c07c749c15d60683a8050b963d0a8e4b2bdd1_big_uint254 }}, {{ - 0x03150b7cd6d5d17b2529d36be0f67b832c4acfc884ef4ee5ce15be0bfb4a8d09_bigui254, - 0x2cc6182c5e14546e3cf1951f173912355374efb83d80898abe69cb317c9ea565_bigui254, - 0x005032551e6378c450cfe129a404b3764218cadedac14e2b92d2cd73111bf0f9_bigui254 + 0x03150b7cd6d5d17b2529d36be0f67b832c4acfc884ef4ee5ce15be0bfb4a8d09_big_uint254, + 0x2cc6182c5e14546e3cf1951f173912355374efb83d80898abe69cb317c9ea565_big_uint254, + 0x005032551e6378c450cfe129a404b3764218cadedac14e2b92d2cd73111bf0f9_big_uint254 }}, {{ - 0x233237e3289baa34bb147e972ebcb9516469c399fcc069fb88f9da2cc28276b5_bigui254, - 0x05c8f4f4ebd4a6e3c980d31674bfbe6323037f21b34ae5a4e80c2d4c24d60280_bigui254, - 0x0a7b1db13042d396ba05d818a319f25252bcf35ef3aeed91ee1f09b2590fc65b_bigui254 + 0x233237e3289baa34bb147e972ebcb9516469c399fcc069fb88f9da2cc28276b5_big_uint254, + 0x05c8f4f4ebd4a6e3c980d31674bfbe6323037f21b34ae5a4e80c2d4c24d60280_big_uint254, + 0x0a7b1db13042d396ba05d818a319f25252bcf35ef3aeed91ee1f09b2590fc65b_big_uint254 }}, {{ - 0x2a73b71f9b210cf5b14296572c9d32dbf156e2b086ff47dc5df542365a404ec0_bigui254, - 0x1ac9b0417abcc9a1935107e9ffc91dc3ec18f2c4dbe7f22976a760bb5c50c460_bigui254, - 0x12c0339ae08374823fabb076707ef479269f3e4d6cb104349015ee046dc93fc0_bigui254 + 0x2a73b71f9b210cf5b14296572c9d32dbf156e2b086ff47dc5df542365a404ec0_big_uint254, + 0x1ac9b0417abcc9a1935107e9ffc91dc3ec18f2c4dbe7f22976a760bb5c50c460_big_uint254, + 0x12c0339ae08374823fabb076707ef479269f3e4d6cb104349015ee046dc93fc0_big_uint254 }}, {{ - 0x0b7475b102a165ad7f5b18db4e1e704f52900aa3253baac68246682e56e9a28e_bigui254, - 0x037c2849e191ca3edb1c5e49f6e8b8917c843e379366f2ea32ab3aa88d7f8448_bigui254, - 0x05a6811f8556f014e92674661e217e9bd5206c5c93a07dc145fdb176a716346f_bigui254 + 0x0b7475b102a165ad7f5b18db4e1e704f52900aa3253baac68246682e56e9a28e_big_uint254, + 0x037c2849e191ca3edb1c5e49f6e8b8917c843e379366f2ea32ab3aa88d7f8448_big_uint254, + 0x05a6811f8556f014e92674661e217e9bd5206c5c93a07dc145fdb176a716346f_big_uint254 }}, {{ - 0x29a795e7d98028946e947b75d54e9f044076e87a7b2883b47b675ef5f38bd66e_bigui254, - 0x20439a0c84b322eb45a3857afc18f5826e8c7382c8a1585c507be199981fd22f_bigui254, - 0x2e0ba8d94d9ecf4a94ec2050c7371ff1bb50f27799a84b6d4a2a6f2a0982c887_bigui254 + 0x29a795e7d98028946e947b75d54e9f044076e87a7b2883b47b675ef5f38bd66e_big_uint254, + 0x20439a0c84b322eb45a3857afc18f5826e8c7382c8a1585c507be199981fd22f_big_uint254, + 0x2e0ba8d94d9ecf4a94ec2050c7371ff1bb50f27799a84b6d4a2a6f2a0982c887_big_uint254 }}, {{ - 0x143fd115ce08fb27ca38eb7cce822b4517822cd2109048d2e6d0ddcca17d71c8_bigui254, - 0x0c64cbecb1c734b857968dbbdcf813cdf8611659323dbcbfc84323623be9caf1_bigui254, - 0x028a305847c683f646fca925c163ff5ae74f348d62c2b670f1426cef9403da53_bigui254 + 0x143fd115ce08fb27ca38eb7cce822b4517822cd2109048d2e6d0ddcca17d71c8_big_uint254, + 0x0c64cbecb1c734b857968dbbdcf813cdf8611659323dbcbfc84323623be9caf1_big_uint254, + 0x028a305847c683f646fca925c163ff5ae74f348d62c2b670f1426cef9403da53_big_uint254 }}, {{ - 0x2e4ef510ff0b6fda5fa940ab4c4380f26a6bcb64d89427b824d6755b5db9e30c_bigui254, - 0x0081c95bc43384e663d79270c956ce3b8925b4f6d033b078b96384f50579400e_bigui254, - 0x2ed5f0c91cbd9749187e2fade687e05ee2491b349c039a0bba8a9f4023a0bb38_bigui254 + 0x2e4ef510ff0b6fda5fa940ab4c4380f26a6bcb64d89427b824d6755b5db9e30c_big_uint254, + 0x0081c95bc43384e663d79270c956ce3b8925b4f6d033b078b96384f50579400e_big_uint254, + 0x2ed5f0c91cbd9749187e2fade687e05ee2491b349c039a0bba8a9f4023a0bb38_big_uint254 }}, {{ - 0x30509991f88da3504bbf374ed5aae2f03448a22c76234c8c990f01f33a735206_bigui254, - 0x1c3f20fd55409a53221b7c4d49a356b9f0a1119fb2067b41a7529094424ec6ad_bigui254, - 0x10b4e7f3ab5df003049514459b6e18eec46bb2213e8e131e170887b47ddcb96c_bigui254 + 0x30509991f88da3504bbf374ed5aae2f03448a22c76234c8c990f01f33a735206_big_uint254, + 0x1c3f20fd55409a53221b7c4d49a356b9f0a1119fb2067b41a7529094424ec6ad_big_uint254, + 0x10b4e7f3ab5df003049514459b6e18eec46bb2213e8e131e170887b47ddcb96c_big_uint254 }}, {{ - 0x2a1982979c3ff7f43ddd543d891c2abddd80f804c077d775039aa3502e43adef_bigui254, - 0x1c74ee64f15e1db6feddbead56d6d55dba431ebc396c9af95cad0f1315bd5c91_bigui254, - 0x07533ec850ba7f98eab9303cace01b4b9e4f2e8b82708cfa9c2fe45a0ae146a0_bigui254 + 0x2a1982979c3ff7f43ddd543d891c2abddd80f804c077d775039aa3502e43adef_big_uint254, + 0x1c74ee64f15e1db6feddbead56d6d55dba431ebc396c9af95cad0f1315bd5c91_big_uint254, + 0x07533ec850ba7f98eab9303cace01b4b9e4f2e8b82708cfa9c2fe45a0ae146a0_big_uint254 }}, {{ - 0x21576b438e500449a151e4eeaf17b154285c68f42d42c1808a11abf3764c0750_bigui254, - 0x2f17c0559b8fe79608ad5ca193d62f10bce8384c815f0906743d6930836d4a9e_bigui254, - 0x2d477e3862d07708a79e8aae946170bc9775a4201318474ae665b0b1b7e2730e_bigui254 + 0x21576b438e500449a151e4eeaf17b154285c68f42d42c1808a11abf3764c0750_big_uint254, + 0x2f17c0559b8fe79608ad5ca193d62f10bce8384c815f0906743d6930836d4a9e_big_uint254, + 0x2d477e3862d07708a79e8aae946170bc9775a4201318474ae665b0b1b7e2730e_big_uint254 }}, {{ - 0x162f5243967064c390e095577984f291afba2266c38f5abcd89be0f5b2747eab_bigui254, - 0x2b4cb233ede9ba48264ecd2c8ae50d1ad7a8596a87f29f8a7777a70092393311_bigui254, - 0x2c8fbcb2dd8573dc1dbaf8f4622854776db2eece6d85c4cf4254e7c35e03b07a_bigui254 + 0x162f5243967064c390e095577984f291afba2266c38f5abcd89be0f5b2747eab_big_uint254, + 0x2b4cb233ede9ba48264ecd2c8ae50d1ad7a8596a87f29f8a7777a70092393311_big_uint254, + 0x2c8fbcb2dd8573dc1dbaf8f4622854776db2eece6d85c4cf4254e7c35e03b07a_big_uint254 }}, {{ - 0x1d6f347725e4816af2ff453f0cd56b199e1b61e9f601e9ade5e88db870949da9_bigui254, - 0x204b0c397f4ebe71ebc2d8b3df5b913df9e6ac02b68d31324cd49af5c4565529_bigui254, - 0x0c4cb9dc3c4fd8174f1149b3c63c3c2f9ecb827cd7dc25534ff8fb75bc79c502_bigui254 + 0x1d6f347725e4816af2ff453f0cd56b199e1b61e9f601e9ade5e88db870949da9_big_uint254, + 0x204b0c397f4ebe71ebc2d8b3df5b913df9e6ac02b68d31324cd49af5c4565529_big_uint254, + 0x0c4cb9dc3c4fd8174f1149b3c63c3c2f9ecb827cd7dc25534ff8fb75bc79c502_big_uint254 }}, {{ - 0x174ad61a1448c899a25416474f4930301e5c49475279e0639a616ddc45bc7b54_bigui254, - 0x1a96177bcf4d8d89f759df4ec2f3cde2eaaa28c177cc0fa13a9816d49a38d2ef_bigui254, - 0x066d04b24331d71cd0ef8054bc60c4ff05202c126a233c1a8242ace360b8a30a_bigui254 + 0x174ad61a1448c899a25416474f4930301e5c49475279e0639a616ddc45bc7b54_big_uint254, + 0x1a96177bcf4d8d89f759df4ec2f3cde2eaaa28c177cc0fa13a9816d49a38d2ef_big_uint254, + 0x066d04b24331d71cd0ef8054bc60c4ff05202c126a233c1a8242ace360b8a30a_big_uint254 }}, {{ - 0x2a4c4fc6ec0b0cf52195782871c6dd3b381cc65f72e02ad527037a62aa1bd804_bigui254, - 0x13ab2d136ccf37d447e9f2e14a7cedc95e727f8446f6d9d7e55afc01219fd649_bigui254, - 0x1121552fca26061619d24d843dc82769c1b04fcec26f55194c2e3e869acc6a9a_bigui254 + 0x2a4c4fc6ec0b0cf52195782871c6dd3b381cc65f72e02ad527037a62aa1bd804_big_uint254, + 0x13ab2d136ccf37d447e9f2e14a7cedc95e727f8446f6d9d7e55afc01219fd649_big_uint254, + 0x1121552fca26061619d24d843dc82769c1b04fcec26f55194c2e3e869acc6a9a_big_uint254 }}, {{ - 0x00ef653322b13d6c889bc81715c37d77a6cd267d595c4a8909a5546c7c97cff1_bigui254, - 0x0e25483e45a665208b261d8ba74051e6400c776d652595d9845aca35d8a397d3_bigui254, - 0x29f536dcb9dd7682245264659e15d88e395ac3d4dde92d8c46448db979eeba89_bigui254 + 0x00ef653322b13d6c889bc81715c37d77a6cd267d595c4a8909a5546c7c97cff1_big_uint254, + 0x0e25483e45a665208b261d8ba74051e6400c776d652595d9845aca35d8a397d3_big_uint254, + 0x29f536dcb9dd7682245264659e15d88e395ac3d4dde92d8c46448db979eeba89_big_uint254 }}, {{ - 0x2a56ef9f2c53febadfda33575dbdbd885a124e2780bbea170e456baace0fa5be_bigui254, - 0x1c8361c78eb5cf5decfb7a2d17b5c409f2ae2999a46762e8ee416240a8cb9af1_bigui254, - 0x151aff5f38b20a0fc0473089aaf0206b83e8e68a764507bfd3d0ab4be74319c5_bigui254 + 0x2a56ef9f2c53febadfda33575dbdbd885a124e2780bbea170e456baace0fa5be_big_uint254, + 0x1c8361c78eb5cf5decfb7a2d17b5c409f2ae2999a46762e8ee416240a8cb9af1_big_uint254, + 0x151aff5f38b20a0fc0473089aaf0206b83e8e68a764507bfd3d0ab4be74319c5_big_uint254 }}, {{ - 0x04c6187e41ed881dc1b239c88f7f9d43a9f52fc8c8b6cdd1e76e47615b51f100_bigui254, - 0x13b37bd80f4d27fb10d84331f6fb6d534b81c61ed15776449e801b7ddc9c2967_bigui254, - 0x01a5c536273c2d9df578bfbd32c17b7a2ce3664c2a52032c9321ceb1c4e8a8e4_bigui254 + 0x04c6187e41ed881dc1b239c88f7f9d43a9f52fc8c8b6cdd1e76e47615b51f100_big_uint254, + 0x13b37bd80f4d27fb10d84331f6fb6d534b81c61ed15776449e801b7ddc9c2967_big_uint254, + 0x01a5c536273c2d9df578bfbd32c17b7a2ce3664c2a52032c9321ceb1c4e8a8e4_big_uint254 }}, {{ - 0x2ab3561834ca73835ad05f5d7acb950b4a9a2c666b9726da832239065b7c3b02_bigui254, - 0x1d4d8ec291e720db200fe6d686c0d613acaf6af4e95d3bf69f7ed516a597b646_bigui254, - 0x041294d2cc484d228f5784fe7919fd2bb925351240a04b711514c9c80b65af1d_bigui254 + 0x2ab3561834ca73835ad05f5d7acb950b4a9a2c666b9726da832239065b7c3b02_big_uint254, + 0x1d4d8ec291e720db200fe6d686c0d613acaf6af4e95d3bf69f7ed516a597b646_big_uint254, + 0x041294d2cc484d228f5784fe7919fd2bb925351240a04b711514c9c80b65af1d_big_uint254 }}, {{ - 0x154ac98e01708c611c4fa715991f004898f57939d126e392042971dd90e81fc6_bigui254, - 0x0b339d8acca7d4f83eedd84093aef51050b3684c88f8b0b04524563bc6ea4da4_bigui254, - 0x0955e49e6610c94254a4f84cfbab344598f0e71eaff4a7dd81ed95b50839c82e_bigui254 + 0x154ac98e01708c611c4fa715991f004898f57939d126e392042971dd90e81fc6_big_uint254, + 0x0b339d8acca7d4f83eedd84093aef51050b3684c88f8b0b04524563bc6ea4da4_big_uint254, + 0x0955e49e6610c94254a4f84cfbab344598f0e71eaff4a7dd81ed95b50839c82e_big_uint254 }}, {{ - 0x06746a6156eba54426b9e22206f15abca9a6f41e6f535c6f3525401ea0654626_bigui254, - 0x0f18f5a0ecd1423c496f3820c549c27838e5790e2bd0a196ac917c7ff32077fb_bigui254, - 0x04f6eeca1751f7308ac59eff5beb261e4bb563583ede7bc92a738223d6f76e13_bigui254 + 0x06746a6156eba54426b9e22206f15abca9a6f41e6f535c6f3525401ea0654626_big_uint254, + 0x0f18f5a0ecd1423c496f3820c549c27838e5790e2bd0a196ac917c7ff32077fb_big_uint254, + 0x04f6eeca1751f7308ac59eff5beb261e4bb563583ede7bc92a738223d6f76e13_big_uint254 }}, {{ - 0x2b56973364c4c4f5c1a3ec4da3cdce038811eb116fb3e45bc1768d26fc0b3758_bigui254, - 0x123769dd49d5b054dcd76b89804b1bcb8e1392b385716a5d83feb65d437f29ef_bigui254, - 0x2147b424fc48c80a88ee52b91169aacea989f6446471150994257b2fb01c63e9_bigui254 + 0x2b56973364c4c4f5c1a3ec4da3cdce038811eb116fb3e45bc1768d26fc0b3758_big_uint254, + 0x123769dd49d5b054dcd76b89804b1bcb8e1392b385716a5d83feb65d437f29ef_big_uint254, + 0x2147b424fc48c80a88ee52b91169aacea989f6446471150994257b2fb01c63e9_big_uint254 }}, {{ - 0x0fdc1f58548b85701a6c5505ea332a29647e6f34ad4243c2ea54ad897cebe54d_bigui254, - 0x12373a8251fea004df68abcf0f7786d4bceff28c5dbbe0c3944f685cc0a0b1f2_bigui254, - 0x21e4f4ea5f35f85bad7ea52ff742c9e8a642756b6af44203dd8a1f35c1a90035_bigui254 + 0x0fdc1f58548b85701a6c5505ea332a29647e6f34ad4243c2ea54ad897cebe54d_big_uint254, + 0x12373a8251fea004df68abcf0f7786d4bceff28c5dbbe0c3944f685cc0a0b1f2_big_uint254, + 0x21e4f4ea5f35f85bad7ea52ff742c9e8a642756b6af44203dd8a1f35c1a90035_big_uint254 }}, {{ - 0x16243916d69d2ca3dfb4722224d4c462b57366492f45e90d8a81934f1bc3b147_bigui254, - 0x1efbe46dd7a578b4f66f9adbc88b4378abc21566e1a0453ca13a4159cac04ac2_bigui254, - 0x07ea5e8537cf5dd08886020e23a7f387d468d5525be66f853b672cc96a88969a_bigui254 + 0x16243916d69d2ca3dfb4722224d4c462b57366492f45e90d8a81934f1bc3b147_big_uint254, + 0x1efbe46dd7a578b4f66f9adbc88b4378abc21566e1a0453ca13a4159cac04ac2_big_uint254, + 0x07ea5e8537cf5dd08886020e23a7f387d468d5525be66f853b672cc96a88969a_big_uint254 }}, {{ - 0x05a8c4f9968b8aa3b7b478a30f9a5b63650f19a75e7ce11ca9fe16c0b76c00bc_bigui254, - 0x20f057712cc21654fbfe59bd345e8dac3f7818c701b9c7882d9d57b72a32e83f_bigui254, - 0x04a12ededa9dfd689672f8c67fee31636dcd8e88d01d49019bd90b33eb33db69_bigui254 + 0x05a8c4f9968b8aa3b7b478a30f9a5b63650f19a75e7ce11ca9fe16c0b76c00bc_big_uint254, + 0x20f057712cc21654fbfe59bd345e8dac3f7818c701b9c7882d9d57b72a32e83f_big_uint254, + 0x04a12ededa9dfd689672f8c67fee31636dcd8e88d01d49019bd90b33eb33db69_big_uint254 }}, {{ - 0x27e88d8c15f37dcee44f1e5425a51decbd136ce5091a6767e49ec9544ccd101a_bigui254, - 0x2feed17b84285ed9b8a5c8c5e95a41f66e096619a7703223176c41ee433de4d1_bigui254, - 0x1ed7cc76edf45c7c404241420f729cf394e5942911312a0d6972b8bd53aff2b8_bigui254 + 0x27e88d8c15f37dcee44f1e5425a51decbd136ce5091a6767e49ec9544ccd101a_big_uint254, + 0x2feed17b84285ed9b8a5c8c5e95a41f66e096619a7703223176c41ee433de4d1_big_uint254, + 0x1ed7cc76edf45c7c404241420f729cf394e5942911312a0d6972b8bd53aff2b8_big_uint254 }}, {{ - 0x15742e99b9bfa323157ff8c586f5660eac6783476144cdcadf2874be45466b1a_bigui254, - 0x1aac285387f65e82c895fc6887ddf40577107454c6ec0317284f033f27d0c785_bigui254, - 0x25851c3c845d4790f9ddadbdb6057357832e2e7a49775f71ec75a96554d67c77_bigui254 + 0x15742e99b9bfa323157ff8c586f5660eac6783476144cdcadf2874be45466b1a_big_uint254, + 0x1aac285387f65e82c895fc6887ddf40577107454c6ec0317284f033f27d0c785_big_uint254, + 0x25851c3c845d4790f9ddadbdb6057357832e2e7a49775f71ec75a96554d67c77_big_uint254 }}, {{ - 0x15a5821565cc2ec2ce78457db197edf353b7ebba2c5523370ddccc3d9f146a67_bigui254, - 0x2411d57a4813b9980efa7e31a1db5966dcf64f36044277502f15485f28c71727_bigui254, - 0x002e6f8d6520cd4713e335b8c0b6d2e647e9a98e12f4cd2558828b5ef6cb4c9b_bigui254 + 0x15a5821565cc2ec2ce78457db197edf353b7ebba2c5523370ddccc3d9f146a67_big_uint254, + 0x2411d57a4813b9980efa7e31a1db5966dcf64f36044277502f15485f28c71727_big_uint254, + 0x002e6f8d6520cd4713e335b8c0b6d2e647e9a98e12f4cd2558828b5ef6cb4c9b_big_uint254 }}, {{ - 0x2ff7bc8f4380cde997da00b616b0fcd1af8f0e91e2fe1ed7398834609e0315d2_bigui254, - 0x00b9831b948525595ee02724471bcd182e9521f6b7bb68f1e93be4febb0d3cbe_bigui254, - 0x0a2f53768b8ebf6a86913b0e57c04e011ca408648a4743a87d77adbf0c9c3512_bigui254 + 0x2ff7bc8f4380cde997da00b616b0fcd1af8f0e91e2fe1ed7398834609e0315d2_big_uint254, + 0x00b9831b948525595ee02724471bcd182e9521f6b7bb68f1e93be4febb0d3cbe_big_uint254, + 0x0a2f53768b8ebf6a86913b0e57c04e011ca408648a4743a87d77adbf0c9c3512_big_uint254 }}, {{ - 0x00248156142fd0373a479f91ff239e960f599ff7e94be69b7f2a290305e1198d_bigui254, - 0x171d5620b87bfb1328cf8c02ab3f0c9a397196aa6a542c2350eb512a2b2bcda9_bigui254, - 0x170a4f55536f7dc970087c7c10d6fad760c952172dd54dd99d1045e4ec34a808_bigui254 + 0x00248156142fd0373a479f91ff239e960f599ff7e94be69b7f2a290305e1198d_big_uint254, + 0x171d5620b87bfb1328cf8c02ab3f0c9a397196aa6a542c2350eb512a2b2bcda9_big_uint254, + 0x170a4f55536f7dc970087c7c10d6fad760c952172dd54dd99d1045e4ec34a808_big_uint254 }}, {{ - 0x29aba33f799fe66c2ef3134aea04336ecc37e38c1cd211ba482eca17e2dbfae1_bigui254, - 0x1e9bc179a4fdd758fdd1bb1945088d47e70d114a03f6a0e8b5ba650369e64973_bigui254, - 0x1dd269799b660fad58f7f4892dfb0b5afeaad869a9c4b44f9c9e1c43bdaf8f09_bigui254 + 0x29aba33f799fe66c2ef3134aea04336ecc37e38c1cd211ba482eca17e2dbfae1_big_uint254, + 0x1e9bc179a4fdd758fdd1bb1945088d47e70d114a03f6a0e8b5ba650369e64973_big_uint254, + 0x1dd269799b660fad58f7f4892dfb0b5afeaad869a9c4b44f9c9e1c43bdaf8f09_big_uint254 }}, {{ - 0x22cdbc8b70117ad1401181d02e15459e7ccd426fe869c7c95d1dd2cb0f24af38_bigui254, - 0x0ef042e454771c533a9f57a55c503fcefd3150f52ed94a7cd5ba93b9c7dacefd_bigui254, - 0x11609e06ad6c8fe2f287f3036037e8851318e8b08a0359a03b304ffca62e8284_bigui254 + 0x22cdbc8b70117ad1401181d02e15459e7ccd426fe869c7c95d1dd2cb0f24af38_big_uint254, + 0x0ef042e454771c533a9f57a55c503fcefd3150f52ed94a7cd5ba93b9c7dacefd_big_uint254, + 0x11609e06ad6c8fe2f287f3036037e8851318e8b08a0359a03b304ffca62e8284_big_uint254 }}, {{ - 0x1166d9e554616dba9e753eea427c17b7fecd58c076dfe42708b08f5b783aa9af_bigui254, - 0x2de52989431a859593413026354413db177fbf4cd2ac0b56f855a888357ee466_bigui254, - 0x3006eb4ffc7a85819a6da492f3a8ac1df51aee5b17b8e89d74bf01cf5f71e9ad_bigui254 + 0x1166d9e554616dba9e753eea427c17b7fecd58c076dfe42708b08f5b783aa9af_big_uint254, + 0x2de52989431a859593413026354413db177fbf4cd2ac0b56f855a888357ee466_big_uint254, + 0x3006eb4ffc7a85819a6da492f3a8ac1df51aee5b17b8e89d74bf01cf5f71e9ad_big_uint254 }}, {{ - 0x2af41fbb61ba8a80fdcf6fff9e3f6f422993fe8f0a4639f962344c8225145086_bigui254, - 0x119e684de476155fe5a6b41a8ebc85db8718ab27889e85e781b214bace4827c3_bigui254, - 0x1835b786e2e8925e188bea59ae363537b51248c23828f047cff784b97b3fd800_bigui254 + 0x2af41fbb61ba8a80fdcf6fff9e3f6f422993fe8f0a4639f962344c8225145086_big_uint254, + 0x119e684de476155fe5a6b41a8ebc85db8718ab27889e85e781b214bace4827c3_big_uint254, + 0x1835b786e2e8925e188bea59ae363537b51248c23828f047cff784b97b3fd800_big_uint254 }}, {{ - 0x28201a34c594dfa34d794996c6433a20d152bac2a7905c926c40e285ab32eeb6_bigui254, - 0x083efd7a27d1751094e80fefaf78b000864c82eb571187724a761f88c22cc4e7_bigui254, - 0x0b6f88a3577199526158e61ceea27be811c16df7774dd8519e079564f61fd13b_bigui254 + 0x28201a34c594dfa34d794996c6433a20d152bac2a7905c926c40e285ab32eeb6_big_uint254, + 0x083efd7a27d1751094e80fefaf78b000864c82eb571187724a761f88c22cc4e7_big_uint254, + 0x0b6f88a3577199526158e61ceea27be811c16df7774dd8519e079564f61fd13b_big_uint254 }}, {{ - 0x0ec868e6d15e51d9644f66e1d6471a94589511ca00d29e1014390e6ee4254f5b_bigui254, - 0x2af33e3f866771271ac0c9b3ed2e1142ecd3e74b939cd40d00d937ab84c98591_bigui254, - 0x0b520211f904b5e7d09b5d961c6ace7734568c547dd6858b364ce5e47951f178_bigui254 + 0x0ec868e6d15e51d9644f66e1d6471a94589511ca00d29e1014390e6ee4254f5b_big_uint254, + 0x2af33e3f866771271ac0c9b3ed2e1142ecd3e74b939cd40d00d937ab84c98591_big_uint254, + 0x0b520211f904b5e7d09b5d961c6ace7734568c547dd6858b364ce5e47951f178_big_uint254 }}, {{ - 0x0b2d722d0919a1aad8db58f10062a92ea0c56ac4270e822cca228620188a1d40_bigui254, - 0x1f790d4d7f8cf094d980ceb37c2453e957b54a9991ca38bbe0061d1ed6e562d4_bigui254, - 0x0171eb95dfbf7d1eaea97cd385f780150885c16235a2a6a8da92ceb01e504233_bigui254 + 0x0b2d722d0919a1aad8db58f10062a92ea0c56ac4270e822cca228620188a1d40_big_uint254, + 0x1f790d4d7f8cf094d980ceb37c2453e957b54a9991ca38bbe0061d1ed6e562d4_big_uint254, + 0x0171eb95dfbf7d1eaea97cd385f780150885c16235a2a6a8da92ceb01e504233_big_uint254 }}, {{ - 0x0c2d0e3b5fd57549329bf6885da66b9b790b40defd2c8650762305381b168873_bigui254, - 0x1162fb28689c27154e5a8228b4e72b377cbcafa589e283c35d3803054407a18d_bigui254, - 0x2f1459b65dee441b64ad386a91e8310f282c5a92a89e19921623ef8249711bc0_bigui254 + 0x0c2d0e3b5fd57549329bf6885da66b9b790b40defd2c8650762305381b168873_big_uint254, + 0x1162fb28689c27154e5a8228b4e72b377cbcafa589e283c35d3803054407a18d_big_uint254, + 0x2f1459b65dee441b64ad386a91e8310f282c5a92a89e19921623ef8249711bc0_big_uint254 }}, {{ - 0x1e6ff3216b688c3d996d74367d5cd4c1bc489d46754eb712c243f70d1b53cfbb_bigui254, - 0x01ca8be73832b8d0681487d27d157802d741a6f36cdc2a0576881f9326478875_bigui254, - 0x1f7735706ffe9fc586f976d5bdf223dc680286080b10cea00b9b5de315f9650e_bigui254 + 0x1e6ff3216b688c3d996d74367d5cd4c1bc489d46754eb712c243f70d1b53cfbb_big_uint254, + 0x01ca8be73832b8d0681487d27d157802d741a6f36cdc2a0576881f9326478875_big_uint254, + 0x1f7735706ffe9fc586f976d5bdf223dc680286080b10cea00b9b5de315f9650e_big_uint254 }}, {{ - 0x2522b60f4ea3307640a0c2dce041fba921ac10a3d5f096ef4745ca838285f019_bigui254, - 0x23f0bee001b1029d5255075ddc957f833418cad4f52b6c3f8ce16c235572575b_bigui254, - 0x2bc1ae8b8ddbb81fcaac2d44555ed5685d142633e9df905f66d9401093082d59_bigui254 + 0x2522b60f4ea3307640a0c2dce041fba921ac10a3d5f096ef4745ca838285f019_big_uint254, + 0x23f0bee001b1029d5255075ddc957f833418cad4f52b6c3f8ce16c235572575b_big_uint254, + 0x2bc1ae8b8ddbb81fcaac2d44555ed5685d142633e9df905f66d9401093082d59_big_uint254 }}, {{ - 0x0f9406b8296564a37304507b8dba3ed162371273a07b1fc98011fcd6ad72205f_bigui254, - 0x2360a8eb0cc7defa67b72998de90714e17e75b174a52ee4acb126c8cd995f0a8_bigui254, - 0x15871a5cddead976804c803cbaef255eb4815a5e96df8b006dcbbc2767f88948_bigui254 + 0x0f9406b8296564a37304507b8dba3ed162371273a07b1fc98011fcd6ad72205f_big_uint254, + 0x2360a8eb0cc7defa67b72998de90714e17e75b174a52ee4acb126c8cd995f0a8_big_uint254, + 0x15871a5cddead976804c803cbaef255eb4815a5e96df8b006dcbbc2767f88948_big_uint254 }}, {{ - 0x193a56766998ee9e0a8652dd2f3b1da0362f4f54f72379544f957ccdeefb420f_bigui254, - 0x2a394a43934f86982f9be56ff4fab1703b2e63c8ad334834e4309805e777ae0f_bigui254, - 0x1859954cfeb8695f3e8b635dcb345192892cd11223443ba7b4166e8876c0d142_bigui254 + 0x193a56766998ee9e0a8652dd2f3b1da0362f4f54f72379544f957ccdeefb420f_big_uint254, + 0x2a394a43934f86982f9be56ff4fab1703b2e63c8ad334834e4309805e777ae0f_big_uint254, + 0x1859954cfeb8695f3e8b635dcb345192892cd11223443ba7b4166e8876c0d142_big_uint254 }}, {{ - 0x04e1181763050e58013444dbcb99f1902b11bc25d90bbdca408d3819f4fed32b_bigui254, - 0x0fdb253dee83869d40c335ea64de8c5bb10eb82db08b5e8b1f5e5552bfd05f23_bigui254, - 0x058cbe8a9a5027bdaa4efb623adead6275f08686f1c08984a9d7c5bae9b4f1c0_bigui254 + 0x04e1181763050e58013444dbcb99f1902b11bc25d90bbdca408d3819f4fed32b_big_uint254, + 0x0fdb253dee83869d40c335ea64de8c5bb10eb82db08b5e8b1f5e5552bfd05f23_big_uint254, + 0x058cbe8a9a5027bdaa4efb623adead6275f08686f1c08984a9d7c5bae9b4f1c0_big_uint254 }}, {{ - 0x1382edce9971e186497eadb1aeb1f52b23b4b83bef023ab0d15228b4cceca59a_bigui254, - 0x03464990f045c6ee0819ca51fd11b0be7f61b8eb99f14b77e1e6634601d9e8b5_bigui254, - 0x23f7bfc8720dc296fff33b41f98ff83c6fcab4605db2eb5aaa5bc137aeb70a58_bigui254 + 0x1382edce9971e186497eadb1aeb1f52b23b4b83bef023ab0d15228b4cceca59a_big_uint254, + 0x03464990f045c6ee0819ca51fd11b0be7f61b8eb99f14b77e1e6634601d9e8b5_big_uint254, + 0x23f7bfc8720dc296fff33b41f98ff83c6fcab4605db2eb5aaa5bc137aeb70a58_big_uint254 }}, {{ - 0x0a59a158e3eec2117e6e94e7f0e9decf18c3ffd5e1531a9219636158bbaf62f2_bigui254, - 0x06ec54c80381c052b58bf23b312ffd3ce2c4eba065420af8f4c23ed0075fd07b_bigui254, - 0x118872dc832e0eb5476b56648e867ec8b09340f7a7bcb1b4962f0ff9ed1f9d01_bigui254 + 0x0a59a158e3eec2117e6e94e7f0e9decf18c3ffd5e1531a9219636158bbaf62f2_big_uint254, + 0x06ec54c80381c052b58bf23b312ffd3ce2c4eba065420af8f4c23ed0075fd07b_big_uint254, + 0x118872dc832e0eb5476b56648e867ec8b09340f7a7bcb1b4962f0ff9ed1f9d01_big_uint254 }}, {{ - 0x13d69fa127d834165ad5c7cba7ad59ed52e0b0f0e42d7fea95e1906b520921b1_bigui254, - 0x169a177f63ea681270b1c6877a73d21bde143942fb71dc55fd8a49f19f10c77b_bigui254, - 0x04ef51591c6ead97ef42f287adce40d93abeb032b922f66ffb7e9a5a7450544d_bigui254 + 0x13d69fa127d834165ad5c7cba7ad59ed52e0b0f0e42d7fea95e1906b520921b1_big_uint254, + 0x169a177f63ea681270b1c6877a73d21bde143942fb71dc55fd8a49f19f10c77b_big_uint254, + 0x04ef51591c6ead97ef42f287adce40d93abeb032b922f66ffb7e9a5a7450544d_big_uint254 }}, {{ - 0x256e175a1dc079390ecd7ca703fb2e3b19ec61805d4f03ced5f45ee6dd0f69ec_bigui254, - 0x30102d28636abd5fe5f2af412ff6004f75cc360d3205dd2da002813d3e2ceeb2_bigui254, - 0x10998e42dfcd3bbf1c0714bc73eb1bf40443a3fa99bef4a31fd31be182fcc792_bigui254 + 0x256e175a1dc079390ecd7ca703fb2e3b19ec61805d4f03ced5f45ee6dd0f69ec_big_uint254, + 0x30102d28636abd5fe5f2af412ff6004f75cc360d3205dd2da002813d3e2ceeb2_big_uint254, + 0x10998e42dfcd3bbf1c0714bc73eb1bf40443a3fa99bef4a31fd31be182fcc792_big_uint254 }}, {{ - 0x193edd8e9fcf3d7625fa7d24b598a1d89f3362eaf4d582efecad76f879e36860_bigui254, - 0x18168afd34f2d915d0368ce80b7b3347d1c7a561ce611425f2664d7aa51f0b5d_bigui254, - 0x29383c01ebd3b6ab0c017656ebe658b6a328ec77bc33626e29e2e95b33ea6111_bigui254 + 0x193edd8e9fcf3d7625fa7d24b598a1d89f3362eaf4d582efecad76f879e36860_big_uint254, + 0x18168afd34f2d915d0368ce80b7b3347d1c7a561ce611425f2664d7aa51f0b5d_big_uint254, + 0x29383c01ebd3b6ab0c017656ebe658b6a328ec77bc33626e29e2e95b33ea6111_big_uint254 }}, {{ - 0x10646d2f2603de39a1f4ae5e7771a64a702db6e86fb76ab600bf573f9010c711_bigui254, - 0x0beb5e07d1b27145f575f1395a55bf132f90c25b40da7b3864d0242dcb1117fb_bigui254, - 0x16d685252078c133dc0d3ecad62b5c8830f95bb2e54b59abdffbf018d96fa336_bigui254 + 0x10646d2f2603de39a1f4ae5e7771a64a702db6e86fb76ab600bf573f9010c711_big_uint254, + 0x0beb5e07d1b27145f575f1395a55bf132f90c25b40da7b3864d0242dcb1117fb_big_uint254, + 0x16d685252078c133dc0d3ecad62b5c8830f95bb2e54b59abdffbf018d96fa336_big_uint254 }}, {{ - 0x0a6abd1d833938f33c74154e0404b4b40a555bbbec21ddfafd672dd62047f01a_bigui254, - 0x1a679f5d36eb7b5c8ea12a4c2dedc8feb12dffeec450317270a6f19b34cf1860_bigui254, - 0x0980fb233bd456c23974d50e0ebfde4726a423eada4e8f6ffbc7592e3f1b93d6_bigui254 + 0x0a6abd1d833938f33c74154e0404b4b40a555bbbec21ddfafd672dd62047f01a_big_uint254, + 0x1a679f5d36eb7b5c8ea12a4c2dedc8feb12dffeec450317270a6f19b34cf1860_big_uint254, + 0x0980fb233bd456c23974d50e0ebfde4726a423eada4e8f6ffbc7592e3f1b93d6_big_uint254 }}, {{ - 0x161b42232e61b84cbf1810af93a38fc0cece3d5628c9282003ebacb5c312c72b_bigui254, - 0x0ada10a90c7f0520950f7d47a60d5e6a493f09787f1564e5d09203db47de1a0b_bigui254, - 0x1a730d372310ba82320345a29ac4238ed3f07a8a2b4e121bb50ddb9af407f451_bigui254 + 0x161b42232e61b84cbf1810af93a38fc0cece3d5628c9282003ebacb5c312c72b_big_uint254, + 0x0ada10a90c7f0520950f7d47a60d5e6a493f09787f1564e5d09203db47de1a0b_big_uint254, + 0x1a730d372310ba82320345a29ac4238ed3f07a8a2b4e121bb50ddb9af407f451_big_uint254 }}, {{ - 0x2c8120f268ef054f817064c369dda7ea908377feaba5c4dffbda10ef58e8c556_bigui254, - 0x1c7c8824f758753fa57c00789c684217b930e95313bcb73e6e7b8649a4968f70_bigui254, - 0x2cd9ed31f5f8691c8e39e4077a74faa0f400ad8b491eb3f7b47b27fa3fd1cf77_bigui254 + 0x2c8120f268ef054f817064c369dda7ea908377feaba5c4dffbda10ef58e8c556_big_uint254, + 0x1c7c8824f758753fa57c00789c684217b930e95313bcb73e6e7b8649a4968f70_big_uint254, + 0x2cd9ed31f5f8691c8e39e4077a74faa0f400ad8b491eb3f7b47b27fa3fd1cf77_big_uint254 }}, {{ - 0x23ff4f9d46813457cf60d92f57618399a5e022ac321ca550854ae23918a22eea_bigui254, - 0x09945a5d147a4f66ceece6405dddd9d0af5a2c5103529407dff1ea58f180426d_bigui254, - 0x188d9c528025d4c2b67660c6b771b90f7c7da6eaa29d3f268a6dd223ec6fc630_bigui254 + 0x23ff4f9d46813457cf60d92f57618399a5e022ac321ca550854ae23918a22eea_big_uint254, + 0x09945a5d147a4f66ceece6405dddd9d0af5a2c5103529407dff1ea58f180426d_big_uint254, + 0x188d9c528025d4c2b67660c6b771b90f7c7da6eaa29d3f268a6dd223ec6fc630_big_uint254 }}, {{ - 0x3050e37996596b7f81f68311431d8734dba7d926d3633595e0c0d8ddf4f0f47f_bigui254, - 0x15af1169396830a91600ca8102c35c426ceae5461e3f95d89d829518d30afd78_bigui254, - 0x1da6d09885432ea9a06d9f37f873d985dae933e351466b2904284da3320d8acc_bigui254 + 0x3050e37996596b7f81f68311431d8734dba7d926d3633595e0c0d8ddf4f0f47f_big_uint254, + 0x15af1169396830a91600ca8102c35c426ceae5461e3f95d89d829518d30afd78_big_uint254, + 0x1da6d09885432ea9a06d9f37f873d985dae933e351466b2904284da3320d8acc_big_uint254 }}, {{ - 0x2796ea90d269af29f5f8acf33921124e4e4fad3dbe658945e546ee411ddaa9cb_bigui254, - 0x202d7dd1da0f6b4b0325c8b3307742f01e15612ec8e9304a7cb0319e01d32d60_bigui254, - 0x096d6790d05bb759156a952ba263d672a2d7f9c788f4c831a29dace4c0f8be5f_bigui254 + 0x2796ea90d269af29f5f8acf33921124e4e4fad3dbe658945e546ee411ddaa9cb_big_uint254, + 0x202d7dd1da0f6b4b0325c8b3307742f01e15612ec8e9304a7cb0319e01d32d60_big_uint254, + 0x096d6790d05bb759156a952ba263d672a2d7f9c788f4c831a29dace4c0f8be5f_big_uint254 }}, {{ - 0x054efa1f65b0fce283808965275d877b438da23ce5b13e1963798cb1447d25a4_bigui254, - 0x1b162f83d917e93edb3308c29802deb9d8aa690113b2e14864ccf6e18e4165f1_bigui254, - 0x21e5241e12564dd6fd9f1cdd2a0de39eedfefc1466cc568ec5ceb745a0506edc_bigui254 + 0x054efa1f65b0fce283808965275d877b438da23ce5b13e1963798cb1447d25a4_big_uint254, + 0x1b162f83d917e93edb3308c29802deb9d8aa690113b2e14864ccf6e18e4165f1_big_uint254, + 0x21e5241e12564dd6fd9f1cdd2a0de39eedfefc1466cc568ec5ceb745a0506edc_big_uint254 }}, {{ - 0x1cfb5662e8cf5ac9226a80ee17b36abecb73ab5f87e161927b4349e10e4bdf08_bigui254, - 0x0f21177e302a771bbae6d8d1ecb373b62c99af346220ac0129c53f666eb24100_bigui254, - 0x1671522374606992affb0dd7f71b12bec4236aede6290546bcef7e1f515c2320_bigui254 + 0x1cfb5662e8cf5ac9226a80ee17b36abecb73ab5f87e161927b4349e10e4bdf08_big_uint254, + 0x0f21177e302a771bbae6d8d1ecb373b62c99af346220ac0129c53f666eb24100_big_uint254, + 0x1671522374606992affb0dd7f71b12bec4236aede6290546bcef7e1f515c2320_big_uint254 }}, {{ - 0x0fa3ec5b9488259c2eb4cf24501bfad9be2ec9e42c5cc8ccd419d2a692cad870_bigui254, - 0x193c0e04e0bd298357cb266c1506080ed36edce85c648cc085e8c57b1ab54bba_bigui254, - 0x102adf8ef74735a27e9128306dcbc3c99f6f7291cd406578ce14ea2adaba68f8_bigui254 + 0x0fa3ec5b9488259c2eb4cf24501bfad9be2ec9e42c5cc8ccd419d2a692cad870_big_uint254, + 0x193c0e04e0bd298357cb266c1506080ed36edce85c648cc085e8c57b1ab54bba_big_uint254, + 0x102adf8ef74735a27e9128306dcbc3c99f6f7291cd406578ce14ea2adaba68f8_big_uint254 }}, {{ - 0x0fe0af7858e49859e2a54d6f1ad945b1316aa24bfbdd23ae40a6d0cb70c3eab1_bigui254, - 0x216f6717bbc7dedb08536a2220843f4e2da5f1daa9ebdefde8a5ea7344798d22_bigui254, - 0x1da55cc900f0d21f4a3e694391918a1b3c23b2ac773c6b3ef88e2e4228325161_bigui254 + 0x0fe0af7858e49859e2a54d6f1ad945b1316aa24bfbdd23ae40a6d0cb70c3eab1_big_uint254, + 0x216f6717bbc7dedb08536a2220843f4e2da5f1daa9ebdefde8a5ea7344798d22_big_uint254, + 0x1da55cc900f0d21f4a3e694391918a1b3c23b2ac773c6b3ef88e2e4228325161_big_uint254 }} }}; #endif @@ -405,519 +405,519 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x251e7fdf99591080080b0af133b9e4369f22e57ace3cd7f64fc6fdbcf38d7da1_bigui254, - 0x25fb50b65acf4fb047cbd3b1c17d97c7fe26ea9ca238d6e348550486e91c7765_bigui254, - 0x293d617d7da72102355f39ebf62f91b06deb5325f367a4556ea1e31ed5767833_bigui254, - 0x104d0295ab00c85e960111ac25da474366599e575a9b7edf6145f14ba6d3c1c4_bigui254, - 0x0aaa35e2c84baf117dea3e336cd96a39792b3813954fe9bf3ed5b90f2f69c977_bigui254 + 0x251e7fdf99591080080b0af133b9e4369f22e57ace3cd7f64fc6fdbcf38d7da1_big_uint254, + 0x25fb50b65acf4fb047cbd3b1c17d97c7fe26ea9ca238d6e348550486e91c7765_big_uint254, + 0x293d617d7da72102355f39ebf62f91b06deb5325f367a4556ea1e31ed5767833_big_uint254, + 0x104d0295ab00c85e960111ac25da474366599e575a9b7edf6145f14ba6d3c1c4_big_uint254, + 0x0aaa35e2c84baf117dea3e336cd96a39792b3813954fe9bf3ed5b90f2f69c977_big_uint254 }}, {{ - 0x2a70b9f1d4bbccdbc03e17c1d1dcdb02052903dc6609ea6969f661b2eb74c839_bigui254, - 0x281154651c921e746315a9934f1b8a1bba9f92ad8ef4b979115b8e2e991ccd7a_bigui254, - 0x28c2be2f8264f95f0b53c732134efa338ccd8fdb9ee2b45fb86a894f7db36c37_bigui254, - 0x21888041e6febd546d427c890b1883bb9b626d8cb4dc18dcc4ec8fa75e530a13_bigui254, - 0x14ddb5fada0171db80195b9592d8cf2be810930e3ea4574a350d65e2cbff4941_bigui254 + 0x2a70b9f1d4bbccdbc03e17c1d1dcdb02052903dc6609ea6969f661b2eb74c839_big_uint254, + 0x281154651c921e746315a9934f1b8a1bba9f92ad8ef4b979115b8e2e991ccd7a_big_uint254, + 0x28c2be2f8264f95f0b53c732134efa338ccd8fdb9ee2b45fb86a894f7db36c37_big_uint254, + 0x21888041e6febd546d427c890b1883bb9b626d8cb4dc18dcc4ec8fa75e530a13_big_uint254, + 0x14ddb5fada0171db80195b9592d8cf2be810930e3ea4574a350d65e2cbff4941_big_uint254 }}, {{ - 0x2f69a7198e1fbcc7dea43265306a37ed55b91bff652ad69aa4fa8478970d401d_bigui254, - 0x001c1edd62645b73ad931ab80e37bbb267ba312b34140e716d6a3747594d3052_bigui254, - 0x15b98ce93e47bc64ce2f2c96c69663c439c40c603049466fa7f9a4b228bfc32b_bigui254, - 0x12c7e2adfa524e5958f65be2fbac809fcba8458b28e44d9265051de33163cf9c_bigui254, - 0x2efc2b90d688134849018222e7b8922eaf67ce79816ef468531ec2de53bbd167_bigui254 + 0x2f69a7198e1fbcc7dea43265306a37ed55b91bff652ad69aa4fa8478970d401d_big_uint254, + 0x001c1edd62645b73ad931ab80e37bbb267ba312b34140e716d6a3747594d3052_big_uint254, + 0x15b98ce93e47bc64ce2f2c96c69663c439c40c603049466fa7f9a4b228bfc32b_big_uint254, + 0x12c7e2adfa524e5958f65be2fbac809fcba8458b28e44d9265051de33163cf9c_big_uint254, + 0x2efc2b90d688134849018222e7b8922eaf67ce79816ef468531ec2de53bbd167_big_uint254 }}, {{ - 0x0c3f050a6bf5af151981e55e3e1a29a13c3ffa4550bd2514f1afd6c5f721f830_bigui254, - 0x0dec54e6dbf75205fa75ba7992bd34f08b2efe2ecd424a73eda7784320a1a36e_bigui254, - 0x1c482a25a729f5df20225815034b196098364a11f4d988fb7cc75cf32d8136fa_bigui254, - 0x2625ce48a7b39a4252732624e4ab94360812ac2fc9a14a5fb8b607ae9fd8514a_bigui254, - 0x07f017a7ebd56dd086f7cd4fd710c509ed7ef8e300b9a8bb9fb9f28af710251f_bigui254 + 0x0c3f050a6bf5af151981e55e3e1a29a13c3ffa4550bd2514f1afd6c5f721f830_big_uint254, + 0x0dec54e6dbf75205fa75ba7992bd34f08b2efe2ecd424a73eda7784320a1a36e_big_uint254, + 0x1c482a25a729f5df20225815034b196098364a11f4d988fb7cc75cf32d8136fa_big_uint254, + 0x2625ce48a7b39a4252732624e4ab94360812ac2fc9a14a5fb8b607ae9fd8514a_big_uint254, + 0x07f017a7ebd56dd086f7cd4fd710c509ed7ef8e300b9a8bb9fb9f28af710251f_big_uint254 }}, {{ - 0x2a20e3a4a0e57d92f97c9d6186c6c3ea7c5e55c20146259be2f78c2ccc2e3595_bigui254, - 0x1049f8210566b51faafb1e9a5d63c0ee701673aed820d9c4403b01feb727a549_bigui254, - 0x02ecac687ef5b4b568002bd9d1b96b4bef357a69e3e86b5561b9299b82d69c8e_bigui254, - 0x2d3a1aea2e6d44466808f88c9ba903d3bdcb6b58ba40441ed4ebcf11bbe1e37b_bigui254, - 0x14074bb14c982c81c9ad171e4f35fe49b39c4a7a72dbb6d9c98d803bfed65e64_bigui254 + 0x2a20e3a4a0e57d92f97c9d6186c6c3ea7c5e55c20146259be2f78c2ccc2e3595_big_uint254, + 0x1049f8210566b51faafb1e9a5d63c0ee701673aed820d9c4403b01feb727a549_big_uint254, + 0x02ecac687ef5b4b568002bd9d1b96b4bef357a69e3e86b5561b9299b82d69c8e_big_uint254, + 0x2d3a1aea2e6d44466808f88c9ba903d3bdcb6b58ba40441ed4ebcf11bbe1e37b_big_uint254, + 0x14074bb14c982c81c9ad171e4f35fe49b39c4a7a72dbb6d9c98d803bfed65e64_big_uint254 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x0eb544fee2815dda7f53e29ccac98ed7d889bb4ebd47c3864f3c2bd81a6da891_bigui254, - 0x0554d736315b8662f02fdba7dd737fbca197aeb12ea64713ba733f28475128cb_bigui254, - 0x2f83b9df259b2b68bcd748056307c37754907df0c0fb0035f5087c58d5e8c2d4_bigui254, - 0x2ca70e2e8d7f39a12447ac83052451b461f15f8b41a75ef31915208f5aba9683_bigui254, - 0x1cb5f9319be6a45e91b04d7222271c94994196f12ed22c5d4ec719cb83ecfea9_bigui254, + 0x0eb544fee2815dda7f53e29ccac98ed7d889bb4ebd47c3864f3c2bd81a6da891_big_uint254, + 0x0554d736315b8662f02fdba7dd737fbca197aeb12ea64713ba733f28475128cb_big_uint254, + 0x2f83b9df259b2b68bcd748056307c37754907df0c0fb0035f5087c58d5e8c2d4_big_uint254, + 0x2ca70e2e8d7f39a12447ac83052451b461f15f8b41a75ef31915208f5aba9683_big_uint254, + 0x1cb5f9319be6a45e91b04d7222271c94994196f12ed22c5d4ec719cb83ecfea9_big_uint254, }}, {{ - 0x2eb4f99c69f966ebf8a42192de7ff61621c7bb47b93750c2b9ea08d18446c122_bigui254, - 0x224a28e5a35385a7c5198169e405d9ea0fc7da8b93ee13b6d5f7d099e299520e_bigui254, - 0x0f7411b465e600eed8afdd6afca49c3036f33ecbd9a0f97823796b993bbd82f7_bigui254, - 0x0f9d0d5aad2c9555a2be7150392d8d9819b208ae3370f99a0626f9ff5d90e4e3_bigui254, - 0x1e9a96dc8292bb596f52a59538d329229732b25259cf744b6a12d30702d6fba0_bigui254, + 0x2eb4f99c69f966ebf8a42192de7ff61621c7bb47b93750c2b9ea08d18446c122_big_uint254, + 0x224a28e5a35385a7c5198169e405d9ea0fc7da8b93ee13b6d5f7d099e299520e_big_uint254, + 0x0f7411b465e600eed8afdd6afca49c3036f33ecbd9a0f97823796b993bbd82f7_big_uint254, + 0x0f9d0d5aad2c9555a2be7150392d8d9819b208ae3370f99a0626f9ff5d90e4e3_big_uint254, + 0x1e9a96dc8292bb596f52a59538d329229732b25259cf744b6a12d30702d6fba0_big_uint254, }}, {{ - 0x08780514ccd90380887d578c45555e593cfe52eab4b945c6c2cd4d528fb3fe3c_bigui254, - 0x272498fced686c7ac8149fa3f73ef8c2ced64717e3556d5a59f119d629ccb5fc_bigui254, - 0x01ef8f9dd7c93aac4b7cb80930bd06eb45bd350aff585f10e3d0ef8a782ef7df_bigui254, - 0x045b9f59b6595e614dc08f222b469b138e886e64bf3c40aa97ea0ae754934d30_bigui254, - 0x0ac1e91c57d9da919fd6f59d2a40ff8ea3e41e24e247a387adf2584295d61c66_bigui254, + 0x08780514ccd90380887d578c45555e593cfe52eab4b945c6c2cd4d528fb3fe3c_big_uint254, + 0x272498fced686c7ac8149fa3f73ef8c2ced64717e3556d5a59f119d629ccb5fc_big_uint254, + 0x01ef8f9dd7c93aac4b7cb80930bd06eb45bd350aff585f10e3d0ef8a782ef7df_big_uint254, + 0x045b9f59b6595e614dc08f222b469b138e886e64bf3c40aa97ea0ae754934d30_big_uint254, + 0x0ac1e91c57d9da919fd6f59d2a40ff8ea3e41e24e247a387adf2584295d61c66_big_uint254, }}, {{ - 0x028a1621a94054b0c7f9a421353cd89d0fd67061aee99979d12e68f04e62d134_bigui254, - 0x26b41802c071ea4c9632647ed059236e50c19c3fb3c96d09d02aae2a0dcd9dbc_bigui254, - 0x2fb5dda8072bb72cbaac2f63e468215e05c9de06758db6a94af34384aedb462b_bigui254, - 0x2212d3a0f5fccaf244ff3547fd823249ad8ab8ba2a18d383dd05c56ee894d850_bigui254, - 0x1b041ad5b2f0684258e4dfaeea09be56a3276fdb19f44c015cd0c7eed465e2e3_bigui254, + 0x028a1621a94054b0c7f9a421353cd89d0fd67061aee99979d12e68f04e62d134_big_uint254, + 0x26b41802c071ea4c9632647ed059236e50c19c3fb3c96d09d02aae2a0dcd9dbc_big_uint254, + 0x2fb5dda8072bb72cbaac2f63e468215e05c9de06758db6a94af34384aedb462b_big_uint254, + 0x2212d3a0f5fccaf244ff3547fd823249ad8ab8ba2a18d383dd05c56ee894d850_big_uint254, + 0x1b041ad5b2f0684258e4dfaeea09be56a3276fdb19f44c015cd0c7eed465e2e3_big_uint254, }}, {{ - 0x0a01776bb22f4b6b8eccff33e76fded3144fb7e3ac14e846a91e64afb1500eff_bigui254, - 0x2b7b5674aaecc3cbf34d3f275066d549a4f33ae8c15cf827f7936440810ace43_bigui254, - 0x29d299b80cd4489e4cf75779ed54b48c60b042257b78fc004c1b803381a3bdfd_bigui254, - 0x1c46831d9a74529357641c219d721a74a427110032b5e1dd19dde30424be401e_bigui254, - 0x06d7626c953ccb72f37141dc34d578e036296c0657674f80739ae1d883e91269_bigui254, + 0x0a01776bb22f4b6b8eccff33e76fded3144fb7e3ac14e846a91e64afb1500eff_big_uint254, + 0x2b7b5674aaecc3cbf34d3f275066d549a4f33ae8c15cf827f7936440810ace43_big_uint254, + 0x29d299b80cd4489e4cf75779ed54b48c60b042257b78fc004c1b803381a3bdfd_big_uint254, + 0x1c46831d9a74529357641c219d721a74a427110032b5e1dd19dde30424be401e_big_uint254, + 0x06d7626c953ccb72f37141dc34d578e036296c0657674f80739ae1d883e91269_big_uint254, }}, {{ - 0x28ffddc86f18c136c54002748e0c410edc5c440a3022cd960f108c71cda2930c_bigui254, - 0x2e67f7ee5e4aa295f85deed09e400b17be67f1b7ed2ab6adb8ec0619f6fbc5e9_bigui254, - 0x26ce38fa636c90630e97f25114a79a2dca56859ef759e53ce7abf22c24e80f27_bigui254, - 0x2e6e07c3c95bf7c34dd7a01d00a7ffec42cb3d16a1f72721afacb4c4cfd35db1_bigui254, - 0x2aa74f7597f0c9f45f91d7961c3a54fb8890d276612e1246384b1470da24d8cc_bigui254, + 0x28ffddc86f18c136c54002748e0c410edc5c440a3022cd960f108c71cda2930c_big_uint254, + 0x2e67f7ee5e4aa295f85deed09e400b17be67f1b7ed2ab6adb8ec0619f6fbc5e9_big_uint254, + 0x26ce38fa636c90630e97f25114a79a2dca56859ef759e53ce7abf22c24e80f27_big_uint254, + 0x2e6e07c3c95bf7c34dd7a01d00a7ffec42cb3d16a1f72721afacb4c4cfd35db1_big_uint254, + 0x2aa74f7597f0c9f45f91d7961c3a54fb8890d276612e1246384b1470da24d8cc_big_uint254, }}, {{ - 0x287d681a46a2faae2c7c090f668ab45b8a71313c1509183e2ec0ca639b7f73fe_bigui254, - 0x212bd19df812eaaef4a40600528f3d7da5d3106ff565aa3b11e29f3305e73c04_bigui254, - 0x1154f7cf519186bf1aafb14b350eb860f97fd9740926dab93809c28404713504_bigui254, - 0x1dff6385cb31f1c24637810a4bd1b16fbf5152905be36583da747e79661fc207_bigui254, - 0x0e444582d22b4e76c081d34c44c18e424011a34d5476252863ea3c606b551e5c_bigui254, + 0x287d681a46a2faae2c7c090f668ab45b8a71313c1509183e2ec0ca639b7f73fe_big_uint254, + 0x212bd19df812eaaef4a40600528f3d7da5d3106ff565aa3b11e29f3305e73c04_big_uint254, + 0x1154f7cf519186bf1aafb14b350eb860f97fd9740926dab93809c28404713504_big_uint254, + 0x1dff6385cb31f1c24637810a4bd1b16fbf5152905be36583da747e79661fc207_big_uint254, + 0x0e444582d22b4e76c081d34c44c18e424011a34d5476252863ea3c606b551e5c_big_uint254, }}, {{ - 0x0323c9e433ba66c4abab6638328f02f1815773e9c2846323ff72d3aab7e4eff8_bigui254, - 0x12746bbd71791059193bba79cdec448f25b8cf002740112db70f2c6876a9c29d_bigui254, - 0x1173b7d112c2a798fd9b9d3751842c75d466c837cf50d73efd049eb4438a2240_bigui254, - 0x13d51c1090a1ad4876d1e555d7fed13da8e5713b25026ebe5fdb4808703243da_bigui254, - 0x00874c1344a4ad51ff8dcb7cbd2d9743cb72743f0394efe7f4a58ebeb956baa1_bigui254, + 0x0323c9e433ba66c4abab6638328f02f1815773e9c2846323ff72d3aab7e4eff8_big_uint254, + 0x12746bbd71791059193bba79cdec448f25b8cf002740112db70f2c6876a9c29d_big_uint254, + 0x1173b7d112c2a798fd9b9d3751842c75d466c837cf50d73efd049eb4438a2240_big_uint254, + 0x13d51c1090a1ad4876d1e555d7fed13da8e5713b25026ebe5fdb4808703243da_big_uint254, + 0x00874c1344a4ad51ff8dcb7cbd2d9743cb72743f0394efe7f4a58ebeb956baa1_big_uint254, }}, {{ - 0x22df22131aaab85865ce236b07f244fa0eea48d3546e97d6a32a562074fef08f_bigui254, - 0x0bf964d2dbd25b908708b437a445fc3e984524a59101e6c18bf5eb05a919f155_bigui254, - 0x09b18d9b917a55bca302be1f7f181e0e640b9d73a9ab298c69b435b5fc502f32_bigui254, - 0x094f5534444fae36a4bfc1d5bf3dc05bfbbbc70a6365366dd6745a5067289e43_bigui254, - 0x2999bab1a5f25210519fa6622af53a15a3e240c0da5701cb784fddc0dc23f01f_bigui254, + 0x22df22131aaab85865ce236b07f244fa0eea48d3546e97d6a32a562074fef08f_big_uint254, + 0x0bf964d2dbd25b908708b437a445fc3e984524a59101e6c18bf5eb05a919f155_big_uint254, + 0x09b18d9b917a55bca302be1f7f181e0e640b9d73a9ab298c69b435b5fc502f32_big_uint254, + 0x094f5534444fae36a4bfc1d5bf3dc05bfbbbc70a6365366dd6745a5067289e43_big_uint254, + 0x2999bab1a5f25210519fa6622af53a15a3e240c0da5701cb784fddc0dc23f01f_big_uint254, }}, {{ - 0x2f6898c07581f6371ca94db73710e88084301bce8a93d13669575a11b03a3d23_bigui254, - 0x07268eaaba08bc19ec16d7e1318a4740565deb1e8e5742f862174b1a6866fccb_bigui254, - 0x186279b003454db01339ff77113bc9eb62603e078e1c6689a6c9582c41a0529f_bigui254, - 0x18a3f736509197d6e4915bdd04d3e5ddb67e2cc5de9a22750768e5524737172c_bigui254, - 0x0a21fa1988cf38d877cc1e2ed24c808c725e2d4bcb2d3a007b5987b87085671d_bigui254, + 0x2f6898c07581f6371ca94db73710e88084301bce8a93d13669575a11b03a3d23_big_uint254, + 0x07268eaaba08bc19ec16d7e1318a4740565deb1e8e5742f862174b1a6866fccb_big_uint254, + 0x186279b003454db01339ff77113bc9eb62603e078e1c6689a6c9582c41a0529f_big_uint254, + 0x18a3f736509197d6e4915bdd04d3e5ddb67e2cc5de9a22750768e5524737172c_big_uint254, + 0x0a21fa1988cf38d877cc1e2ed24c808c725e2d4bcb2d3a007b5987b87085671d_big_uint254, }}, {{ - 0x15b285cbe26c467f1faf5ef6a64625228328c184a2c43bc00b36a135e785fba2_bigui254, - 0x164b7062c4671cf08c08b8c3f9806d560b7775b7c902f5788cd28de3e779f161_bigui254, - 0x0890ba0819ac0a6f86d9865fe7e50ef361c61d3d43b6e65d7a24f651249baa70_bigui254, - 0x2fbea4d65d7ed425a42712e5a721e4eaa627ac5cb0eb878ccc2ee0aed543e922_bigui254, - 0x0492bf383c36fa55540303a3b536f85e7b70a58e854ab9b9103d7f5f379abaaa_bigui254, + 0x15b285cbe26c467f1faf5ef6a64625228328c184a2c43bc00b36a135e785fba2_big_uint254, + 0x164b7062c4671cf08c08b8c3f9806d560b7775b7c902f5788cd28de3e779f161_big_uint254, + 0x0890ba0819ac0a6f86d9865fe7e50ef361c61d3d43b6e65d7a24f651249baa70_big_uint254, + 0x2fbea4d65d7ed425a42712e5a721e4eaa627ac5cb0eb878ccc2ee0aed543e922_big_uint254, + 0x0492bf383c36fa55540303a3b536f85e7b70a58e854ab9b9103d7f5f379abaaa_big_uint254, }}, {{ - 0x05e91fe944e944104e20251c565142d61d6185a9ce85675f6a969d56292dc24e_bigui254, - 0x12fe5c2029e4b33893d463cb041acad0995b9621e6e49c3b7e380a76e36e6c1c_bigui254, - 0x024154adf0255d47958f7723921474131f2629fadc89496906cd01dc6fa0784e_bigui254, - 0x18824a09e6afaf4a36ed2462a86bd0bad798815644f2bbde8813c13457a45550_bigui254, - 0x0c8b482dba0ad51be9f255de0c3dbddddf84a630af68d50bbb06983e3d5d58a5_bigui254, + 0x05e91fe944e944104e20251c565142d61d6185a9ce85675f6a969d56292dc24e_big_uint254, + 0x12fe5c2029e4b33893d463cb041acad0995b9621e6e49c3b7e380a76e36e6c1c_big_uint254, + 0x024154adf0255d47958f7723921474131f2629fadc89496906cd01dc6fa0784e_big_uint254, + 0x18824a09e6afaf4a36ed2462a86bd0bad798815644f2bbde8813c13457a45550_big_uint254, + 0x0c8b482dba0ad51be9f255de0c3dbddddf84a630af68d50bbb06983e3d5d58a5_big_uint254, }}, {{ - 0x17325fd0ab635871363e0a1667d3b67c5a4fa67fcd6aaf86441392878fdb05e6_bigui254, - 0x050ae95f6d2f1519122f5af67b690f31e550773fa8d18bf71cc6d0e911fa402e_bigui254, - 0x0f0d139a0e81e943038cb288d62636764bbb6295f07569885771ec84edc50c40_bigui254, - 0x1c0f8697795689cdf70fd2f2c0f93d1a79b39ebc7a1b1c549dbbca7b8e747cd6_bigui254, - 0x2bd0f940ad936b796d2bc2e048bc979e49be23a4b13598f9fe536a16dc1d81e6_bigui254, + 0x17325fd0ab635871363e0a1667d3b67c5a4fa67fcd6aaf86441392878fdb05e6_big_uint254, + 0x050ae95f6d2f1519122f5af67b690f31e550773fa8d18bf71cc6d0e911fa402e_big_uint254, + 0x0f0d139a0e81e943038cb288d62636764bbb6295f07569885771ec84edc50c40_big_uint254, + 0x1c0f8697795689cdf70fd2f2c0f93d1a79b39ebc7a1b1c549dbbca7b8e747cd6_big_uint254, + 0x2bd0f940ad936b796d2bc2e048bc979e49be23a4b13598f9fe536a16dc1d81e6_big_uint254, }}, {{ - 0x27eb1be27c9c4e934778c09a0053337fa06ebb275e096d167ce54d1e96ee62cb_bigui254, - 0x2e4889d830a67e5a8f96bdd3155a7ca3284fbd307d1f71b0f151be62548e2aea_bigui254, - 0x193fe3db0ab47d3c5d2ec5e9c5bd9983c9891f2cadc165db6064bbe6fcc1e305_bigui254, - 0x2bf3086e96c36c7bce415907ad0c40ed6e9661c009679e4e37cb13027c83e525_bigui254, - 0x12f16e2de6d4ad46a98cdb697c6cad5dd5e7e413f741ccf29ff2ea486e59bb28_bigui254, + 0x27eb1be27c9c4e934778c09a0053337fa06ebb275e096d167ce54d1e96ee62cb_big_uint254, + 0x2e4889d830a67e5a8f96bdd3155a7ca3284fbd307d1f71b0f151be62548e2aea_big_uint254, + 0x193fe3db0ab47d3c5d2ec5e9c5bd9983c9891f2cadc165db6064bbe6fcc1e305_big_uint254, + 0x2bf3086e96c36c7bce415907ad0c40ed6e9661c009679e4e37cb13027c83e525_big_uint254, + 0x12f16e2de6d4ad46a98cdb697c6cad5dd5e7e413f741ccf29ff2ea486e59bb28_big_uint254, }}, {{ - 0x2a72147d230119f3a0262e3653ddd19f33f3d5d6ec6c4bf0ad919b0343b92d2f_bigui254, - 0x21be0e2c4bfd64e56dc47f957806dc5f0a2d9bcc26412e2977df79acc10ba974_bigui254, - 0x0e2d7e1dc946d70b2749a3b54367b25a71b84fb911aa57ae137fd4b6c21b444a_bigui254, - 0x2667f7fb5a4fa1246170a745d8a4188cc31adb0eae3325dc9f3f07d4b92b3e2e_bigui254, - 0x2ccc6f431fb7400730a783b66064697a1550c12b08dfeb72830e107da78e3405_bigui254, + 0x2a72147d230119f3a0262e3653ddd19f33f3d5d6ec6c4bf0ad919b0343b92d2f_big_uint254, + 0x21be0e2c4bfd64e56dc47f957806dc5f0a2d9bcc26412e2977df79acc10ba974_big_uint254, + 0x0e2d7e1dc946d70b2749a3b54367b25a71b84fb911aa57ae137fd4b6c21b444a_big_uint254, + 0x2667f7fb5a4fa1246170a745d8a4188cc31adb0eae3325dc9f3f07d4b92b3e2e_big_uint254, + 0x2ccc6f431fb7400730a783b66064697a1550c12b08dfeb72830e107da78e3405_big_uint254, }}, {{ - 0x08888a94fc5a2ca34f0201462420001fae6dbee9e8ca0c242ec50621e38e6e5d_bigui254, - 0x02977b34eeaa3cb6ad40dd42c9b6fdd7a0d2fbe753af88b36acfcd3ccbc53f2a_bigui254, - 0x120ccce13d28b75cfd6fb6c9ea13a648bfcfe0d7e6ff8e9610b5e9f971e16b9a_bigui254, - 0x09fad2269c4a8e93c81e1b9770ea098c92787a4575b2bd73a0bf2af32f86ff3c_bigui254, - 0x026091fd3d4c44d50a4b310e4ac6f0fa0debdb70775eeb8af630cffb60092d6f_bigui254, + 0x08888a94fc5a2ca34f0201462420001fae6dbee9e8ca0c242ec50621e38e6e5d_big_uint254, + 0x02977b34eeaa3cb6ad40dd42c9b6fdd7a0d2fbe753af88b36acfcd3ccbc53f2a_big_uint254, + 0x120ccce13d28b75cfd6fb6c9ea13a648bfcfe0d7e6ff8e9610b5e9f971e16b9a_big_uint254, + 0x09fad2269c4a8e93c81e1b9770ea098c92787a4575b2bd73a0bf2af32f86ff3c_big_uint254, + 0x026091fd3d4c44d50a4b310e4ac6f0fa0debdb70775eeb8af630cffb60092d6f_big_uint254, }}, {{ - 0x29404aa2ba565b77bb7fba9dfb6fc3212543cc56afad6afcb904fd2bca893994_bigui254, - 0x2749475c399aaf39d4e87c2548695b4ef1ffd86590e0827de7201351b7c883f9_bigui254, - 0x098c842322479f7239912b50424685cba2ebe2dc2e4da70ac7557dab65ffa222_bigui254, - 0x18cef581222b647e31238e57fead7d5c758ace14c93c4da40191d0c053b51936_bigui254, - 0x13177839c68a5080d4e746745e43711d3cbc0ca4a108f98d63b2aa681698de60_bigui254, + 0x29404aa2ba565b77bb7fba9dfb6fc3212543cc56afad6afcb904fd2bca893994_big_uint254, + 0x2749475c399aaf39d4e87c2548695b4ef1ffd86590e0827de7201351b7c883f9_big_uint254, + 0x098c842322479f7239912b50424685cba2ebe2dc2e4da70ac7557dab65ffa222_big_uint254, + 0x18cef581222b647e31238e57fead7d5c758ace14c93c4da40191d0c053b51936_big_uint254, + 0x13177839c68a5080d4e746745e43711d3cbc0ca4a108f98d63b2aa681698de60_big_uint254, }}, {{ - 0x020ca696f531e43ec088f56f4b74325626cc4df712c0e5f0a907d88e5f0deffd_bigui254, - 0x27230eede9cccfc9fa805a30fc548db693d13708c646841d16e028387c7ac022_bigui254, - 0x01645911c1198b01d64fde34a342a1786497c05969a015439057d2fe75bb281c_bigui254, - 0x2c323fe16481bf496e439c88341ce25f198971e14487056cfdca4a451a5d8643_bigui254, - 0x0fc082dfe70728e8450bd2074c3e22e1b022c124d3bffe8b5af88ae6db5085c8_bigui254, + 0x020ca696f531e43ec088f56f4b74325626cc4df712c0e5f0a907d88e5f0deffd_big_uint254, + 0x27230eede9cccfc9fa805a30fc548db693d13708c646841d16e028387c7ac022_big_uint254, + 0x01645911c1198b01d64fde34a342a1786497c05969a015439057d2fe75bb281c_big_uint254, + 0x2c323fe16481bf496e439c88341ce25f198971e14487056cfdca4a451a5d8643_big_uint254, + 0x0fc082dfe70728e8450bd2074c3e22e1b022c124d3bffe8b5af88ae6db5085c8_big_uint254, }}, {{ - 0x2052c174800db209d8cdca568dcc25b3be9642116ac4c77efe8a488b423521ee_bigui254, - 0x28e420e10df2fbb5af96d621d55423190be351ce8129065a8dd9fd05b3ece9c0_bigui254, - 0x25698ca5e24a1b799f783c4462a24db655d6ae1bdacd1cb549d6e0bc3ae5069a_bigui254, - 0x160a9981a5c89a57cf8ffbfa57d51049a297b61074422ac134d9b857d6984d35_bigui254, - 0x21c91a39e145c3bc34d9b694b843f3bf8b7cebf59ddbb0a064642b069997f3d4_bigui254, + 0x2052c174800db209d8cdca568dcc25b3be9642116ac4c77efe8a488b423521ee_big_uint254, + 0x28e420e10df2fbb5af96d621d55423190be351ce8129065a8dd9fd05b3ece9c0_big_uint254, + 0x25698ca5e24a1b799f783c4462a24db655d6ae1bdacd1cb549d6e0bc3ae5069a_big_uint254, + 0x160a9981a5c89a57cf8ffbfa57d51049a297b61074422ac134d9b857d6984d35_big_uint254, + 0x21c91a39e145c3bc34d9b694b843f3bf8b7cebf59ddbb0a064642b069997f3d4_big_uint254, }}, {{ - 0x1ac8d80dcd5ee876d2b09345ef112345d6eaa029d93f03b6d10975461e41734c_bigui254, - 0x0ab3e6ad0ecf8b8e7c1662a4174c52225d822895e2755544b8dbcea5657ce02c_bigui254, - 0x1c675182512620ae27e3b0b917b3a21ca52ef3ef5909b4e1c5b2237cbdab3377_bigui254, - 0x2cdbc998dfd7affd3d948d0c85bad2e2e37a4a3e07a7d75d0c8a9092ac2bed45_bigui254, - 0x23b584a56e2117b0774bf67cc0dee33324337350309dff833e491a133bb63b2e_bigui254, + 0x1ac8d80dcd5ee876d2b09345ef112345d6eaa029d93f03b6d10975461e41734c_big_uint254, + 0x0ab3e6ad0ecf8b8e7c1662a4174c52225d822895e2755544b8dbcea5657ce02c_big_uint254, + 0x1c675182512620ae27e3b0b917b3a21ca52ef3ef5909b4e1c5b2237cbdab3377_big_uint254, + 0x2cdbc998dfd7affd3d948d0c85bad2e2e37a4a3e07a7d75d0c8a9092ac2bed45_big_uint254, + 0x23b584a56e2117b0774bf67cc0dee33324337350309dff833e491a133bb63b2e_big_uint254, }}, {{ - 0x1e9e2b310f60ba9f8cb73030a3c9d2a10d133bc6ba4ec1152f3d20de1465e9a5_bigui254, - 0x0e01e365ba5b3031abc3e720140ae746c9ab5dab987520c460bcd4f1fa5b22db_bigui254, - 0x040884cdcfc64bfc7b7127340498d5c443382011b61c9a4b1387d85bc1264e68_bigui254, - 0x190b1ee1205eb9500c74a3998f2bea36353f1724d6067ed0a0a17de311ef9668_bigui254, - 0x1647c72aec6c4388d04f52fc23cd9c08c1dfcf65ce61e165fc28d1f832bd3b2c_bigui254, + 0x1e9e2b310f60ba9f8cb73030a3c9d2a10d133bc6ba4ec1152f3d20de1465e9a5_big_uint254, + 0x0e01e365ba5b3031abc3e720140ae746c9ab5dab987520c460bcd4f1fa5b22db_big_uint254, + 0x040884cdcfc64bfc7b7127340498d5c443382011b61c9a4b1387d85bc1264e68_big_uint254, + 0x190b1ee1205eb9500c74a3998f2bea36353f1724d6067ed0a0a17de311ef9668_big_uint254, + 0x1647c72aec6c4388d04f52fc23cd9c08c1dfcf65ce61e165fc28d1f832bd3b2c_big_uint254, }}, {{ - 0x2430006346a0145f799880cc4c8736269f5494d89fb48b02842e595b71e4541d_bigui254, - 0x177b9a08343917e1365107a3da3ae7f69d853902bb16bacb3221850252b757af_bigui254, - 0x04a420e642b11ae94e58862a68f5e32609cd53d0ae29423439b11d04666df4f8_bigui254, - 0x25d0e0f739fb39fc105a88fab0afd810de2461858e956ccccdfabeddb6a25c8f_bigui254, - 0x04476d91b7eff2fd85905cbf58651edc320cb15610eaed452c4d4ffa0c740a27_bigui254, + 0x2430006346a0145f799880cc4c8736269f5494d89fb48b02842e595b71e4541d_big_uint254, + 0x177b9a08343917e1365107a3da3ae7f69d853902bb16bacb3221850252b757af_big_uint254, + 0x04a420e642b11ae94e58862a68f5e32609cd53d0ae29423439b11d04666df4f8_big_uint254, + 0x25d0e0f739fb39fc105a88fab0afd810de2461858e956ccccdfabeddb6a25c8f_big_uint254, + 0x04476d91b7eff2fd85905cbf58651edc320cb15610eaed452c4d4ffa0c740a27_big_uint254, }}, {{ - 0x1090c0b68b3d7d7b8bc9ca2419eb8dea1c28f6d5e1250cb5e9780fd9ca286fae_bigui254, - 0x25393ce3b9256d50448a725c5c7cd5ad376f2d435855c10ebf2899cb5c6617be_bigui254, - 0x25931c0c7371f4f1fc862f306e6e5830ed824388d6b9342697d144f0fab46630_bigui254, - 0x2396cb501700bbe6c82aad51b0fb79cf8a4d353185d5808203f73f22afbf62f6_bigui254, - 0x26a363483348b58954ea748a7129a7b0a3dc9068c3cca7b5b3f0ce03b8724884_bigui254, + 0x1090c0b68b3d7d7b8bc9ca2419eb8dea1c28f6d5e1250cb5e9780fd9ca286fae_big_uint254, + 0x25393ce3b9256d50448a725c5c7cd5ad376f2d435855c10ebf2899cb5c6617be_big_uint254, + 0x25931c0c7371f4f1fc862f306e6e5830ed824388d6b9342697d144f0fab46630_big_uint254, + 0x2396cb501700bbe6c82aad51b0fb79cf8a4d353185d5808203f73f22afbf62f6_big_uint254, + 0x26a363483348b58954ea748a7129a7b0a3dc9068c3cca7b5b3f0ce03b8724884_big_uint254, }}, {{ - 0x27ca107ca204f2a18d6f1535b92c5478c99b893334215f6ba7a0e5b45fcd6897_bigui254, - 0x26da28fc097ed77ce4662bde326b2cceac15f7301178581d8d2d02b3b2d91056_bigui254, - 0x056ab351691d8bb3703e3055070ac9cc655774c1bb35d57572971ba56ee0cb89_bigui254, - 0x2638b57f23b754aec76d109a2f481aa3c22547a11ffc50152d729af632376a90_bigui254, - 0x304754bb8c57d60732f492c2605184fdc33e46a532bdec80ea7bc5519ede7cef_bigui254, + 0x27ca107ca204f2a18d6f1535b92c5478c99b893334215f6ba7a0e5b45fcd6897_big_uint254, + 0x26da28fc097ed77ce4662bde326b2cceac15f7301178581d8d2d02b3b2d91056_big_uint254, + 0x056ab351691d8bb3703e3055070ac9cc655774c1bb35d57572971ba56ee0cb89_big_uint254, + 0x2638b57f23b754aec76d109a2f481aa3c22547a11ffc50152d729af632376a90_big_uint254, + 0x304754bb8c57d60732f492c2605184fdc33e46a532bdec80ea7bc5519ede7cef_big_uint254, }}, {{ - 0x00d1727f8457ee03514f155b5806cbf748ec6857fc554010752ac93a9b7619ac_bigui254, - 0x00ee1f3c66fbc05c43ba295a303c72fab5bca86805ec9419c588e50947761fa3_bigui254, - 0x0afafadcf5b4dd4a4a76b5a1d82415fd10a19fbcfc59078c61f9297eb675d972_bigui254, - 0x0b2449f39746085e86ce45e8eed108ee65a234835a0a6a5ea8996d124dd04d0a_bigui254, - 0x206b0ce2f1b2c5b7c9f37b0045227095f6c6f071ec3bdda76a7ddf4823dd5dd6_bigui254, + 0x00d1727f8457ee03514f155b5806cbf748ec6857fc554010752ac93a9b7619ac_big_uint254, + 0x00ee1f3c66fbc05c43ba295a303c72fab5bca86805ec9419c588e50947761fa3_big_uint254, + 0x0afafadcf5b4dd4a4a76b5a1d82415fd10a19fbcfc59078c61f9297eb675d972_big_uint254, + 0x0b2449f39746085e86ce45e8eed108ee65a234835a0a6a5ea8996d124dd04d0a_big_uint254, + 0x206b0ce2f1b2c5b7c9f37b0045227095f6c6f071ec3bdda76a7ddf4823dd5dd6_big_uint254, }}, {{ - 0x0feba4fb87834c7cb696e67433628cd6caffc3a4ef20fea852c7e1029459409c_bigui254, - 0x254dbfac74c49b0b8926752e084e02513b06f1315e6d70e18173e972336e55d3_bigui254, - 0x0addb1372cee4e164655168c367559e19606c5bd17910aeb37719edfa0ca8762_bigui254, - 0x26b25b7e257f3e97c799024fb019f65c6ca4d8d81b1ae16221a589d68831d759_bigui254, - 0x090995b79acec240413b8d4c658787e5a4657b9ab00bdb5b1960b1059e113ba3_bigui254, + 0x0feba4fb87834c7cb696e67433628cd6caffc3a4ef20fea852c7e1029459409c_big_uint254, + 0x254dbfac74c49b0b8926752e084e02513b06f1315e6d70e18173e972336e55d3_big_uint254, + 0x0addb1372cee4e164655168c367559e19606c5bd17910aeb37719edfa0ca8762_big_uint254, + 0x26b25b7e257f3e97c799024fb019f65c6ca4d8d81b1ae16221a589d68831d759_big_uint254, + 0x090995b79acec240413b8d4c658787e5a4657b9ab00bdb5b1960b1059e113ba3_big_uint254, }}, {{ - 0x08dbdc2e21ef11f2c57299687843cea3eb0d8e40e99131f42974178d44f73b7b_bigui254, - 0x09e8aba671481197679faf752a0f78e342fe9c491596ab6758f170939785179f_bigui254, - 0x1deb05180e833e45659052a7ebaf816c7efd12a7f9eec94b7bc7c683f1363d5c_bigui254, - 0x19a70ec6bdfc9098a926efbcc04aa9ee248997e8b2c24af335fd6523e5250879_bigui254, - 0x21d773660adafb8a879986f9aab4890566353a3777d8a3f1eb93abe10bbf1f64_bigui254, + 0x08dbdc2e21ef11f2c57299687843cea3eb0d8e40e99131f42974178d44f73b7b_big_uint254, + 0x09e8aba671481197679faf752a0f78e342fe9c491596ab6758f170939785179f_big_uint254, + 0x1deb05180e833e45659052a7ebaf816c7efd12a7f9eec94b7bc7c683f1363d5c_big_uint254, + 0x19a70ec6bdfc9098a926efbcc04aa9ee248997e8b2c24af335fd6523e5250879_big_uint254, + 0x21d773660adafb8a879986f9aab4890566353a3777d8a3f1eb93abe10bbf1f64_big_uint254, }}, {{ - 0x09f1890f72e9dc713e20ba637b89d5d397a6b01fcd667347f6f46617841c3901_bigui254, - 0x05af459361eb454d2a300c61e446998d48fa1f897bf219d608c2145c33b111c3_bigui254, - 0x0fa1a1d6829f0345664a66dc75a657335f336f15f340756cfa12fc850cc8b513_bigui254, - 0x02e47a35bcc0c3a0bda0b1c0307ad543f4280fcf87f636f853655cf97a628bb0_bigui254, - 0x14f773e9834c6bdeb8f90e78bf4c24b7203411460112491036621895204d0f12_bigui254, + 0x09f1890f72e9dc713e20ba637b89d5d397a6b01fcd667347f6f46617841c3901_big_uint254, + 0x05af459361eb454d2a300c61e446998d48fa1f897bf219d608c2145c33b111c3_big_uint254, + 0x0fa1a1d6829f0345664a66dc75a657335f336f15f340756cfa12fc850cc8b513_big_uint254, + 0x02e47a35bcc0c3a0bda0b1c0307ad543f4280fcf87f636f853655cf97a628bb0_big_uint254, + 0x14f773e9834c6bdeb8f90e78bf4c24b7203411460112491036621895204d0f12_big_uint254, }}, {{ - 0x102d98cf502ed843255cf19d29bc7d8e642abe7cfd639992ffb091962fc8f7cc_bigui254, - 0x043dd5f4aa5a76dd4c47f6c65da7ca2320d4c73ad3294738cba686a7e91373c2_bigui254, - 0x21833819c3337194a6c0d29a48d4f2676f0e7c79743a306f4cfdb2b26bd11efa_bigui254, - 0x0f281925cf5ee649b474a6819d116ca3eb4eca246c311ecadc53262a3cff2b53_bigui254, - 0x0d3e2477a7b10beb44709c7746d6824edf625dd60504d5dc93ce662f15c238d6_bigui254, + 0x102d98cf502ed843255cf19d29bc7d8e642abe7cfd639992ffb091962fc8f7cc_big_uint254, + 0x043dd5f4aa5a76dd4c47f6c65da7ca2320d4c73ad3294738cba686a7e91373c2_big_uint254, + 0x21833819c3337194a6c0d29a48d4f2676f0e7c79743a306f4cfdb2b26bd11efa_big_uint254, + 0x0f281925cf5ee649b474a6819d116ca3eb4eca246c311ecadc53262a3cff2b53_big_uint254, + 0x0d3e2477a7b10beb44709c7746d6824edf625dd60504d5dc93ce662f15c238d6_big_uint254, }}, {{ - 0x2cd7f641bedbf66956ff8a01be9cde35d80f80ab51e73b49acbfc3eff5aefc44_bigui254, - 0x29e95b492bf2f95f4d09380f98b74e389149d24045811d7a86dd861310463cf8_bigui254, - 0x22da66bc62e8f011266efca86a6c810f9ae4c51af6ffeb57f8b3c50df83cc13e_bigui254, - 0x0fe6d30de7a82d163023491794f4aca3220db79e8129df3643072d841925554a_bigui254, - 0x0050e842a1299909123c46eff185c23ad312d03fef1adfecc7e07ecb298fd67f_bigui254, + 0x2cd7f641bedbf66956ff8a01be9cde35d80f80ab51e73b49acbfc3eff5aefc44_big_uint254, + 0x29e95b492bf2f95f4d09380f98b74e389149d24045811d7a86dd861310463cf8_big_uint254, + 0x22da66bc62e8f011266efca86a6c810f9ae4c51af6ffeb57f8b3c50df83cc13e_big_uint254, + 0x0fe6d30de7a82d163023491794f4aca3220db79e8129df3643072d841925554a_big_uint254, + 0x0050e842a1299909123c46eff185c23ad312d03fef1adfecc7e07ecb298fd67f_big_uint254, }}, {{ - 0x2130a3a7b3221222be34cc53a42d7733666f9ddf714ed7c5885cbbdb63108c21_bigui254, - 0x2df9ee294edf99e3d8d5883fe0566c24aa66731f34a93280e1d328e67b33c9fa_bigui254, - 0x1bf7d6e489ad8c0cf26eb68cc21ff54158132396dc250aeba4b6fc5fc3372762_bigui254, - 0x0c602fa155be958761eaf739617ab136cf7b807728bf7fe35d4778d311780e54_bigui254, - 0x2e50e2c5b36aa20532407d86b8d22d7d5154080a24972faeb63faf0121ed7f21_bigui254, + 0x2130a3a7b3221222be34cc53a42d7733666f9ddf714ed7c5885cbbdb63108c21_big_uint254, + 0x2df9ee294edf99e3d8d5883fe0566c24aa66731f34a93280e1d328e67b33c9fa_big_uint254, + 0x1bf7d6e489ad8c0cf26eb68cc21ff54158132396dc250aeba4b6fc5fc3372762_big_uint254, + 0x0c602fa155be958761eaf739617ab136cf7b807728bf7fe35d4778d311780e54_big_uint254, + 0x2e50e2c5b36aa20532407d86b8d22d7d5154080a24972faeb63faf0121ed7f21_big_uint254, }}, {{ - 0x17c2510982a7b5825710d6290ec4f782f674995ee8409b42b459123b180332e1_bigui254, - 0x0b0d52f03c8af7276803ecf2465b885b21337b538eabd2f6b2ab255f376b42a8_bigui254, - 0x0f5633df1972b9455953d88a63f80647a9ac77c6c0f85d4561972dd8fab8bd14_bigui254, - 0x0ebf7ad29ca13804e1422e939681155124780ff43e76e929035498130a7f1572_bigui254, - 0x1aff13c81bda47e80b02962173bba343e18f94bee27c8a57661b1103a720ffe2_bigui254, + 0x17c2510982a7b5825710d6290ec4f782f674995ee8409b42b459123b180332e1_big_uint254, + 0x0b0d52f03c8af7276803ecf2465b885b21337b538eabd2f6b2ab255f376b42a8_big_uint254, + 0x0f5633df1972b9455953d88a63f80647a9ac77c6c0f85d4561972dd8fab8bd14_big_uint254, + 0x0ebf7ad29ca13804e1422e939681155124780ff43e76e929035498130a7f1572_big_uint254, + 0x1aff13c81bda47e80b02962173bba343e18f94bee27c8a57661b1103a720ffe2_big_uint254, }}, {{ - 0x210449dbf5cf3061da2465be85505862d3f31de1a3b58ff35713be57efac6c07_bigui254, - 0x088230c2794e50c57d75cd6d3c7b9dbe19d1e2f1d3001044b93ad1c3ee629817_bigui254, - 0x1c408c256490b0a1da08dc464138dfc78cce9a9e16c7705617a4d6dbb20e7e3a_bigui254, - 0x074517e081eb4c1f22d1771200fb07658f7c77654d58440490dd6f557e9e3903_bigui254, - 0x02d04e9c21df1dbd88524bdb203691b4cee5530559d6cf0fa05adf61e12fdcbf_bigui254, + 0x210449dbf5cf3061da2465be85505862d3f31de1a3b58ff35713be57efac6c07_big_uint254, + 0x088230c2794e50c57d75cd6d3c7b9dbe19d1e2f1d3001044b93ad1c3ee629817_big_uint254, + 0x1c408c256490b0a1da08dc464138dfc78cce9a9e16c7705617a4d6dbb20e7e3a_big_uint254, + 0x074517e081eb4c1f22d1771200fb07658f7c77654d58440490dd6f557e9e3903_big_uint254, + 0x02d04e9c21df1dbd88524bdb203691b4cee5530559d6cf0fa05adf61e12fdcbf_big_uint254, }}, {{ - 0x2eb7a011b8bce91082e13ebd75de3b58eb9b4650dae9f11aa81db32cf1b67b13_bigui254, - 0x2efda77ed35f4af0299f75d6e8a849b54d2ac6bf95368304e6030c18f0cf17b5_bigui254, - 0x09199dcafd50ce642eddbeda65206d4f61a73d10852b8114c51b2440192ae064_bigui254, - 0x268c5cfc446d399c4dd319db666a75b5cb655d8c1797e9fa76181cb4216e1562_bigui254, - 0x2303a652c949071826b0e9a36c80578697b44e912cce6687012854eda11a18dc_bigui254, + 0x2eb7a011b8bce91082e13ebd75de3b58eb9b4650dae9f11aa81db32cf1b67b13_big_uint254, + 0x2efda77ed35f4af0299f75d6e8a849b54d2ac6bf95368304e6030c18f0cf17b5_big_uint254, + 0x09199dcafd50ce642eddbeda65206d4f61a73d10852b8114c51b2440192ae064_big_uint254, + 0x268c5cfc446d399c4dd319db666a75b5cb655d8c1797e9fa76181cb4216e1562_big_uint254, + 0x2303a652c949071826b0e9a36c80578697b44e912cce6687012854eda11a18dc_big_uint254, }}, {{ - 0x27c53563b12a6ee2c3f041f31dc45922bc5353eb110868d237073f4efb35fbdf_bigui254, - 0x1201a87eaf4ae618f02bd82d0a5109049969b5248cfe90f42c278f22615d2b0e_bigui254, - 0x2c43169439fcd69ead8214997bb069becafcb1ba2c51e5706cb4b43dab2a443d_bigui254, - 0x0683597315359040ea03c45d6984c6894f46cbb36d702e3c4fb9847e6304d944_bigui254, - 0x03545706706eab36afb93b128febd16fb0425e158314197b77795ad3a798d183_bigui254, + 0x27c53563b12a6ee2c3f041f31dc45922bc5353eb110868d237073f4efb35fbdf_big_uint254, + 0x1201a87eaf4ae618f02bd82d0a5109049969b5248cfe90f42c278f22615d2b0e_big_uint254, + 0x2c43169439fcd69ead8214997bb069becafcb1ba2c51e5706cb4b43dab2a443d_big_uint254, + 0x0683597315359040ea03c45d6984c6894f46cbb36d702e3c4fb9847e6304d944_big_uint254, + 0x03545706706eab36afb93b128febd16fb0425e158314197b77795ad3a798d183_big_uint254, }}, {{ - 0x1a33c254ec117619d35f1fc051b31728740bed23a6a37870edb393b71a0c0e6b_bigui254, - 0x1ffe6968a4470cd567b0c002281caf996e88f71e759b87e6f338e517f1690c78_bigui254, - 0x0fd66e03ba8808ffecb059c899fd80f4140ddd5d2a5c4483107f4e02e355b393_bigui254, - 0x263ab69f13b966f8197394552906b17e6c8617a7bdd5d74a7be3396b7fe013ab_bigui254, - 0x16a425e47d1110625054d5a165de413e3bd87d5aa3958fdd6eb7e03e39ba4046_bigui254, + 0x1a33c254ec117619d35f1fc051b31728740bed23a6a37870edb393b71a0c0e6b_big_uint254, + 0x1ffe6968a4470cd567b0c002281caf996e88f71e759b87e6f338e517f1690c78_big_uint254, + 0x0fd66e03ba8808ffecb059c899fd80f4140ddd5d2a5c4483107f4e02e355b393_big_uint254, + 0x263ab69f13b966f8197394552906b17e6c8617a7bdd5d74a7be3396b7fe013ab_big_uint254, + 0x16a425e47d1110625054d5a165de413e3bd87d5aa3958fdd6eb7e03e39ba4046_big_uint254, }}, {{ - 0x2dc510a4719ec10cad752f03c673f0e253cc31d13e39e909fcc5f73af9138d9a_bigui254, - 0x24df8e8d856c5b5e1bd1cad23d07dda3423c5179329b7a82cb4aa709a94576e5_bigui254, - 0x2bcc94ff4fc3c76f3cd5c68915a042e87628249a01b09561bdf24a6cdce5620f_bigui254, - 0x076c1e88dc540c8d8de54e343df7c429d3295f52c38cffe6b48be86852da97df_bigui254, - 0x09b5f209a451ac431c051fb12d9a5e4fe40ee1601120947da990fb8e12cb46e1_bigui254, + 0x2dc510a4719ec10cad752f03c673f0e253cc31d13e39e909fcc5f73af9138d9a_big_uint254, + 0x24df8e8d856c5b5e1bd1cad23d07dda3423c5179329b7a82cb4aa709a94576e5_big_uint254, + 0x2bcc94ff4fc3c76f3cd5c68915a042e87628249a01b09561bdf24a6cdce5620f_big_uint254, + 0x076c1e88dc540c8d8de54e343df7c429d3295f52c38cffe6b48be86852da97df_big_uint254, + 0x09b5f209a451ac431c051fb12d9a5e4fe40ee1601120947da990fb8e12cb46e1_big_uint254, }}, {{ - 0x205f17b0d8729e2eaa88d6a44135a6ab64e9424f55b0f1ea0683af75eb677c07_bigui254, - 0x281c5c688836f6cf912638c38be046cd091681f0a41761720cdd1edf9f237029_bigui254, - 0x1a053e6878e900f45f4d67448c471cf3009a44e7a02ea50e4afa44f2592621f5_bigui254, - 0x100dc7d426debe3007fb7ceac84e4f5468efcb897e7bbee981742839d59e064c_bigui254, - 0x17022672a016a957bb87e2cfadc8b75fb28905bdb62c82c80b1cb31b411e49c8_bigui254, + 0x205f17b0d8729e2eaa88d6a44135a6ab64e9424f55b0f1ea0683af75eb677c07_big_uint254, + 0x281c5c688836f6cf912638c38be046cd091681f0a41761720cdd1edf9f237029_big_uint254, + 0x1a053e6878e900f45f4d67448c471cf3009a44e7a02ea50e4afa44f2592621f5_big_uint254, + 0x100dc7d426debe3007fb7ceac84e4f5468efcb897e7bbee981742839d59e064c_big_uint254, + 0x17022672a016a957bb87e2cfadc8b75fb28905bdb62c82c80b1cb31b411e49c8_big_uint254, }}, {{ - 0x1086db7e2760fc8b71053a87ebe151239fb8b547182b170de0c27203f954f4d2_bigui254, - 0x15384fe39d73b63302460ae4c2942fac2b41fb65a185536fb85dd24fd7584064_bigui254, - 0x2ebb599fe9136d424bf4abc5342c6c7447b1a853205fcfb5519e551357709008_bigui254, - 0x1b4b5e87cfb9262cfec3c0f0542e4c5a4cf278292b4ce3eed996fac6f4d37288_bigui254, - 0x2465053ae50b6885801f3f82e302cafbbb4a7581bb4fba60b637febe659e5057_bigui254, + 0x1086db7e2760fc8b71053a87ebe151239fb8b547182b170de0c27203f954f4d2_big_uint254, + 0x15384fe39d73b63302460ae4c2942fac2b41fb65a185536fb85dd24fd7584064_big_uint254, + 0x2ebb599fe9136d424bf4abc5342c6c7447b1a853205fcfb5519e551357709008_big_uint254, + 0x1b4b5e87cfb9262cfec3c0f0542e4c5a4cf278292b4ce3eed996fac6f4d37288_big_uint254, + 0x2465053ae50b6885801f3f82e302cafbbb4a7581bb4fba60b637febe659e5057_big_uint254, }}, {{ - 0x114f32edcdea09cd095c5bb5d38f1b97da9f05e18b3708bf6e0ab9d3d54859ef_bigui254, - 0x2bc70dfeb2baab2f6b387cd77be779ac2e5e5519f3d18123ee28d8c2543c7148_bigui254, - 0x01c9bf7a203ce22b775e3a61ad7e77b6a78348b9f6ec68a412e49bfe32c05415_bigui254, - 0x0514b0fe5909ea887bedb0295fbbcec355cfb575ff6a97cd9f4ad00ccb57ee9b_bigui254, - 0x267c76ec81934cc81a132a8b058910a12092520b12a201af03e3202d7b6c1b7e_bigui254, + 0x114f32edcdea09cd095c5bb5d38f1b97da9f05e18b3708bf6e0ab9d3d54859ef_big_uint254, + 0x2bc70dfeb2baab2f6b387cd77be779ac2e5e5519f3d18123ee28d8c2543c7148_big_uint254, + 0x01c9bf7a203ce22b775e3a61ad7e77b6a78348b9f6ec68a412e49bfe32c05415_big_uint254, + 0x0514b0fe5909ea887bedb0295fbbcec355cfb575ff6a97cd9f4ad00ccb57ee9b_big_uint254, + 0x267c76ec81934cc81a132a8b058910a12092520b12a201af03e3202d7b6c1b7e_big_uint254, }}, {{ - 0x29170e3322b3d8d5c78c84babbb470adf1622493ce83e95cfb151cf757bde5d6_bigui254, - 0x019f6a8124b19e33af33e5d3873f9c335c6f09a45486cab536dd596ca41d9519_bigui254, - 0x1904aa4d6908544a8b348e9db1981c27009ed8ea171518ae5405d036242b60e9_bigui254, - 0x26f17873949bc679f7f043956694e422b3cee1de9dd6f6473b932a476455ff1a_bigui254, - 0x1ac668f612b8243c193b33720b8aa54040c476031197131ebdcac9b18bc48f75_bigui254, + 0x29170e3322b3d8d5c78c84babbb470adf1622493ce83e95cfb151cf757bde5d6_big_uint254, + 0x019f6a8124b19e33af33e5d3873f9c335c6f09a45486cab536dd596ca41d9519_big_uint254, + 0x1904aa4d6908544a8b348e9db1981c27009ed8ea171518ae5405d036242b60e9_big_uint254, + 0x26f17873949bc679f7f043956694e422b3cee1de9dd6f6473b932a476455ff1a_big_uint254, + 0x1ac668f612b8243c193b33720b8aa54040c476031197131ebdcac9b18bc48f75_big_uint254, }}, {{ - 0x0996d961a75c0d07196dae45bf624766ccfbf8555be9796da52f81568ef0663d_bigui254, - 0x030c97e1b8cad1d4fd50d1b4383fbe6674d171f99c63febb5425b395c24fc819_bigui254, - 0x06e3ad6a46900e2d3953370255b68f89b3e523f1fe502642ee226f2d8bd0848f_bigui254, - 0x1d6b3755331cd0216b6880e42f9880f565cb94b0e0455153a329890588cc916e_bigui254, - 0x28e4dcba4b96f12a59b041535e730ac8c35189dc0b85ac033dd38c08bae531f2_bigui254, + 0x0996d961a75c0d07196dae45bf624766ccfbf8555be9796da52f81568ef0663d_big_uint254, + 0x030c97e1b8cad1d4fd50d1b4383fbe6674d171f99c63febb5425b395c24fc819_big_uint254, + 0x06e3ad6a46900e2d3953370255b68f89b3e523f1fe502642ee226f2d8bd0848f_big_uint254, + 0x1d6b3755331cd0216b6880e42f9880f565cb94b0e0455153a329890588cc916e_big_uint254, + 0x28e4dcba4b96f12a59b041535e730ac8c35189dc0b85ac033dd38c08bae531f2_big_uint254, }}, {{ - 0x08b6086046a835508ccf484f2974b6a6b0712a476260376c7a3b3e4bc4a47a14_bigui254, - 0x162cd2ca7fe3b5f1444bcec97812019bb6fd85fba6a0536a89643e15b9bb3b52_bigui254, - 0x28f1e03baaea9bbc05af5b11937e4f5cb5c9a9c1192063d1998c01c64d483a76_bigui254, - 0x1bdb062778d7c15da395af2734c25faa0127d2aab4aa71366031a0bb6791ce10_bigui254, - 0x2375839502e09890cb2914e829627e0e0fc98870b2324a8b50329ebdd24749cb_bigui254, + 0x08b6086046a835508ccf484f2974b6a6b0712a476260376c7a3b3e4bc4a47a14_big_uint254, + 0x162cd2ca7fe3b5f1444bcec97812019bb6fd85fba6a0536a89643e15b9bb3b52_big_uint254, + 0x28f1e03baaea9bbc05af5b11937e4f5cb5c9a9c1192063d1998c01c64d483a76_big_uint254, + 0x1bdb062778d7c15da395af2734c25faa0127d2aab4aa71366031a0bb6791ce10_big_uint254, + 0x2375839502e09890cb2914e829627e0e0fc98870b2324a8b50329ebdd24749cb_big_uint254, }}, {{ - 0x1fa8662fbcb61fb3ad7c55668dc9423a332dc87cfb2df456e92d33611ed7bb50_bigui254, - 0x1e4fad2dd6b0a6f1f8707f721716c8a446e2fb2c47a5138f3f7f9736079d7694_bigui254, - 0x211256d16c7269fd6df6f5fcdd1fa788ba3bd050059f53d261b0f5f13731ffe7_bigui254, - 0x2e49084b336eceaa4f8e2a2e6af08318f42060e574dda341f4a1079b12bcc5a5_bigui254, - 0x0ce19f54cdc39f7f3bf35192ac6808211aecea08dfe14cab758d25891fb00bb9_bigui254, + 0x1fa8662fbcb61fb3ad7c55668dc9423a332dc87cfb2df456e92d33611ed7bb50_big_uint254, + 0x1e4fad2dd6b0a6f1f8707f721716c8a446e2fb2c47a5138f3f7f9736079d7694_big_uint254, + 0x211256d16c7269fd6df6f5fcdd1fa788ba3bd050059f53d261b0f5f13731ffe7_big_uint254, + 0x2e49084b336eceaa4f8e2a2e6af08318f42060e574dda341f4a1079b12bcc5a5_big_uint254, + 0x0ce19f54cdc39f7f3bf35192ac6808211aecea08dfe14cab758d25891fb00bb9_big_uint254, }}, {{ - 0x0011c5d56c390e893cc394221261d8748dc60451e4ae4e1c84a8468bab2c14cb_bigui254, - 0x17d79ff06b63ac2a8a9e05ee6af3dbb7ca60e17bfa39b47514a8cd8051579b4c_bigui254, - 0x19a7d3a446cb5393dc74560093592b06b1a8b35cd6416a2ecab00173639015fa_bigui254, - 0x030c00a0933dcdba2a808b2e1b9282f331f04596d8928da7aa6c3c97237037a6_bigui254, - 0x16bcb447ce2d50f3ae25ad080695382e935d2d00184c4acc9370be8aab64139c_bigui254, + 0x0011c5d56c390e893cc394221261d8748dc60451e4ae4e1c84a8468bab2c14cb_big_uint254, + 0x17d79ff06b63ac2a8a9e05ee6af3dbb7ca60e17bfa39b47514a8cd8051579b4c_big_uint254, + 0x19a7d3a446cb5393dc74560093592b06b1a8b35cd6416a2ecab00173639015fa_big_uint254, + 0x030c00a0933dcdba2a808b2e1b9282f331f04596d8928da7aa6c3c97237037a6_big_uint254, + 0x16bcb447ce2d50f3ae25ad080695382e935d2d00184c4acc9370be8aab64139c_big_uint254, }}, {{ - 0x12341b46b0150aa25ea4ec8715312997e62124f37cab7b6d39255b7cd66feb1d_bigui254, - 0x0e86d13917f44050b72a97b2bf610c84002fc28e296d1044dc89212db6a49ff4_bigui254, - 0x08e6eb4089d37d66d357e00b53d7f30d1052a181f8f2eb14d059025b110c7262_bigui254, - 0x2ea123856245f6c84738d15dd1481a0c0415ccb351a1e0cee10c48ce97ca7b18_bigui254, - 0x2dca72b2ebcab8c23446e00330b163104195789025413abf664db0f9c84dfa6f_bigui254, + 0x12341b46b0150aa25ea4ec8715312997e62124f37cab7b6d39255b7cd66feb1d_big_uint254, + 0x0e86d13917f44050b72a97b2bf610c84002fc28e296d1044dc89212db6a49ff4_big_uint254, + 0x08e6eb4089d37d66d357e00b53d7f30d1052a181f8f2eb14d059025b110c7262_big_uint254, + 0x2ea123856245f6c84738d15dd1481a0c0415ccb351a1e0cee10c48ce97ca7b18_big_uint254, + 0x2dca72b2ebcab8c23446e00330b163104195789025413abf664db0f9c84dfa6f_big_uint254, }}, {{ - 0x06ff9ed50d327e8463329f585ec924b3f2f6b4235f036fa4c64a26cbd42b6a6b_bigui254, - 0x246a10b7e3e0089947f7c9bda3d54df8e2a60e0cca84ea2ac630a4535afbf730_bigui254, - 0x22a63501c5f04b9018719ed99d700ee52f846a715ae67ad75c96b39d688b6691_bigui254, - 0x2f4c50477f7fd9c671799ac5d2e224cdb9164f58351d8aa140ec07e514fae937_bigui254, - 0x10ffb7aad1f51c7d13b17f4d876d9a1e38f0ba8a4a23d4b50cda32cad851567e_bigui254, + 0x06ff9ed50d327e8463329f585ec924b3f2f6b4235f036fa4c64a26cbd42b6a6b_big_uint254, + 0x246a10b7e3e0089947f7c9bda3d54df8e2a60e0cca84ea2ac630a4535afbf730_big_uint254, + 0x22a63501c5f04b9018719ed99d700ee52f846a715ae67ad75c96b39d688b6691_big_uint254, + 0x2f4c50477f7fd9c671799ac5d2e224cdb9164f58351d8aa140ec07e514fae937_big_uint254, + 0x10ffb7aad1f51c7d13b17f4d876d9a1e38f0ba8a4a23d4b50cda32cad851567e_big_uint254, }}, {{ - 0x0e9cefddc3c2d3bea4d39722532d5420784027352187e7af1a056935c35803ae_bigui254, - 0x07af84a4d3141e7ac23352e6dc6ea4afa1656f96a33c8978a3e83bdd4ba62b41_bigui254, - 0x2d9e31a10aebc761f8de00d14b1e566d1a39323d6e89b638e940f3ec8a22c3c5_bigui254, - 0x27f19a6532e66b5333db1afd592f66f1d36034b314dad8447656747be27e64c7_bigui254, - 0x0058fa3c8454d63354b2024c3b4a577a180ed99f8f3155cd7e4d617d47d07ffd_bigui254, + 0x0e9cefddc3c2d3bea4d39722532d5420784027352187e7af1a056935c35803ae_big_uint254, + 0x07af84a4d3141e7ac23352e6dc6ea4afa1656f96a33c8978a3e83bdd4ba62b41_big_uint254, + 0x2d9e31a10aebc761f8de00d14b1e566d1a39323d6e89b638e940f3ec8a22c3c5_big_uint254, + 0x27f19a6532e66b5333db1afd592f66f1d36034b314dad8447656747be27e64c7_big_uint254, + 0x0058fa3c8454d63354b2024c3b4a577a180ed99f8f3155cd7e4d617d47d07ffd_big_uint254, }}, {{ - 0x041627b6715b780967957c080699343eb0414a205d3a175d708964956816a5d5_bigui254, - 0x006ac49dd9253edc7f632e57b958ccecd98201471cf1f66589888f12b727c52d_bigui254, - 0x0131adffd8bd7254b1d8c3616bbe3386ec0c9c0d6d25a9a4ec46a6bf18301398_bigui254, - 0x1c4a6f52c9fccf7a4138e413ef62a28377977ad7e25e49a3cf030e1cd8f9f5b6_bigui254, - 0x03f2a6be51ec677f946551b3860ea479fee048ae2078aeb7d1f7958d2c2645f6_bigui254, + 0x041627b6715b780967957c080699343eb0414a205d3a175d708964956816a5d5_big_uint254, + 0x006ac49dd9253edc7f632e57b958ccecd98201471cf1f66589888f12b727c52d_big_uint254, + 0x0131adffd8bd7254b1d8c3616bbe3386ec0c9c0d6d25a9a4ec46a6bf18301398_big_uint254, + 0x1c4a6f52c9fccf7a4138e413ef62a28377977ad7e25e49a3cf030e1cd8f9f5b6_big_uint254, + 0x03f2a6be51ec677f946551b3860ea479fee048ae2078aeb7d1f7958d2c2645f6_big_uint254, }}, {{ - 0x2da770aad2c2eb09391a0cb78ef3a9648a1372d8543119564d7376396b8ddc62_bigui254, - 0x15278463665f74cddc1802febfab02cec9d45fe866c359c738062afb75d64a03_bigui254, - 0x12fe278aa36544eac9731027090518d434e38ea966a08a6f8d580638ac54c773_bigui254, - 0x149b9c802182558a4c45d119d3f4cc7fd8587604ca4f0d6e21b06ff30b6a23b6_bigui254, - 0x0812e7b4d847bc8517d19319772f3c9855e044fd60dbac9a0adc4959b691dfe4_bigui254, + 0x2da770aad2c2eb09391a0cb78ef3a9648a1372d8543119564d7376396b8ddc62_big_uint254, + 0x15278463665f74cddc1802febfab02cec9d45fe866c359c738062afb75d64a03_big_uint254, + 0x12fe278aa36544eac9731027090518d434e38ea966a08a6f8d580638ac54c773_big_uint254, + 0x149b9c802182558a4c45d119d3f4cc7fd8587604ca4f0d6e21b06ff30b6a23b6_big_uint254, + 0x0812e7b4d847bc8517d19319772f3c9855e044fd60dbac9a0adc4959b691dfe4_big_uint254, }}, {{ - 0x02ed8d8ddeafe3d9d8df7f28a0bfaa7f555813c7e7503aea2a66973703a0c61b_bigui254, - 0x0ebd073ba0537b514deb6029f921029e55e5e4d9a03d6b6ba1304038662d4db8_bigui254, - 0x15c754d5b14b2c4205c6ba8d2ccd028255b3e792c6afa08b44ee75b62eff9f59_bigui254, - 0x169515c89ac5479db0ed8fa6fa311b391cc1235270f4cbc5c29e7cbc30e8732a_bigui254, - 0x25479fbfb3a68f982388f2621001101608bdc29f6ff037696d9161f5cd9a4fef_bigui254, + 0x02ed8d8ddeafe3d9d8df7f28a0bfaa7f555813c7e7503aea2a66973703a0c61b_big_uint254, + 0x0ebd073ba0537b514deb6029f921029e55e5e4d9a03d6b6ba1304038662d4db8_big_uint254, + 0x15c754d5b14b2c4205c6ba8d2ccd028255b3e792c6afa08b44ee75b62eff9f59_big_uint254, + 0x169515c89ac5479db0ed8fa6fa311b391cc1235270f4cbc5c29e7cbc30e8732a_big_uint254, + 0x25479fbfb3a68f982388f2621001101608bdc29f6ff037696d9161f5cd9a4fef_big_uint254, }}, {{ - 0x14475c4bd520451f3c852cb0311a578ca7f8e6e972182196ce09486e94be6071_bigui254, - 0x045a691066cc66bec9baf2798833a1dfd3a847502aec8d5f5c4e73363d097799_bigui254, - 0x26029c0c267c799fb833ac8a11e3a3f0147a8ca037221b90013b8bcb37eba683_bigui254, - 0x163facb34ff572fbf7c946969c1c260873ce12a6a94a3e45b8101d5b948d1641_bigui254, - 0x2c714e96e1913b351d969320cc69d5ec13e06a6275e58688af8ee00c4240ee28_bigui254, + 0x14475c4bd520451f3c852cb0311a578ca7f8e6e972182196ce09486e94be6071_big_uint254, + 0x045a691066cc66bec9baf2798833a1dfd3a847502aec8d5f5c4e73363d097799_big_uint254, + 0x26029c0c267c799fb833ac8a11e3a3f0147a8ca037221b90013b8bcb37eba683_big_uint254, + 0x163facb34ff572fbf7c946969c1c260873ce12a6a94a3e45b8101d5b948d1641_big_uint254, + 0x2c714e96e1913b351d969320cc69d5ec13e06a6275e58688af8ee00c4240ee28_big_uint254, }}, {{ - 0x1c1661e2a7ce74b75aba84665ecd2bf9ddd6268f06debfe2d52b804eff1d5fa6_bigui254, - 0x06a69ae795ee9bfe5e5af3e6619a47d26635b34c2a0889fea8c3c068b7dc2c71_bigui254, - 0x113d58535d892115c5d28b4c19a3609374dbdbadf54195c731416c85d731d46a_bigui254, - 0x2ab89102e2b8d5e638ff97d761da6042e534f1ff47f7917a2ca1a74063b46101_bigui254, - 0x03c11ca79e41fdfe962730c45e699546349031893da2b4fd39804fd6a15ad1b3_bigui254, + 0x1c1661e2a7ce74b75aba84665ecd2bf9ddd6268f06debfe2d52b804eff1d5fa6_big_uint254, + 0x06a69ae795ee9bfe5e5af3e6619a47d26635b34c2a0889fea8c3c068b7dc2c71_big_uint254, + 0x113d58535d892115c5d28b4c19a3609374dbdbadf54195c731416c85d731d46a_big_uint254, + 0x2ab89102e2b8d5e638ff97d761da6042e534f1ff47f7917a2ca1a74063b46101_big_uint254, + 0x03c11ca79e41fdfe962730c45e699546349031893da2b4fd39804fd6a15ad1b3_big_uint254, }}, {{ - 0x27096c672621403888014ddbbbfc9da1f7f67b4d4cfe846c6adf040faaf2669c_bigui254, - 0x2de32ad15497aef4d504d4deeb53b13c66db790ce486130caa9dc2b57ef5be0d_bigui254, - 0x0dc108f2b0a280d2fd5d341310722a2d28c738dddaec9f3d255754448eefd001_bigui254, - 0x1869f3b763fe8164c96858a1bb9efad5bcdc3eebc409be7c7d34ca50365d832f_bigui254, - 0x022ed3a2d9ff31cbf82559fe6a911843b616945e16a568d48c6d33767129682d_bigui254, + 0x27096c672621403888014ddbbbfc9da1f7f67b4d4cfe846c6adf040faaf2669c_big_uint254, + 0x2de32ad15497aef4d504d4deeb53b13c66db790ce486130caa9dc2b57ef5be0d_big_uint254, + 0x0dc108f2b0a280d2fd5d341310722a2d28c738dddaec9f3d255754448eefd001_big_uint254, + 0x1869f3b763fe8164c96858a1bb9efad5bcdc3eebc409be7c7d34ca50365d832f_big_uint254, + 0x022ed3a2d9ff31cbf82559fe6a911843b616945e16a568d48c6d33767129682d_big_uint254, }}, {{ - 0x2155d6005210169e3944ed1365bd0e7292fca1f27c19c26610c6aec077d026bc_bigui254, - 0x0de1ba7a562a8f7acae93263f5f1b4bbec0c0556c91af3db3ea5928c8caeae85_bigui254, - 0x05dbb4406024beabcfce5bf46ec7da38126f740bce8d637b6351dfa7da902563_bigui254, - 0x05d4149baac413bed4d8dc8ad778d32c00e789e3fcd72dccc97e5427a368fd5e_bigui254, - 0x01cdf8b452d97c2b9be5046e7397e76ff0b6802fa941c7879212e22172c27b2e_bigui254, + 0x2155d6005210169e3944ed1365bd0e7292fca1f27c19c26610c6aec077d026bc_big_uint254, + 0x0de1ba7a562a8f7acae93263f5f1b4bbec0c0556c91af3db3ea5928c8caeae85_big_uint254, + 0x05dbb4406024beabcfce5bf46ec7da38126f740bce8d637b6351dfa7da902563_big_uint254, + 0x05d4149baac413bed4d8dc8ad778d32c00e789e3fcd72dccc97e5427a368fd5e_big_uint254, + 0x01cdf8b452d97c2b9be5046e7397e76ff0b6802fa941c7879212e22172c27b2e_big_uint254, }}, {{ - 0x1fc6a71867027f56af8085ff81adce33c4d7c5015eced8c71b0a22279d46c07c_bigui254, - 0x1040bef4c642d0345d4d59a5a7a3a42ba9e185b75306d9c3568e0fda96aaafc2_bigui254, - 0x16b79c3a6bf316e0ff2c91b289334a4d2b21e95676431918a8081475ab8fad0d_bigui254, - 0x20dff1bc30f6db6b434b3a1387e3c8c6a34070e52b601fc13cbe1cdcd59f474e_bigui254, - 0x0212ac2ab7a6eaaec254955030a970f8062dd4171a726a8bdfb7fd8512ae060d_bigui254, + 0x1fc6a71867027f56af8085ff81adce33c4d7c5015eced8c71b0a22279d46c07c_big_uint254, + 0x1040bef4c642d0345d4d59a5a7a3a42ba9e185b75306d9c3568e0fda96aaafc2_big_uint254, + 0x16b79c3a6bf316e0ff2c91b289334a4d2b21e95676431918a8081475ab8fad0d_big_uint254, + 0x20dff1bc30f6db6b434b3a1387e3c8c6a34070e52b601fc13cbe1cdcd59f474e_big_uint254, + 0x0212ac2ab7a6eaaec254955030a970f8062dd4171a726a8bdfb7fd8512ae060d_big_uint254, }}, {{ - 0x2f29377491474442869a109c9215637cb02dc03134f0044213c8119f6996ae09_bigui254, - 0x0984ca6a5f9185d525ec93c33fea603273be9f3866aa284c5837d9f32d814bfa_bigui254, - 0x0d080a6b6b3b60700d299bd6fa81220de491361c8a6bd19ceb0ee9294b24f028_bigui254, - 0x0e65cd99e84b052f6789530638cb0ad821acc85b6400264dce929ed7c85a4544_bigui254, - 0x2e208875bc7ac1224808f72c716cd05ee30e3d20380ff6a655975da12736920b_bigui254, + 0x2f29377491474442869a109c9215637cb02dc03134f0044213c8119f6996ae09_big_uint254, + 0x0984ca6a5f9185d525ec93c33fea603273be9f3866aa284c5837d9f32d814bfa_big_uint254, + 0x0d080a6b6b3b60700d299bd6fa81220de491361c8a6bd19ceb0ee9294b24f028_big_uint254, + 0x0e65cd99e84b052f6789530638cb0ad821acc85b6400264dce929ed7c85a4544_big_uint254, + 0x2e208875bc7ac1224808f72c716cd05ee30e3d20380ff6a655975da12736920b_big_uint254, }}, {{ - 0x2989f3ae477c2fd376a0b0ff3d7dfac1ae2e3b894afd29f64a60d1aa8592bad5_bigui254, - 0x11361ce544e941379222d101e6fac0ce918106a463290a3e3a74c3cea7189459_bigui254, - 0x1e8d014b86cb5a7da539e10c173f6a75d122a822b8fb366c34c8bd05a2061438_bigui254, - 0x173f65adec8deee27ba812ad29558e23a0c2324167ef6c91212ee2c28ee98733_bigui254, - 0x01c36daaf9f01f1bafee8bd0c779ac3e5da5df7ad45499d0991bd695310eddd9_bigui254, + 0x2989f3ae477c2fd376a0b0ff3d7dfac1ae2e3b894afd29f64a60d1aa8592bad5_big_uint254, + 0x11361ce544e941379222d101e6fac0ce918106a463290a3e3a74c3cea7189459_big_uint254, + 0x1e8d014b86cb5a7da539e10c173f6a75d122a822b8fb366c34c8bd05a2061438_big_uint254, + 0x173f65adec8deee27ba812ad29558e23a0c2324167ef6c91212ee2c28ee98733_big_uint254, + 0x01c36daaf9f01f1bafee8bd0c779ac3e5da5df7ad45499d0991bd695310eddd9_big_uint254, }}, {{ - 0x1353acb08c05adb4aa9ab1c485bb85fff277d1a3f2fc89944a6f5741f381e562_bigui254, - 0x2e5abd2537207cad1860e71ea1188ee4009d33deb4f93aeb20f1c87a3b064d34_bigui254, - 0x191d5c5edaef42d3d02eedbb7ab8562513deb4eb34913a13421726ba8f69455c_bigui254, - 0x11d7f8d1f269264282a263fea6d7599d82a04c74c127de9dee7939dd2dcd089e_bigui254, - 0x04218fde366829ed90f79ad5e67997973445cb4cd6bc6f951bad085286cac971_bigui254, + 0x1353acb08c05adb4aa9ab1c485bb85fff277d1a3f2fc89944a6f5741f381e562_big_uint254, + 0x2e5abd2537207cad1860e71ea1188ee4009d33deb4f93aeb20f1c87a3b064d34_big_uint254, + 0x191d5c5edaef42d3d02eedbb7ab8562513deb4eb34913a13421726ba8f69455c_big_uint254, + 0x11d7f8d1f269264282a263fea6d7599d82a04c74c127de9dee7939dd2dcd089e_big_uint254, + 0x04218fde366829ed90f79ad5e67997973445cb4cd6bc6f951bad085286cac971_big_uint254, }}, {{ - 0x0070772f7cf52453048397ca5f47a202027b73b489301c3227b71c730d76d6dd_bigui254, - 0x038a389baef5d9a7c865b065687a1d9b67681a98cd051634c1dc04dbe3d2b861_bigui254, - 0x09a5eefab8b36a80cda446b2b4b59ccd0f39d00966a50beaf19860789015a6e5_bigui254, - 0x01b588848b8b47c8b969c145109b4b583d9ec99edfacb7489d16212c7584cd8c_bigui254, - 0x0b846e4a390e560f6e1af6dfc3341419545e5abfa323d817fed91e30d42954a6_bigui254, + 0x0070772f7cf52453048397ca5f47a202027b73b489301c3227b71c730d76d6dd_big_uint254, + 0x038a389baef5d9a7c865b065687a1d9b67681a98cd051634c1dc04dbe3d2b861_big_uint254, + 0x09a5eefab8b36a80cda446b2b4b59ccd0f39d00966a50beaf19860789015a6e5_big_uint254, + 0x01b588848b8b47c8b969c145109b4b583d9ec99edfacb7489d16212c7584cd8c_big_uint254, + 0x0b846e4a390e560f6e1af6dfc3341419545e5abfa323d817fed91e30d42954a6_big_uint254, }}, {{ - 0x23a6679c7d9adb660d43a02ddb900040eb1513bc394fc4f985cabfe85ce72fe3_bigui254, - 0x2e0374a699197e343e5caa35f1351e9f4c3402fb7c85ecccf72f31d6fe089254_bigui254, - 0x0752cd899e52dc4d7f7a08af4cde3ff64b8cc0b1176bb9ec37d41913a7a27b48_bigui254, - 0x068f8813127299dac349a2b6d57397a50275142b664b802c99e2873dd7ae55a7_bigui254, - 0x2ba70a102355d549677574167434b3f986872d04a295b5b8b374330f2da202b5_bigui254 + 0x23a6679c7d9adb660d43a02ddb900040eb1513bc394fc4f985cabfe85ce72fe3_big_uint254, + 0x2e0374a699197e343e5caa35f1351e9f4c3402fb7c85ecccf72f31d6fe089254_big_uint254, + 0x0752cd899e52dc4d7f7a08af4cde3ff64b8cc0b1176bb9ec37d41913a7a27b48_big_uint254, + 0x068f8813127299dac349a2b6d57397a50275142b664b802c99e2873dd7ae55a7_big_uint254, + 0x2ba70a102355d549677574167434b3f986872d04a295b5b8b374330f2da202b5_big_uint254 }}, {{ - 0x2c467af88748abf6a334d1df03b5521309f9099b825dd289b8609e70a0b50828_bigui254, - 0x05c5f20bef1bd82701009a2b448ae881e3a52c2d1a31957296d29e5763e8f497_bigui254, - 0x0dc6385fdc567be5842a381f6006e2c60cd083a2c649d9f23ac8c9fe61b73871_bigui254, - 0x142d3983f3dc7f7e19d49911b8670fa70378d5b84150d25ed255baa8114b369c_bigui254, - 0x29a01efb2f6aa894fd7e6d98c96a0fa0f36f86a7a99aa35c00fa18c1b2df67bf_bigui254 + 0x2c467af88748abf6a334d1df03b5521309f9099b825dd289b8609e70a0b50828_big_uint254, + 0x05c5f20bef1bd82701009a2b448ae881e3a52c2d1a31957296d29e5763e8f497_big_uint254, + 0x0dc6385fdc567be5842a381f6006e2c60cd083a2c649d9f23ac8c9fe61b73871_big_uint254, + 0x142d3983f3dc7f7e19d49911b8670fa70378d5b84150d25ed255baa8114b369c_big_uint254, + 0x29a01efb2f6aa894fd7e6d98c96a0fa0f36f86a7a99aa35c00fa18c1b2df67bf_big_uint254 }}, {{ - 0x0525ffee737d605138c4a5066644ec630ab9e8afc64555b7d2a1af04eb613a76_bigui254, - 0x1e807dca81d79581f076677ca0e822767e164f614910264ef177cf4238301dc8_bigui254, - 0x0385fb3f89c74dc993510816472474d34c0223e0f733a52fdba56082dbd8757c_bigui254, - 0x037640dc1afc0143e1a6298e53cae59fcfabd7016fd6ef1af558f337bab0ea01_bigui254, - 0x1341999a1ed86919f12a6c5260829eee5fd56cf031da8050b7e4c0de896074b4_bigui254 + 0x0525ffee737d605138c4a5066644ec630ab9e8afc64555b7d2a1af04eb613a76_big_uint254, + 0x1e807dca81d79581f076677ca0e822767e164f614910264ef177cf4238301dc8_big_uint254, + 0x0385fb3f89c74dc993510816472474d34c0223e0f733a52fdba56082dbd8757c_big_uint254, + 0x037640dc1afc0143e1a6298e53cae59fcfabd7016fd6ef1af558f337bab0ea01_big_uint254, + 0x1341999a1ed86919f12a6c5260829eee5fd56cf031da8050b7e4c0de896074b4_big_uint254 }}, {{ - 0x069eb075866b0af356906d4bafb10ad773afd642efdcc5657b244f65bed8ece7_bigui254, - 0x171c0b81e62136e395b38e8e08b3e646d2726101d3afaa02ea1909a619033696_bigui254, - 0x2c81814c9453f51cb6eb55c311753e84cbbdcb39bfe696f95575107502acced8_bigui254, - 0x29d843c0415d35d9e3b33fadcf274b2ab04b39032adca92ce39b8a86a7c3a604_bigui254, - 0x085d6a1070f3513d8436bccdabb78750d8e15ea5947f2cdaa7669cf3fae7728b_bigui254 + 0x069eb075866b0af356906d4bafb10ad773afd642efdcc5657b244f65bed8ece7_big_uint254, + 0x171c0b81e62136e395b38e8e08b3e646d2726101d3afaa02ea1909a619033696_big_uint254, + 0x2c81814c9453f51cb6eb55c311753e84cbbdcb39bfe696f95575107502acced8_big_uint254, + 0x29d843c0415d35d9e3b33fadcf274b2ab04b39032adca92ce39b8a86a7c3a604_big_uint254, + 0x085d6a1070f3513d8436bccdabb78750d8e15ea5947f2cdaa7669cf3fae7728b_big_uint254 }}, {{ - 0x11820363ed541daa10a44ba665bf302cdbf1dd4e6706b02c9e2a5cda412fc394_bigui254, - 0x201935a58f5c57fc02b60d61a83785bddfd3150e05f1df5d105840b751a16317_bigui254, - 0x0a8c2820c56971aae27a952abd33a03d46794eedd686cd8ecfed610e87c02e9a_bigui254, - 0x180638ff301a64ca04abd6d0bd7500b6650b65ff33e6be1fd50dbc163a281877_bigui254, - 0x095c716266f1de59044f97114a4158a3f85ca8a937cfbec63e9b321a812dd36b_bigui254 + 0x11820363ed541daa10a44ba665bf302cdbf1dd4e6706b02c9e2a5cda412fc394_big_uint254, + 0x201935a58f5c57fc02b60d61a83785bddfd3150e05f1df5d105840b751a16317_big_uint254, + 0x0a8c2820c56971aae27a952abd33a03d46794eedd686cd8ecfed610e87c02e9a_big_uint254, + 0x180638ff301a64ca04abd6d0bd7500b6650b65ff33e6be1fd50dbc163a281877_big_uint254, + 0x095c716266f1de59044f97114a4158a3f85ca8a937cfbec63e9b321a812dd36b_big_uint254 }}, {{ - 0x17c31ea02fbc378320d86ffed6c7ca1583b618c5c1a687818d4087a497d73490_bigui254, - 0x05b86c4bb8ef318b6a7227e4192d149d3c17a9764ccd660de4d50a77f192a91b_bigui254, - 0x265bc95df4a4c4876ff70d7ea2fde2c7ab15f4a6ae0d237cd6ce74ba986c7a7b_bigui254, - 0x24752b47bc6c6bc8d9bbe48f5fef2f6908701739c5f5b4b3d6c886d4715c7929_bigui254, - 0x14814a1e0f492a4ea0d86e527a96482178d624b98da96ee5e583b9324d974efe_bigui254 + 0x17c31ea02fbc378320d86ffed6c7ca1583b618c5c1a687818d4087a497d73490_big_uint254, + 0x05b86c4bb8ef318b6a7227e4192d149d3c17a9764ccd660de4d50a77f192a91b_big_uint254, + 0x265bc95df4a4c4876ff70d7ea2fde2c7ab15f4a6ae0d237cd6ce74ba986c7a7b_big_uint254, + 0x24752b47bc6c6bc8d9bbe48f5fef2f6908701739c5f5b4b3d6c886d4715c7929_big_uint254, + 0x14814a1e0f492a4ea0d86e527a96482178d624b98da96ee5e583b9324d974efe_big_uint254 }}, {{ - 0x10def931073b6479bd60577378f29381997c8e041d3cfb3dc7523bca906f00bd_bigui254, - 0x14f7ae770bf7e95f7f706c0d8ab4ed03fa0b880d28c69d031b4592c98610175f_bigui254, - 0x1aef50a0cee751b59f926af40e8035d19decc9d428ebe4e775c5cc9dce1ce589_bigui254, - 0x041935607172f68eba65ca60068dfe3b086c2a2d57d09602951214b57e73cf5a_bigui254, - 0x26863e9dd24255d1573bd083959b856c0493fbefe83c819837a151d3bf452cb8_bigui254 + 0x10def931073b6479bd60577378f29381997c8e041d3cfb3dc7523bca906f00bd_big_uint254, + 0x14f7ae770bf7e95f7f706c0d8ab4ed03fa0b880d28c69d031b4592c98610175f_big_uint254, + 0x1aef50a0cee751b59f926af40e8035d19decc9d428ebe4e775c5cc9dce1ce589_big_uint254, + 0x041935607172f68eba65ca60068dfe3b086c2a2d57d09602951214b57e73cf5a_big_uint254, + 0x26863e9dd24255d1573bd083959b856c0493fbefe83c819837a151d3bf452cb8_big_uint254 }}, {{ - 0x2036efb6f9830965eb3d7a068bd087c9f5adf251ba62052c652738e63ff8b3af_bigui254, - 0x0c712a975b74dc9d766b639a029969ca30be4f75a753f854b00fa4f1b4f4ee9b_bigui254, - 0x08014dab3cd1667e27afc99bfac1e6807afdff6456492ca3375731d387539699_bigui254, - 0x198d07192db4fac2a82a4a79839d6a2b97c4dd4d37b4e8f3b53009f79b34e6a4_bigui254, - 0x29eb1de42a3ad381b23b4131426897a32709b29d53bb946dfd15784d1f63e572_bigui254 + 0x2036efb6f9830965eb3d7a068bd087c9f5adf251ba62052c652738e63ff8b3af_big_uint254, + 0x0c712a975b74dc9d766b639a029969ca30be4f75a753f854b00fa4f1b4f4ee9b_big_uint254, + 0x08014dab3cd1667e27afc99bfac1e6807afdff6456492ca3375731d387539699_big_uint254, + 0x198d07192db4fac2a82a4a79839d6a2b97c4dd4d37b4e8f3b53009f79b34e6a4_big_uint254, + 0x29eb1de42a3ad381b23b4131426897a32709b29d53bb946dfd15784d1f63e572_big_uint254 }} }}; }; @@ -933,348 +933,348 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x3d955d6c02fe4d7cb500e12f2b55eff668a7b4386bd27413766713c93f2acfcd_bigui255, - 0x3798866f4e6058035dcf8addb2cf1771fac234bcc8fc05d6676e77e797f224bf_bigui255, - 0x2c51456a7bf2467eac813649f3f25ea896eac27c5da020dae54a6e640278fda2_bigui255 + 0x3d955d6c02fe4d7cb500e12f2b55eff668a7b4386bd27413766713c93f2acfcd_big_uint255, + 0x3798866f4e6058035dcf8addb2cf1771fac234bcc8fc05d6676e77e797f224bf_big_uint255, + 0x2c51456a7bf2467eac813649f3f25ea896eac27c5da020dae54a6e640278fda2_big_uint255 }}, {{ - 0x20088ca07bbcd7490a0218ebc0ecb31d0ea34840e2dc2d33a1a5adfecff83b43_bigui255, - 0x1d04ba0915e7807c968ea4b1cb2d610c7f9a16b4033f02ebacbb948c86a988c3_bigui255, - 0x5387ccd5729d7acbd09d96714d1d18bbd0eeaefb2ddee3d2ef573c9c7f953307_bigui255 + 0x20088ca07bbcd7490a0218ebc0ecb31d0ea34840e2dc2d33a1a5adfecff83b43_big_uint255, + 0x1d04ba0915e7807c968ea4b1cb2d610c7f9a16b4033f02ebacbb948c86a988c3_big_uint255, + 0x5387ccd5729d7acbd09d96714d1d18bbd0eeaefb2ddee3d2ef573c9c7f953307_big_uint255 }}, {{ - 0x1e208f585a72558534281562cad89659b428ec61433293a8d7f0f0e38a6726ac_bigui255, - 0x0455ebf862f0b60f69698e97d36e8aafd4d107cae2b61be1858b23a3363642e0_bigui255, - 0x569e2c206119e89455852059f707370e2c1fc9721f6c50991cedbbf782daef54_bigui255 + 0x1e208f585a72558534281562cad89659b428ec61433293a8d7f0f0e38a6726ac_big_uint255, + 0x0455ebf862f0b60f69698e97d36e8aafd4d107cae2b61be1858b23a3363642e0_big_uint255, + 0x569e2c206119e89455852059f707370e2c1fc9721f6c50991cedbbf782daef54_big_uint255 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x6c4ffa723eaf1a7bf74905cc7dae4ca9ff4a2c3bc81d42e09540d1f250910880_bigui255, - 0x54dd837eccf180c92c2f53a3476e45a156ab69a403b6b9fdfd8dd970fddcdd9a_bigui255, - 0x64f56d735286c35f0e7d0a29680d49d54fb924adccf8962eeee225bf9423a85e_bigui255 + 0x6c4ffa723eaf1a7bf74905cc7dae4ca9ff4a2c3bc81d42e09540d1f250910880_big_uint255, + 0x54dd837eccf180c92c2f53a3476e45a156ab69a403b6b9fdfd8dd970fddcdd9a_big_uint255, + 0x64f56d735286c35f0e7d0a29680d49d54fb924adccf8962eeee225bf9423a85e_big_uint255 }}, {{ - 0x670d5b6efe620f987d967fb13d2045ee3ac8e9cbf7d30e8594e733c7497910dc_bigui255, - 0x2ef5299e2077b2392ca874b015120d7e7530f277e06f78ee0b28f33550c68937_bigui255, - 0x0c0981889405b59c384e7dfa49cd4236e2f45ed024488f67c73f51c7c22d8095_bigui255 + 0x670d5b6efe620f987d967fb13d2045ee3ac8e9cbf7d30e8594e733c7497910dc_big_uint255, + 0x2ef5299e2077b2392ca874b015120d7e7530f277e06f78ee0b28f33550c68937_big_uint255, + 0x0c0981889405b59c384e7dfa49cd4236e2f45ed024488f67c73f51c7c22d8095_big_uint255 }}, {{ - 0x0d88548e6296171b26c61ea458288e5a0d048e2fdf5659de62cfca43f1649c82_bigui255, - 0x3371c00f3715d44abce4140202abaaa44995f6f1df12384222f61123faa6b638_bigui255, - 0x4ce428fec6d178d10348f4857f0006a652911085c8d86baa706f6d7975b0fe1b_bigui255 + 0x0d88548e6296171b26c61ea458288e5a0d048e2fdf5659de62cfca43f1649c82_big_uint255, + 0x3371c00f3715d44abce4140202abaaa44995f6f1df12384222f61123faa6b638_big_uint255, + 0x4ce428fec6d178d10348f4857f0006a652911085c8d86baa706f6d7975b0fe1b_big_uint255 }}, {{ - 0x1a3c26d755bf65326b03521c94582d91a3ae2c0d8dfb2a345847aece52070ab0_bigui255, - 0x02dbb4709583838c35a118742bf482d257ed4dfb212014c083a6b059adda82b5_bigui255, - 0x41f2dd64b9a0dcea721b0035259f45f2a9066690de8f13b9a48ead411d8ff5a7_bigui255 + 0x1a3c26d755bf65326b03521c94582d91a3ae2c0d8dfb2a345847aece52070ab0_big_uint255, + 0x02dbb4709583838c35a118742bf482d257ed4dfb212014c083a6b059adda82b5_big_uint255, + 0x41f2dd64b9a0dcea721b0035259f45f2a9066690de8f13b9a48ead411d8ff5a7_big_uint255 }}, {{ - 0x5f154892782617b26993eea6431580c0a82c0a4dd0efdb24688726b4108c46a8_bigui255, - 0x0db98520f9b97cbcdb557872f4b7f81567a1be374f60fc4281a6e04079e00c0c_bigui255, - 0x71564ed66b41e872ca76aaf9b2fa0ca0695f2162705ca6a1f7ef043fd957f12d_bigui255 + 0x5f154892782617b26993eea6431580c0a82c0a4dd0efdb24688726b4108c46a8_big_uint255, + 0x0db98520f9b97cbcdb557872f4b7f81567a1be374f60fc4281a6e04079e00c0c_big_uint255, + 0x71564ed66b41e872ca76aaf9b2fa0ca0695f2162705ca6a1f7ef043fd957f12d_big_uint255 }}, {{ - 0x69191b1fe6acbf888d0c723f754c89e8bd29cb34b1e43ab27be105ea6b38d8b8_bigui255, - 0x04e9919eb06ff327152cfed30028c5edc667809ce1512e5963329c7040d29350_bigui255, - 0x573bc78e3ed162e5edd38595feead65481c991b856178f6182a0c7090ff71288_bigui255 + 0x69191b1fe6acbf888d0c723f754c89e8bd29cb34b1e43ab27be105ea6b38d8b8_big_uint255, + 0x04e9919eb06ff327152cfed30028c5edc667809ce1512e5963329c7040d29350_big_uint255, + 0x573bc78e3ed162e5edd38595feead65481c991b856178f6182a0c7090ff71288_big_uint255 }}, {{ - 0x102800af87fd92eb1dec942469e076602695a1996a4db968bb7f38ddd455db0b_bigui255, - 0x593d1894c17e5b626f8779acc32d8f188d619c02902ef775ebe81ef1c0fb7a8f_bigui255, - 0x66850b1b1d5d4e07b03bac49c9feadd051e374908196a806bd296957fa2fe2b7_bigui255 + 0x102800af87fd92eb1dec942469e076602695a1996a4db968bb7f38ddd455db0b_big_uint255, + 0x593d1894c17e5b626f8779acc32d8f188d619c02902ef775ebe81ef1c0fb7a8f_big_uint255, + 0x66850b1b1d5d4e07b03bac49c9feadd051e374908196a806bd296957fa2fe2b7_big_uint255 }}, {{ - 0x46aaa1206232ceb480d6aa16cc03465d8e96a807b28c1e494a81c43e0faffc57_bigui255, - 0x2102aab97ce5bd94ffd5db908bf28b7f8c36671191d4ee9ac1c5f2fae4780579_bigui255, - 0x14387b24d1c0c712bbe720164c4093185fcb546a2a7d481abc94e5b8fb5178b7_bigui255 + 0x46aaa1206232ceb480d6aa16cc03465d8e96a807b28c1e494a81c43e0faffc57_big_uint255, + 0x2102aab97ce5bd94ffd5db908bf28b7f8c36671191d4ee9ac1c5f2fae4780579_big_uint255, + 0x14387b24d1c0c712bbe720164c4093185fcb546a2a7d481abc94e5b8fb5178b7_big_uint255 }}, {{ - 0x5f2179b3a7845836cfced83e64e206f6a6cef2cf737f020b5cfd713c9550fe9f_bigui255, - 0x1787986ab56e1b56b5443334562b0bc3657d27323b87e3a8485e68ab96d57188_bigui255, - 0x39ef4b00deefe7e7451adda44428aa22074c496de2c9ed67dcf4861da65f543a_bigui255 + 0x5f2179b3a7845836cfced83e64e206f6a6cef2cf737f020b5cfd713c9550fe9f_big_uint255, + 0x1787986ab56e1b56b5443334562b0bc3657d27323b87e3a8485e68ab96d57188_big_uint255, + 0x39ef4b00deefe7e7451adda44428aa22074c496de2c9ed67dcf4861da65f543a_big_uint255 }}, {{ - 0x7271d384cf5c90fd0c48af190c5c765937c7468088b081a99337e6eae53bb20c_bigui255, - 0x6669e58d04248ca86024fbc196e5f306e522423aa71f84225435328b37a1dd3d_bigui255, - 0x0c1f1b492b27539d754cba5e46edc1f1ac1c5696da8eb19416b07420bb321c65_bigui255 + 0x7271d384cf5c90fd0c48af190c5c765937c7468088b081a99337e6eae53bb20c_big_uint255, + 0x6669e58d04248ca86024fbc196e5f306e522423aa71f84225435328b37a1dd3d_big_uint255, + 0x0c1f1b492b27539d754cba5e46edc1f1ac1c5696da8eb19416b07420bb321c65_big_uint255 }}, {{ - 0x1c4d41a133b97dc467f1f184cf191f331dfc38e79e7e53516c39848c9bd44692_bigui255, - 0x369ea8e699181b1cf88be9205ab840180c9288e67a359dc0dda4ac74cf9768e2_bigui255, - 0x4cfa7d72afed332bf0b8a2a719123f7ebfa714b9e3100eaa533dbde6fb985043_bigui255 + 0x1c4d41a133b97dc467f1f184cf191f331dfc38e79e7e53516c39848c9bd44692_big_uint255, + 0x369ea8e699181b1cf88be9205ab840180c9288e67a359dc0dda4ac74cf9768e2_big_uint255, + 0x4cfa7d72afed332bf0b8a2a719123f7ebfa714b9e3100eaa533dbde6fb985043_big_uint255 }}, {{ - 0x4e592fcde9f3c360e54c6f34d7a8bd41889942e9fe23d9fd4a9e5b3bfbbb3e45_bigui255, - 0x032b5885586212fb235570996d3a4c40f54ff91598a948ec2722ed865b8438a5_bigui255, - 0x03f3178956cfd3e2e6614fb134597d3b3cff0d8a33f3523d825982990c068940_bigui255 + 0x4e592fcde9f3c360e54c6f34d7a8bd41889942e9fe23d9fd4a9e5b3bfbbb3e45_big_uint255, + 0x032b5885586212fb235570996d3a4c40f54ff91598a948ec2722ed865b8438a5_big_uint255, + 0x03f3178956cfd3e2e6614fb134597d3b3cff0d8a33f3523d825982990c068940_big_uint255 }}, {{ - 0x3126e84dfd67a22bf0ce0d9273d8ad40e6109af5bb2bd78d0ac08a16c6248f74_bigui255, - 0x3527888062f1e2738d7b928e9af244f0a39011390c2dbbcf56d8e087f4087b6f_bigui255, - 0x64635758efc701dbbe2eb423bf7b5bf6c3d34c6ff92494f3421182a8b187ecf7_bigui255 + 0x3126e84dfd67a22bf0ce0d9273d8ad40e6109af5bb2bd78d0ac08a16c6248f74_big_uint255, + 0x3527888062f1e2738d7b928e9af244f0a39011390c2dbbcf56d8e087f4087b6f_big_uint255, + 0x64635758efc701dbbe2eb423bf7b5bf6c3d34c6ff92494f3421182a8b187ecf7_big_uint255 }}, {{ - 0x4d7f71960f03db8a2a428cbf77ddc1916a5f4243dbeb2ddaef7b5b5f9d74546e_bigui255, - 0x37832ba2da93de3643243eba3b9765d75359310617f3fc06d74ac12db57b29c5_bigui255, - 0x4dce55879ffd9398f96c9e6556a3bb4fc93147965252cb1d6c94b3282ba3fae6_bigui255 + 0x4d7f71960f03db8a2a428cbf77ddc1916a5f4243dbeb2ddaef7b5b5f9d74546e_big_uint255, + 0x37832ba2da93de3643243eba3b9765d75359310617f3fc06d74ac12db57b29c5_big_uint255, + 0x4dce55879ffd9398f96c9e6556a3bb4fc93147965252cb1d6c94b3282ba3fae6_big_uint255 }}, {{ - 0x4ba85e4d2537972c0fd5a4727a58c3d85d98563697a34c0af845bfecd6dc4b40_bigui255, - 0x582dc453b4cbf6b1d19734b0f337d3423b503703979689f384d0eb96ff5b02ce_bigui255, - 0x0e6f127f479ee6113540d69b25420a2682f07b23e799566b091a1c891fa224ba_bigui255 + 0x4ba85e4d2537972c0fd5a4727a58c3d85d98563697a34c0af845bfecd6dc4b40_big_uint255, + 0x582dc453b4cbf6b1d19734b0f337d3423b503703979689f384d0eb96ff5b02ce_big_uint255, + 0x0e6f127f479ee6113540d69b25420a2682f07b23e799566b091a1c891fa224ba_big_uint255 }}, {{ - 0x39c815508d2995bb8ae5035472944706e900b2fb16d5a779fdfff82306f37dbb_bigui255, - 0x6591aba215bcf96d8aa03220372179a4c5060cfd7f95724ab300d9459f709051_bigui255, - 0x221807cb4909d549c546a734ad2cd7f60a69e816ace98fad830452a44a343188_bigui255 + 0x39c815508d2995bb8ae5035472944706e900b2fb16d5a779fdfff82306f37dbb_big_uint255, + 0x6591aba215bcf96d8aa03220372179a4c5060cfd7f95724ab300d9459f709051_big_uint255, + 0x221807cb4909d549c546a734ad2cd7f60a69e816ace98fad830452a44a343188_big_uint255 }}, {{ - 0x2766a1e33038004da58bce78722380b22b13b0aecb87f38659f3035e1336b53f_bigui255, - 0x11b5e993e6a9cdc3b5d2f5336dc9bad5074b661537ff890b1babd7f53cada9e3_bigui255, - 0x29576176f9a5a10e3d0a2c59af26b51f4c5fc86ec59c0f2492deb60ad49eddcd_bigui255 + 0x2766a1e33038004da58bce78722380b22b13b0aecb87f38659f3035e1336b53f_big_uint255, + 0x11b5e993e6a9cdc3b5d2f5336dc9bad5074b661537ff890b1babd7f53cada9e3_big_uint255, + 0x29576176f9a5a10e3d0a2c59af26b51f4c5fc86ec59c0f2492deb60ad49eddcd_big_uint255 }}, {{ - 0x51e72c44f9de491c747d8a6d333fb2b3e16ee7571f1340a9a5f6f72363991e98_bigui255, - 0x2fb360d959be4aa871e071764a5e41eb264d04f0289f098723b69bab09f4d1a6_bigui255, - 0x03f46b4c3c77957cb595ed61fe13f9e8739a5009311142b69c1e8c07ae250f47_bigui255 + 0x51e72c44f9de491c747d8a6d333fb2b3e16ee7571f1340a9a5f6f72363991e98_big_uint255, + 0x2fb360d959be4aa871e071764a5e41eb264d04f0289f098723b69bab09f4d1a6_big_uint255, + 0x03f46b4c3c77957cb595ed61fe13f9e8739a5009311142b69c1e8c07ae250f47_big_uint255 }}, {{ - 0x4683311e382a99927e0ff672cd0543aaebfc0c33ba96ad937818cec979b57b5e_bigui255, - 0x7117cc69bf566b1b0ba5486b0f1f9bd60f2f945e3cbf33a2ed17076f4caa0dd6_bigui255, - 0x3bd670c3ce88ea43f254d61c2a9b56d6a4dff19ab5c4d28989d271f3dd6bee25_bigui255 + 0x4683311e382a99927e0ff672cd0543aaebfc0c33ba96ad937818cec979b57b5e_big_uint255, + 0x7117cc69bf566b1b0ba5486b0f1f9bd60f2f945e3cbf33a2ed17076f4caa0dd6_big_uint255, + 0x3bd670c3ce88ea43f254d61c2a9b56d6a4dff19ab5c4d28989d271f3dd6bee25_big_uint255 }}, {{ - 0x2fd2ed0ba1135575995d15061ddb487f2c5c6005feed28d8a01b9d7bee361a1b_bigui255, - 0x6a66704e22a81e6b7ad8e2f28edd8c9c9a10abf17e053f4d89665810332600ec_bigui255, - 0x5cbc378be1db3840b32d8d2ebfe2695f810f932a206aacece707ca693f4f933e_bigui255 + 0x2fd2ed0ba1135575995d15061ddb487f2c5c6005feed28d8a01b9d7bee361a1b_big_uint255, + 0x6a66704e22a81e6b7ad8e2f28edd8c9c9a10abf17e053f4d89665810332600ec_big_uint255, + 0x5cbc378be1db3840b32d8d2ebfe2695f810f932a206aacece707ca693f4f933e_big_uint255 }}, {{ - 0x35b716410b3c9374d42e7d39eaca316b6568f0a14cb14d519967aa3ff9970aac_bigui255, - 0x231c6db056e47a01c192db40e586ededc929b564667377a10bd1465f3852811f_bigui255, - 0x4904d5de1f512eb14b0f856acb016c7a43079b2f702303752962f336558b0f32_bigui255 + 0x35b716410b3c9374d42e7d39eaca316b6568f0a14cb14d519967aa3ff9970aac_big_uint255, + 0x231c6db056e47a01c192db40e586ededc929b564667377a10bd1465f3852811f_big_uint255, + 0x4904d5de1f512eb14b0f856acb016c7a43079b2f702303752962f336558b0f32_big_uint255 }}, {{ - 0x56d6bc63f429bb7fec7bdd133581f2abc74406a57607c2ba3302481eddba4074_bigui255, - 0x519d0daccadfbb0167fa79d1afdf36b25f28b9f74f1e65d21d28ce1022579735_bigui255, - 0x0576cf2418d6bd88f352bb26da1066637575f85688cdb981c7787f8094e5a71a_bigui255 + 0x56d6bc63f429bb7fec7bdd133581f2abc74406a57607c2ba3302481eddba4074_big_uint255, + 0x519d0daccadfbb0167fa79d1afdf36b25f28b9f74f1e65d21d28ce1022579735_big_uint255, + 0x0576cf2418d6bd88f352bb26da1066637575f85688cdb981c7787f8094e5a71a_big_uint255 }}, {{ - 0x16672be70221dfa20aa110bdce12e1e66ab171db4eadd9935baa0e3aa49e437a_bigui255, - 0x1e51c73bc2aeb9e877d9c2c18f17b03ea3dfcc04adfc649780ce4bcbc43b0b69_bigui255, - 0x1271c830507a211c8e2ebdfb372f79c8a42a9e84e4fdb0dcb35d55e4d155e169_bigui255 + 0x16672be70221dfa20aa110bdce12e1e66ab171db4eadd9935baa0e3aa49e437a_big_uint255, + 0x1e51c73bc2aeb9e877d9c2c18f17b03ea3dfcc04adfc649780ce4bcbc43b0b69_big_uint255, + 0x1271c830507a211c8e2ebdfb372f79c8a42a9e84e4fdb0dcb35d55e4d155e169_big_uint255 }}, {{ - 0x67077397c2b01db4de4b78adf97e0ebceb20cb91647db49a7bc06a5ce1b25544_bigui255, - 0x2e5454b258106b63f0ab01924767b4aecce371202abc28a260adc45f35570b9d_bigui255, - 0x440f72769f137a8078f05063cfa4e2b73b2381b72b68e97b1c1e9cd18df36f82_bigui255 + 0x67077397c2b01db4de4b78adf97e0ebceb20cb91647db49a7bc06a5ce1b25544_big_uint255, + 0x2e5454b258106b63f0ab01924767b4aecce371202abc28a260adc45f35570b9d_big_uint255, + 0x440f72769f137a8078f05063cfa4e2b73b2381b72b68e97b1c1e9cd18df36f82_big_uint255 }}, {{ - 0x6ae1478fc162c50032fef2ef79c93ca7ee25b16358704f434f6cddcce2fc9c40_bigui255, - 0x0c0f3630409a2242a39ebb33c5c7cf18965b8932621aab4ca2c315d4441b6987_bigui255, - 0x0d1bd84a786a990adf88b51f253bd9032cb50ce4682bafe103893af36d5e75dc_bigui255 + 0x6ae1478fc162c50032fef2ef79c93ca7ee25b16358704f434f6cddcce2fc9c40_big_uint255, + 0x0c0f3630409a2242a39ebb33c5c7cf18965b8932621aab4ca2c315d4441b6987_big_uint255, + 0x0d1bd84a786a990adf88b51f253bd9032cb50ce4682bafe103893af36d5e75dc_big_uint255 }}, {{ - 0x30ce425059810dd94aae2f255666b0fe8bc52ff701c385c43a998926539dd401_bigui255, - 0x395a1e753153b56d1a9ec2ca73099425e446dfa668dc73da2ea311abe5e3d96d_bigui255, - 0x57f09d89e827d00392fdc0c3d21b1a5bae2d689894ced82f58e256a03d20ef91_bigui255 + 0x30ce425059810dd94aae2f255666b0fe8bc52ff701c385c43a998926539dd401_big_uint255, + 0x395a1e753153b56d1a9ec2ca73099425e446dfa668dc73da2ea311abe5e3d96d_big_uint255, + 0x57f09d89e827d00392fdc0c3d21b1a5bae2d689894ced82f58e256a03d20ef91_big_uint255 }}, {{ - 0x1065b71b135e4feb8b3cba3c252daa084cb5624b0ba76f48f6a03854bfdbcacc_bigui255, - 0x3d5f53bd162f053f045547952a06bc83bc413e17957977e359d9bd4c8883203d_bigui255, - 0x05f467a5081bd3479d6b49f697b0a75d264b42b95b2bed475cd58ffd05322d85_bigui255 + 0x1065b71b135e4feb8b3cba3c252daa084cb5624b0ba76f48f6a03854bfdbcacc_big_uint255, + 0x3d5f53bd162f053f045547952a06bc83bc413e17957977e359d9bd4c8883203d_big_uint255, + 0x05f467a5081bd3479d6b49f697b0a75d264b42b95b2bed475cd58ffd05322d85_big_uint255 }}, {{ - 0x6f5ad8e3ed272494c36a5a52a7d034e04b633460c16a512d0d8002f8fa0e3484_bigui255, - 0x23c293275e282bf15cdbffae1f00a2712e76aa6d62820542159e9d6f115df3b8_bigui255, - 0x3757e7009ca9bec8bba29308b9922354eeeff3beb4113174bf8cde584722d31b_bigui255 + 0x6f5ad8e3ed272494c36a5a52a7d034e04b633460c16a512d0d8002f8fa0e3484_big_uint255, + 0x23c293275e282bf15cdbffae1f00a2712e76aa6d62820542159e9d6f115df3b8_big_uint255, + 0x3757e7009ca9bec8bba29308b9922354eeeff3beb4113174bf8cde584722d31b_big_uint255 }}, {{ - 0x406f25e72d0264ed50473ec95a7ec53ebe114898f84deb06e53715ae24725342_bigui255, - 0x046dcfa2d6d655c7c551f7440772b056e7d3f2c65ac52e4496c4fc753130ad45_bigui255, - 0x49c2e954d649ee1c4e72ce8c1833c33796ab29dbb0486fe53b04687b2063259f_bigui255 + 0x406f25e72d0264ed50473ec95a7ec53ebe114898f84deb06e53715ae24725342_big_uint255, + 0x046dcfa2d6d655c7c551f7440772b056e7d3f2c65ac52e4496c4fc753130ad45_big_uint255, + 0x49c2e954d649ee1c4e72ce8c1833c33796ab29dbb0486fe53b04687b2063259f_big_uint255 }}, {{ - 0x2caa8aae247ef83e63dbe8e5efc89d7d28ffd8bf7a5331e245af8aebc872a759_bigui255, - 0x5efa9f8f32d9ec1d3a3d8cea806e068909b3d3562fdc3f91f2d899f8109bc717_bigui255, - 0x0df424bdf3b0c60395cd7380029a633692b933250b79371e09122c8c39aa1301_bigui255 + 0x2caa8aae247ef83e63dbe8e5efc89d7d28ffd8bf7a5331e245af8aebc872a759_big_uint255, + 0x5efa9f8f32d9ec1d3a3d8cea806e068909b3d3562fdc3f91f2d899f8109bc717_big_uint255, + 0x0df424bdf3b0c60395cd7380029a633692b933250b79371e09122c8c39aa1301_big_uint255 }}, {{ - 0x2d012e3e811cf4b88aed6f38d5cc8c3456dbae1741f501574321906efb474930_bigui255, - 0x709c043fc648c48a5bfb5ea25d5f0557d03aadff9d6ec1afaf2032f3aadb9dba_bigui255, - 0x1bb9b23d6805ed1179a1dad95740513dcea114185a8ed34e17dc8077dc830916_bigui255 + 0x2d012e3e811cf4b88aed6f38d5cc8c3456dbae1741f501574321906efb474930_big_uint255, + 0x709c043fc648c48a5bfb5ea25d5f0557d03aadff9d6ec1afaf2032f3aadb9dba_big_uint255, + 0x1bb9b23d6805ed1179a1dad95740513dcea114185a8ed34e17dc8077dc830916_big_uint255 }}, {{ - 0x0fab922a838c55af1e2349b1e50b56d0690c200d0f2318aad4b7bd8a38a47f61_bigui255, - 0x4d58799d4501ee8e89c73db7a4ff48d9f5e80fd5984afc67f3054f59d3dc74d1_bigui255, - 0x4f130b733cb78f3940da337d187934e48765956ad2ca7b75b7bf8e293b46a758_bigui255 + 0x0fab922a838c55af1e2349b1e50b56d0690c200d0f2318aad4b7bd8a38a47f61_big_uint255, + 0x4d58799d4501ee8e89c73db7a4ff48d9f5e80fd5984afc67f3054f59d3dc74d1_big_uint255, + 0x4f130b733cb78f3940da337d187934e48765956ad2ca7b75b7bf8e293b46a758_big_uint255 }}, {{ - 0x03e7812afd6c480faef03c3beadfb882923a743a4e60e58a259e7ed4598cca97_bigui255, - 0x739ea276a5ef7008fffc02a3c853f4d56eaeee7df395cbee8bbe6b502b81ca1a_bigui255, - 0x0ae97e00a91a4e761815fde0e9506629373ef7ce765ecb1bc7ba0ca2decd7d01_bigui255 + 0x03e7812afd6c480faef03c3beadfb882923a743a4e60e58a259e7ed4598cca97_big_uint255, + 0x739ea276a5ef7008fffc02a3c853f4d56eaeee7df395cbee8bbe6b502b81ca1a_big_uint255, + 0x0ae97e00a91a4e761815fde0e9506629373ef7ce765ecb1bc7ba0ca2decd7d01_big_uint255 }}, {{ - 0x6d6c41e1315436781a774555668cc3d41c99c78dc107f443ba0ae60cdb287c16_bigui255, - 0x18d683776871c1918c2b5c632cb1854dff865c4b1b8bd66e46d2fa2a8d515c34_bigui255, - 0x3597acab641c21dc5475eb8b04b0e2ae91700acad1b543e8c7e69d574eb5a15a_bigui255 + 0x6d6c41e1315436781a774555668cc3d41c99c78dc107f443ba0ae60cdb287c16_big_uint255, + 0x18d683776871c1918c2b5c632cb1854dff865c4b1b8bd66e46d2fa2a8d515c34_big_uint255, + 0x3597acab641c21dc5475eb8b04b0e2ae91700acad1b543e8c7e69d574eb5a15a_big_uint255 }}, {{ - 0x63df64938297594b4e8bf2ddd6bcaee6f2b9703e5814ddeca44d341b9e7d24a2_bigui255, - 0x009ab455f6b4c7755da22615073e9839cd12a88d1f9b583d7ad61bde4009b873_bigui255, - 0x09e21d43c56b0abfc26d0fb7a3ebfd3a7743bbeea99ac2b8f61cc23d1c673a12_bigui255 + 0x63df64938297594b4e8bf2ddd6bcaee6f2b9703e5814ddeca44d341b9e7d24a2_big_uint255, + 0x009ab455f6b4c7755da22615073e9839cd12a88d1f9b583d7ad61bde4009b873_big_uint255, + 0x09e21d43c56b0abfc26d0fb7a3ebfd3a7743bbeea99ac2b8f61cc23d1c673a12_big_uint255 }}, {{ - 0x4db404b9eae6a9f39417be43c93a9f6d136a0784b73789d590ada0a60df0d16c_bigui255, - 0x0c6f0ecaf32a3d60aaebeaf3f8ccb00a10ee19def3836b78fc905bfeaf2b80a9_bigui255, - 0x3518d688407ca0e548165b9796a4279d038720408a3c822dc44ce8974ea8ad8d_bigui255 + 0x4db404b9eae6a9f39417be43c93a9f6d136a0784b73789d590ada0a60df0d16c_big_uint255, + 0x0c6f0ecaf32a3d60aaebeaf3f8ccb00a10ee19def3836b78fc905bfeaf2b80a9_big_uint255, + 0x3518d688407ca0e548165b9796a4279d038720408a3c822dc44ce8974ea8ad8d_big_uint255 }}, {{ - 0x27ba9d4584a23881e23aa0340dc266b32b56455c30e6da78b37741de7ac5b185_bigui255, - 0x63d33e44fda7868d50858e482fbff7c29143d60fe00817cf32e0efab4c3ad6eb_bigui255, - 0x561a72b93fecdbd83d67a5022d9a221cf21b22cff2d79c114bf01c71f2641ae9_bigui255 + 0x27ba9d4584a23881e23aa0340dc266b32b56455c30e6da78b37741de7ac5b185_big_uint255, + 0x63d33e44fda7868d50858e482fbff7c29143d60fe00817cf32e0efab4c3ad6eb_big_uint255, + 0x561a72b93fecdbd83d67a5022d9a221cf21b22cff2d79c114bf01c71f2641ae9_big_uint255 }}, {{ - 0x48a1625a9ee1102971aa28bc07a5ba88ac6424801502ff4fcb6994824c2e5e36_bigui255, - 0x46a003c184ecf0e00fa8ef7dbb356366be4d63a3847634b46a18ecd47667d1bc_bigui255, - 0x37d6efb2876f3cba63a60821e50853d0997947b96f633607bb36ded243ded838_bigui255 + 0x48a1625a9ee1102971aa28bc07a5ba88ac6424801502ff4fcb6994824c2e5e36_big_uint255, + 0x46a003c184ecf0e00fa8ef7dbb356366be4d63a3847634b46a18ecd47667d1bc_big_uint255, + 0x37d6efb2876f3cba63a60821e50853d0997947b96f633607bb36ded243ded838_big_uint255 }}, {{ - 0x14f96acdb291ed2bf98a5bed063f6911598bdff1f6c0219bbefa447ab1918163_bigui255, - 0x573d156263dc8edf24efced0c465587cbdd1a2c792cbadd58abf95e037d3c668_bigui255, - 0x46839e7d70370149b35b3a07d8406acbaff07615747d2101bbad18abb9891f95_bigui255 + 0x14f96acdb291ed2bf98a5bed063f6911598bdff1f6c0219bbefa447ab1918163_big_uint255, + 0x573d156263dc8edf24efced0c465587cbdd1a2c792cbadd58abf95e037d3c668_big_uint255, + 0x46839e7d70370149b35b3a07d8406acbaff07615747d2101bbad18abb9891f95_big_uint255 }}, {{ - 0x3b74a3420d1b988408fe8d8fcb51a81f16f8d17d082da9ba61fbc8031d8ff59b_bigui255, - 0x059f3301178a22026798b07a8578611d7c56c16bfbbe6a058f4e44016aaa172d_bigui255, - 0x467d9ff3508feb318b07acf9184537462e987c58b7ef486873e1de428eaa3f32_bigui255 + 0x3b74a3420d1b988408fe8d8fcb51a81f16f8d17d082da9ba61fbc8031d8ff59b_big_uint255, + 0x059f3301178a22026798b07a8578611d7c56c16bfbbe6a058f4e44016aaa172d_big_uint255, + 0x467d9ff3508feb318b07acf9184537462e987c58b7ef486873e1de428eaa3f32_big_uint255 }}, {{ - 0x716cac6b0fc8f63d406d38d6b82c8ed4e5665e449f07b572b83f43c9f9ba2004_bigui255, - 0x7121fa9ca506687b3c49dc2060731c85ae48596be138148d8ea365333b8f03a6_bigui255, - 0x10000c75e6e03366bba4f59c68f312becb7ae0c30d4aa141940a7531105ef7e0_bigui255 + 0x716cac6b0fc8f63d406d38d6b82c8ed4e5665e449f07b572b83f43c9f9ba2004_big_uint255, + 0x7121fa9ca506687b3c49dc2060731c85ae48596be138148d8ea365333b8f03a6_big_uint255, + 0x10000c75e6e03366bba4f59c68f312becb7ae0c30d4aa141940a7531105ef7e0_big_uint255 }}, {{ - 0x375487214c07542fa5b6a5736344466a06c2cb4c1838c9966925cd8c5888c3ca_bigui255, - 0x2361aaf969f732be06b159772a097f3518ed9485449edcfd367e289f0964c486_bigui255, - 0x2ddba8679308f327c27023a893c0458d1e73dcd64a39b22b130fd9e4f283f906_bigui255 + 0x375487214c07542fa5b6a5736344466a06c2cb4c1838c9966925cd8c5888c3ca_big_uint255, + 0x2361aaf969f732be06b159772a097f3518ed9485449edcfd367e289f0964c486_big_uint255, + 0x2ddba8679308f327c27023a893c0458d1e73dcd64a39b22b130fd9e4f283f906_big_uint255 }}, {{ - 0x6303e21755b1de4d65495bae9685e05162245106f53d7407ec0883e39695b15c_bigui255, - 0x5aa3dddf8da369722b2e1c8f2aacf0625d08264f8a0ed320df110ab42f5b0c1f_bigui255, - 0x3525eb41c2db9cf9cd08652d815d7c91f3294defeee702efedb5f777284cd1fd_bigui255 + 0x6303e21755b1de4d65495bae9685e05162245106f53d7407ec0883e39695b15c_big_uint255, + 0x5aa3dddf8da369722b2e1c8f2aacf0625d08264f8a0ed320df110ab42f5b0c1f_big_uint255, + 0x3525eb41c2db9cf9cd08652d815d7c91f3294defeee702efedb5f777284cd1fd_big_uint255 }}, {{ - 0x0079ae4df49f78b97cb0e3c3f4b225538d4a0c4827e333d27a29398c17c26c9e_bigui255, - 0x533c8c1b05e2dd7e7e19ea4b027cc8bd559c2e2a622207b0c13bc7afdd7bc3b7_bigui255, - 0x4989a01e4fe4b1bd544e5cd4288895068897cba899ddb01779f6e2b08024d3ab_bigui255 + 0x0079ae4df49f78b97cb0e3c3f4b225538d4a0c4827e333d27a29398c17c26c9e_big_uint255, + 0x533c8c1b05e2dd7e7e19ea4b027cc8bd559c2e2a622207b0c13bc7afdd7bc3b7_big_uint255, + 0x4989a01e4fe4b1bd544e5cd4288895068897cba899ddb01779f6e2b08024d3ab_big_uint255 }}, {{ - 0x1c7f5858eabb1e2b8c3104808dc68ae3de05381fc74704a2afbd2fcc42cdd3c8_bigui255, - 0x55faf16bbea2ee0f35413b9808c135fb1e4729c90b4cce4c345238c6dc557639_bigui255, - 0x156a82f8e5aea455d9c8c436f89c6f9ecbce0ecaafdd13b93f255e075c72ebd0_bigui255 + 0x1c7f5858eabb1e2b8c3104808dc68ae3de05381fc74704a2afbd2fcc42cdd3c8_big_uint255, + 0x55faf16bbea2ee0f35413b9808c135fb1e4729c90b4cce4c345238c6dc557639_big_uint255, + 0x156a82f8e5aea455d9c8c436f89c6f9ecbce0ecaafdd13b93f255e075c72ebd0_big_uint255 }}, {{ - 0x37c7047032df0027d7bc128e9a107582f25ba0b7387230a05864aee420724703_bigui255, - 0x40ab847795176c24af06d5000ceedb82d87492cbde5c1c262a83a9b6b6f4b264_bigui255, - 0x5a73bece689545bd2de9ef263d5036152f36e2250c76711e8bc9ed9bda7af685_bigui255 + 0x37c7047032df0027d7bc128e9a107582f25ba0b7387230a05864aee420724703_big_uint255, + 0x40ab847795176c24af06d5000ceedb82d87492cbde5c1c262a83a9b6b6f4b264_big_uint255, + 0x5a73bece689545bd2de9ef263d5036152f36e2250c76711e8bc9ed9bda7af685_big_uint255 }}, {{ - 0x1c4a903be5dff4440b4f38e56f988cddacc57371aeebb06cb64ab5d21d9562f5_bigui255, - 0x5bba81a692e87b51c7c176730fd05cfd100b0bd86d69b4b4f367277a2302b2f8_bigui255, - 0x2f875bdd6669a8ff920c3d7bedd74c101541d4b184b7e1bc0b90ddb26902319d_bigui255 + 0x1c4a903be5dff4440b4f38e56f988cddacc57371aeebb06cb64ab5d21d9562f5_big_uint255, + 0x5bba81a692e87b51c7c176730fd05cfd100b0bd86d69b4b4f367277a2302b2f8_big_uint255, + 0x2f875bdd6669a8ff920c3d7bedd74c101541d4b184b7e1bc0b90ddb26902319d_big_uint255 }}, {{ - 0x5e89035bbe943f9e6024db13c58bbc748d3f1654050c7ffe084b763efceff3bd_bigui255, - 0x728cff754d7a76a7f8b00656412ad8874e7bab9827706ca6d6d13c72a0c6812e_bigui255, - 0x6dcfa6338bfe3569524a968abc95c706801fcc695ee3f5854a79e4689625481c_bigui255 + 0x5e89035bbe943f9e6024db13c58bbc748d3f1654050c7ffe084b763efceff3bd_big_uint255, + 0x728cff754d7a76a7f8b00656412ad8874e7bab9827706ca6d6d13c72a0c6812e_big_uint255, + 0x6dcfa6338bfe3569524a968abc95c706801fcc695ee3f5854a79e4689625481c_big_uint255 }}, {{ - 0x24ce56469aeaa4243053bb62c07100002b8f74c4ac74c350beff0c0be47e5a51_bigui255, - 0x6a72f954f591825caa43c3ba7ccfea7aa1a00de5a681e52de6148252062f8363_bigui255, - 0x59922ae3f06524d2028e9aa00a136613d4306fd5f4247ad0a6a587be0fb0081c_bigui255 + 0x24ce56469aeaa4243053bb62c07100002b8f74c4ac74c350beff0c0be47e5a51_big_uint255, + 0x6a72f954f591825caa43c3ba7ccfea7aa1a00de5a681e52de6148252062f8363_big_uint255, + 0x59922ae3f06524d2028e9aa00a136613d4306fd5f4247ad0a6a587be0fb0081c_big_uint255 }}, {{ - 0x50d8b98688f4980b1a0c2b5313f8ac9660b1e9199b5f59ed3709e0f1d9185552_bigui255, - 0x3184262ef10e9b0ab57cfc898fb68342cb86ed6e25e536fa94caa605b4a3caf1_bigui255, - 0x69980a1f4b883cac1039fc47dba993503d4ae5ad40ed112a5a5070090006f73e_bigui255 + 0x50d8b98688f4980b1a0c2b5313f8ac9660b1e9199b5f59ed3709e0f1d9185552_big_uint255, + 0x3184262ef10e9b0ab57cfc898fb68342cb86ed6e25e536fa94caa605b4a3caf1_big_uint255, + 0x69980a1f4b883cac1039fc47dba993503d4ae5ad40ed112a5a5070090006f73e_big_uint255 }}, {{ - 0x1d5a91b930b89934745ba00bd9094b67f95e41e3778fe0420880e80bbf8078e1_bigui255, - 0x0ddebce4b6ca45d69b2f70c8b54e425615c1aadadccda74e0882eb79c445778f_bigui255, - 0x68c8362e93a371d7c9551edf3e3f3b14c54c729c1fab0fa6eebae7da09855826_bigui255 + 0x1d5a91b930b89934745ba00bd9094b67f95e41e3778fe0420880e80bbf8078e1_big_uint255, + 0x0ddebce4b6ca45d69b2f70c8b54e425615c1aadadccda74e0882eb79c445778f_big_uint255, + 0x68c8362e93a371d7c9551edf3e3f3b14c54c729c1fab0fa6eebae7da09855826_big_uint255 }}, {{ - 0x3dcc6a17e074d0350ffc0e5426e1bb6894e6c958f96f3d7d9c4240b948cde438_bigui255, - 0x03b8aba0ee959a4e51cb5cfc458b0f4ad3a9b59797394c3d3c9eb57adeca2308_bigui255, - 0x0f24cc57f3b2fbf25375c71d71bbb97b2d193fc1a203ccc514c074d461001ec4_bigui255 + 0x3dcc6a17e074d0350ffc0e5426e1bb6894e6c958f96f3d7d9c4240b948cde438_big_uint255, + 0x03b8aba0ee959a4e51cb5cfc458b0f4ad3a9b59797394c3d3c9eb57adeca2308_big_uint255, + 0x0f24cc57f3b2fbf25375c71d71bbb97b2d193fc1a203ccc514c074d461001ec4_big_uint255 }}, {{ - 0x71e9bfa7f66afbafbf139a70baedfb1b202a2e51e6b6c420e28dd342a5eb0cd6_bigui255, - 0x3ac9c11890e96a2dcda6405a6c52a47e803d6674e65117f1a8adf701d68cd02a_bigui255, - 0x45c00146e1b89ad5ccb8a02202482023751b88997d8fba1af5c0e7a68dadb63c_bigui255 + 0x71e9bfa7f66afbafbf139a70baedfb1b202a2e51e6b6c420e28dd342a5eb0cd6_big_uint255, + 0x3ac9c11890e96a2dcda6405a6c52a47e803d6674e65117f1a8adf701d68cd02a_big_uint255, + 0x45c00146e1b89ad5ccb8a02202482023751b88997d8fba1af5c0e7a68dadb63c_big_uint255 }}, {{ - 0x1f98bdb8dc318e3e2e28cc3d8b85e334f74b57e15b02e1637ae035b04bda3b5c_bigui255, - 0x2ec077dbbc7bf2affe7ddd8b8a7f900f3019cddc8ce55cf9782004f65f51257b_bigui255, - 0x32c377fc988f600a2c2ef5d5376e2e31faf1c2d1a618db011fbfec1ff337568d_bigui255 + 0x1f98bdb8dc318e3e2e28cc3d8b85e334f74b57e15b02e1637ae035b04bda3b5c_big_uint255, + 0x2ec077dbbc7bf2affe7ddd8b8a7f900f3019cddc8ce55cf9782004f65f51257b_big_uint255, + 0x32c377fc988f600a2c2ef5d5376e2e31faf1c2d1a618db011fbfec1ff337568d_big_uint255 }}, {{ - 0x0a820d131da844383bdfc1a053d8aceec7f2eb345ab6c21d38e829db8d05861e_bigui255, - 0x5bd95df8a933f7b7e263e013f45a92c0e786dba563e210b77d5a40f961092e60_bigui255, - 0x264cf7b75095fb96b420fb3f31c064299e78e796e8b3735bd0a186cd3817708d_bigui255 + 0x0a820d131da844383bdfc1a053d8aceec7f2eb345ab6c21d38e829db8d05861e_big_uint255, + 0x5bd95df8a933f7b7e263e013f45a92c0e786dba563e210b77d5a40f961092e60_big_uint255, + 0x264cf7b75095fb96b420fb3f31c064299e78e796e8b3735bd0a186cd3817708d_big_uint255 }}, {{ - 0x27d3e47b2f11ada6a9a5d329e00a128c9836be92ee92429ab891e71d11dc29f2_bigui255, - 0x64354b412c8cfa1319e4afd891e619a8fbbde04d85bef4ad0548689295d2bce2_bigui255, - 0x0db0f967487ee52e0836fb7135bce37fbd32887e911de52d0b855a5afac1f770_bigui255 + 0x27d3e47b2f11ada6a9a5d329e00a128c9836be92ee92429ab891e71d11dc29f2_big_uint255, + 0x64354b412c8cfa1319e4afd891e619a8fbbde04d85bef4ad0548689295d2bce2_big_uint255, + 0x0db0f967487ee52e0836fb7135bce37fbd32887e911de52d0b855a5afac1f770_big_uint255 }}, {{ - 0x1c9a155911b36c896475995417197faad870737a9ce5d9d3a5000f5396978e9d_bigui255, - 0x65ae557151ae9ec7f870fa2804bfb88e669dc0f8865b140f964f1f93180ac531_bigui255, - 0x52c6f6242517362c066020764fef4a5574749106a6dad534d136e7fe885fcb40_bigui255 + 0x1c9a155911b36c896475995417197faad870737a9ce5d9d3a5000f5396978e9d_big_uint255, + 0x65ae557151ae9ec7f870fa2804bfb88e669dc0f8865b140f964f1f93180ac531_big_uint255, + 0x52c6f6242517362c066020764fef4a5574749106a6dad534d136e7fe885fcb40_big_uint255 }}, {{ - 0x6e44c5bcd5dc6591e2f84290a313b71a04da8da398dd10135d22bb23df41e883_bigui255, - 0x2146d3e371040feba8595049a285944bd45a458dccb059c785c2adf032c8b710_bigui255, - 0x16db9ceb3074a795499a37c20ffc9eaca9b07a5a25824aa6adcdb19fabdff0b9_bigui255 + 0x6e44c5bcd5dc6591e2f84290a313b71a04da8da398dd10135d22bb23df41e883_big_uint255, + 0x2146d3e371040feba8595049a285944bd45a458dccb059c785c2adf032c8b710_big_uint255, + 0x16db9ceb3074a795499a37c20ffc9eaca9b07a5a25824aa6adcdb19fabdff0b9_big_uint255 }}, {{ - 0x5903725fd86fec14c9cf2a273017eb01d3a1785039397060650c4e228a6e6571_bigui255, - 0x54c75952f908e3f99e05718bd1f59bb6c414bc2aebacd81c47189885cbbc566a_bigui255, - 0x0dba4abc7f188e33e7f309317b7b9f5c22870ca90bcee7b576dd0b52619a39f6_bigui255 + 0x5903725fd86fec14c9cf2a273017eb01d3a1785039397060650c4e228a6e6571_big_uint255, + 0x54c75952f908e3f99e05718bd1f59bb6c414bc2aebacd81c47189885cbbc566a_big_uint255, + 0x0dba4abc7f188e33e7f309317b7b9f5c22870ca90bcee7b576dd0b52619a39f6_big_uint255 }}, {{ - 0x3950231611808399ad3ba5b78cad4c6bed6f364b9346541dfffa4d16366d257e_bigui255, - 0x1a6d8230bb9e8d1af552b9bab8babfe505931dd87e200fc7b3c57160a5bc4ae2_bigui255, - 0x6b3dd35220ecd616eea4309ac9a8118e9dc65a3f7c1ef52dde7a3d33578c43a0_bigui255 + 0x3950231611808399ad3ba5b78cad4c6bed6f364b9346541dfffa4d16366d257e_big_uint255, + 0x1a6d8230bb9e8d1af552b9bab8babfe505931dd87e200fc7b3c57160a5bc4ae2_big_uint255, + 0x6b3dd35220ecd616eea4309ac9a8118e9dc65a3f7c1ef52dde7a3d33578c43a0_big_uint255 }}, {{ - 0x6da00240c3505b214c8d8ce3f48914247adb9f0ecf239d7baeada5183d31ba54_bigui255, - 0x37c3720b132d3a719424e29c37acb7dfbd709ec9497a3162175424bf063c6e18_bigui255, - 0x500f85a3d06a0b5a05c5e93ae70084802fd499c7e6ed1ee6e26b4bf8fd6838fb_bigui255 + 0x6da00240c3505b214c8d8ce3f48914247adb9f0ecf239d7baeada5183d31ba54_big_uint255, + 0x37c3720b132d3a719424e29c37acb7dfbd709ec9497a3162175424bf063c6e18_big_uint255, + 0x500f85a3d06a0b5a05c5e93ae70084802fd499c7e6ed1ee6e26b4bf8fd6838fb_big_uint255 }}, {{ - 0x2b37f70d73366d32d575186d0787fc8ce539b73f83c6e7eaab27be85f4faaaf4_bigui255, - 0x1d8efd6e52d4f936415e5c4814f3366804e2386857a4befa2a53aab21ddb68de_bigui255, - 0x33303b8a8f2d811be65a977907d17d133f3a64c59fe2a9c5c2d4517e3eb390e3_bigui255 + 0x2b37f70d73366d32d575186d0787fc8ce539b73f83c6e7eaab27be85f4faaaf4_big_uint255, + 0x1d8efd6e52d4f936415e5c4814f3366804e2386857a4befa2a53aab21ddb68de_big_uint255, + 0x33303b8a8f2d811be65a977907d17d133f3a64c59fe2a9c5c2d4517e3eb390e3_big_uint255 }}, {{ - 0x2c1ba860f51e0c2eaf4a9a6bf095c65fab3ee15c145f404fbb0272b5ca14a449_bigui255, - 0x0b0849c7a3adea03a89d101081c9c9f4f66ef917d09c7957584db9a75aec2378_bigui255, - 0x41e7e30c77579da7809c3e757821c869b53f103fcb752ac82f8a734d4abdc792_bigui255 + 0x2c1ba860f51e0c2eaf4a9a6bf095c65fab3ee15c145f404fbb0272b5ca14a449_big_uint255, + 0x0b0849c7a3adea03a89d101081c9c9f4f66ef917d09c7957584db9a75aec2378_big_uint255, + 0x41e7e30c77579da7809c3e757821c869b53f103fcb752ac82f8a734d4abdc792_big_uint255 }}, {{ - 0x182e66be60686c8c5e6518430845f98924fe8d7d43e628bf75ff52a716371b9c_bigui255, - 0x373b2508c2fca1a288fa4f54a6edf02f2661e664dcf4ff2a74f3d06b1a00ddc4_bigui255, - 0x1735b442b3acaad0bbe630f308e03f1aa6f56bdb029e50c1393533cee1a45c30_bigui255 + 0x182e66be60686c8c5e6518430845f98924fe8d7d43e628bf75ff52a716371b9c_big_uint255, + 0x373b2508c2fca1a288fa4f54a6edf02f2661e664dcf4ff2a74f3d06b1a00ddc4_big_uint255, + 0x1735b442b3acaad0bbe630f308e03f1aa6f56bdb029e50c1393533cee1a45c30_big_uint255 }}, {{ - 0x22abe8ea470a0372911bcef1367e10aa220491d76caeaa5959feb5d75f4a1f9f_bigui255, - 0x5caab387eb997f774f64151ed21abfa5364a83c6f065d92bd9c92f2719b8e80b_bigui255, - 0x57b33094aeff828377897b56e1c432978d07c668ef25a36bc5e2e835aaeff725_bigui255 + 0x22abe8ea470a0372911bcef1367e10aa220491d76caeaa5959feb5d75f4a1f9f_big_uint255, + 0x5caab387eb997f774f64151ed21abfa5364a83c6f065d92bd9c92f2719b8e80b_big_uint255, + 0x57b33094aeff828377897b56e1c432978d07c668ef25a36bc5e2e835aaeff725_big_uint255 }} }}; }; @@ -1290,519 +1290,519 @@ namespace nil { constexpr static const std::array, state_words> mds_matrix = {{ {{ - 0x354423b163d1078b0dd645be56316e34a9b98e52dcf9f469be44b108be46c107_bigui255, - 0x44778737e8bc1154aca1cd92054a1e5b83808403705f7d54da88bbd1920e1053_bigui255, - 0x5872eefb5ab6b2946556524168a2aebb69afd513a2fff91e50167b1f6e4055e0_bigui255, - 0x43dff85b25129835819bc8c95819f1a34136f6114e900cd3656e1b9e0e13f86a_bigui255, - 0x07803d2ffe72940596803f244ac090a9cf2d3616546520bc360c7eed0b81cbf8_bigui255 + 0x354423b163d1078b0dd645be56316e34a9b98e52dcf9f469be44b108be46c107_big_uint255, + 0x44778737e8bc1154aca1cd92054a1e5b83808403705f7d54da88bbd1920e1053_big_uint255, + 0x5872eefb5ab6b2946556524168a2aebb69afd513a2fff91e50167b1f6e4055e0_big_uint255, + 0x43dff85b25129835819bc8c95819f1a34136f6114e900cd3656e1b9e0e13f86a_big_uint255, + 0x07803d2ffe72940596803f244ac090a9cf2d3616546520bc360c7eed0b81cbf8_big_uint255 }}, {{ - 0x45d6bc4b818e2b9a53e0e2c0a08f70c34167fd8128e05ac800651ddfee0932d1_bigui255, - 0x08317abbb9e5046b22dfb79e64c8184855107c1d95dddd2b63ca10dddea9ff1a_bigui255, - 0x1bb80eba77c5dcffafb55ccba4ae39ac8f94a054f2a0ee3006b362f709d5e470_bigui255, - 0x038e75bdcf8be7fd3a1e844c4de7333531bbd5a8d2c3779627df88e7480e7c5c_bigui255, - 0x2dd797a699e620ea6b31b91ba3fad4a82f40cffb3e8a30c0b7a546ff69a9002b_bigui255 + 0x45d6bc4b818e2b9a53e0e2c0a08f70c34167fd8128e05ac800651ddfee0932d1_big_uint255, + 0x08317abbb9e5046b22dfb79e64c8184855107c1d95dddd2b63ca10dddea9ff1a_big_uint255, + 0x1bb80eba77c5dcffafb55ccba4ae39ac8f94a054f2a0ee3006b362f709d5e470_big_uint255, + 0x038e75bdcf8be7fd3a1e844c4de7333531bbd5a8d2c3779627df88e7480e7c5c_big_uint255, + 0x2dd797a699e620ea6b31b91ba3fad4a82f40cffb3e8a30c0b7a546ff69a9002b_big_uint255 }}, {{ - 0x4b906f9ee339b196e958e3541b555b4b53e540a113b2f1cabba627be16eb5608_bigui255, - 0x605f0c707b82ef287f46431f9241fe4acf0b7ddb151803cbcf1e7bbd27c3e974_bigui255, - 0x100c514bf38f6ff10df1c83bb428397789cfff7bb0b1280f52343861e8c8737e_bigui255, - 0x2d40ce8af8a252f5611701c3d6b1e517161d0549ef27f443570c81fcdfe3706b_bigui255, - 0x3e6418bdf0313f59afc5f40b4450e56881110ea9a0532e8092efb06a12a8b0f1_bigui255 + 0x4b906f9ee339b196e958e3541b555b4b53e540a113b2f1cabba627be16eb5608_big_uint255, + 0x605f0c707b82ef287f46431f9241fe4acf0b7ddb151803cbcf1e7bbd27c3e974_big_uint255, + 0x100c514bf38f6ff10df1c83bb428397789cfff7bb0b1280f52343861e8c8737e_big_uint255, + 0x2d40ce8af8a252f5611701c3d6b1e517161d0549ef27f443570c81fcdfe3706b_big_uint255, + 0x3e6418bdf0313f59afc5f40b4450e56881110ea9a0532e8092efb06a12a8b0f1_big_uint255 }}, {{ - 0x71788bf7f6c0cebae5627c5629d012d5fba52428d1f25cdaa0a7434e70e014d0_bigui255, - 0x55cc73296f7e7d26d10b9339721d7983ca06145675255025ab00b34342557db7_bigui255, - 0x0f043b29be2def73a6c6ec92168ea4b47bc9f434a5e6b5d48677670a7ca4d285_bigui255, - 0x62ccc9cdfed859a610f103d74ea04dec0f6874a9b36f3b4e9b47fd73368d45b4_bigui255, - 0x55fb349dd6200b34eaba53a67e74f47d08e473da139dc47e44df50a26423d2d1_bigui255 + 0x71788bf7f6c0cebae5627c5629d012d5fba52428d1f25cdaa0a7434e70e014d0_big_uint255, + 0x55cc73296f7e7d26d10b9339721d7983ca06145675255025ab00b34342557db7_big_uint255, + 0x0f043b29be2def73a6c6ec92168ea4b47bc9f434a5e6b5d48677670a7ca4d285_big_uint255, + 0x62ccc9cdfed859a610f103d74ea04dec0f6874a9b36f3b4e9b47fd73368d45b4_big_uint255, + 0x55fb349dd6200b34eaba53a67e74f47d08e473da139dc47e44df50a26423d2d1_big_uint255 }}, {{ - 0x45bfbe5ed2f4a01c13b15f20bba00ff577b1154a81b3f318a6aff86369a66735_bigui255, - 0x6a008906685587af05dce9ad2c65ea1d42b1ec32609597bd00c01f58443329ef_bigui255, - 0x004feebd0dbdb9b71176a1d43c9eb495e16419382cdf7864e4bce7b37440cd58_bigui255, - 0x09f080180ce23a5aef3a07e60b28ffeb2cf1771aefbc565c2a3059b39ed82f43_bigui255, - 0x2f7126ddc54648ab6d02493dbe9907f29f4ef3967ad8cd609f0d9467e1694607_bigui255 + 0x45bfbe5ed2f4a01c13b15f20bba00ff577b1154a81b3f318a6aff86369a66735_big_uint255, + 0x6a008906685587af05dce9ad2c65ea1d42b1ec32609597bd00c01f58443329ef_big_uint255, + 0x004feebd0dbdb9b71176a1d43c9eb495e16419382cdf7864e4bce7b37440cd58_big_uint255, + 0x09f080180ce23a5aef3a07e60b28ffeb2cf1771aefbc565c2a3059b39ed82f43_big_uint255, + 0x2f7126ddc54648ab6d02493dbe9907f29f4ef3967ad8cd609f0d9467e1694607_big_uint255 }} }}; constexpr static const std::array, round_count> round_constants = {{ {{ - 0x5ee52b2f39e240a4006e97a15a7609dce42fa9aa510d11586a56db98fa925158_bigui255, - 0x3e92829ce321755f769c6fd0d51e98262d7747ad553b028dbbe98b5274b9c8e1_bigui255, - 0x7067b2b9b65af0519cef530217d4563543852399c2af1557fcd9eb325b5365e4_bigui255, - 0x725e66aa00e406f247f00002487d092328c526f2f5a3c456004a71cea83845d5_bigui255, - 0x72bf92303a9d433709d29979a296d98f147e8e7b8ed0cb452bd9f9508f6e4711_bigui255 + 0x5ee52b2f39e240a4006e97a15a7609dce42fa9aa510d11586a56db98fa925158_big_uint255, + 0x3e92829ce321755f769c6fd0d51e98262d7747ad553b028dbbe98b5274b9c8e1_big_uint255, + 0x7067b2b9b65af0519cef530217d4563543852399c2af1557fcd9eb325b5365e4_big_uint255, + 0x725e66aa00e406f247f00002487d092328c526f2f5a3c456004a71cea83845d5_big_uint255, + 0x72bf92303a9d433709d29979a296d98f147e8e7b8ed0cb452bd9f9508f6e4711_big_uint255 }}, {{ - 0x3d7e5deccc6eb706c315ff02070232127dbe99bc6a4d1b23e967d35205b87694_bigui255, - 0x13558f81fbc15c2793cc349a059d752c712783727e1443c74098cd66fa12b78b_bigui255, - 0x686f2c6d24dfb9cddbbf717708ca6e04a70f0e077766a39d5bc5de5155e6fcb2_bigui255, - 0x582bc59317a001ed75ffe1c225901d67d8d3764a70eb254f810afc895cbf231b_bigui255, - 0x076df166a42eae40f6df9e5908a54f69a77f4c507ea6dd07d671682cbc1a9534_bigui255 + 0x3d7e5deccc6eb706c315ff02070232127dbe99bc6a4d1b23e967d35205b87694_big_uint255, + 0x13558f81fbc15c2793cc349a059d752c712783727e1443c74098cd66fa12b78b_big_uint255, + 0x686f2c6d24dfb9cddbbf717708ca6e04a70f0e077766a39d5bc5de5155e6fcb2_big_uint255, + 0x582bc59317a001ed75ffe1c225901d67d8d3764a70eb254f810afc895cbf231b_big_uint255, + 0x076df166a42eae40f6df9e5908a54f69a77f4c507ea6dd07d671682cbc1a9534_big_uint255 }}, {{ - 0x531f360b9640e565d580688ee5d09e2635997037e87129303bf8297459ab2492_bigui255, - 0x30be41b5a9d8af19a5f922794008a263a121837bcbe113d59621ea30beefd075_bigui255, - 0x39f57e4c8a1178d875210f820977f7fcd33812d444f88e471040676e3e591306_bigui255, - 0x3514084b13bc0be636482204d9cddb072ee674c5cb1238890ee6206a3e7bf035_bigui255, - 0x6372b6bc660daf6b04361caff785b46bbe59eb6a34ab93e23d6364e655dc3a36_bigui255 + 0x531f360b9640e565d580688ee5d09e2635997037e87129303bf8297459ab2492_big_uint255, + 0x30be41b5a9d8af19a5f922794008a263a121837bcbe113d59621ea30beefd075_big_uint255, + 0x39f57e4c8a1178d875210f820977f7fcd33812d444f88e471040676e3e591306_big_uint255, + 0x3514084b13bc0be636482204d9cddb072ee674c5cb1238890ee6206a3e7bf035_big_uint255, + 0x6372b6bc660daf6b04361caff785b46bbe59eb6a34ab93e23d6364e655dc3a36_big_uint255 }}, {{ - 0x422af985e648814bec5af62c142828e002d4b014b702760106b0b90c50d11de5_bigui255, - 0x3296e51f12e0f5c49747c1beb050ff320e2eb7422807eb0c157a372dba2ea013_bigui255, - 0x3b76246abaf33b03dd5b589b80a7fac0ae7f1ad8a9623bb7cf7432c90e27358d_bigui255, - 0x0b40e7e02f5cb836c883c7cef72ec48e87c1808f7d829e2ee0bec0ee709f7409_bigui255, - 0x2ee81b5c29c93b8a6e8871c01d0380a698e547475359b4a4befc22ed2232690f_bigui255 + 0x422af985e648814bec5af62c142828e002d4b014b702760106b0b90c50d11de5_big_uint255, + 0x3296e51f12e0f5c49747c1beb050ff320e2eb7422807eb0c157a372dba2ea013_big_uint255, + 0x3b76246abaf33b03dd5b589b80a7fac0ae7f1ad8a9623bb7cf7432c90e27358d_big_uint255, + 0x0b40e7e02f5cb836c883c7cef72ec48e87c1808f7d829e2ee0bec0ee709f7409_big_uint255, + 0x2ee81b5c29c93b8a6e8871c01d0380a698e547475359b4a4befc22ed2232690f_big_uint255 }}, {{ - 0x341ff90fc4a8afee9b74c464955ba9b357252e915b8d39ea7c1318eda718f54d_bigui255, - 0x55eddabde058f3b5e9dae90873ec9bd7b05927da36925e7dfb7bc290c1da125e_bigui255, - 0x6b34ad8cec56aae4595c403377cd2aa990a2f09b931f832781221965bb081b1c_bigui255, - 0x707de76df294fb845309d2160e1bdffebefd57a80c8658899e2c95e77254c752_bigui255, - 0x05e9b152bfd4946b9c109f930eb01892f314597507d28c735a266f4277bb2a32_bigui255 + 0x341ff90fc4a8afee9b74c464955ba9b357252e915b8d39ea7c1318eda718f54d_big_uint255, + 0x55eddabde058f3b5e9dae90873ec9bd7b05927da36925e7dfb7bc290c1da125e_big_uint255, + 0x6b34ad8cec56aae4595c403377cd2aa990a2f09b931f832781221965bb081b1c_big_uint255, + 0x707de76df294fb845309d2160e1bdffebefd57a80c8658899e2c95e77254c752_big_uint255, + 0x05e9b152bfd4946b9c109f930eb01892f314597507d28c735a266f4277bb2a32_big_uint255 }}, {{ - 0x1589a5cbcee13b696b6f0a1dbbabc08394ab00ed5a6ae6435020e9e3e2fc909a_bigui255, - 0x7116a5d027fe73fbc45bfc60fd875c3116fe3a567e830d1d2d38655223dbd7ec_bigui255, - 0x05382ee6ad97381eb3137f5a90ea13298dac6bc7c2204906044fafc01bfe6ae4_bigui255, - 0x0900bcfe5e7c1b7d0aa80c714b7b2a0c1df7473362138a9dc5c552d11c1d0015_bigui255, - 0x0513deb89d2e48fc729440dc08d0256a79cda84d511a04e0d92cce3c7e55a7c2_bigui255 + 0x1589a5cbcee13b696b6f0a1dbbabc08394ab00ed5a6ae6435020e9e3e2fc909a_big_uint255, + 0x7116a5d027fe73fbc45bfc60fd875c3116fe3a567e830d1d2d38655223dbd7ec_big_uint255, + 0x05382ee6ad97381eb3137f5a90ea13298dac6bc7c2204906044fafc01bfe6ae4_big_uint255, + 0x0900bcfe5e7c1b7d0aa80c714b7b2a0c1df7473362138a9dc5c552d11c1d0015_big_uint255, + 0x0513deb89d2e48fc729440dc08d0256a79cda84d511a04e0d92cce3c7e55a7c2_big_uint255 }}, {{ - 0x6bbb5f1736d499fe3fda42ad40a2b124952ac35fe970ebde38c65cc20ad2afc8_bigui255, - 0x5782ac68a8da0ba09f4d17e7e4b46caa4411a27e60be92168ce75bed95453e05_bigui255, - 0x2d83f3324639c5d83a1ffcf6ac693eef98d8ea4877d547c62b304b0a9f4a0c28_bigui255, - 0x16d3a13700ec503e29ca4d0c6342864595134408b6668bbf1766bb48d7f96cba_bigui255, - 0x318050e971e075931253b00430d35f89f40a88fc73d62150882a8e87149d7244_bigui255 + 0x6bbb5f1736d499fe3fda42ad40a2b124952ac35fe970ebde38c65cc20ad2afc8_big_uint255, + 0x5782ac68a8da0ba09f4d17e7e4b46caa4411a27e60be92168ce75bed95453e05_big_uint255, + 0x2d83f3324639c5d83a1ffcf6ac693eef98d8ea4877d547c62b304b0a9f4a0c28_big_uint255, + 0x16d3a13700ec503e29ca4d0c6342864595134408b6668bbf1766bb48d7f96cba_big_uint255, + 0x318050e971e075931253b00430d35f89f40a88fc73d62150882a8e87149d7244_big_uint255 }}, {{ - 0x7180760dd839d8bffbf9b1e26826cb4f6de65fa868a8143e1dc8c2b6ac6d1ac2_bigui255, - 0x5cf2aa95907e59c4725cc17c8cf492f9a7eeef2de337ac227a983c444ae0e80e_bigui255, - 0x2b8345763484d7ec02d6ee267b7c737ca9de41e2186416bf91c65eb0cd11c0a4_bigui255, - 0x055aa90aa60ef9b7f3c29c7500c64e6b85929220a6418dfad37ead3928059117_bigui255, - 0x541d5e4be0967bf49a595c1d8290b750305a334f3347c01b57f8ba313170e1ca_bigui255 + 0x7180760dd839d8bffbf9b1e26826cb4f6de65fa868a8143e1dc8c2b6ac6d1ac2_big_uint255, + 0x5cf2aa95907e59c4725cc17c8cf492f9a7eeef2de337ac227a983c444ae0e80e_big_uint255, + 0x2b8345763484d7ec02d6ee267b7c737ca9de41e2186416bf91c65eb0cd11c0a4_big_uint255, + 0x055aa90aa60ef9b7f3c29c7500c64e6b85929220a6418dfad37ead3928059117_big_uint255, + 0x541d5e4be0967bf49a595c1d8290b750305a334f3347c01b57f8ba313170e1ca_big_uint255 }}, {{ - 0x05c0a1f16f97f582caaf4338f018f869e8dd0fa32f007bad1a1a4780053d5817_bigui255, - 0x01519e13858591aa93b9c1d7f849276ac1d2011b7fd19a475371c7968d9f52cd_bigui255, - 0x69c30d5a27f4dffa19c956c348287a704676d999f23044036b9e687a45a1a113_bigui255, - 0x58c93b899aa53e06e82b6346e36338841ba7279d2b7a0ecd3aa20f292852936f_bigui255, - 0x06b8a12870a15479d41018fed6f1a29102ae23e13d0fbccec93ace48bdb9dc93_bigui255 + 0x05c0a1f16f97f582caaf4338f018f869e8dd0fa32f007bad1a1a4780053d5817_big_uint255, + 0x01519e13858591aa93b9c1d7f849276ac1d2011b7fd19a475371c7968d9f52cd_big_uint255, + 0x69c30d5a27f4dffa19c956c348287a704676d999f23044036b9e687a45a1a113_big_uint255, + 0x58c93b899aa53e06e82b6346e36338841ba7279d2b7a0ecd3aa20f292852936f_big_uint255, + 0x06b8a12870a15479d41018fed6f1a29102ae23e13d0fbccec93ace48bdb9dc93_big_uint255 }}, {{ - 0x33eda3c347379e61c2297aa1026682d22f95dc3c7e46e68ab3adb4b0939d76e2_bigui255, - 0x187728045111275b93a1218a148ada85a1f6e2059c443ac7d61fe81e3130b89b_bigui255, - 0x397ec485c5a8b0c8a03ff543e9a9e5a4dc0dd4849fe955bb77b452e2e22c4f17_bigui255, - 0x2f33f8de90f81248455d5a6592667092992be0468372addbaff664caa84cd2d5_bigui255, - 0x061a1a458994ddf9f38c5edfbd737d3ceb05deaee685058b14943e7e9246ebca_bigui255 + 0x33eda3c347379e61c2297aa1026682d22f95dc3c7e46e68ab3adb4b0939d76e2_big_uint255, + 0x187728045111275b93a1218a148ada85a1f6e2059c443ac7d61fe81e3130b89b_big_uint255, + 0x397ec485c5a8b0c8a03ff543e9a9e5a4dc0dd4849fe955bb77b452e2e22c4f17_big_uint255, + 0x2f33f8de90f81248455d5a6592667092992be0468372addbaff664caa84cd2d5_big_uint255, + 0x061a1a458994ddf9f38c5edfbd737d3ceb05deaee685058b14943e7e9246ebca_big_uint255 }}, {{ - 0x4b73ab5b9d35f47307b731e3cf1a1a22e7068e2744f2af0ef6bd78bf8aae4845_bigui255, - 0x5578b7ad5f8d4f3b8e618af7d8d5ec8bf837d2d9486527fe2f9bf7464f8516ad_bigui255, - 0x50b4f055d860f89e12883209f847a4b1a2395fb419eb53c182dbb555c962255c_bigui255, - 0x0b2da770936d6c778be289557ddd2ca024b93fa38c5d4541344e883a69611813_bigui255, - 0x47d8441e1ae7cb8ffc52a18c67afff3cf7543cad51605b2d4e2513f1e1868b68_bigui255 + 0x4b73ab5b9d35f47307b731e3cf1a1a22e7068e2744f2af0ef6bd78bf8aae4845_big_uint255, + 0x5578b7ad5f8d4f3b8e618af7d8d5ec8bf837d2d9486527fe2f9bf7464f8516ad_big_uint255, + 0x50b4f055d860f89e12883209f847a4b1a2395fb419eb53c182dbb555c962255c_big_uint255, + 0x0b2da770936d6c778be289557ddd2ca024b93fa38c5d4541344e883a69611813_big_uint255, + 0x47d8441e1ae7cb8ffc52a18c67afff3cf7543cad51605b2d4e2513f1e1868b68_big_uint255 }}, {{ - 0x619da3bf44b42acd949ed572c9f3c195ed20b0b91bcd9e95ee3750d26f3b0ebd_bigui255, - 0x6c9e249e89b2b4cf9cd7772950e0cc9d06688d4f051095eafd116371ede49ab7_bigui255, - 0x210bd3217a141c55877d4528a4e80d5d81d78de7addce85994082281a6250d4b_bigui255, - 0x4e1d8e4079c14c83847af6394d7dc23f33ebf71593379583ec574bf5c86ea9a6_bigui255, - 0x699187330fc1d606e8b31b677651a2c7d1c87d4d001018031792cad0ad3f2826_bigui255 + 0x619da3bf44b42acd949ed572c9f3c195ed20b0b91bcd9e95ee3750d26f3b0ebd_big_uint255, + 0x6c9e249e89b2b4cf9cd7772950e0cc9d06688d4f051095eafd116371ede49ab7_big_uint255, + 0x210bd3217a141c55877d4528a4e80d5d81d78de7addce85994082281a6250d4b_big_uint255, + 0x4e1d8e4079c14c83847af6394d7dc23f33ebf71593379583ec574bf5c86ea9a6_big_uint255, + 0x699187330fc1d606e8b31b677651a2c7d1c87d4d001018031792cad0ad3f2826_big_uint255 }}, {{ - 0x2946bfc0f45c1f1a0dc4c343a85259f6a6237f064481fe66eda76f01998a01ea_bigui255, - 0x5543e07588375c6d800e5e42d1bfd8b7a92a2a35d65b234ded85f879f82a3d66_bigui255, - 0x660e9d0f2f866e8d12b40dd9d9c03cc8b9ca78600bd649f0fffb2c388dcc8b43_bigui255, - 0x38f06c48d4dc53cb1b69619244cc2a610fdc4229ea316980dffe9131a72b4209_bigui255, - 0x5c9a73a16521ddf463f9de314dd5f7255bc66add48297615b761f34e4636762d_bigui255 + 0x2946bfc0f45c1f1a0dc4c343a85259f6a6237f064481fe66eda76f01998a01ea_big_uint255, + 0x5543e07588375c6d800e5e42d1bfd8b7a92a2a35d65b234ded85f879f82a3d66_big_uint255, + 0x660e9d0f2f866e8d12b40dd9d9c03cc8b9ca78600bd649f0fffb2c388dcc8b43_big_uint255, + 0x38f06c48d4dc53cb1b69619244cc2a610fdc4229ea316980dffe9131a72b4209_big_uint255, + 0x5c9a73a16521ddf463f9de314dd5f7255bc66add48297615b761f34e4636762d_big_uint255 }}, {{ - 0x310931f0204c9936fe659e9ebbda832c930172130b3f5476c6c6ee5e7fef3e45_bigui255, - 0x72eb1d833664d8989998af11441ac49654c12210b3465e5ac67a99679634a3af_bigui255, - 0x6981346585a2a466a9255841f710e1d083bdcc21c0aa6721745e158218767a94_bigui255, - 0x0370a259836b3766d563ed3cdcf55ace52655111a1017d8c76eaf8f97e81d858_bigui255, - 0x4f63c45a324b8b974c22a20a6c670eb62d47ef900541b63f1d362b8bbe4ec418_bigui255 + 0x310931f0204c9936fe659e9ebbda832c930172130b3f5476c6c6ee5e7fef3e45_big_uint255, + 0x72eb1d833664d8989998af11441ac49654c12210b3465e5ac67a99679634a3af_big_uint255, + 0x6981346585a2a466a9255841f710e1d083bdcc21c0aa6721745e158218767a94_big_uint255, + 0x0370a259836b3766d563ed3cdcf55ace52655111a1017d8c76eaf8f97e81d858_big_uint255, + 0x4f63c45a324b8b974c22a20a6c670eb62d47ef900541b63f1d362b8bbe4ec418_big_uint255 }}, {{ - 0x6a4c7347121c2d4745ecffaad22281cc4d58ea74453b7d2b625b890190fdc7ad_bigui255, - 0x36d8869bb69a51ee99622af09d6878c5b715084b25f6e4560a7498557fe87fb5_bigui255, - 0x18faa7f51e1b7a442f9123806872094c0de8a46a6d8402f31f0cde3fcb878394_bigui255, - 0x3610d022aacbe58593e0d6aa7eefdca767f5ddfe7fa1fb9fb4f80225d82b617b_bigui255, - 0x3b5f13d6a8bbff31569bc6860087b2a4b361146a04ad5fc7396a3d0c59f68c1c_bigui255 + 0x6a4c7347121c2d4745ecffaad22281cc4d58ea74453b7d2b625b890190fdc7ad_big_uint255, + 0x36d8869bb69a51ee99622af09d6878c5b715084b25f6e4560a7498557fe87fb5_big_uint255, + 0x18faa7f51e1b7a442f9123806872094c0de8a46a6d8402f31f0cde3fcb878394_big_uint255, + 0x3610d022aacbe58593e0d6aa7eefdca767f5ddfe7fa1fb9fb4f80225d82b617b_big_uint255, + 0x3b5f13d6a8bbff31569bc6860087b2a4b361146a04ad5fc7396a3d0c59f68c1c_big_uint255 }}, {{ - 0x40e919335051c6aaaee033745c41b6fa36739a097d94ce6eb075ec03da2a978b_bigui255, - 0x2f54586ab9b7886340f8ed5254f29128a85e2fb1e3725bf3c9cd8bddadc947f1_bigui255, - 0x00606231b689a040363e5afc050f9fc9296d6c620a885eeaffe91be387cbe96c_bigui255, - 0x4b55696db6b0fa327527a76e6ab6b688561c879e53d858e4c90a1122210130e1_bigui255, - 0x569c39bd78356991953aef4b1a01fdf71710bb05eea1f447c3e5efe13bd62894_bigui255 + 0x40e919335051c6aaaee033745c41b6fa36739a097d94ce6eb075ec03da2a978b_big_uint255, + 0x2f54586ab9b7886340f8ed5254f29128a85e2fb1e3725bf3c9cd8bddadc947f1_big_uint255, + 0x00606231b689a040363e5afc050f9fc9296d6c620a885eeaffe91be387cbe96c_big_uint255, + 0x4b55696db6b0fa327527a76e6ab6b688561c879e53d858e4c90a1122210130e1_big_uint255, + 0x569c39bd78356991953aef4b1a01fdf71710bb05eea1f447c3e5efe13bd62894_big_uint255 }}, {{ - 0x537f73fcaa256497a2582e45105f1dc10f39c7fce9b88cab5523af3f5f82dcd9_bigui255, - 0x2d58d32120c25995cd0754ab9fdf9ad67d67623cfd1fcbf489f51fa6e6eee4a2_bigui255, - 0x37cb0f655951fca18a4ccdddd4d8466f8839ba8e320a104cb47a59cd387d322f_bigui255, - 0x4e29d154430c9bced788d2eed8f3e01b5da24c1d3710e490bc40ee6d5903213c_bigui255, - 0x47597b7a9018192ef22d6dd24555af1c0c51d8a90b54d8a0bdc2df7967d7a28b_bigui255 + 0x537f73fcaa256497a2582e45105f1dc10f39c7fce9b88cab5523af3f5f82dcd9_big_uint255, + 0x2d58d32120c25995cd0754ab9fdf9ad67d67623cfd1fcbf489f51fa6e6eee4a2_big_uint255, + 0x37cb0f655951fca18a4ccdddd4d8466f8839ba8e320a104cb47a59cd387d322f_big_uint255, + 0x4e29d154430c9bced788d2eed8f3e01b5da24c1d3710e490bc40ee6d5903213c_big_uint255, + 0x47597b7a9018192ef22d6dd24555af1c0c51d8a90b54d8a0bdc2df7967d7a28b_big_uint255 }}, {{ - 0x4e01b43205fca0b4a32582abe600f3a326035fe7e028cb0569bac43c997b98ce_bigui255, - 0x0172ffdfba7e43ca807d5b5de7727b4e41706c1f2858c1e8a46c27ed3eae5ff2_bigui255, - 0x2216dd907ab98c0d1e720a46ef83334a236d2c134ccf35ef8e889421e70ebe03_bigui255, - 0x168709f668b635f03607a39390a0de71306d6430ce2babf7292d789d25c0f8d5_bigui255, - 0x0ff6a3823440877dfd355dea80595e21115d0dfe3472cec4ad1437572cc6151d_bigui255 + 0x4e01b43205fca0b4a32582abe600f3a326035fe7e028cb0569bac43c997b98ce_big_uint255, + 0x0172ffdfba7e43ca807d5b5de7727b4e41706c1f2858c1e8a46c27ed3eae5ff2_big_uint255, + 0x2216dd907ab98c0d1e720a46ef83334a236d2c134ccf35ef8e889421e70ebe03_big_uint255, + 0x168709f668b635f03607a39390a0de71306d6430ce2babf7292d789d25c0f8d5_big_uint255, + 0x0ff6a3823440877dfd355dea80595e21115d0dfe3472cec4ad1437572cc6151d_big_uint255 }}, {{ - 0x44e37699b3c72f50ec1a754c72e6fa3f5a074181dd63d189ba36447d34e536ff_bigui255, - 0x267298d2e46227f7f7f422e3059f18d83a8795731b13f6568ce54730cd3fe9ae_bigui255, - 0x1ecbe7a60848077203373441a5b09b44693a155fe226442259e37ac47209235a_bigui255, - 0x31cb23e6b5d7393577d5f5c3368c5bdd5b434ee6319f07e502031cc393d4eccb_bigui255, - 0x5d4c550c4a6eccd74b74d6279b3d9bc755084588156a1bef673657dc2116ecfc_bigui255 + 0x44e37699b3c72f50ec1a754c72e6fa3f5a074181dd63d189ba36447d34e536ff_big_uint255, + 0x267298d2e46227f7f7f422e3059f18d83a8795731b13f6568ce54730cd3fe9ae_big_uint255, + 0x1ecbe7a60848077203373441a5b09b44693a155fe226442259e37ac47209235a_big_uint255, + 0x31cb23e6b5d7393577d5f5c3368c5bdd5b434ee6319f07e502031cc393d4eccb_big_uint255, + 0x5d4c550c4a6eccd74b74d6279b3d9bc755084588156a1bef673657dc2116ecfc_big_uint255 }}, {{ - 0x226056b5dec9afd19190ac48740c3b5ab1bb429b19f56894a3dec3f104d238c0_bigui255, - 0x09077c021183dd37ad10451ded70d7ae6ec4819ae76ce23fb2a0be63e69907d9_bigui255, - 0x53545c868ba0fbf0ed1ed7a24ec11b2ecfba5b37fd5cee80774e1ecdea991ed4_bigui255, - 0x69521c33d148e678ca10b33103812cd27597c4a6cddbe83f4970d4b96e03304d_bigui255, - 0x01d5779be7477b96aac6532ef919e61c624072be54587e0698999dd5f460e446_bigui255 + 0x226056b5dec9afd19190ac48740c3b5ab1bb429b19f56894a3dec3f104d238c0_big_uint255, + 0x09077c021183dd37ad10451ded70d7ae6ec4819ae76ce23fb2a0be63e69907d9_big_uint255, + 0x53545c868ba0fbf0ed1ed7a24ec11b2ecfba5b37fd5cee80774e1ecdea991ed4_big_uint255, + 0x69521c33d148e678ca10b33103812cd27597c4a6cddbe83f4970d4b96e03304d_big_uint255, + 0x01d5779be7477b96aac6532ef919e61c624072be54587e0698999dd5f460e446_big_uint255 }}, {{ - 0x57875a44441d2f191ac7d8de42691ab55fd3401bbaf04b786ef0603b3edf2927_bigui255, - 0x1d5c957da0832d5b94e76f7abdb190972774b594ed232810bfcafe5441839d37_bigui255, - 0x1b678335a80fd045fc7ce1897aa129f67bd55ca9ca801bd88eb7cc868538bd7a_bigui255, - 0x31e69d706a5c1e011c1cb1809e5bf1857c90f9f50b9e1ae5ad36e4d3dcdbb7ed_bigui255, - 0x485df8462ed7a18de34aa6e99ecc9bbf2db075a096b56bc2943b76a99c4bb1a0_bigui255 + 0x57875a44441d2f191ac7d8de42691ab55fd3401bbaf04b786ef0603b3edf2927_big_uint255, + 0x1d5c957da0832d5b94e76f7abdb190972774b594ed232810bfcafe5441839d37_big_uint255, + 0x1b678335a80fd045fc7ce1897aa129f67bd55ca9ca801bd88eb7cc868538bd7a_big_uint255, + 0x31e69d706a5c1e011c1cb1809e5bf1857c90f9f50b9e1ae5ad36e4d3dcdbb7ed_big_uint255, + 0x485df8462ed7a18de34aa6e99ecc9bbf2db075a096b56bc2943b76a99c4bb1a0_big_uint255 }}, {{ - 0x1e46fdcbb3705f663a350e78f99024912d80c95779195807aae82cbb494ce9e4_bigui255, - 0x441d0fa0e9cb86c3a2a1f87151681c603c3e028f1a0670be2149eed4f0a24f08_bigui255, - 0x02a3caff274f40942062340ec1fae17c1b1e97c2f0fc7e847c90e9317fea2c0c_bigui255, - 0x4caf281080c0b2f2f638bf0f4859442f4c9da94e9994dada34c5c914130c1a9e_bigui255, - 0x444470c6c49b5b9a38181c3af20bcfea572450946135baea85cfd6b692fa6464_bigui255 + 0x1e46fdcbb3705f663a350e78f99024912d80c95779195807aae82cbb494ce9e4_big_uint255, + 0x441d0fa0e9cb86c3a2a1f87151681c603c3e028f1a0670be2149eed4f0a24f08_big_uint255, + 0x02a3caff274f40942062340ec1fae17c1b1e97c2f0fc7e847c90e9317fea2c0c_big_uint255, + 0x4caf281080c0b2f2f638bf0f4859442f4c9da94e9994dada34c5c914130c1a9e_big_uint255, + 0x444470c6c49b5b9a38181c3af20bcfea572450946135baea85cfd6b692fa6464_big_uint255 }}, {{ - 0x6d5e07a13376fc883bea2dcdbad7f80b7780f231cdd33f5b98618f42cc49ec2f_bigui255, - 0x1b9470418a07d8c88c767d1e63e8d5cc7f810cc530db1340181ecbbb212e0f70_bigui255, - 0x4134c8666c685b712f4aec72077c540ef4a041dcaa123caabd57b83fc6266f14_bigui255, - 0x3d5d0489e27362db9bf0cc7217477d81d2a73e1a44edc43e32d43bb544287c9d_bigui255, - 0x71d7d4a91945e796f538f03b9324497489009ec1a0a403de062ed5bb4d7c2400_bigui255 + 0x6d5e07a13376fc883bea2dcdbad7f80b7780f231cdd33f5b98618f42cc49ec2f_big_uint255, + 0x1b9470418a07d8c88c767d1e63e8d5cc7f810cc530db1340181ecbbb212e0f70_big_uint255, + 0x4134c8666c685b712f4aec72077c540ef4a041dcaa123caabd57b83fc6266f14_big_uint255, + 0x3d5d0489e27362db9bf0cc7217477d81d2a73e1a44edc43e32d43bb544287c9d_big_uint255, + 0x71d7d4a91945e796f538f03b9324497489009ec1a0a403de062ed5bb4d7c2400_big_uint255 }}, {{ - 0x646c3d732a94f722384ac266b41e06cf21bf24fb9426c9556d8ac9514f0875f7_bigui255, - 0x4f860c9e5d9bb73057d93c207902d9e60fd6a7c779fde1ebf16b853dba1ea9ad_bigui255, - 0x05801566eb9e119e2f9ace565c9488cd999d66a5753eb4b9887363137baa09ab_bigui255, - 0x0263bdb8654cf1245ae4589370dfd5eeb109a50944eef54308566055b887ee01_bigui255, - 0x4cc39561e65eb05cb8c83f9854750a9114a996eb23e6a0bb07d2d61f0baf0a62_bigui255 + 0x646c3d732a94f722384ac266b41e06cf21bf24fb9426c9556d8ac9514f0875f7_big_uint255, + 0x4f860c9e5d9bb73057d93c207902d9e60fd6a7c779fde1ebf16b853dba1ea9ad_big_uint255, + 0x05801566eb9e119e2f9ace565c9488cd999d66a5753eb4b9887363137baa09ab_big_uint255, + 0x0263bdb8654cf1245ae4589370dfd5eeb109a50944eef54308566055b887ee01_big_uint255, + 0x4cc39561e65eb05cb8c83f9854750a9114a996eb23e6a0bb07d2d61f0baf0a62_big_uint255 }}, {{ - 0x36b544778b2fdb94f808ad8d077b7f0b44f3bba515ecdf026919e2fed09a106d_bigui255, - 0x3fb1f7aec47cbe990151d4bf703c38349b95f409abdf0504e67c1a55ef82294c_bigui255, - 0x637e7eb19cf539aada7e48bc6b72e5ccb0e3f6913f18a0d55696dddfcb1b587a_bigui255, - 0x73bc630fcece6947fb81ac8e0f1f1671ed6042c3ef3bbb12ed554f28b48b46ec_bigui255, - 0x304b46f52d597b964fbec3fc0dceee442febe6131359e156c194ab7be2a11e6d_bigui255 + 0x36b544778b2fdb94f808ad8d077b7f0b44f3bba515ecdf026919e2fed09a106d_big_uint255, + 0x3fb1f7aec47cbe990151d4bf703c38349b95f409abdf0504e67c1a55ef82294c_big_uint255, + 0x637e7eb19cf539aada7e48bc6b72e5ccb0e3f6913f18a0d55696dddfcb1b587a_big_uint255, + 0x73bc630fcece6947fb81ac8e0f1f1671ed6042c3ef3bbb12ed554f28b48b46ec_big_uint255, + 0x304b46f52d597b964fbec3fc0dceee442febe6131359e156c194ab7be2a11e6d_big_uint255 }}, {{ - 0x067d85956dcfff7fd9f6a0fec505b7f4998e3d85672623677a6d974d6b111de6_bigui255, - 0x65830d8053bf8afc0ba5274f1a4c4cce617fa624b480f13ed3eb369fbba78e67_bigui255, - 0x6c32c101e08a962bd996d759a6c012a4d97aedaab9fc99c1fa735a16cd24dd44_bigui255, - 0x11fb2d160e41a1845fd14578c617285081fb1a16a21b36cfd5065b30fac574e3_bigui255, - 0x50aada39348c4736f6c59f7f053c488ed999a33ad23501d9c635aa03baf90db5_bigui255 + 0x067d85956dcfff7fd9f6a0fec505b7f4998e3d85672623677a6d974d6b111de6_big_uint255, + 0x65830d8053bf8afc0ba5274f1a4c4cce617fa624b480f13ed3eb369fbba78e67_big_uint255, + 0x6c32c101e08a962bd996d759a6c012a4d97aedaab9fc99c1fa735a16cd24dd44_big_uint255, + 0x11fb2d160e41a1845fd14578c617285081fb1a16a21b36cfd5065b30fac574e3_big_uint255, + 0x50aada39348c4736f6c59f7f053c488ed999a33ad23501d9c635aa03baf90db5_big_uint255 }}, {{ - 0x5a5f0e3a32b260fbdfdc8c0eaf3a99396992b50b6dbb63a9d1e1ddf9c91d78d4_bigui255, - 0x62c9f6d9aea355d358f2986ad487c2ae443122e1edfb076930865608d05c3b39_bigui255, - 0x520cea06cee20150703a1c8000d4a5f22b3efeb9e34eb90bad0b4ff091b33683_bigui255, - 0x6da4e4682545c1f4c0076f5845fbbcf48632a9c193a92593d12d248031f2c893_bigui255, - 0x1ba5502cee2ea2d07a64f68f0a7492d2426382a5b9662d0410e086107399989b_bigui255 + 0x5a5f0e3a32b260fbdfdc8c0eaf3a99396992b50b6dbb63a9d1e1ddf9c91d78d4_big_uint255, + 0x62c9f6d9aea355d358f2986ad487c2ae443122e1edfb076930865608d05c3b39_big_uint255, + 0x520cea06cee20150703a1c8000d4a5f22b3efeb9e34eb90bad0b4ff091b33683_big_uint255, + 0x6da4e4682545c1f4c0076f5845fbbcf48632a9c193a92593d12d248031f2c893_big_uint255, + 0x1ba5502cee2ea2d07a64f68f0a7492d2426382a5b9662d0410e086107399989b_big_uint255 }}, {{ - 0x6ab843ca92240f8a82862da071d53f048272d55425907fc8d0e60dcccd5a1ea4_bigui255, - 0x3f65c2dfa6bb39c1b291c40f810cc912015384a2a24fd322b6375e27bd069322_bigui255, - 0x6a2df71a64cb0d9a548e3b65ba4e646ff5e519cab564b5f77b3fe08e038b9c3a_bigui255, - 0x64776bf2b66bcd09c8661ee6ca6b8251bb4aba5a7ba181464d905db561ca45e1_bigui255, - 0x6d7bed0d258b518eda13368f00be2cc0a94d71cc203d5905c35b10a3ee53eea8_bigui255 + 0x6ab843ca92240f8a82862da071d53f048272d55425907fc8d0e60dcccd5a1ea4_big_uint255, + 0x3f65c2dfa6bb39c1b291c40f810cc912015384a2a24fd322b6375e27bd069322_big_uint255, + 0x6a2df71a64cb0d9a548e3b65ba4e646ff5e519cab564b5f77b3fe08e038b9c3a_big_uint255, + 0x64776bf2b66bcd09c8661ee6ca6b8251bb4aba5a7ba181464d905db561ca45e1_big_uint255, + 0x6d7bed0d258b518eda13368f00be2cc0a94d71cc203d5905c35b10a3ee53eea8_big_uint255 }}, {{ - 0x371b958b5c79c889d1786edfe404119773f728822637fb4890b8847a93f97af1_bigui255, - 0x56923182c33cb4dbf0988ba2314378dfd7491b3467b6134e6283c87a1478cbb8_bigui255, - 0x3c4304994ef664d6aa19e3db492c306534281b5b6f857fa6ffae67bdba99c09e_bigui255, - 0x0d003bd3068fa94c4f7bbe6ba02993acd341a27ed2fd7ecaa4e6b0b9d0abd85a_bigui255, - 0x1073cb8c08510e7d88ed4cdf78e96b297cabe9d6677db47289b056c2a640da01_bigui255 + 0x371b958b5c79c889d1786edfe404119773f728822637fb4890b8847a93f97af1_big_uint255, + 0x56923182c33cb4dbf0988ba2314378dfd7491b3467b6134e6283c87a1478cbb8_big_uint255, + 0x3c4304994ef664d6aa19e3db492c306534281b5b6f857fa6ffae67bdba99c09e_big_uint255, + 0x0d003bd3068fa94c4f7bbe6ba02993acd341a27ed2fd7ecaa4e6b0b9d0abd85a_big_uint255, + 0x1073cb8c08510e7d88ed4cdf78e96b297cabe9d6677db47289b056c2a640da01_big_uint255 }}, {{ - 0x5c57522580fbc75883658d4b7b8ea07e1a4fc75f453c09edd9d249ff1bd31ae0_bigui255, - 0x2a5bec9b422b4dc64958f4752d0c091ffa7904e0ce4809728d16235bb41d707f_bigui255, - 0x379c4a9b4174c5878f72b60fa985f7aa86c1fd868683bdbe8fae194cda2e56c7_bigui255, - 0x3634e042e79d046adb911d57b338e78f51ac7d212c5a5c6dc4fa1a05ddb58c82_bigui255, - 0x3ace976310c5040e1484d1a6d42993ac5923d474ce5497a3fac468af25843a01_bigui255 + 0x5c57522580fbc75883658d4b7b8ea07e1a4fc75f453c09edd9d249ff1bd31ae0_big_uint255, + 0x2a5bec9b422b4dc64958f4752d0c091ffa7904e0ce4809728d16235bb41d707f_big_uint255, + 0x379c4a9b4174c5878f72b60fa985f7aa86c1fd868683bdbe8fae194cda2e56c7_big_uint255, + 0x3634e042e79d046adb911d57b338e78f51ac7d212c5a5c6dc4fa1a05ddb58c82_big_uint255, + 0x3ace976310c5040e1484d1a6d42993ac5923d474ce5497a3fac468af25843a01_big_uint255 }}, {{ - 0x3f5a856ab863b7584bc2e6e4c610b9df55a9306eb68894d630ff7d04f243e6f5_bigui255, - 0x0d52822f5581fe9c5dab0b1f8d04eae183deb87c89504544a3d5558594b3149b_bigui255, - 0x3c119e173586c22059bb09d2af4fc1044c8fc44f709233f7625e5fffa6696596_bigui255, - 0x3e154fd5a026d7c6584faf8c089d82fd560f138392a8d4a5fe287859994c96b5_bigui255, - 0x47251339c44d737b21df0ed1e204a28b68c9abb58f1cf2232f8a2da433e24b0b_bigui255 + 0x3f5a856ab863b7584bc2e6e4c610b9df55a9306eb68894d630ff7d04f243e6f5_big_uint255, + 0x0d52822f5581fe9c5dab0b1f8d04eae183deb87c89504544a3d5558594b3149b_big_uint255, + 0x3c119e173586c22059bb09d2af4fc1044c8fc44f709233f7625e5fffa6696596_big_uint255, + 0x3e154fd5a026d7c6584faf8c089d82fd560f138392a8d4a5fe287859994c96b5_big_uint255, + 0x47251339c44d737b21df0ed1e204a28b68c9abb58f1cf2232f8a2da433e24b0b_big_uint255 }}, {{ - 0x73d84625f38db2f3842d7724d8e79d6d0349a93b8d6142603eea382ba6ed8692_bigui255, - 0x42929bffc19bf9cd1c53d10440b0760a3be6442db20458b692b4ba3901e6003f_bigui255, - 0x39b16b0fc3700aa93e0cac53fcaf7e84495ac3b49553b2e1a5ff9f73fe74de50_bigui255, - 0x2b715e21640cfb6f77b91a4f6d3dcaef9b5faa7c0bfe94c8d80b0824292603bc_bigui255, - 0x306bef0c637b5d7c8d6486915f6623f4e1ed81971f40772ec60feb5e243d32a0_bigui255 + 0x73d84625f38db2f3842d7724d8e79d6d0349a93b8d6142603eea382ba6ed8692_big_uint255, + 0x42929bffc19bf9cd1c53d10440b0760a3be6442db20458b692b4ba3901e6003f_big_uint255, + 0x39b16b0fc3700aa93e0cac53fcaf7e84495ac3b49553b2e1a5ff9f73fe74de50_big_uint255, + 0x2b715e21640cfb6f77b91a4f6d3dcaef9b5faa7c0bfe94c8d80b0824292603bc_big_uint255, + 0x306bef0c637b5d7c8d6486915f6623f4e1ed81971f40772ec60feb5e243d32a0_big_uint255 }}, {{ - 0x5287d6ece65ef5df6e1c65dddf1d97cfa019157a5c90c004527c9d7c7496d814_bigui255, - 0x0d760a2132c9092b0c8c89cbdf4fb1bd282791ef6284b73a44b313e8118e7d0c_bigui255, - 0x5e830f4484268a349e4d9f6178ef745460f1f8456b04d0dc7814844052d51eb5_bigui255, - 0x2468669481610965d8439f60a66aa61fbc7b18e82b35aa4755873ec4db82174e_bigui255, - 0x23b6ea9e4d1fde701c719c2afab1272ea22b172bf7afe0837364ad9a2f698bd4_bigui255 + 0x5287d6ece65ef5df6e1c65dddf1d97cfa019157a5c90c004527c9d7c7496d814_big_uint255, + 0x0d760a2132c9092b0c8c89cbdf4fb1bd282791ef6284b73a44b313e8118e7d0c_big_uint255, + 0x5e830f4484268a349e4d9f6178ef745460f1f8456b04d0dc7814844052d51eb5_big_uint255, + 0x2468669481610965d8439f60a66aa61fbc7b18e82b35aa4755873ec4db82174e_big_uint255, + 0x23b6ea9e4d1fde701c719c2afab1272ea22b172bf7afe0837364ad9a2f698bd4_big_uint255 }}, {{ - 0x412024b2e86e9d5e903a5fbda26200be47003e3b0dcc322480d3079850606cc0_bigui255, - 0x1f64c17825c1ce9333d211d45a555b5ceaa4608a354ed3237db56225b3a9459b_bigui255, - 0x0b66fa87587ab95d5d29dde50cd606a1bc2c45fd223c03d0693c88b13ae23039_bigui255, - 0x3086c386026698e733e54e5e17f65cb26c17fe64e76f85902cc184d5dd8ef0cf_bigui255, - 0x72036acd9ef575414d5437327d902da6396cc70c0bcffcef2a82b4c296b5ea93_bigui255 + 0x412024b2e86e9d5e903a5fbda26200be47003e3b0dcc322480d3079850606cc0_big_uint255, + 0x1f64c17825c1ce9333d211d45a555b5ceaa4608a354ed3237db56225b3a9459b_big_uint255, + 0x0b66fa87587ab95d5d29dde50cd606a1bc2c45fd223c03d0693c88b13ae23039_big_uint255, + 0x3086c386026698e733e54e5e17f65cb26c17fe64e76f85902cc184d5dd8ef0cf_big_uint255, + 0x72036acd9ef575414d5437327d902da6396cc70c0bcffcef2a82b4c296b5ea93_big_uint255 }}, {{ - 0x53d89e4470b3ea1eb861717e47c08fda42f6e61fc08118b16645ae5e8fdd664f_bigui255, - 0x4ebea65d1fc5c5167b1412ffcbf8900a8df2096c25d7011e6c74f500662465f8_bigui255, - 0x5ee6e1e0312e78e2e67b246a95afdd79e2e7a5b9b0ef6ee36c3d1639f9736e65_bigui255, - 0x1d770c0cc2c2231213624d58b7875b1715554f6100784bb2b545e405c7fcb94e_bigui255, - 0x2ea5c9837af445988c480fc6a55b1e5640dbe38d5e8cf1ddd85bc42c3658d9ca_bigui255 + 0x53d89e4470b3ea1eb861717e47c08fda42f6e61fc08118b16645ae5e8fdd664f_big_uint255, + 0x4ebea65d1fc5c5167b1412ffcbf8900a8df2096c25d7011e6c74f500662465f8_big_uint255, + 0x5ee6e1e0312e78e2e67b246a95afdd79e2e7a5b9b0ef6ee36c3d1639f9736e65_big_uint255, + 0x1d770c0cc2c2231213624d58b7875b1715554f6100784bb2b545e405c7fcb94e_big_uint255, + 0x2ea5c9837af445988c480fc6a55b1e5640dbe38d5e8cf1ddd85bc42c3658d9ca_big_uint255 }}, {{ - 0x6fb78d12c35235f738b1667749064d0066fa7cfe3a9624cb0944f16d37bc485e_bigui255, - 0x35b75e89e794282cee1e66991ccfb2499dce4366b88d7be5f7b5775c12103a22_bigui255, - 0x50e83b08162e7ccfe2d0f19aea4753ba83ef5c40572d6e904cfe2419ee9d901d_bigui255, - 0x3fc5c93031cbcecf12d5831aaa6b2b3071657cd669f7b377b2fef4a7bfc9adf2_bigui255, - 0x37895bdfe29a174b98cd4b49104e56ea09e41c7b50f9aa95b400b529c545f5b4_bigui255 + 0x6fb78d12c35235f738b1667749064d0066fa7cfe3a9624cb0944f16d37bc485e_big_uint255, + 0x35b75e89e794282cee1e66991ccfb2499dce4366b88d7be5f7b5775c12103a22_big_uint255, + 0x50e83b08162e7ccfe2d0f19aea4753ba83ef5c40572d6e904cfe2419ee9d901d_big_uint255, + 0x3fc5c93031cbcecf12d5831aaa6b2b3071657cd669f7b377b2fef4a7bfc9adf2_big_uint255, + 0x37895bdfe29a174b98cd4b49104e56ea09e41c7b50f9aa95b400b529c545f5b4_big_uint255 }}, {{ - 0x695e405509a0981035ba77e27cdcf53f3bc15d20fe4e43a335aeb6406ae1837d_bigui255, - 0x104985a48aa7e0a668d8cc7140c255ed1b8482ac5febbd3d7a1cca0e96cf0682_bigui255, - 0x118220b30330f1954e7d94d40fb1043a1a79ca83e68e9ef590601a86a4a917a4_bigui255, - 0x098b3be7845a63543c13d211efac076b94a9528d34cb355faf0ff7a0d5ee9991_bigui255, - 0x69ca1313dcddd8c2f5c5c7ee93a1d2a94726c0c0bc4a303fcf83109b23bf3621_bigui255 + 0x695e405509a0981035ba77e27cdcf53f3bc15d20fe4e43a335aeb6406ae1837d_big_uint255, + 0x104985a48aa7e0a668d8cc7140c255ed1b8482ac5febbd3d7a1cca0e96cf0682_big_uint255, + 0x118220b30330f1954e7d94d40fb1043a1a79ca83e68e9ef590601a86a4a917a4_big_uint255, + 0x098b3be7845a63543c13d211efac076b94a9528d34cb355faf0ff7a0d5ee9991_big_uint255, + 0x69ca1313dcddd8c2f5c5c7ee93a1d2a94726c0c0bc4a303fcf83109b23bf3621_big_uint255 }}, {{ - 0x570c1bd286b258b8bf11e8b85a2eb0c6dbfc2e4cdf01a0cde5464aa009b5bd43_bigui255, - 0x4f2921de3696018e0d1ca7cdd5a4064ebf51845ab25b2d395b71c341ea8527da_bigui255, - 0x19035c69cbaf0e0e7e02c5c524a8cc56de0e52d1936a9a10b7580f0c0555878f_bigui255, - 0x2b8fdad2064a6f58d01e8c48d49bb25730780055829c1faead0430afcfbc5669_bigui255, - 0x60ef9a74bbf8b98cb8248856492257f30c7520b3353a6fec9d90d48be46070ba_bigui255 + 0x570c1bd286b258b8bf11e8b85a2eb0c6dbfc2e4cdf01a0cde5464aa009b5bd43_big_uint255, + 0x4f2921de3696018e0d1ca7cdd5a4064ebf51845ab25b2d395b71c341ea8527da_big_uint255, + 0x19035c69cbaf0e0e7e02c5c524a8cc56de0e52d1936a9a10b7580f0c0555878f_big_uint255, + 0x2b8fdad2064a6f58d01e8c48d49bb25730780055829c1faead0430afcfbc5669_big_uint255, + 0x60ef9a74bbf8b98cb8248856492257f30c7520b3353a6fec9d90d48be46070ba_big_uint255 }}, {{ - 0x4c9a6bc8284e783afd6c425f8cbdab82c0db3eac060a2dc00eca48ed6d1d052b_bigui255, - 0x68e6d3a83ac8e60c92d2860ff7557e1fbe3b91c38fabbde8b28371dccce2a10b_bigui255, - 0x56e0e39848046f0305d268b28aa753a41d48586e8579d5f95f12dba60e181d4c_bigui255, - 0x5176824fd8c92fed23df24c382a9fdf86aeeecab0b6716bef53da57bd3f551eb_bigui255, - 0x3aaf796b71041e8b2b494bca3b030f56a0c5663149093c8a179c0f3e24d0f718_bigui255 + 0x4c9a6bc8284e783afd6c425f8cbdab82c0db3eac060a2dc00eca48ed6d1d052b_big_uint255, + 0x68e6d3a83ac8e60c92d2860ff7557e1fbe3b91c38fabbde8b28371dccce2a10b_big_uint255, + 0x56e0e39848046f0305d268b28aa753a41d48586e8579d5f95f12dba60e181d4c_big_uint255, + 0x5176824fd8c92fed23df24c382a9fdf86aeeecab0b6716bef53da57bd3f551eb_big_uint255, + 0x3aaf796b71041e8b2b494bca3b030f56a0c5663149093c8a179c0f3e24d0f718_big_uint255 }}, {{ - 0x101cd65865abc573f5382df3636f4d60bc669aaa70f09ba040d61ef8d09c5296_bigui255, - 0x2581f83d616d932b438bfe0062082d4e1ed7d34b9a1cf63580199731d44a4b25_bigui255, - 0x65d74f6d1320dd1dc9412547b130bc7ad03c4e80cd8a44c108f24ec7aa35489a_bigui255, - 0x0d5cb6e19c9aac7d9f51f176ed42d008317a189dc4f6fc5c36fc6d451a035916_bigui255, - 0x0e367d17423501e62db9fd487f72076f2d1de6dabd3c175341ce35f925c9941e_bigui255 + 0x101cd65865abc573f5382df3636f4d60bc669aaa70f09ba040d61ef8d09c5296_big_uint255, + 0x2581f83d616d932b438bfe0062082d4e1ed7d34b9a1cf63580199731d44a4b25_big_uint255, + 0x65d74f6d1320dd1dc9412547b130bc7ad03c4e80cd8a44c108f24ec7aa35489a_big_uint255, + 0x0d5cb6e19c9aac7d9f51f176ed42d008317a189dc4f6fc5c36fc6d451a035916_big_uint255, + 0x0e367d17423501e62db9fd487f72076f2d1de6dabd3c175341ce35f925c9941e_big_uint255 }}, {{ - 0x3f3f101f7c8abd6bebe6b81dadf0ff5fa31ec7140e317909a8d2f94ce4adc890_bigui255, - 0x6d5f212b5f4775095ab1d20fffd41dd73ab69b4ac60e9de11693f8e6bab88e67_bigui255, - 0x6b11154212e86e185a4cb17dc2b9dc061f72bf9cc3df5f95f7b87f1101d09f1c_bigui255, - 0x43f4cf980ff1a9101ca3c4601814f8de4124d108be2584ee9ffb9505188d35fd_bigui255, - 0x5d9be9303e3a25e8fa1abb6f2a7e3250231091100f9d7311b050b52666ec8f02_bigui255 + 0x3f3f101f7c8abd6bebe6b81dadf0ff5fa31ec7140e317909a8d2f94ce4adc890_big_uint255, + 0x6d5f212b5f4775095ab1d20fffd41dd73ab69b4ac60e9de11693f8e6bab88e67_big_uint255, + 0x6b11154212e86e185a4cb17dc2b9dc061f72bf9cc3df5f95f7b87f1101d09f1c_big_uint255, + 0x43f4cf980ff1a9101ca3c4601814f8de4124d108be2584ee9ffb9505188d35fd_big_uint255, + 0x5d9be9303e3a25e8fa1abb6f2a7e3250231091100f9d7311b050b52666ec8f02_big_uint255 }}, {{ - 0x1eb3b147885e1261d9034ca89a658817caef5ae629e1265cd32c6ef89ce704e9_bigui255, - 0x1595d95dac2c4653d32b01c3fbc294b2922140e41b93c5e7f5702212226d7140_bigui255, - 0x578b22f1f6d6eeb61507f0de1c817bb876b9cd079a18be9e99e2faa8e02618e2_bigui255, - 0x4de38f88c5e8ba1890b3695c912ccacd63721298c9ba3d3668b44f2a13b40abd_bigui255, - 0x0b9df0b81af072be21be9f08df336d3babe6ed5bfc199c73f2e97ccc73de80ae_bigui255 + 0x1eb3b147885e1261d9034ca89a658817caef5ae629e1265cd32c6ef89ce704e9_big_uint255, + 0x1595d95dac2c4653d32b01c3fbc294b2922140e41b93c5e7f5702212226d7140_big_uint255, + 0x578b22f1f6d6eeb61507f0de1c817bb876b9cd079a18be9e99e2faa8e02618e2_big_uint255, + 0x4de38f88c5e8ba1890b3695c912ccacd63721298c9ba3d3668b44f2a13b40abd_big_uint255, + 0x0b9df0b81af072be21be9f08df336d3babe6ed5bfc199c73f2e97ccc73de80ae_big_uint255 }}, {{ - 0x2a1a8c6d54abda22954e90386d40cc7d5c4f54c592ec2c69a9574601e88b6559_bigui255, - 0x5c5d96136cd1c4ae8fa1db9273083567345b407eb66f73a313ab8ad1a76cb157_bigui255, - 0x1ade9e2b734e937fc2fa04ca445236faf24e6d47ad1a4baa3408102c0d1e6363_bigui255, - 0x49354c394824998704e44eeb2ba6cb6fb431c334b648e6c87565e5fe133e8079_bigui255, - 0x4ea258f019a8055902a696b85547652519b8d8d92de4bf18e2dbfa41264a9a6e_bigui255 + 0x2a1a8c6d54abda22954e90386d40cc7d5c4f54c592ec2c69a9574601e88b6559_big_uint255, + 0x5c5d96136cd1c4ae8fa1db9273083567345b407eb66f73a313ab8ad1a76cb157_big_uint255, + 0x1ade9e2b734e937fc2fa04ca445236faf24e6d47ad1a4baa3408102c0d1e6363_big_uint255, + 0x49354c394824998704e44eeb2ba6cb6fb431c334b648e6c87565e5fe133e8079_big_uint255, + 0x4ea258f019a8055902a696b85547652519b8d8d92de4bf18e2dbfa41264a9a6e_big_uint255 }}, {{ - 0x008a5162adf5ebd8711fd8139418509e472abc02908084f2e494086232336808_bigui255, - 0x6badee92872dcc00812a1cbc8081dd65ece0c7d3512af5a9df5fed7428557c81_bigui255, - 0x324c64ef2693e966965246bb7bb8c04b57a21fbee9be8c4a10096222bc83cc51_bigui255, - 0x3f14138eee87c93b0fbfe7efdcfa906525b0ce0f3b9a7431a492f8cb71514219_bigui255, - 0x0db99fa5ce25d50f557415ad181f1399840574f678b2534cae8f774bc8703009_bigui255 + 0x008a5162adf5ebd8711fd8139418509e472abc02908084f2e494086232336808_big_uint255, + 0x6badee92872dcc00812a1cbc8081dd65ece0c7d3512af5a9df5fed7428557c81_big_uint255, + 0x324c64ef2693e966965246bb7bb8c04b57a21fbee9be8c4a10096222bc83cc51_big_uint255, + 0x3f14138eee87c93b0fbfe7efdcfa906525b0ce0f3b9a7431a492f8cb71514219_big_uint255, + 0x0db99fa5ce25d50f557415ad181f1399840574f678b2534cae8f774bc8703009_big_uint255 }}, {{ - 0x23d984702589f3275211041a4bde9d79329967723ec029da095bdbe733e97381_bigui255, - 0x6c5144ace155e976e287f1b95951194895bac2e5d54b07b62c3afe0eeafcbe39_bigui255, - 0x57a3e420fe7e0638bfb4d0b2c6286c2946166a6eb17836571909da153c3204de_bigui255, - 0x156621c4691a9240863577f10e29dc66a37d1b94e756869984c22d9f9d284726_bigui255, - 0x1b1e774a7ec903650adffe34f6aa8201d356e41e0951d38fb83a89413d078e4b_bigui255 + 0x23d984702589f3275211041a4bde9d79329967723ec029da095bdbe733e97381_big_uint255, + 0x6c5144ace155e976e287f1b95951194895bac2e5d54b07b62c3afe0eeafcbe39_big_uint255, + 0x57a3e420fe7e0638bfb4d0b2c6286c2946166a6eb17836571909da153c3204de_big_uint255, + 0x156621c4691a9240863577f10e29dc66a37d1b94e756869984c22d9f9d284726_big_uint255, + 0x1b1e774a7ec903650adffe34f6aa8201d356e41e0951d38fb83a89413d078e4b_big_uint255 }}, {{ - 0x514b940e5717c1ae53ea29b9a5a15998e294f69c1f553fe56124f66a16a78d53_bigui255, - 0x16350c6898d04d355d966c1d7827eee076a1ebd90781639e120feab665391ea9_bigui255, - 0x5b8b30d8c5ae46c4171d40478886c71c28fc86a3ae4a52ad1c05d8bcb9991b52_bigui255, - 0x5226cdc8a40c229ea4fb08f2c10e0e24cd41f24ca5fa5b5ab73e7340f632e727_bigui255, - 0x64383db664537c84a0a4030c3318f2f19cbeda46c70460035ad9d9240011639d_bigui255 + 0x514b940e5717c1ae53ea29b9a5a15998e294f69c1f553fe56124f66a16a78d53_big_uint255, + 0x16350c6898d04d355d966c1d7827eee076a1ebd90781639e120feab665391ea9_big_uint255, + 0x5b8b30d8c5ae46c4171d40478886c71c28fc86a3ae4a52ad1c05d8bcb9991b52_big_uint255, + 0x5226cdc8a40c229ea4fb08f2c10e0e24cd41f24ca5fa5b5ab73e7340f632e727_big_uint255, + 0x64383db664537c84a0a4030c3318f2f19cbeda46c70460035ad9d9240011639d_big_uint255 }}, {{ - 0x61068a086ab73c87701b2642af25f6a430240936ba473a9a258cbf90db275277_bigui255, - 0x5bf320a3e8a48c6a85e2dffc4740d1b381ec4aa0771d885dc16adee569403ad3_bigui255, - 0x2603e0fd03264a856c1a7b8f1c5a22c3b98f4858c345e8e0a68e3f6424dd2dfb_bigui255, - 0x100d221342e64ed7e4f1520be70f5b0134031f8a31b4790ebb8e0a89e50b42e2_bigui255, - 0x0e61bad85ce909438ecc028b55085ec2cee0dd3ac5a7bcaa79d96186747a4606_bigui255 + 0x61068a086ab73c87701b2642af25f6a430240936ba473a9a258cbf90db275277_big_uint255, + 0x5bf320a3e8a48c6a85e2dffc4740d1b381ec4aa0771d885dc16adee569403ad3_big_uint255, + 0x2603e0fd03264a856c1a7b8f1c5a22c3b98f4858c345e8e0a68e3f6424dd2dfb_big_uint255, + 0x100d221342e64ed7e4f1520be70f5b0134031f8a31b4790ebb8e0a89e50b42e2_big_uint255, + 0x0e61bad85ce909438ecc028b55085ec2cee0dd3ac5a7bcaa79d96186747a4606_big_uint255 }}, {{ - 0x570a2045ca0fa7288d7f372f36bd075c2517a9743c9baa46503c4396e1f316f4_bigui255, - 0x1a64e108621e134020ea761d8f2c5bb42f24fab7641b095f1d164d1fc7b8be90_bigui255, - 0x097f0f28fd299e3597ffd761e9ae8b0fa46526c9d78503dc9dd5f61df3a085d7_bigui255, - 0x1d1063cb1be0f9f96aca5e5e39be9df69c96ff717c7d0c7cfe179cd6dce27505_bigui255, - 0x3e30f5d48b3c2475b8f3ba08cba27caed32b1cf67f76ba9223803733e13ad863_bigui255 + 0x570a2045ca0fa7288d7f372f36bd075c2517a9743c9baa46503c4396e1f316f4_big_uint255, + 0x1a64e108621e134020ea761d8f2c5bb42f24fab7641b095f1d164d1fc7b8be90_big_uint255, + 0x097f0f28fd299e3597ffd761e9ae8b0fa46526c9d78503dc9dd5f61df3a085d7_big_uint255, + 0x1d1063cb1be0f9f96aca5e5e39be9df69c96ff717c7d0c7cfe179cd6dce27505_big_uint255, + 0x3e30f5d48b3c2475b8f3ba08cba27caed32b1cf67f76ba9223803733e13ad863_big_uint255 }}, {{ - 0x2b30db4198cd832506017fa26430d204476113cc791ee110cf5586af5ce3824c_bigui255, - 0x2b520e374519be203c022ec51dcf8d972dd01abfaea371de9b1532647fca7bfd_bigui255, - 0x183b9a8e45fd480e822f8a97a8d2f127d0ef561914903229fbc5602bea46cb37_bigui255, - 0x4e01e6edf11ef4c94fe8589f9622a70709330a12e68591f6ea7dda994117bdc8_bigui255, - 0x52ee256fb3031d20fc299de7fabd0d4ef2e7f12539760dafb0fbc8560a40ee16_bigui255 + 0x2b30db4198cd832506017fa26430d204476113cc791ee110cf5586af5ce3824c_big_uint255, + 0x2b520e374519be203c022ec51dcf8d972dd01abfaea371de9b1532647fca7bfd_big_uint255, + 0x183b9a8e45fd480e822f8a97a8d2f127d0ef561914903229fbc5602bea46cb37_big_uint255, + 0x4e01e6edf11ef4c94fe8589f9622a70709330a12e68591f6ea7dda994117bdc8_big_uint255, + 0x52ee256fb3031d20fc299de7fabd0d4ef2e7f12539760dafb0fbc8560a40ee16_big_uint255 }}, {{ - 0x327f5e141e4758d3d9a94c1628a57c817cf84fc0082b8dc098adbe84c1430979_bigui255, - 0x3d0e12036899e5be167de13913901831a714ea5617b94de6de070ddc117bac71_bigui255, - 0x1d9466d50efd1be3080d0aec4b81dd5cdf1ad4681e3ac04d08057f8fe49cdf0b_bigui255, - 0x2360abd7728da2dcda3f495a9a4f0f2aaff1d2420b8f6a7fed6592e1463f3d00_bigui255, - 0x23c1df4ddd6da863a1a2837e5222150278adfd4faf2fae7beaf64ed67a30736c_bigui255 + 0x327f5e141e4758d3d9a94c1628a57c817cf84fc0082b8dc098adbe84c1430979_big_uint255, + 0x3d0e12036899e5be167de13913901831a714ea5617b94de6de070ddc117bac71_big_uint255, + 0x1d9466d50efd1be3080d0aec4b81dd5cdf1ad4681e3ac04d08057f8fe49cdf0b_big_uint255, + 0x2360abd7728da2dcda3f495a9a4f0f2aaff1d2420b8f6a7fed6592e1463f3d00_big_uint255, + 0x23c1df4ddd6da863a1a2837e5222150278adfd4faf2fae7beaf64ed67a30736c_big_uint255 }}, {{ - 0x1e98ec3b325a2a11738273f94516a9d56107f33062661e571342bc043764cf77_bigui255, - 0x431de5d108f8f7109df3059abcc16ccbd17e18676ef64f8998498e4a3f331fde_bigui255, - 0x550937f2bf0f1adb53f412d49ffd2886158703c375f87d059461f740d655e3d0_bigui255, - 0x1341fa99aca4bfc0f511dc9a9bc57c1e7aeb41ebb3a9140f5f93af1b3aeeb582_bigui255, - 0x706889448219016f970b32463a87e355b55ce0a34401dbfe4dd19fb3f93dec2e_bigui255 + 0x1e98ec3b325a2a11738273f94516a9d56107f33062661e571342bc043764cf77_big_uint255, + 0x431de5d108f8f7109df3059abcc16ccbd17e18676ef64f8998498e4a3f331fde_big_uint255, + 0x550937f2bf0f1adb53f412d49ffd2886158703c375f87d059461f740d655e3d0_big_uint255, + 0x1341fa99aca4bfc0f511dc9a9bc57c1e7aeb41ebb3a9140f5f93af1b3aeeb582_big_uint255, + 0x706889448219016f970b32463a87e355b55ce0a34401dbfe4dd19fb3f93dec2e_big_uint255 }}, {{ - 0x28d6207e409ab1c6e8e196d9e363040070b6c6fc4685a5482f80ba38cb792dc5_bigui255, - 0x6827087ecdf4e6bc7c396c59de859cbf08f92c361b5174e7f681ba0e72f83aaa_bigui255, - 0x553e112dab620286f6cf2d31325b971a6516dc7776a6e5ef37bcb11d1785299d_bigui255, - 0x40b44f7413d152f0d46460c54e9572fd91174b4b94a3595d709119e49925354c_bigui255, - 0x4d324dd7dfdf2380ef9f6d3c4f4bc4c5f90dbbbf2f1fd923256913f33a45cc09_bigui255 + 0x28d6207e409ab1c6e8e196d9e363040070b6c6fc4685a5482f80ba38cb792dc5_big_uint255, + 0x6827087ecdf4e6bc7c396c59de859cbf08f92c361b5174e7f681ba0e72f83aaa_big_uint255, + 0x553e112dab620286f6cf2d31325b971a6516dc7776a6e5ef37bcb11d1785299d_big_uint255, + 0x40b44f7413d152f0d46460c54e9572fd91174b4b94a3595d709119e49925354c_big_uint255, + 0x4d324dd7dfdf2380ef9f6d3c4f4bc4c5f90dbbbf2f1fd923256913f33a45cc09_big_uint255 }}, {{ - 0x609b3ae79dcdc8a8379a690394c95805d862bc31068b572ac126bbc082ebf8b7_bigui255, - 0x33973520a1d9fb67048d64a22ad1b75b081d88c135a556dbc1b6a8479f75eaa7_bigui255, - 0x3bcb7630fc45d34b78fd253d0b5275ecfa85ce48125ef7275c3a9205d01b85d8_bigui255, - 0x1287f419048e81322d73bb9333e9b854e4ceac4b993b5342547263a486b42e34_bigui255, - 0x2a2f5a5a689471d5ef46d669e449ccdc1d37256618722f08cc2c7e75d06fc277_bigui255 + 0x609b3ae79dcdc8a8379a690394c95805d862bc31068b572ac126bbc082ebf8b7_big_uint255, + 0x33973520a1d9fb67048d64a22ad1b75b081d88c135a556dbc1b6a8479f75eaa7_big_uint255, + 0x3bcb7630fc45d34b78fd253d0b5275ecfa85ce48125ef7275c3a9205d01b85d8_big_uint255, + 0x1287f419048e81322d73bb9333e9b854e4ceac4b993b5342547263a486b42e34_big_uint255, + 0x2a2f5a5a689471d5ef46d669e449ccdc1d37256618722f08cc2c7e75d06fc277_big_uint255 }}, {{ - 0x38c913fdc729a28b7e354947f2b6449029976d442e349bc1c2acf3b0fa28bc92_bigui255, - 0x421826bc690adac2b1f3637bc5e2333cb5e4bce3f9e8eac1a0a76df32a7ebff7_bigui255, - 0x30ac2452c3a07bb924b6f7ed47cd6581499d532c5f90bf7fbc69556ff3bf6b09_bigui255, - 0x40ce93f92b281e538efbe7cec9a22a9c005eef428dde3cdd46191630f563ba04_bigui255, - 0x4fc3dd6720c87f672f7b6ff129e9b2a3236ec760a71f78aee84925d8e7616e97_bigui255 + 0x38c913fdc729a28b7e354947f2b6449029976d442e349bc1c2acf3b0fa28bc92_big_uint255, + 0x421826bc690adac2b1f3637bc5e2333cb5e4bce3f9e8eac1a0a76df32a7ebff7_big_uint255, + 0x30ac2452c3a07bb924b6f7ed47cd6581499d532c5f90bf7fbc69556ff3bf6b09_big_uint255, + 0x40ce93f92b281e538efbe7cec9a22a9c005eef428dde3cdd46191630f563ba04_big_uint255, + 0x4fc3dd6720c87f672f7b6ff129e9b2a3236ec760a71f78aee84925d8e7616e97_big_uint255 }}, {{ - 0x3f3ba6f9f12ca6f934f92b17f4f3bd8ec261e5870610557f687bc734eadaa2d4_bigui255, - 0x11d9eedda8d94fcbed859f5787fe20b7d4483cd319d8215530e2e316c89ee635_bigui255, - 0x29981cff92be6c882c89feb59849d014fcd163699b5b4fdafca335552c4581d1_bigui255, - 0x4c4fe2838d175c666c0d3f20d8dfefdcbcdacebca86e013d8ad29b6a0cf6bb79_bigui255, - 0x630428a99469c03f9027d3c601864185d360d920771ea950732cf000b869a09a_bigui255 + 0x3f3ba6f9f12ca6f934f92b17f4f3bd8ec261e5870610557f687bc734eadaa2d4_big_uint255, + 0x11d9eedda8d94fcbed859f5787fe20b7d4483cd319d8215530e2e316c89ee635_big_uint255, + 0x29981cff92be6c882c89feb59849d014fcd163699b5b4fdafca335552c4581d1_big_uint255, + 0x4c4fe2838d175c666c0d3f20d8dfefdcbcdacebca86e013d8ad29b6a0cf6bb79_big_uint255, + 0x630428a99469c03f9027d3c601864185d360d920771ea950732cf000b869a09a_big_uint255 }}, {{ - 0x46a776fbf1f36d7fdfa7a210cbb2ffa533540068c169e12f127cb14d9b587056_bigui255, - 0x41a775960677e6c5fdf73c2a409b6e5c08e271cbb8c825f598a1801c84fde5ae_bigui255, - 0x3086af931c41d791deb57f7f82dc511e4d349f42b52c3e0080097c4e44373dc8_bigui255, - 0x155516da7a229b61392a39cc10a67112f512203cab706428f5fbbb3a9fd89fbd_bigui255, - 0x41bdb1e32081ac55f42969658f78e308bdf50175b619c3ca8e3bfdf1ca984684_bigui255 + 0x46a776fbf1f36d7fdfa7a210cbb2ffa533540068c169e12f127cb14d9b587056_big_uint255, + 0x41a775960677e6c5fdf73c2a409b6e5c08e271cbb8c825f598a1801c84fde5ae_big_uint255, + 0x3086af931c41d791deb57f7f82dc511e4d349f42b52c3e0080097c4e44373dc8_big_uint255, + 0x155516da7a229b61392a39cc10a67112f512203cab706428f5fbbb3a9fd89fbd_big_uint255, + 0x41bdb1e32081ac55f42969658f78e308bdf50175b619c3ca8e3bfdf1ca984684_big_uint255 }}, {{ - 0x01344d21e02b9c20d0d886a02167cf8502c3614ab909ae2fa7929b12d3e88519_bigui255, - 0x733a3e92f74b793915beab78e87bd88a2227aa5406df54dc9a2c5e80a11f71e5_bigui255, - 0x6a6cc17a31ba2fe1411cdebeb0809bf4ff0069b0d6ac681edf816ef4c59b6f64_bigui255, - 0x0a77e0a85b06c1b152098066bd36933264641627192e3acdbf611bd002918820_bigui255, - 0x3efb107ebed9b44672f679bffec0121fb509d19e97ae1bac3a86384e274c8c94_bigui255 + 0x01344d21e02b9c20d0d886a02167cf8502c3614ab909ae2fa7929b12d3e88519_big_uint255, + 0x733a3e92f74b793915beab78e87bd88a2227aa5406df54dc9a2c5e80a11f71e5_big_uint255, + 0x6a6cc17a31ba2fe1411cdebeb0809bf4ff0069b0d6ac681edf816ef4c59b6f64_big_uint255, + 0x0a77e0a85b06c1b152098066bd36933264641627192e3acdbf611bd002918820_big_uint255, + 0x3efb107ebed9b44672f679bffec0121fb509d19e97ae1bac3a86384e274c8c94_big_uint255 }}, {{ - 0x3c0c4b441b0ea7ffe03c011db9aab4f86ec4849a0c783a3b7af21b05f5654482_bigui255, - 0x28072c7bfa64f6cb97e4341cd18809ef5cd083374fbec26370c2b0ac02dcdafe_bigui255, - 0x1962306e92b3c7295b2f7435ed8f67dda3a15ec6d8b0786d7727d071663ab22b_bigui255, - 0x594dc533611f7f588838f894a26b1cd27432c63f9fbe03ef2d95d9a2d191ae3f_bigui255, - 0x3e287fec491c686222949bc16c2308ade64e3a0a1dccdb25d64f9d5b94ead6e7_bigui255 + 0x3c0c4b441b0ea7ffe03c011db9aab4f86ec4849a0c783a3b7af21b05f5654482_big_uint255, + 0x28072c7bfa64f6cb97e4341cd18809ef5cd083374fbec26370c2b0ac02dcdafe_big_uint255, + 0x1962306e92b3c7295b2f7435ed8f67dda3a15ec6d8b0786d7727d071663ab22b_big_uint255, + 0x594dc533611f7f588838f894a26b1cd27432c63f9fbe03ef2d95d9a2d191ae3f_big_uint255, + 0x3e287fec491c686222949bc16c2308ade64e3a0a1dccdb25d64f9d5b94ead6e7_big_uint255 }}, {{ - 0x2a95d47fb725b3978a7f90e601f2a9ab39074b35594e0bd133f9c5f34d765d42_bigui255, - 0x29c603ecc031a9750a4d826e4abf3874bc76c76cc7ea306b3b9636f9653ff58c_bigui255, - 0x0bbff6ba283aa42f01172bb82a2838e50941227abc3a2a5b1215b9a6d68de07c_bigui255, - 0x73c7ee55aaa453d36ed857353bc227375244a7e554ceeea2018eb9cb39a51e74_bigui255, - 0x3ff41b13d4cb3140ac8426322e88ff6f16895d88e6de3336cc88c693e0d38175_bigui255 + 0x2a95d47fb725b3978a7f90e601f2a9ab39074b35594e0bd133f9c5f34d765d42_big_uint255, + 0x29c603ecc031a9750a4d826e4abf3874bc76c76cc7ea306b3b9636f9653ff58c_big_uint255, + 0x0bbff6ba283aa42f01172bb82a2838e50941227abc3a2a5b1215b9a6d68de07c_big_uint255, + 0x73c7ee55aaa453d36ed857353bc227375244a7e554ceeea2018eb9cb39a51e74_big_uint255, + 0x3ff41b13d4cb3140ac8426322e88ff6f16895d88e6de3336cc88c693e0d38175_big_uint255 }}, {{ - 0x03043688d4c991763362912a460be95b668fe9b1823fe90febfb3ffc7652ab24_bigui255, - 0x33a29a0d56a7a64d36a67da2c691ff3eaf8ec7f0d78b357e7d2254c5b0e28f73_bigui255, - 0x185db562fc75b43ba2710ad5e9114486b3e9712fe4c88f98b333c0c6211ac882_bigui255, - 0x147b89a0cff9083b8952b3ef292c683f75d523f932711c6e1db3f28f5163b1fb_bigui255, - 0x58ebc5d6b50bb1e4fdb4dcdfae1b69027978826f757ee4dc10d34f963f98fb59_bigui255 + 0x03043688d4c991763362912a460be95b668fe9b1823fe90febfb3ffc7652ab24_big_uint255, + 0x33a29a0d56a7a64d36a67da2c691ff3eaf8ec7f0d78b357e7d2254c5b0e28f73_big_uint255, + 0x185db562fc75b43ba2710ad5e9114486b3e9712fe4c88f98b333c0c6211ac882_big_uint255, + 0x147b89a0cff9083b8952b3ef292c683f75d523f932711c6e1db3f28f5163b1fb_big_uint255, + 0x58ebc5d6b50bb1e4fdb4dcdfae1b69027978826f757ee4dc10d34f963f98fb59_big_uint255 }}, {{ - 0x1318791367815809badf1f3ed677e50cef92021c65549b2dabaa52c7b424f5a9_bigui255, - 0x5bce78553694ba32f793c8d7f8d09ac63d0d7ada32b888d61b87849f3eda9557_bigui255, - 0x026bebcc38f0b2804ed21f2e2b16af2194375ff2559fbc588a8962caf0b684c0_bigui255, - 0x494bceff689f9885a3998de0eaaa7ac71a04522700f2e067efdbb037c6e53c66_bigui255, - 0x03ebaf5f0602347c4ed2bdb9a86eb955cb5cd5378f7a6f369dccb69792de8bd2_bigui255 + 0x1318791367815809badf1f3ed677e50cef92021c65549b2dabaa52c7b424f5a9_big_uint255, + 0x5bce78553694ba32f793c8d7f8d09ac63d0d7ada32b888d61b87849f3eda9557_big_uint255, + 0x026bebcc38f0b2804ed21f2e2b16af2194375ff2559fbc588a8962caf0b684c0_big_uint255, + 0x494bceff689f9885a3998de0eaaa7ac71a04522700f2e067efdbb037c6e53c66_big_uint255, + 0x03ebaf5f0602347c4ed2bdb9a86eb955cb5cd5378f7a6f369dccb69792de8bd2_big_uint255 }}, {{ - 0x3626d91f9f05334cb32d3a42eed03f7a553a0ed4cada2db08b45b548bd3b3655_bigui255, - 0x63ee9e5c5cd3c83e93757ed93358ff0583d761e595b62f11df27bd4292ffb6e5_bigui255, - 0x705dd80b2db4492c8b9984439b823681c4d9c8dcddcc04b9786a90051513a0e1_bigui255, - 0x2636ac2ac559be8fe509641dbc67e55db47bb051e05ef06301020c9501f110f1_bigui255, - 0x4781b8da302c7764951730e7ac0892de64537d94db2e19b84eec5a2d9539288e_bigui255 + 0x3626d91f9f05334cb32d3a42eed03f7a553a0ed4cada2db08b45b548bd3b3655_big_uint255, + 0x63ee9e5c5cd3c83e93757ed93358ff0583d761e595b62f11df27bd4292ffb6e5_big_uint255, + 0x705dd80b2db4492c8b9984439b823681c4d9c8dcddcc04b9786a90051513a0e1_big_uint255, + 0x2636ac2ac559be8fe509641dbc67e55db47bb051e05ef06301020c9501f110f1_big_uint255, + 0x4781b8da302c7764951730e7ac0892de64537d94db2e19b84eec5a2d9539288e_big_uint255 }}, {{ - 0x197852b9a62e16779725f35cd8daf52ffbc8cc9c902c16923f2ff8873795ca86_bigui255, - 0x1c3e49f33fd73480b280dba7744cf67e244449048f8fc84f7b6e452b4ede9a35_bigui255, - 0x41d20cdc6a15c07fd9735c89b155412fcbb7bd3cdfc27abaad2a3a8a90e99743_bigui255, - 0x0c3a7aaeb5f65d907944d7aa48c27648be3d0371bd97a9c060e8ef4f573521b8_bigui255, - 0x52ea7c3f75cba07991674295c4e1462108401b9a103736623943d42e4fbe334e_bigui255 + 0x197852b9a62e16779725f35cd8daf52ffbc8cc9c902c16923f2ff8873795ca86_big_uint255, + 0x1c3e49f33fd73480b280dba7744cf67e244449048f8fc84f7b6e452b4ede9a35_big_uint255, + 0x41d20cdc6a15c07fd9735c89b155412fcbb7bd3cdfc27abaad2a3a8a90e99743_big_uint255, + 0x0c3a7aaeb5f65d907944d7aa48c27648be3d0371bd97a9c060e8ef4f573521b8_big_uint255, + 0x52ea7c3f75cba07991674295c4e1462108401b9a103736623943d42e4fbe334e_big_uint255 }}, {{ - 0x1106537bf3150b442b0992ee517b69707c3042015e938f97a63d5c924e67f677_bigui255, - 0x71de967042516a5b990ef18ae9956fab89f361b950e0639963017c237ee2a0cf_bigui255, - 0x664a4487e02f7bfa07a1db6ab94a0d1ed0f9e74002bde9cfcbb65f6f74dbfca0_bigui255, - 0x1023721fd7285260935b5a347f167ce721dd6ae5004c4debc68066bac8f2c467_bigui255, - 0x2d52fbc95404515f5456c74b65186c860a89dcda8c84bf68fbf715f3d58fe3f2_bigui255 + 0x1106537bf3150b442b0992ee517b69707c3042015e938f97a63d5c924e67f677_big_uint255, + 0x71de967042516a5b990ef18ae9956fab89f361b950e0639963017c237ee2a0cf_big_uint255, + 0x664a4487e02f7bfa07a1db6ab94a0d1ed0f9e74002bde9cfcbb65f6f74dbfca0_big_uint255, + 0x1023721fd7285260935b5a347f167ce721dd6ae5004c4debc68066bac8f2c467_big_uint255, + 0x2d52fbc95404515f5456c74b65186c860a89dcda8c84bf68fbf715f3d58fe3f2_big_uint255 }}, {{ - 0x6d987c9de419fb6e075441fd99606303e765d8696bcfe01a0d11aa0bd47c8601_bigui255, - 0x422016ce4d744029b1440a288d7988e43d0f29d616c47f70322ff87cfbc69301_bigui255, - 0x1f82afe8eb16611abc6600f7dc2a72c8e1d39643c189f3caa1ead08241a896c4_bigui255, - 0x3bb8684cf815ae6d8a789e0e488c6fb2ac46883fe1cfeb8cfa6f3dbca0f954bd_bigui255, - 0x3d5a1a6e571306fac431b098cdb3c4518f5a8fc436535766fe9e1bb8bda95d1d_bigui255 + 0x6d987c9de419fb6e075441fd99606303e765d8696bcfe01a0d11aa0bd47c8601_big_uint255, + 0x422016ce4d744029b1440a288d7988e43d0f29d616c47f70322ff87cfbc69301_big_uint255, + 0x1f82afe8eb16611abc6600f7dc2a72c8e1d39643c189f3caa1ead08241a896c4_big_uint255, + 0x3bb8684cf815ae6d8a789e0e488c6fb2ac46883fe1cfeb8cfa6f3dbca0f954bd_big_uint255, + 0x3d5a1a6e571306fac431b098cdb3c4518f5a8fc436535766fe9e1bb8bda95d1d_big_uint255 }}, {{ - 0x5e36e175c5d7df42b86285f43b1e4c6bfbaca19f1019073d38d04de0d0647669_bigui255, - 0x2c3b1b86ce90cb3fe74c5c99b20c3314e28e2f07ce8d932030caee4dfe5055f1_bigui255, - 0x0bfba44d41c49044bce730d8af86fe0397fff85ec10288b847868d0e9834f754_bigui255, - 0x0b79924b9e44662369c615cc8d7f36fe4a4b2a79045cee61c413eaf91d82e0c2_bigui255, - 0x048a11ec75eb154b70223a40cc0db9104b13f6a4ca24e7b9707963ee6f9f74ef_bigui255 + 0x5e36e175c5d7df42b86285f43b1e4c6bfbaca19f1019073d38d04de0d0647669_big_uint255, + 0x2c3b1b86ce90cb3fe74c5c99b20c3314e28e2f07ce8d932030caee4dfe5055f1_big_uint255, + 0x0bfba44d41c49044bce730d8af86fe0397fff85ec10288b847868d0e9834f754_big_uint255, + 0x0b79924b9e44662369c615cc8d7f36fe4a4b2a79045cee61c413eaf91d82e0c2_big_uint255, + 0x048a11ec75eb154b70223a40cc0db9104b13f6a4ca24e7b9707963ee6f9f74ef_big_uint255 }}, {{ - 0x6dd58a400d366014e46b0b9785ce9d78516813ed2eb329dc4531bfbd8e80eec0_bigui255, - 0x112844b7c50e7e676b616e72539d5751dec5a063456921b6b16f9e930cc35ebc_bigui255, - 0x217b616b50e729547af8ceef5008d1edf8d90bc9a7f3ce7c9bc71867e1c06471_bigui255, - 0x3f9a0b8402ffa291bccbb46dcd2522dea790b35a8503da46717c63917dcb7b79_bigui255, - 0x42a44fc114c0cad9badf62b911610bdc4b1a0ba9f656f66173a5476e63dfce86_bigui255 + 0x6dd58a400d366014e46b0b9785ce9d78516813ed2eb329dc4531bfbd8e80eec0_big_uint255, + 0x112844b7c50e7e676b616e72539d5751dec5a063456921b6b16f9e930cc35ebc_big_uint255, + 0x217b616b50e729547af8ceef5008d1edf8d90bc9a7f3ce7c9bc71867e1c06471_big_uint255, + 0x3f9a0b8402ffa291bccbb46dcd2522dea790b35a8503da46717c63917dcb7b79_big_uint255, + 0x42a44fc114c0cad9badf62b911610bdc4b1a0ba9f656f66173a5476e63dfce86_big_uint255 }}, {{ - 0x294223972f4c7e9c9ebefebf059eb90f44479956f5337b12a2eb803e313e96cc_bigui255, - 0x448101837874eb1bda92bc8a632cbf8f70a0664bbcf3a196609b14c53ee4dbcb_bigui255, - 0x53a26c6e2b3df0b17faf6a259bc5531d3ae79da59eb8fc5f594e0b886d8d97be_bigui255, - 0x207c7c32631a75fe8e0da895367176d24e32c5573ec91acf235f3c6c307807cd_bigui255, - 0x20f955773b13b160d3575eb2380b466f7d38cb4a0e12a15d43d147645c3944ca_bigui255 + 0x294223972f4c7e9c9ebefebf059eb90f44479956f5337b12a2eb803e313e96cc_big_uint255, + 0x448101837874eb1bda92bc8a632cbf8f70a0664bbcf3a196609b14c53ee4dbcb_big_uint255, + 0x53a26c6e2b3df0b17faf6a259bc5531d3ae79da59eb8fc5f594e0b886d8d97be_big_uint255, + 0x207c7c32631a75fe8e0da895367176d24e32c5573ec91acf235f3c6c307807cd_big_uint255, + 0x20f955773b13b160d3575eb2380b466f7d38cb4a0e12a15d43d147645c3944ca_big_uint255 }} }}; }; diff --git a/crypto3/libs/hash/test/poseidon.cpp b/crypto3/libs/hash/test/poseidon.cpp index ee2f73eb00..2e9e596023 100644 --- a/crypto3/libs/hash/test/poseidon.cpp +++ b/crypto3/libs/hash/test/poseidon.cpp @@ -105,110 +105,110 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) // We have NO TESTS for Vesta Field so far, since Mina code doesn't have tests and test vectors for it. BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_0) { test_mina_poseidon( - {}, 0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8_bigui254); + {}, 0x2FADBE2852044D028597455BC2ABBD1BC873AF205DFABB8A304600F3E09EEBA8_big_uint254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_1) { test_mina_poseidon( - {0x36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2_bigui254}, - 0x3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FB_bigui254 + {0x36FB00AD544E073B92B4E700D9C49DE6FC93536CAE0C612C18FBE5F6D8E8EEF2_big_uint254}, + 0x3D4F050775295C04619E72176746AD1290D391D73FF4955933F9075CF69259FB_big_uint254 ); } // works up to this BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_2) { test_mina_poseidon( - {0x3793E30AC691700012BAF26BB813D6D70BD379BEED8050A1DEEE3C188F1C3FBD_bigui254, - 0x2FC4C98E50E0B1AAE6ECB468E28C0B7D80A7E0EEC7136DB0BA0677B84AF0E465_bigui254}, - 0x336C73D08AD408CEB7D1264867096F0817A1D0558B313312A1207602F23624FE_bigui254 + {0x3793E30AC691700012BAF26BB813D6D70BD379BEED8050A1DEEE3C188F1C3FBD_big_uint254, + 0x2FC4C98E50E0B1AAE6ECB468E28C0B7D80A7E0EEC7136DB0BA0677B84AF0E465_big_uint254}, + 0x336C73D08AD408CEB7D1264867096F0817A1D0558B313312A1207602F23624FE_big_uint254 ); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_3) { test_mina_poseidon( - {0x0024FB5773CAC987CF3A17DDD6134BA12D3E1CA4F6C43D3695347747CE61EAF5_bigui254, - 0x18E0ED2B46ED1EC258DF721A1D3145B0AA6ABDD02EE851A14B8B659CF47385F2_bigui254, - 0x1A842A688E600F012637FE181292F70C4347B5AE0D9EA9CE7CF18592C345CF73_bigui254}, - 0x3F4B0EABB64E025F920457AF8D090A9F6472CAE11F3D62A749AF544A44941B9B_bigui254); + {0x0024FB5773CAC987CF3A17DDD6134BA12D3E1CA4F6C43D3695347747CE61EAF5_big_uint254, + 0x18E0ED2B46ED1EC258DF721A1D3145B0AA6ABDD02EE851A14B8B659CF47385F2_big_uint254, + 0x1A842A688E600F012637FE181292F70C4347B5AE0D9EA9CE7CF18592C345CF73_big_uint254}, + 0x3F4B0EABB64E025F920457AF8D090A9F6472CAE11F3D62A749AF544A44941B9B_big_uint254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_4) { test_mina_poseidon( - {0x2059462D60621F70620EA697FA1382EC5553A3DADB3CF9072201E09871B8284C_bigui254, - 0x2747337D1C4F9894747074C771E8EC7F570640E5D0CAF30FDDC446C00FA48707_bigui254, - 0x2DD5047C3EEEF37930E8FA4AD9691B27CF86D3ED39D4DEC4FC6D4E8EE4FF0415_bigui254, - 0x12C387C69BDD436F65AB607A4ED7C62714872EDBF800518B58E76F5106650B29_bigui254}, - 0x165A8CECF6660C6E0054CB9B4DBA9D68047166D7F3CED2F8DC86ED2EBFD3EC47_bigui254); + {0x2059462D60621F70620EA697FA1382EC5553A3DADB3CF9072201E09871B8284C_big_uint254, + 0x2747337D1C4F9894747074C771E8EC7F570640E5D0CAF30FDDC446C00FA48707_big_uint254, + 0x2DD5047C3EEEF37930E8FA4AD9691B27CF86D3ED39D4DEC4FC6D4E8EE4FF0415_big_uint254, + 0x12C387C69BDD436F65AB607A4ED7C62714872EDBF800518B58E76F5106650B29_big_uint254}, + 0x165A8CECF6660C6E0054CB9B4DBA9D68047166D7F3CED2F8DC86ED2EBFD3EC47_big_uint254); } BOOST_AUTO_TEST_CASE(poseidon_kimchi_test_5) { test_mina_poseidon( - {0x3CF70C3A89749A45DB5236B8DE167A37762526C45270138A9FCDF2352B1899DA_bigui254, - 0x1BDF55BC84C1A0E0F7F6834949FCF90279B9D21C17DBC9928202C49039570598_bigui254, - 0x09441E95A82199EFC390152C5039C0D0566A90B7F6D1AA5813B2DAB90110FF90_bigui254, - 0x375B4A9785503C24531723DB1F31B50B79C3D1EC9F95DB7645A3EDA03862B588_bigui254, - 0x12688FE351ED01F3BB2EB6B0FA2A70FB232654F32B08990DC3A411E527776A89_bigui254}, - 0x0CA2C3342C2959D7CD94B5C9D4DC55900F5F60B345F714827C8B907752D5A209_bigui254); + {0x3CF70C3A89749A45DB5236B8DE167A37762526C45270138A9FCDF2352B1899DA_big_uint254, + 0x1BDF55BC84C1A0E0F7F6834949FCF90279B9D21C17DBC9928202C49039570598_big_uint254, + 0x09441E95A82199EFC390152C5039C0D0566A90B7F6D1AA5813B2DAB90110FF90_big_uint254, + 0x375B4A9785503C24531723DB1F31B50B79C3D1EC9F95DB7645A3EDA03862B588_big_uint254, + 0x12688FE351ED01F3BB2EB6B0FA2A70FB232654F32B08990DC3A411E527776A89_big_uint254}, + 0x0CA2C3342C2959D7CD94B5C9D4DC55900F5F60B345F714827C8B907752D5A209_big_uint254); } // Poseidon permutation test vectors are taken from: // https://extgit.iaik.tugraz.at/krypto/hadeshash/-/blob/208b5a164c6a252b137997694d90931b2bb851c5/code/test_vectors.txt BOOST_AUTO_TEST_CASE(poseidon_permutation_254_2) { test_poseidon_permutation, 2>( - {0x0000000000000000000000000000000000000000000000000000000000000000_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000002_bigui254 + {0x0000000000000000000000000000000000000000000000000000000000000000_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000002_big_uint254 }, - {0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a_bigui254, - 0x0fca49b798923ab0239de1c9e7a4a9a2210312b6a2f616d18b5a87f9b628ae29_bigui254, - 0x0e7ae82e40091e63cbd4f16a6d16310b3729d4b6e138fcf54110e2867045a30c_bigui254 + {0x115cc0f5e7d690413df64c6b9662e9cf2a3617f2743245519e19607a4417189a_big_uint254, + 0x0fca49b798923ab0239de1c9e7a4a9a2210312b6a2f616d18b5a87f9b628ae29_big_uint254, + 0x0e7ae82e40091e63cbd4f16a6d16310b3729d4b6e138fcf54110e2867045a30c_big_uint254 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_254_4) { test_poseidon_permutation, 4>( - {0x0000000000000000000000000000000000000000000000000000000000000000_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000002_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000003_bigui254, - 0x0000000000000000000000000000000000000000000000000000000000000004_bigui254 + {0x0000000000000000000000000000000000000000000000000000000000000000_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000002_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000003_big_uint254, + 0x0000000000000000000000000000000000000000000000000000000000000004_big_uint254 }, - {0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465_bigui254, - 0x1148aaef609aa338b27dafd89bb98862d8bb2b429aceac47d86206154ffe053d_bigui254, - 0x24febb87fed7462e23f6665ff9a0111f4044c38ee1672c1ac6b0637d34f24907_bigui254, - 0x0eb08f6d809668a981c186beaf6110060707059576406b248e5d9cf6e78b3d3e_bigui254, - 0x07748bc6877c9b82c8b98666ee9d0626ec7f5be4205f79ee8528ef1c4a376fc7_bigui254 + {0x299c867db6c1fdd79dcefa40e4510b9837e60ebb1ce0663dbaa525df65250465_big_uint254, + 0x1148aaef609aa338b27dafd89bb98862d8bb2b429aceac47d86206154ffe053d_big_uint254, + 0x24febb87fed7462e23f6665ff9a0111f4044c38ee1672c1ac6b0637d34f24907_big_uint254, + 0x0eb08f6d809668a981c186beaf6110060707059576406b248e5d9cf6e78b3d3e_big_uint254, + 0x07748bc6877c9b82c8b98666ee9d0626ec7f5be4205f79ee8528ef1c4a376fc7_big_uint254 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_255_3) { test_poseidon_permutation, 2>( - {0x0000000000000000000000000000000000000000000000000000000000000000_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000002_bigui255 + {0x0000000000000000000000000000000000000000000000000000000000000000_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000002_big_uint255 }, - {0x28ce19420fc246a05553ad1e8c98f5c9d67166be2c18e9e4cb4b4e317dd2a78a_bigui255, - 0x51f3e312c95343a896cfd8945ea82ba956c1118ce9b9859b6ea56637b4b1ddc4_bigui255, - 0x3b2b69139b235626a0bfb56c9527ae66a7bf486ad8c11c14d1da0c69bbe0f79a_bigui255 + {0x28ce19420fc246a05553ad1e8c98f5c9d67166be2c18e9e4cb4b4e317dd2a78a_big_uint255, + 0x51f3e312c95343a896cfd8945ea82ba956c1118ce9b9859b6ea56637b4b1ddc4_big_uint255, + 0x3b2b69139b235626a0bfb56c9527ae66a7bf486ad8c11c14d1da0c69bbe0f79a_big_uint255 } ); } BOOST_AUTO_TEST_CASE(poseidon_permutation_255_4) { test_poseidon_permutation, 4>( - {0x0000000000000000000000000000000000000000000000000000000000000000_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000002_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000003_bigui255, - 0x0000000000000000000000000000000000000000000000000000000000000004_bigui255 + {0x0000000000000000000000000000000000000000000000000000000000000000_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000002_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000003_big_uint255, + 0x0000000000000000000000000000000000000000000000000000000000000004_big_uint255 }, - {0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_bigui255, - 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_bigui255, - 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_bigui255, - 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_bigui255, - 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_bigui255 + {0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_big_uint255, + 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_big_uint255, + 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_big_uint255, + 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_big_uint255, + 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_big_uint255 } ); } @@ -224,7 +224,7 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) hash_t::digest_type s = extract::hash(acc); - BOOST_CHECK_EQUAL(s, 0x20CDA7B88718C51A894AE697F804FACD408616B1A7811A55023EA0E6060AA61C_bigui255); + BOOST_CHECK_EQUAL(s, 0x20CDA7B88718C51A894AE697F804FACD408616B1A7811A55023EA0E6060AA61C_big_uint255); } BOOST_AUTO_TEST_CASE(nil_poseidon_stream_255_4) { @@ -235,26 +235,26 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) using hash_t = hashes::poseidon; std::vector input = { - 0x0_bigui255, - 0x0_bigui255, - 0x0_bigui255, - 0x0_bigui255, - 0x0_bigui255 + 0x0_big_uint255, + 0x0_big_uint255, + 0x0_big_uint255, + 0x0_big_uint255, + 0x0_big_uint255 }; typename policy::digest_type d = hash(input); - BOOST_CHECK_EQUAL(d, 0x44753e7f86d80790e762345ff8cb156be18eb0318f8846641193f815fbd64038_bigui255); + BOOST_CHECK_EQUAL(d, 0x44753e7f86d80790e762345ff8cb156be18eb0318f8846641193f815fbd64038_big_uint255); input = { - 0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_bigui255, - 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_bigui255, - 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_bigui255, - 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_bigui255, - 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_bigui255 + 0x2a918b9c9f9bd7bb509331c81e297b5707f6fc7393dcee1b13901a0b22202e18_big_uint255, + 0x65ebf8671739eeb11fb217f2d5c5bf4a0c3f210e3f3cd3b08b5db75675d797f7_big_uint255, + 0x2cc176fc26bc70737a696a9dfd1b636ce360ee76926d182390cdb7459cf585ce_big_uint255, + 0x4dc4e29d283afd2a491fe6aef122b9a968e74eff05341f3cc23fda1781dcb566_big_uint255, + 0x03ff622da276830b9451b88b85e6184fd6ae15c8ab3ee25a5667be8592cce3b1_big_uint255 }; d = hash(input); - BOOST_CHECK_EQUAL(d, 0x44bff12d3a4713b18bd79c17eaabf8e69e29ce45ca48d7afb702baa1c37f3695_bigui255); + BOOST_CHECK_EQUAL(d, 0x44bff12d3a4713b18bd79c17eaabf8e69e29ce45ca48d7afb702baa1c37f3695_big_uint255); } BOOST_AUTO_TEST_CASE(nil_poseidon_wrapped_255_4) { @@ -274,8 +274,8 @@ BOOST_AUTO_TEST_SUITE(poseidon_tests) }; std::vector field_input = { - 0x000123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCD_bigui255, - 0x00000000000000000000000000000000000000000000000000000000000000EF_bigui255, + 0x000123456789ABCDEF0123456789ABCDEF0123456789ABCDEF0123456789ABCD_big_uint255, + 0x00000000000000000000000000000000000000000000000000000000000000EF_big_uint255, }; typename policy::digest_type d_uint8 = hash( diff --git a/crypto3/libs/math/test/polynomial_dfs.cpp b/crypto3/libs/math/test/polynomial_dfs.cpp index 04bf73e7f5..1aded8379e 100644 --- a/crypto3/libs/math/test/polynomial_dfs.cpp +++ b/crypto3/libs/math/test/polynomial_dfs.cpp @@ -51,23 +51,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; + {0x35_big_uint, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}}; polynomial_dfs a1 = { 7, - {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; + {0x35_big_uint, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}}; BOOST_CHECK_EQUAL(a, a1); } @@ -80,14 +80,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; + 0x35_big_uint, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -102,13 +102,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_bigui, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}}; + {0x35_big_uint, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -122,13 +122,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -142,38 +142,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 7, { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_bigui, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, + 0x71_big_uint, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -181,57 +181,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; + {0x4e_big_uint, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; polynomial_dfs b = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; + {0x4e_big_uint, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -240,27 +240,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_bigui, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui + 0x37_big_uint, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint } }, { 6, { - 0x4e_bigui, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui + 0x4e_big_uint, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint } } }; @@ -276,38 +276,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 7, { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_bigui, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, + 0x71_big_uint, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -315,57 +315,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; + {0x4e_big_uint, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; polynomial_dfs b = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}}; + {0x4e_big_uint, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -378,27 +378,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -408,14 +408,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -426,27 +426,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_bigui, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, - 0xa_bigui, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui, + 0x2c_big_uint, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint, + 0xa_big_uint, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_big_uint, + 0x61283ccdf122134fa2421001b12210000000b000000000005_big_uint, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_big_uint, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -455,14 +455,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui, + 0xb_big_uint, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_big_uint, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_big_uint, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_big_uint, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_big_uint, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_big_uint, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_big_uint, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -473,27 +473,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, - 0xc250799be244269f448420036244200000016000000000003_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, + 0x27_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint, + 0xc250799be244269f448420036244200000016000000000003_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, - 0xe_bigui, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, + 0x32_big_uint, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint, + 0xe_big_uint, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -502,14 +502,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -523,27 +523,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }}; a -= b; @@ -551,14 +551,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -569,23 +569,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_bigui, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, + 0x2c_big_uint, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -594,14 +594,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui + 0xb_big_uint, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_big_uint, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_big_uint, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_big_uint, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_big_uint, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_big_uint, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_big_uint, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_big_uint }}; BOOST_CHECK_EQUAL(c_res, a); @@ -611,27 +611,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, - 0xc250799be244269f448420036244200000016000000000003_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, + 0x27_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint, + 0xc250799be244269f448420036244200000016000000000003_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, - 0xe_bigui, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, + 0x32_big_uint, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint, + 0xe_big_uint, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint, }}; a -= b; @@ -639,14 +639,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -659,40 +659,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; polynomial_dfs b = { 2, { - 0x17_bigui, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, - 0x11_bigui, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, + 0x17_big_uint, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint, + 0x11_big_uint, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_bigui, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, - 0x13522f003a2269a89044690056226900000023000000000048_bigui, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}}; + {0x2f7_big_uint, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -702,44 +702,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }}; polynomial_dfs b = { 5, { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; + {0x60f_big_uint, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -749,44 +749,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }}; polynomial_dfs b = { 3, { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; + {0x60f_big_uint, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -795,38 +795,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_bigui, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, - 0xc250799be244269f44842003624420000001600000000003b_bigui, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}}; + {0x4f1_big_uint, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint, + 0xc250799be244269f44842003624420000001600000000003b_big_uint, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -839,40 +839,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; polynomial_dfs b = { 2, { - 0x17_bigui, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, - 0x11_bigui, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, + 0x17_big_uint, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint, + 0x11_big_uint, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_bigui, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, - 0x13522f003a2269a89044690056226900000023000000000048_bigui, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}}; + {0x2f7_big_uint, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -881,44 +881,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }}; polynomial_dfs b = { 5, { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; + {0x60f_big_uint, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -928,44 +928,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }}; polynomial_dfs b = { 3, { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}}; + {0x60f_big_uint, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -974,38 +974,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}}; + {0x37_big_uint, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}}; polynomial_dfs b = { 2, - {0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}}; + {0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_bigui, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, - 0xc250799be244269f44842003624420000001600000000003b_bigui, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}}; + {0x4f1_big_uint, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint, + 0xc250799be244269f44842003624420000001600000000003b_big_uint, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1019,25 +1019,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; + {0x13_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_bigui, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, - 0xe_bigui, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_big_uint, + 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, + 0xe_big_uint, + 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, }}; polynomial_dfs Q = a / b; @@ -1045,17 +1045,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_bigui, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui}}; // {0, 0, 0, 1}; + {0x1_big_uint, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_big_uint, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_big_uint, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_big_uint, + 0x8d51ccce760304d0ec030002760300000001000000000000_big_uint, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_big_uint}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui, - 0x5_bigui, 0x5_bigui, 0x5_bigui, - 0x5_bigui}}; //{5}; + {0x5_big_uint, 0x5_big_uint, 0x5_big_uint, 0x5_big_uint, + 0x5_big_uint, 0x5_big_uint, 0x5_big_uint, + 0x5_big_uint}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1120,25 +1120,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; + {0x13_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}}; - typename FieldType::value_type c = 0x10_bigui; + typename FieldType::value_type c = 0x10_big_uint; polynomial_dfs c_res = { 5, - {0x23_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui} + {0x23_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000015_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_big_uint} }; polynomial_dfs c1 = a + c; @@ -1153,36 +1153,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; + {0x13_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}}; - typename FieldType::value_type c = 0x10_bigui; + typename FieldType::value_type c = 0x10_big_uint; polynomial_dfs c_res = { 5, - {0x3_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui}}; + {0x3_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_big_uint, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_big_uint}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui, - 0x19_bigui, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_big_uint, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_big_uint, + 0x19_big_uint, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_big_uint}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1197,26 +1197,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_bigui, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}}; + {0x13_big_uint, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}}; - typename FieldType::value_type c = 0x123456789abcdef0_bigui; + typename FieldType::value_type c = 0x123456789abcdef0_big_uint; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_bigui, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui + {0x159e26af37c048bd0_big_uint, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_big_uint, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_big_uint, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_big_uint, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_big_uint, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_big_uint, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_big_uint }}; polynomial_dfs c1 = a * c; @@ -1235,14 +1235,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; polynomial_dfs res = a; @@ -1261,17 +1261,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; - typename FieldType::value_type point = 0x10_bigui; + typename FieldType::value_type point = 0x10_big_uint; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1284,17 +1284,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; - typename FieldType::value_type point = 0x10_bigui; + typename FieldType::value_type point = 0x10_big_uint; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1308,14 +1308,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/crypto3/libs/math/test/polynomial_dfs_view.cpp b/crypto3/libs/math/test/polynomial_dfs_view.cpp index 80cd023948..7d268f1bef 100644 --- a/crypto3/libs/math/test/polynomial_dfs_view.cpp +++ b/crypto3/libs/math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; + 0x35_big_uint, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_bigui, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui}; + 0x35_big_uint, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_bigui, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; + 0x37_big_uint, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_bigui, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui, + 0x71_big_uint, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_bigui, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; + 0x37_big_uint, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; + 0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_bigui, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}; + 0x4e_big_uint, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; + 0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_bigui, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; + 0x37_big_uint, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_bigui, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui}; + 0x4e_big_uint, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_bigui, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui, - 0x6_bigui, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui, + 0x3a_big_uint, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint, + 0x6_big_uint, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_bigui, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui, + 0x37_big_uint, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_bigui, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui, - 0xa_bigui, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui, + 0x2c_big_uint, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint, + 0xa_big_uint, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_big_uint, + 0x61283ccdf122134fa2421001b12210000000b000000000005_big_uint, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_big_uint, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_bigui, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui, + 0xb_big_uint, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_big_uint, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_big_uint, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_big_uint, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_big_uint, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_big_uint, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_big_uint, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui, - 0xc250799be244269f448420036244200000016000000000003_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui, + 0x27_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint, + 0xc250799be244269f448420036244200000016000000000003_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_bigui, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui, - 0xe_bigui, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui, + 0x32_big_uint, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint, + 0xe_big_uint, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_bigui, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui, + 0x21_big_uint, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_bigui, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui, - 0x11_bigui, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui, + 0x17_big_uint, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint, + 0x11_big_uint, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_bigui, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui, - 0x13522f003a2269a89044690056226900000023000000000048_bigui, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui}; + 0x2f7_big_uint, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}; + 0x60f_big_uint, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_bigui, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui, - 0xd_bigui, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui, + 0x2f_big_uint, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint, + 0xd_big_uint, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui, + 0x21_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui}; + 0x60f_big_uint, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_bigui, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui}; + 0x37_big_uint, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui, 0x11_bigui, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui}; + 0x17_big_uint, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint, 0x11_big_uint, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_bigui, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui, - 0xc250799be244269f44842003624420000001600000000003b_bigui, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui}; + 0x4f1_big_uint, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint, + 0xc250799be244269f44842003624420000001600000000003b_big_uint, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}; + 0x13_big_uint, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, - 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_big_uint, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, + 0xe_big_uint, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_bigui, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui}; + 0x1_big_uint, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_big_uint, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_big_uint, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_big_uint, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_big_uint, + 0x8d51ccce760304d0ec030002760300000001000000000000_big_uint, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_big_uint}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui}; + 0x13_big_uint, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, - 0xe_bigui, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui, - 0xc_bigui, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui, + 0xe_big_uint, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, + 0xe_big_uint, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint, + 0xc_big_uint, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui, - 0x5_bigui, 0x5_bigui, 0x5_bigui, 0x5_bigui}; + std::vector r_v = {0x5_big_uint, 0x5_big_uint, 0x5_big_uint, 0x5_big_uint, + 0x5_big_uint, 0x5_big_uint, 0x5_big_uint, 0x5_big_uint}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp index 81f837d14b..54cafd6dfa 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/literals.hpp @@ -12,7 +12,7 @@ namespace nil::crypto3::multiprecision::literals { template - constexpr auto operator"" _bigui() { + constexpr auto operator"" _big_uint() { constexpr std::size_t N = sizeof...(C); static_assert(N > 2, "hex literal should start with 0x"); constexpr std::array str{C...}; @@ -25,7 +25,7 @@ namespace nil::crypto3::multiprecision::literals { #define NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(Bits) \ namespace nil::crypto3::multiprecision::literals { \ template \ - constexpr auto operator"" _bigui##Bits() { \ + constexpr auto operator"" _big_uint##Bits() { \ constexpr std::size_t N = sizeof...(C); \ constexpr std::array str{C...}; \ constexpr auto result = \ diff --git a/crypto3/libs/multiprecision/test/big_int.cpp b/crypto3/libs/multiprecision/test/big_int.cpp index 84a90e25e6..049d445eec 100644 --- a/crypto3/libs/multiprecision/test/big_int.cpp +++ b/crypto3/libs/multiprecision/test/big_int.cpp @@ -22,40 +22,40 @@ using namespace nil::crypto3::multiprecision::literals; BOOST_AUTO_TEST_SUITE(smoke) BOOST_AUTO_TEST_CASE(construct_constexpr) { - constexpr nil::crypto3::multiprecision::big_uint<60> a = 0x123_bigui60; + constexpr nil::crypto3::multiprecision::big_uint<60> a = 0x123_big_uint60; } -BOOST_AUTO_TEST_CASE(to_string_zero) { BOOST_CHECK_EQUAL((0x0_bigui60).str(), "0x0"); } +BOOST_AUTO_TEST_CASE(to_string_zero) { BOOST_CHECK_EQUAL((0x0_big_uint60).str(), "0x0"); } -BOOST_AUTO_TEST_CASE(to_string_trivial) { BOOST_CHECK_EQUAL((0x1_bigui60).str(), "0x1"); } +BOOST_AUTO_TEST_CASE(to_string_trivial) { BOOST_CHECK_EQUAL((0x1_big_uint60).str(), "0x1"); } -BOOST_AUTO_TEST_CASE(to_string_small) { BOOST_CHECK_EQUAL((0x20_bigui60).str(), "0x20"); } +BOOST_AUTO_TEST_CASE(to_string_small) { BOOST_CHECK_EQUAL((0x20_big_uint60).str(), "0x20"); } BOOST_AUTO_TEST_CASE(to_string_medium) { - constexpr auto a = 0x123456789ABCDEF1234321_bigui85; + constexpr auto a = 0x123456789ABCDEF1234321_big_uint85; BOOST_CHECK_EQUAL(a.str(), "0x123456789ABCDEF1234321"); } BOOST_AUTO_TEST_CASE(to_string_big) { - constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_big_uint224; BOOST_CHECK_EQUAL(a.str(), "0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001"); } BOOST_AUTO_TEST_CASE(to_string_decimal_zero) { - BOOST_CHECK_EQUAL((0x0_bigui60).str(std::ios_base::dec), "0"); + BOOST_CHECK_EQUAL((0x0_big_uint60).str(std::ios_base::dec), "0"); } -BOOST_AUTO_TEST_CASE(to_string_decimal_trivial) { BOOST_CHECK_EQUAL((0x1_bigui60).str(std::ios_base::dec), "1"); } +BOOST_AUTO_TEST_CASE(to_string_decimal_trivial) { BOOST_CHECK_EQUAL((0x1_big_uint60).str(std::ios_base::dec), "1"); } -BOOST_AUTO_TEST_CASE(to_string_decimal_small) { BOOST_CHECK_EQUAL((0x20_bigui60).str(std::ios_base::dec), "32"); } +BOOST_AUTO_TEST_CASE(to_string_decimal_small) { BOOST_CHECK_EQUAL((0x20_big_uint60).str(std::ios_base::dec), "32"); } BOOST_AUTO_TEST_CASE(to_string_decimal_medium) { - constexpr auto a = 0x123456789ABCDEF1234321_bigui85; + constexpr auto a = 0x123456789ABCDEF1234321_big_uint85; BOOST_CHECK_EQUAL(a.str(std::ios_base::dec), "22007822920628982396437281"); } BOOST_AUTO_TEST_CASE(to_string_decimal_big) { - constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; + constexpr auto a = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_big_uint224; BOOST_CHECK_EQUAL(a.str(std::ios_base::dec), "26959946667150639794667015087019630673557916260026308143510066298881"); } @@ -111,88 +111,88 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(addition) -BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_bigui60 + 0x3_bigui60, 0x5_bigui60); } +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_big_uint60 + 0x3_big_uint60, 0x5_big_uint60); } BOOST_AUTO_TEST_CASE(does_not_wrap) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui32 + 0x2_bigui32, 0x100000001_bigui33); + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 + 0x2_big_uint32, 0x100000001_big_uint33); } BOOST_AUTO_TEST_CASE(does_not_wrap_rev) { - BOOST_CHECK_EQUAL(0x2_bigui32 + 0xFFFFFFFF_bigui32, 0x100000001_bigui33); + BOOST_CHECK_EQUAL(0x2_big_uint32 + 0xFFFFFFFF_big_uint32, 0x100000001_big_uint33); } BOOST_AUTO_TEST_CASE(multilimb) { - BOOST_CHECK_EQUAL(0xAFFFFFFFF_bigui36 + 0x2_bigui36, 0xB00000001_bigui36); + BOOST_CHECK_EQUAL(0xAFFFFFFFF_big_uint36 + 0x2_big_uint36, 0xB00000001_big_uint36); } BOOST_AUTO_TEST_CASE(multilimb_rev) { - BOOST_CHECK_EQUAL(0x2_bigui36 + 0xAFFFFFFFF_bigui36, 0xB00000001_bigui36); + BOOST_CHECK_EQUAL(0x2_big_uint36 + 0xAFFFFFFFF_big_uint36, 0xB00000001_big_uint36); } BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(multiplication) -BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_bigui60 * 0x3_bigui60, 0x6_bigui60); } +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_big_uint60 * 0x3_big_uint60, 0x6_big_uint60); } BOOST_AUTO_TEST_CASE(wraps) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui32 * 0x2_bigui32, 0x1FFFFFFFE_bigui33); + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 * 0x2_big_uint32, 0x1FFFFFFFE_big_uint33); } BOOST_AUTO_TEST_CASE(multilimb) { - BOOST_CHECK_EQUAL(0xAFFFFFFFF_bigui36 * 0x2_bigui36, 0x15FFFFFFFE_bigui37); + BOOST_CHECK_EQUAL(0xAFFFFFFFF_big_uint36 * 0x2_big_uint36, 0x15FFFFFFFE_big_uint37); } BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(division) -BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_bigui60 / 0x2_bigui60, 0x3_bigui60); } +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_big_uint60 / 0x2_big_uint60, 0x3_big_uint60); } BOOST_AUTO_TEST_CASE(multilimb) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui36 / 0x2_bigui36, 0x7FFFFFFF_bigui36); + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint36 / 0x2_big_uint36, 0x7FFFFFFF_big_uint36); } BOOST_AUTO_TEST_CASE(failing_small) { - BOOST_CHECK_EQUAL(0x442a8c9973ac96aec_bigui / 0x1874dfece1887_bigui, 0x2c988_bigui); + BOOST_CHECK_EQUAL(0x442a8c9973ac96aec_big_uint / 0x1874dfece1887_big_uint, 0x2c988_big_uint); } BOOST_AUTO_TEST_CASE(big) { BOOST_CHECK_EQUAL( - 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_bigui133 / 0x7DDD38BA708356E41324F_bigui83, - 0x38AB4C1B9E373_bigui133); + 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_big_uint133 / 0x7DDD38BA708356E41324F_big_uint83, + 0x38AB4C1B9E373_big_uint133); } BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(modulus) -BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_bigui60 % 0x4_bigui60, 0x3_bigui60); } +BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x7_big_uint60 % 0x4_big_uint60, 0x3_big_uint60); } BOOST_AUTO_TEST_CASE(multilimb) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_bigui36 % 0x7_bigui36, 0x3_bigui36); + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint36 % 0x7_big_uint36, 0x3_big_uint36); } BOOST_AUTO_TEST_CASE(failing) { BOOST_CHECK_EQUAL( - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256 % 2, 1u); + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_big_uint256 % 2, 1u); } BOOST_AUTO_TEST_CASE(failing2) { - BOOST_CHECK_EQUAL(0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256 % - 0x200000000_bigui, - 0x100000001_bigui); + BOOST_CHECK_EQUAL(0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_big_uint256 % + 0x200000000_big_uint, + 0x100000001_big_uint); } BOOST_AUTO_TEST_CASE(failing3) { - BOOST_CHECK_EQUAL(0xFFFFFFFFFFFFFFFFFFFFFFFF_bigui % 0x100000000FFFFFFFF_bigui, - 0x1fffffffe_bigui); + BOOST_CHECK_EQUAL(0xFFFFFFFFFFFFFFFFFFFFFFFF_big_uint % 0x100000000FFFFFFFF_big_uint, + 0x1fffffffe_big_uint); } BOOST_AUTO_TEST_CASE(big) { BOOST_CHECK_EQUAL( - 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_bigui133 % 0x7DDD38BA708356E41324F_bigui83, - 0xE60EDD894AC4D0D82E58_bigui133); + 0x1BDC9C98EE1BE3D7952E78252011D4D4D5_big_uint133 % 0x7DDD38BA708356E41324F_big_uint83, + 0xE60EDD894AC4D0D82E58_big_uint133); } BOOST_AUTO_TEST_SUITE_END() @@ -200,18 +200,18 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(convert) BOOST_AUTO_TEST_CASE(to_uint64_t) { - std::uint64_t a = static_cast(0x123456789ABCDEF_bigui64); + std::uint64_t a = static_cast(0x123456789ABCDEF_big_uint64); BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF); } BOOST_AUTO_TEST_CASE(from_uint64_t) { nil::crypto3::multiprecision::big_uint<64> a = static_cast(0x123456789ABCDEFull); - BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_bigui64); + BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_big_uint64); } BOOST_AUTO_TEST_CASE(from_int64_t) { nil::crypto3::multiprecision::big_uint<64> a = static_cast(0x123456789ABCDEFull); - BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_bigui64); + BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF_big_uint64); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp index a3726bba25..0c91d4fd28 100644 --- a/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp +++ b/crypto3/libs/multiprecision/test/big_int_cpp_int_conversions.cpp @@ -14,13 +14,13 @@ using namespace boost::multiprecision::literals; BOOST_AUTO_TEST_SUITE(cpp_int_conversion) BOOST_AUTO_TEST_CASE(to_cpp_int) { - BOOST_CHECK_EQUAL(nil::crypto3::multiprecision::to_cpp_int(0xFFFFFFFFFFF_bigui60).str(), + BOOST_CHECK_EQUAL(nil::crypto3::multiprecision::to_cpp_int(0xFFFFFFFFFFF_big_uint60).str(), "17592186044415"); } BOOST_AUTO_TEST_CASE(from_cpp_int) { auto result = nil::crypto3::multiprecision::to_big_uint(0xFFFFFFFFFFF_cppui60); - BOOST_CHECK_EQUAL(result, 0xFFFFFFFFFFF_bigui60); + BOOST_CHECK_EQUAL(result, 0xFFFFFFFFFFF_big_uint60); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_inverse.cpp b/crypto3/libs/multiprecision/test/big_int_inverse.cpp index a15e27019c..606f20c272 100644 --- a/crypto3/libs/multiprecision/test/big_int_inverse.cpp +++ b/crypto3/libs/multiprecision/test/big_int_inverse.cpp @@ -265,7 +265,7 @@ BOOST_AUTO_TEST_CASE(inverse_tests) { } BOOST_AUTO_TEST_CASE(test_big_mod_6_bits) { - auto modular = big_mod_rt<6>(10_bigui6, 37_bigui6); + auto modular = big_mod_rt<6>(10_big_uint6, 37_big_uint6); BOOST_CHECK_EQUAL(inverse_extended_euclidean_algorithm(modular).base(), 26u); } diff --git a/crypto3/libs/multiprecision/test/big_int_jacobi.cpp b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp index f88624c736..fd5485cc0e 100644 --- a/crypto3/libs/multiprecision/test/big_int_jacobi.cpp +++ b/crypto3/libs/multiprecision/test/big_int_jacobi.cpp @@ -54,10 +54,10 @@ BOOST_AUTO_TEST_SUITE(jacobi_tests) BOOST_AUTO_TEST_CASE(jacobi_test) { test>(); - constexpr auto a = 0x4931a5f_bigui256; - constexpr auto b = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_bigui256; + constexpr auto a = 0x4931a5f_big_uint256; + constexpr auto b = 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001_big_uint256; static_assert(jacobi(a, b) == -1, "jacobi error"); - static_assert(jacobi(0x2_bigui4, 0xb_bigui4) == -1); + static_assert(jacobi(0x2_big_uint4, 0xb_big_uint4) == -1); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp index b0bce66554..00410a0301 100644 --- a/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp +++ b/crypto3/libs/multiprecision/test/big_int_miller_rabin.cpp @@ -29,13 +29,13 @@ BOOST_AUTO_TEST_CASE(miller_rabin_builtin_test) { } BOOST_AUTO_TEST_CASE(miller_rabin_big_uint_test) { - BOOST_CHECK(miller_rabin_test(2_bigui128, 1000)); - BOOST_CHECK(miller_rabin_test(3_bigui128, 1000)); - BOOST_CHECK(!miller_rabin_test(4_bigui128, 1000)); - BOOST_CHECK(miller_rabin_test(17_bigui128, 1000)); - BOOST_CHECK(!miller_rabin_test(27_bigui128, 1000)); - BOOST_CHECK(miller_rabin_test(101_bigui128, 1000)); - BOOST_CHECK(!miller_rabin_test(207_bigui128, 1000)); + BOOST_CHECK(miller_rabin_test(2_big_uint128, 1000)); + BOOST_CHECK(miller_rabin_test(3_big_uint128, 1000)); + BOOST_CHECK(!miller_rabin_test(4_big_uint128, 1000)); + BOOST_CHECK(miller_rabin_test(17_big_uint128, 1000)); + BOOST_CHECK(!miller_rabin_test(27_big_uint128, 1000)); + BOOST_CHECK(miller_rabin_test(101_big_uint128, 1000)); + BOOST_CHECK(!miller_rabin_test(207_big_uint128, 1000)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_modular.cpp b/crypto3/libs/multiprecision/test/big_int_modular.cpp index 3f1600fe46..e8b57c5e65 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular.cpp @@ -17,54 +17,54 @@ NIL_CO3_MP_DEFINE_BIG_UINT_LITERAL(60) using namespace nil::crypto3::multiprecision::literals; -constexpr auto mod = 0x123456789ABCDEF_bigui57; +constexpr auto mod = 0x123456789ABCDEF_big_uint57; using big_mod_t = montgomery_big_mod; BOOST_AUTO_TEST_SUITE(smoke) BOOST_AUTO_TEST_CASE(construct_constexpr) { - constexpr big_mod_t a = static_cast(0x123_bigui64); + constexpr big_mod_t a = static_cast(0x123_big_uint64); } BOOST_AUTO_TEST_CASE(construct_modular_ct_trivial_montgomery) { - static constexpr auto mod = 0x3_bigui2; - auto_big_mod a = auto_big_mod(0x5_bigui); + static constexpr auto mod = 0x3_big_uint2; + auto_big_mod a = auto_big_mod(0x5_big_uint); BOOST_CHECK_EQUAL(a.str(), "0x2"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_trivial_montgomery) { - big_mod_rt<2> a(0x5_bigui, 0x3_bigui2); + big_mod_rt<2> a(0x5_big_uint, 0x3_big_uint2); BOOST_CHECK_EQUAL(a.str(), "0x2"); } BOOST_AUTO_TEST_CASE(construct_modular_ct_small_montgomery) { - static constexpr auto mod = 0x79_bigui7; - auto_big_mod a = auto_big_mod(0x1234_bigui); + static constexpr auto mod = 0x79_big_uint7; + auto_big_mod a = auto_big_mod(0x1234_big_uint); BOOST_CHECK_EQUAL(a.str(), "0x3E"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_small_montgomery) { - big_mod_rt<7> a(0x1234_bigui, 0x79_bigui7); + big_mod_rt<7> a(0x1234_big_uint, 0x79_big_uint7); BOOST_CHECK_EQUAL(a.str(), "0x3E"); } BOOST_AUTO_TEST_CASE(construct_modular_ct_small) { - static constexpr auto mod = 0x78_bigui7; - auto_big_mod a = auto_big_mod(0x1234_bigui); + static constexpr auto mod = 0x78_big_uint7; + auto_big_mod a = auto_big_mod(0x1234_big_uint); BOOST_CHECK_EQUAL(a.str(), "0x64"); } BOOST_AUTO_TEST_CASE(construct_modular_rt_small) { - big_mod_rt<7> a(0x1234_bigui, 0x78_bigui7); + big_mod_rt<7> a(0x1234_big_uint, 0x78_big_uint7); BOOST_CHECK_EQUAL(a.str(), "0x64"); } BOOST_AUTO_TEST_CASE(to_string_trivial) { - BOOST_CHECK_EQUAL((static_cast(0x1_bigui)).str(), "0x1"); + BOOST_CHECK_EQUAL((static_cast(0x1_big_uint)).str(), "0x1"); } BOOST_AUTO_TEST_CASE(to_string_small) { - BOOST_CHECK_EQUAL((static_cast(0x20_bigui)).str(), "0x20"); + BOOST_CHECK_EQUAL((static_cast(0x20_big_uint)).str(), "0x20"); } BOOST_AUTO_TEST_CASE(ops) { @@ -107,14 +107,14 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(addition) BOOST_AUTO_TEST_CASE(simple) { - BOOST_CHECK_EQUAL(static_cast(0x2_bigui64) + static_cast(0x3_bigui64), - static_cast(0x5_bigui64)); + BOOST_CHECK_EQUAL(static_cast(0x2_big_uint64) + static_cast(0x3_big_uint64), + static_cast(0x5_big_uint64)); } BOOST_AUTO_TEST_CASE(multilimb) { BOOST_CHECK_EQUAL( - static_cast(0xAFFFFFFFF_bigui64) + static_cast(0x2_bigui36), - static_cast(0xB00000001_bigui64)); + static_cast(0xAFFFFFFFF_big_uint64) + static_cast(0x2_big_uint36), + static_cast(0xB00000001_big_uint64)); } BOOST_AUTO_TEST_SUITE_END() @@ -122,36 +122,36 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(multiplication) BOOST_AUTO_TEST_CASE(simple) { - BOOST_CHECK_EQUAL(static_cast(0x2_bigui64) * static_cast(0x3_bigui64), - static_cast(0x6_bigui64)); + BOOST_CHECK_EQUAL(static_cast(0x2_big_uint64) * static_cast(0x3_big_uint64), + static_cast(0x6_big_uint64)); } BOOST_AUTO_TEST_CASE(multilimb) { BOOST_CHECK_EQUAL( - static_cast(0xAFFFFFFFF_bigui64) * static_cast(0x2_bigui36), - static_cast(0x15FFFFFFFE_bigui64)); + static_cast(0xAFFFFFFFF_big_uint64) * static_cast(0x2_big_uint36), + static_cast(0x15FFFFFFFE_big_uint64)); } BOOST_AUTO_TEST_CASE(big) { - static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; - big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_bigui224; + static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_big_uint224; + big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_big_uint224; - big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_bigui224; + big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_big_uint224; BOOST_CHECK_EQUAL((a * b).base(), - 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_bigui224); + 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_big_uint224); } BOOST_AUTO_TEST_CASE(big_assign) { - static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_bigui224; - big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_bigui224; + static constexpr auto mod = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000000000000000000001_big_uint224; + big_mod a = 0xC5067EE5D80302E0561545A8467C6D5C98BC4D37672EB301C38CE9A9_big_uint224; - big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_bigui224; + big_mod b = 0xE632329C42040E595D127EB6889D22215DBE56F540425C705D6BF83_big_uint224; a *= b; BOOST_CHECK_EQUAL(a.base(), - 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_bigui224); + 0x107BC09A9F3443A6F6458495ADD98CBA1FCD15F17D0EAB66302FEFA6_big_uint224); } BOOST_AUTO_TEST_SUITE_END() @@ -160,18 +160,18 @@ BOOST_AUTO_TEST_SUITE(convert) // BOOST_AUTO_TEST_CASE(to_uint64_t) { // std::uint64_t a = -// static_cast(static_cast(0x123456789ABCDEF_bigui64)); +// static_cast(static_cast(0x123456789ABCDEF_big_uint64)); // BOOST_CHECK_EQUAL(a, 0x123456789ABCDEF); // } // BOOST_AUTO_TEST_CASE(from_uint64_t) { // big_mod_impl a = static_cast(0x123456789ABCDEFull); -// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_bigui64)); +// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_big_uint64)); // } // BOOST_AUTO_TEST_CASE(from_int64_t) { // big_mod_impl a = static_cast(0x123456789ABCDEFull); -// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_bigui64)); +// BOOST_CHECK_EQUAL(a, static_cast(0x123456789ABCDEF_big_uint64)); // } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp index b85f4440dd..f1e14d4410 100644 --- a/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp +++ b/crypto3/libs/multiprecision/test/big_int_modular_comprehensive.cpp @@ -167,106 +167,106 @@ BOOST_AUTO_TEST_CASE(base_ops_prime_mod_backend_130) { using test_set = std::array; using test_data_t = std::array; constexpr test_data_t test_data = {{ - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1902d38b6904893e90b9c5b8732d1f37d_bigui130, - 0x2b9060b88dea177d5213deb6f3794434_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x20de70b3f1426ef30b2b2c85d75e2ff2a_bigui130, - 0x1a50227dc3bd742a232db8798e16d1fbb_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2395c23e8da249dec864da20301b1b64a_bigui130, - 0xdf185b46a84f318f34160415cc2cc010_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x43c06149ee7c03529dc8a03d091b4e94_bigui130, - 0x310216180d322187af2c938af5a1ce59_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x26352a54193fd97c1b30ba3e4f624abf3_bigui130, - 0x271cc74f6ca6cb859a1c1420922eb29ae_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x55cc328d5cc8b9d3362664a61c49d05_bigui130, - 0x203c88f7c00196a19ca13f3956d823cf9_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b7b43b1d5e1d838e06ac851dd57c2921_bigui130, - 0x1c3e4586b67511bdc48a424ab7934f3e2_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x71bff3e8b1dca8851adc38f3f7949f15_bigui130, - 0x1aa747f949397fd5dd7c8651e8150552_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1a2ce759cfc6960d663313054f1bb102f_bigui130, - 0xc7a66c97d85f5662ffeebbb953476196_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x29e2517b6b554a879c74e8c4e0516f177_bigui130, - 0x1f1218f45001011d29934c8cf15c52970_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x24633cbd7c7bfc5f2bd53ee68d61c35d2_bigui130, - 0x144cedf22adfea125bb43d0be11ca1d0c_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xfa48dc5dd7b4b1489220e933791b4338_bigui130, - 0x2b234e335952ad1681afa214a74622526_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x15b8a80d1056036fb5b43afa7acf2fba1_bigui130, - 0x20100f6e5147f7eae0dd456dcb21a8b57_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x11ad3e87c291c9ee81d50b80086315fff_bigui130, - 0x21f4e281ab8da64819ab4c2311bb5b18e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1cac9e60c8ba9fe1dd02a72bd7f302986_bigui130, - 0x1ca1068fbfa3b573d8f1f189dd5747a16_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1ed35770d0d86801f43eeb651aff88be9_bigui130, - 0x1906ec17bd1c75f7427c8c94bd7d1baa8_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x159635b82f84b811c9dd90d5cb6b178b_bigui130, - 0x140f2dea986ddcb181072cb9211f57a8d_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x27d6f0f737bacbce899e43dc682b5624d_bigui130, - 0x1011587e1de922107a18d7b925c77dd54_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x280f4c62adaa0ffd674affb50fe2e1695_bigui130, - 0x1d094e72b514dcbf1c711fdcf3e53cb8_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x6e5882e4497adbf5bb25efec29dfc7d8_bigui130, - 0x1a842e4abcdeedbc8abc583f41e46b125_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xdf8e9c5a1aef9fb8a84c47e4c13a8e32_bigui130, - 0x1a60dcd50617841662e100abea05666b4_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1f80459133a5f8b5049a346d931edca2e_bigui130, - 0x130fe586a5ec4e0045a6e16c4ebac2486_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1f284be48f9037159abfc1c11bd1e06e6_bigui130, - 0x31251cfead95629cb37cf61595785efa6_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x63766cb772cbaf3e4dfedffb2af6f181_bigui130, - 0x311d5240457feecb26f8c0e214a1bca75_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2ce5755bfe84b7cb37503711fe5585523_bigui130, - 0x1f028047ad558bd3208927b6644ae2ab9_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2bee37fdda5691f95381d391f9194f3f_bigui130, - 0xcbba87247175168e5d40dfb270b3427a_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x9bff8375de0961c15151ff7bc1c97589_bigui130, - 0x4ccf8b525bf3db5773680b031b007029_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b861409455060d7b6a5e1d5f6c652548_bigui130, - 0x220fdc8a8d41a6ef2b2c0a1ec4569300b_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x239d57e467841c5247327e4eaa8d001f8_bigui130, - 0x10dfd3fb5b333abdaf5529542ce52b843_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x8c555f62b02b7f2c94987bd4e0c400a4_bigui130, - 0x326eaaaa17ba3ffef1b2622038e4277a_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2b7199f47c784514517cb65fbc3681820_bigui130, - 0x53368a9f4b547e43867c3b0fbbb55ba0_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1c867f8a6c7f7ba691baba7c34c8972c0_bigui130, - 0x18a36d27f551b90f3b70990c02be4040f_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xe08f32c086174483eb5c0fd194284789_bigui130, - 0x232cee45b9fafa3dd99b916f0da6b5b9f_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2fa93bf0d7dcdd1d2490b228602c11bc4_bigui130, - 0x313e75ddb32849fc2f920b7dac0784b8e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xfa23f38fe8ee768390a947885b402fbb_bigui130, - 0x1ed41f3daece99382858b91eb9341352_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x19046693c278bc3362c21e3369d28337b_bigui130, - 0x213100709424048752d19aaba00d597d2_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1c50381e9fe77faacbb4625d8a73454a9_bigui130, - 0x4c27748ded9d69446a518953eda5ea0c_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x19038fc207ecfca9a1a474489cd184a6d_bigui130, - 0xcf46092c1d5ccf5e41dff63f92c079b9_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x248e3a01cf8cd1147bfa3e5ed0b6e4a41_bigui130, - 0x7388310b8e62700604f76f2d45f98e52_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x282252b232f1c43f5f014529ee6e3134e_bigui130, - 0xc324f7242a9d93665f3f3d72bf731500_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x136d5cc4b596ecbacbcbea6385708cea8_bigui130, - 0x2eceb23b47b8beeb5cd704605f0102a27_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xa41d7a6deba861eb210e76fedf048120_bigui130, - 0x2b80b6fe5fce48e77bc6529a43670fa89_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0xbe044d7bc860898b4b67f2b0e47b2957_bigui130, - 0x1385abf4521b731a0ef6585e6fcbe1087_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x15431c536a4b40b7a2def9881b3ed3f65_bigui130, - 0x2c7a86a326513aec20b909a5b06e1d724_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x22dae6c3c21886db3a222b319df2fcc18_bigui130, - 0x29874fcdec2d26c29d56990f86e49921e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x1966a81455bb9ae791b06c79361cb04a9_bigui130, - 0x1ffebba8847893384f651589275aaceb1_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x2744dda0f21e9343d45d80cf7717947c4_bigui130, - 0x5559c5bfee5bdd51d7695f8be84aa7e0_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x217faf49e078d4f40e8bed99a20a4e3f4_bigui130, - 0x21e2c14e9f39cfdfc87a7eddbfa8de653_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x571a667c902421037c8d855907b904fd_bigui130, - 0x873f600a7769bf94aab70506e04d3dee_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48bb_bigui130, 0x662ba0a5876b6f5f448563d9194ff704_bigui130, - 0xc88c6b7366ae5740e6860d5f1c906c00_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1902d38b6904893e90b9c5b8732d1f37d_big_uint130, + 0x2b9060b88dea177d5213deb6f3794434_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x20de70b3f1426ef30b2b2c85d75e2ff2a_big_uint130, + 0x1a50227dc3bd742a232db8798e16d1fbb_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2395c23e8da249dec864da20301b1b64a_big_uint130, + 0xdf185b46a84f318f34160415cc2cc010_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x43c06149ee7c03529dc8a03d091b4e94_big_uint130, + 0x310216180d322187af2c938af5a1ce59_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x26352a54193fd97c1b30ba3e4f624abf3_big_uint130, + 0x271cc74f6ca6cb859a1c1420922eb29ae_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x55cc328d5cc8b9d3362664a61c49d05_big_uint130, + 0x203c88f7c00196a19ca13f3956d823cf9_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2b7b43b1d5e1d838e06ac851dd57c2921_big_uint130, + 0x1c3e4586b67511bdc48a424ab7934f3e2_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x71bff3e8b1dca8851adc38f3f7949f15_big_uint130, + 0x1aa747f949397fd5dd7c8651e8150552_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1a2ce759cfc6960d663313054f1bb102f_big_uint130, + 0xc7a66c97d85f5662ffeebbb953476196_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x29e2517b6b554a879c74e8c4e0516f177_big_uint130, + 0x1f1218f45001011d29934c8cf15c52970_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x24633cbd7c7bfc5f2bd53ee68d61c35d2_big_uint130, + 0x144cedf22adfea125bb43d0be11ca1d0c_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xfa48dc5dd7b4b1489220e933791b4338_big_uint130, + 0x2b234e335952ad1681afa214a74622526_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x15b8a80d1056036fb5b43afa7acf2fba1_big_uint130, + 0x20100f6e5147f7eae0dd456dcb21a8b57_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x11ad3e87c291c9ee81d50b80086315fff_big_uint130, + 0x21f4e281ab8da64819ab4c2311bb5b18e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1cac9e60c8ba9fe1dd02a72bd7f302986_big_uint130, + 0x1ca1068fbfa3b573d8f1f189dd5747a16_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1ed35770d0d86801f43eeb651aff88be9_big_uint130, + 0x1906ec17bd1c75f7427c8c94bd7d1baa8_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x159635b82f84b811c9dd90d5cb6b178b_big_uint130, + 0x140f2dea986ddcb181072cb9211f57a8d_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x27d6f0f737bacbce899e43dc682b5624d_big_uint130, + 0x1011587e1de922107a18d7b925c77dd54_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x280f4c62adaa0ffd674affb50fe2e1695_big_uint130, + 0x1d094e72b514dcbf1c711fdcf3e53cb8_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x6e5882e4497adbf5bb25efec29dfc7d8_big_uint130, + 0x1a842e4abcdeedbc8abc583f41e46b125_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xdf8e9c5a1aef9fb8a84c47e4c13a8e32_big_uint130, + 0x1a60dcd50617841662e100abea05666b4_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1f80459133a5f8b5049a346d931edca2e_big_uint130, + 0x130fe586a5ec4e0045a6e16c4ebac2486_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1f284be48f9037159abfc1c11bd1e06e6_big_uint130, + 0x31251cfead95629cb37cf61595785efa6_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x63766cb772cbaf3e4dfedffb2af6f181_big_uint130, + 0x311d5240457feecb26f8c0e214a1bca75_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2ce5755bfe84b7cb37503711fe5585523_big_uint130, + 0x1f028047ad558bd3208927b6644ae2ab9_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2bee37fdda5691f95381d391f9194f3f_big_uint130, + 0xcbba87247175168e5d40dfb270b3427a_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x9bff8375de0961c15151ff7bc1c97589_big_uint130, + 0x4ccf8b525bf3db5773680b031b007029_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2b861409455060d7b6a5e1d5f6c652548_big_uint130, + 0x220fdc8a8d41a6ef2b2c0a1ec4569300b_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x239d57e467841c5247327e4eaa8d001f8_big_uint130, + 0x10dfd3fb5b333abdaf5529542ce52b843_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x8c555f62b02b7f2c94987bd4e0c400a4_big_uint130, + 0x326eaaaa17ba3ffef1b2622038e4277a_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2b7199f47c784514517cb65fbc3681820_big_uint130, + 0x53368a9f4b547e43867c3b0fbbb55ba0_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1c867f8a6c7f7ba691baba7c34c8972c0_big_uint130, + 0x18a36d27f551b90f3b70990c02be4040f_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xe08f32c086174483eb5c0fd194284789_big_uint130, + 0x232cee45b9fafa3dd99b916f0da6b5b9f_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2fa93bf0d7dcdd1d2490b228602c11bc4_big_uint130, + 0x313e75ddb32849fc2f920b7dac0784b8e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xfa23f38fe8ee768390a947885b402fbb_big_uint130, + 0x1ed41f3daece99382858b91eb9341352_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x19046693c278bc3362c21e3369d28337b_big_uint130, + 0x213100709424048752d19aaba00d597d2_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1c50381e9fe77faacbb4625d8a73454a9_big_uint130, + 0x4c27748ded9d69446a518953eda5ea0c_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x19038fc207ecfca9a1a474489cd184a6d_big_uint130, + 0xcf46092c1d5ccf5e41dff63f92c079b9_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x248e3a01cf8cd1147bfa3e5ed0b6e4a41_big_uint130, + 0x7388310b8e62700604f76f2d45f98e52_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x282252b232f1c43f5f014529ee6e3134e_big_uint130, + 0xc324f7242a9d93665f3f3d72bf731500_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x136d5cc4b596ecbacbcbea6385708cea8_big_uint130, + 0x2eceb23b47b8beeb5cd704605f0102a27_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xa41d7a6deba861eb210e76fedf048120_big_uint130, + 0x2b80b6fe5fce48e77bc6529a43670fa89_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0xbe044d7bc860898b4b67f2b0e47b2957_big_uint130, + 0x1385abf4521b731a0ef6585e6fcbe1087_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x15431c536a4b40b7a2def9881b3ed3f65_big_uint130, + 0x2c7a86a326513aec20b909a5b06e1d724_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x22dae6c3c21886db3a222b319df2fcc18_big_uint130, + 0x29874fcdec2d26c29d56990f86e49921e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x1966a81455bb9ae791b06c79361cb04a9_big_uint130, + 0x1ffebba8847893384f651589275aaceb1_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x2744dda0f21e9343d45d80cf7717947c4_big_uint130, + 0x5559c5bfee5bdd51d7695f8be84aa7e0_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x217faf49e078d4f40e8bed99a20a4e3f4_big_uint130, + 0x21e2c14e9f39cfdfc87a7eddbfa8de653_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x571a667c902421037c8d855907b904fd_big_uint130, + 0x873f600a7769bf94aab70506e04d3dee_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48bb_big_uint130, 0x662ba0a5876b6f5f448563d9194ff704_big_uint130, + 0xc88c6b7366ae5740e6860d5f1c906c00_big_uint130}, }}; bool res = base_operations_test(test_data); @@ -277,106 +277,106 @@ BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_130) { using test_set = std::array; using test_data_t = std::array; constexpr test_data_t test_data = {{ - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xf6ce85e6f42595ffc6fcb50fdc3c9160_bigui130, - 0x2f04006a57e467c0d45f180da37f9a602_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x6d9d6fed00c44c3eaa674b2b86004106_bigui130, - 0x1f811a14b9a0ea15d873e532bb3364548_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1f72515d6e96f189c58447d4424da9cf5_bigui130, - 0x1cb8d94653cfbe79c97028957fd6b37d3_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x4c2fe1ff52320c73ec081a03082dfaf7_bigui130, - 0xb156219a04e9ac54ba60ce2d79d706eb_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xb6222e4281e459f84c0bd5d77ce3493_bigui130, - 0x32efd252fec869d766989d986cf31fc2_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1043b1bfcefc15dbe214d68e1061d8645_bigui130, - 0x43dede03370eb136ecbfa7ec396f0d6d_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x514c264f84ecf1c6e27d7c7c78e6b4a2_bigui130, - 0x2e9bae255ae7a67003d91da36a76615b8_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2ff3bee3f9723332a002b583133320c93_bigui130, - 0x25283c79b9b1e505f159c2fe560caffc9_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1446284dc17091cd19bf687b8bcfa8829_bigui130, - 0xc9e35084ad8092316a3ce0b77b61b998_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xc447bb62c4287d9f409ab060dae3ae92_bigui130, - 0x22efe8c2ac2188ad9e638d88bb4c754b5_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x313265520502bb48dceca31b17afa02f0_bigui130, - 0x109c4589d316e8ec374c1671ed51ee911_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d639758db1ae7106138010f0e573079e_bigui130, - 0x268a07bc08a254c23c9d71e3303352c1b_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x20898a292ba2360df9b8f42651f342554_bigui130, - 0x13ea3770bbfab80ba966ddc255a419664_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x879758e1d55d9db504d0122b735255ac_bigui130, - 0x2287b16011ef333a67b1984c1f8d2aa55_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xeff14b264f211d251f3852bd87ebeae2_bigui130, - 0x1b5ebb5ef4a47e00cc6a801e5b383b69e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xc2723880d0678f28cd177e8792d5ed2d_bigui130, - 0x2a790884868d6fc5ef87d73d5b80ff46e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x28a83dffca1513a29489e8835d244d6c5_bigui130, - 0x15d4f2d8e0949e0aa82f178300c2da5d3_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x25ded52e8495fe687f442ab3579d22963_bigui130, - 0x2754bb6b9fb861566833f59229e28e0b1_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1ec91d30d83ac012534a9b7561f390be4_bigui130, - 0x308d7237b1cfb01b5ca9fa894ae3c6c48_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xa8b175970e5266b7575376c254c5ad4_bigui130, - 0x7bd2cb80c703ab2fe711022067a805f1_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x3068f458ab46abf38f3ab53368fefe1b3_bigui130, - 0x44da306ee50c5462b9910fcba033ec28_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x7347fcf946c50eb24121d2695a74138_bigui130, - 0x2cc6b5e5400509f854189e73f9e252331_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x13e5c415b09516c96134af94a77018a61_bigui130, - 0x4b1f1e72fb30cffbef1bbe88d8d6c25_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x157cedbd74cdd229f3b43e8ab59199092_bigui130, - 0x144db4073011653f19851e3b7231b8eb0_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xadbf28669d70f71efea08f2b7dcd3929_bigui130, - 0x2352ba5d47b493e545238dc33f8018555_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x3118fbf21bf8820849498b777ae4369c2_bigui130, - 0x8e3b38851b87235ab9e415c4f9973cb5_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d87b88301585c45369f392edad58ebbb_bigui130, - 0x17b9f6b9257dc97b99d2b43da9a557a76_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2836115435665dffa299a2e1dba2bc02_bigui130, - 0x181aa88e10efd256cebb4563cbfb06436_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x4010011e94719b273a8f657daecb8154_bigui130, - 0x16aa3735374efa31f48b9f0b63eca9f1e_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xfd82a47f158cf4773e6177c3b9087ce1_bigui130, - 0x14686b4ba0accbb93c1fb046e69015338_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x662de620b44deb4469155819375bd2ae_bigui130, - 0xa1a7f7e023df7165ca899d4366bbc7f5_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xd12ea24d1261fc11787313ef5906f58d_bigui130, - 0x1c2a2731db836bc6156689cd762da9364_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x26d99465f1a39a64ef21a46d454161f24_bigui130, - 0x27c3ed62253a11d4dc15d370704817498_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2570d84dca037136829b41df4809e3810_bigui130, - 0x904beba3c2f174a54466d0bed0fb581b_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1183aa1a729def2d3c7138aae27332134_bigui130, - 0x208bc970b97cf55008c06fc620d025053_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xd8c70b07b915682a3d9f01ea5c51d34b_bigui130, - 0x6584051efd453ff081e2189928a9a9c4_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xa14b405e334ae992f920fb9373508696_bigui130, - 0x104aa2d49412388ae364af54a916fb501_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xe5f1875befdf2bc34c0ef450753afb87_bigui130, - 0x20f84732af830324ed3949c93704a0ce2_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x22dea1e18f9ec2bdb731db37bcab995ad_bigui130, - 0x1eb896b7179ab4a60a5cfb051c4f6805b_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x322c6c9cd1a662e0a20738db589ae298_bigui130, - 0x2872647f25d62d395a64406fdcf9ea04b_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xbfde51cd756d321a25d54a3909890edb_bigui130, - 0xbd2e612e27d726d58a8be3a643373147_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xb63cc77f71d194b5824946e44fe21831_bigui130, - 0x556942440de628a1b78d70b8ce61cad5_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x28b231976fbb6484e07f1c36b709811c6_bigui130, - 0x22da443e75ea4b64e4dd5b0e701948b9a_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2b564befbf84fb99e6d3e96a00e28a111_bigui130, - 0x2680850f06cffc374d3c98dac2a3522ca_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x19738eb221a6b1cc01159dac5232f5f94_bigui130, - 0x1888b0fd2c91a44559730f4772021e7ae_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x128cbc897d8a21f0924f0824cc0a2a2af_bigui130, - 0x1667817727b346d00cfe296b83099260a_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x1176a4938cafb93365f979e0648a9b36d_bigui130, - 0x1d424e90ed8b1d58a4e5f63a983f66b23_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0xe1d5e0b579b9ffabd79f55a3ad58095a_bigui130, - 0x28facaa806c45f06b33f90a25a256cb57_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x29492c8c9736c8b22abbe8cc151c0bbe5_bigui130, - 0x1e2e6cf551c64286202dbc4202eb950b4_bigui130}, - {0x314107b9ef725f87fa08f9fdadd4f48ba_bigui130, 0x2d38c6d88e4be77725f5a337fadacb890_bigui130, - 0x2b711aed3a4d108fd95d3a8c3338bf713_bigui130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xf6ce85e6f42595ffc6fcb50fdc3c9160_big_uint130, + 0x2f04006a57e467c0d45f180da37f9a602_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x6d9d6fed00c44c3eaa674b2b86004106_big_uint130, + 0x1f811a14b9a0ea15d873e532bb3364548_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1f72515d6e96f189c58447d4424da9cf5_big_uint130, + 0x1cb8d94653cfbe79c97028957fd6b37d3_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x4c2fe1ff52320c73ec081a03082dfaf7_big_uint130, + 0xb156219a04e9ac54ba60ce2d79d706eb_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xb6222e4281e459f84c0bd5d77ce3493_big_uint130, + 0x32efd252fec869d766989d986cf31fc2_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1043b1bfcefc15dbe214d68e1061d8645_big_uint130, + 0x43dede03370eb136ecbfa7ec396f0d6d_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x514c264f84ecf1c6e27d7c7c78e6b4a2_big_uint130, + 0x2e9bae255ae7a67003d91da36a76615b8_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2ff3bee3f9723332a002b583133320c93_big_uint130, + 0x25283c79b9b1e505f159c2fe560caffc9_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1446284dc17091cd19bf687b8bcfa8829_big_uint130, + 0xc9e35084ad8092316a3ce0b77b61b998_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xc447bb62c4287d9f409ab060dae3ae92_big_uint130, + 0x22efe8c2ac2188ad9e638d88bb4c754b5_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x313265520502bb48dceca31b17afa02f0_big_uint130, + 0x109c4589d316e8ec374c1671ed51ee911_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2d639758db1ae7106138010f0e573079e_big_uint130, + 0x268a07bc08a254c23c9d71e3303352c1b_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x20898a292ba2360df9b8f42651f342554_big_uint130, + 0x13ea3770bbfab80ba966ddc255a419664_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x879758e1d55d9db504d0122b735255ac_big_uint130, + 0x2287b16011ef333a67b1984c1f8d2aa55_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xeff14b264f211d251f3852bd87ebeae2_big_uint130, + 0x1b5ebb5ef4a47e00cc6a801e5b383b69e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xc2723880d0678f28cd177e8792d5ed2d_big_uint130, + 0x2a790884868d6fc5ef87d73d5b80ff46e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x28a83dffca1513a29489e8835d244d6c5_big_uint130, + 0x15d4f2d8e0949e0aa82f178300c2da5d3_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x25ded52e8495fe687f442ab3579d22963_big_uint130, + 0x2754bb6b9fb861566833f59229e28e0b1_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1ec91d30d83ac012534a9b7561f390be4_big_uint130, + 0x308d7237b1cfb01b5ca9fa894ae3c6c48_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xa8b175970e5266b7575376c254c5ad4_big_uint130, + 0x7bd2cb80c703ab2fe711022067a805f1_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x3068f458ab46abf38f3ab53368fefe1b3_big_uint130, + 0x44da306ee50c5462b9910fcba033ec28_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x7347fcf946c50eb24121d2695a74138_big_uint130, + 0x2cc6b5e5400509f854189e73f9e252331_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x13e5c415b09516c96134af94a77018a61_big_uint130, + 0x4b1f1e72fb30cffbef1bbe88d8d6c25_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x157cedbd74cdd229f3b43e8ab59199092_big_uint130, + 0x144db4073011653f19851e3b7231b8eb0_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xadbf28669d70f71efea08f2b7dcd3929_big_uint130, + 0x2352ba5d47b493e545238dc33f8018555_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x3118fbf21bf8820849498b777ae4369c2_big_uint130, + 0x8e3b38851b87235ab9e415c4f9973cb5_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2d87b88301585c45369f392edad58ebbb_big_uint130, + 0x17b9f6b9257dc97b99d2b43da9a557a76_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2836115435665dffa299a2e1dba2bc02_big_uint130, + 0x181aa88e10efd256cebb4563cbfb06436_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x4010011e94719b273a8f657daecb8154_big_uint130, + 0x16aa3735374efa31f48b9f0b63eca9f1e_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xfd82a47f158cf4773e6177c3b9087ce1_big_uint130, + 0x14686b4ba0accbb93c1fb046e69015338_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x662de620b44deb4469155819375bd2ae_big_uint130, + 0xa1a7f7e023df7165ca899d4366bbc7f5_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xd12ea24d1261fc11787313ef5906f58d_big_uint130, + 0x1c2a2731db836bc6156689cd762da9364_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x26d99465f1a39a64ef21a46d454161f24_big_uint130, + 0x27c3ed62253a11d4dc15d370704817498_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2570d84dca037136829b41df4809e3810_big_uint130, + 0x904beba3c2f174a54466d0bed0fb581b_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1183aa1a729def2d3c7138aae27332134_big_uint130, + 0x208bc970b97cf55008c06fc620d025053_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xd8c70b07b915682a3d9f01ea5c51d34b_big_uint130, + 0x6584051efd453ff081e2189928a9a9c4_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xa14b405e334ae992f920fb9373508696_big_uint130, + 0x104aa2d49412388ae364af54a916fb501_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xe5f1875befdf2bc34c0ef450753afb87_big_uint130, + 0x20f84732af830324ed3949c93704a0ce2_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x22dea1e18f9ec2bdb731db37bcab995ad_big_uint130, + 0x1eb896b7179ab4a60a5cfb051c4f6805b_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x322c6c9cd1a662e0a20738db589ae298_big_uint130, + 0x2872647f25d62d395a64406fdcf9ea04b_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xbfde51cd756d321a25d54a3909890edb_big_uint130, + 0xbd2e612e27d726d58a8be3a643373147_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xb63cc77f71d194b5824946e44fe21831_big_uint130, + 0x556942440de628a1b78d70b8ce61cad5_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x28b231976fbb6484e07f1c36b709811c6_big_uint130, + 0x22da443e75ea4b64e4dd5b0e701948b9a_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2b564befbf84fb99e6d3e96a00e28a111_big_uint130, + 0x2680850f06cffc374d3c98dac2a3522ca_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x19738eb221a6b1cc01159dac5232f5f94_big_uint130, + 0x1888b0fd2c91a44559730f4772021e7ae_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x128cbc897d8a21f0924f0824cc0a2a2af_big_uint130, + 0x1667817727b346d00cfe296b83099260a_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x1176a4938cafb93365f979e0648a9b36d_big_uint130, + 0x1d424e90ed8b1d58a4e5f63a983f66b23_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0xe1d5e0b579b9ffabd79f55a3ad58095a_big_uint130, + 0x28facaa806c45f06b33f90a25a256cb57_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x29492c8c9736c8b22abbe8cc151c0bbe5_big_uint130, + 0x1e2e6cf551c64286202dbc4202eb950b4_big_uint130}, + {0x314107b9ef725f87fa08f9fdadd4f48ba_big_uint130, 0x2d38c6d88e4be77725f5a337fadacb890_big_uint130, + 0x2b711aed3a4d108fd95d3a8c3338bf713_big_uint130}, }}; bool res = base_operations_test(test_data); @@ -388,12 +388,12 @@ BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_64) { using test_set = std::array; using test_data_t = std::array; constexpr test_data_t test_data = {{ - {0xffffffff00000001_bigui64, 0x1_bigui64, 0x2_bigui64}, - {0xffffffff00000001_bigui64, 0x7fffffff91725e00_bigui64, 0x3fffffffe6869400_bigui64}, - {0xffffffff00000001_bigui64, 0x7ffaffff91745e00_bigui64, 0x1fafff0fe6869400_bigui64}, - {0xffffffff00000001_bigui64, 0x7ffaffff91745e00_bigui64, 0x1fafff0fe6869400_bigui64}, - {0xffffffff00000001_bigui64, 0x1ffaffff91745e00_bigui64, 0xffffffff00000000_bigui64}, - {0xffffffff00000001_bigui64, 0x00_bigui64, 0x1_bigui64}, + {0xffffffff00000001_big_uint64, 0x1_big_uint64, 0x2_big_uint64}, + {0xffffffff00000001_big_uint64, 0x7fffffff91725e00_big_uint64, 0x3fffffffe6869400_big_uint64}, + {0xffffffff00000001_big_uint64, 0x7ffaffff91745e00_big_uint64, 0x1fafff0fe6869400_big_uint64}, + {0xffffffff00000001_big_uint64, 0x7ffaffff91745e00_big_uint64, 0x1fafff0fe6869400_big_uint64}, + {0xffffffff00000001_big_uint64, 0x1ffaffff91745e00_big_uint64, 0xffffffff00000000_big_uint64}, + {0xffffffff00000001_big_uint64, 0x00_big_uint64, 0x1_big_uint64}, }}; bool res = base_operations_test(test_data); @@ -404,26 +404,26 @@ BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_64) { // using test_set = std::array; // using test_data_t = std::array; // constexpr test_data_t test_data = {{ -// {0x1e240_bigui17, 0x3a97_bigui17, 0xc070_bigui17}, -// {0x1e240_bigui17, 0x1dea7_bigui17, 0x1aaab_bigui17}, -// {0x1e240_bigui17, 0x1936f_bigui17, 0xfb0b_bigui17}, -// {0x1e240_bigui17, 0x13067_bigui17, 0x1566c_bigui17}, -// {0x1e240_bigui17, 0x1b960_bigui17, 0x1773f_bigui17}, -// {0x1e240_bigui17, 0x101e4_bigui17, 0x156ca_bigui17}, -// {0x1e240_bigui17, 0x167f3_bigui17, 0x13c52_bigui17}, -// {0x1e240_bigui17, 0xc536_bigui17, 0x14c8e_bigui17}, -// {0x1e240_bigui17, 0xed02_bigui17, 0x1dafc_bigui17}, -// {0x1e240_bigui17, 0x126a6_bigui17, 0x18a8b_bigui17}, -// {0x1e240_bigui17, 0x111ac_bigui17, 0x94c2_bigui17}, -// {0x1e240_bigui17, 0x3a03_bigui17, 0x89d8_bigui17}, -// {0x1e240_bigui17, 0x3add_bigui17, 0x101ae_bigui17}, -// {0x1e240_bigui17, 0x8db4_bigui17, 0x50e2_bigui17}, -// {0x1e240_bigui17, 0x1bab_bigui17, 0x1d5f6_bigui17}, -// {0x1e240_bigui17, 0x144dc_bigui17, 0x172f8_bigui17}, -// {0x1e240_bigui17, 0x1cd30_bigui17, 0x1a5c_bigui17}, -// {0x1e240_bigui17, 0x13c3d_bigui17, 0x4358_bigui17}, -// {0x1e240_bigui17, 0x18d68_bigui17, 0x1299d_bigui17}, -// {0x1e240_bigui17, 0x10153_bigui17, 0x2c8a_bigui17}, +// {0x1e240_big_uint17, 0x3a97_big_uint17, 0xc070_big_uint17}, +// {0x1e240_big_uint17, 0x1dea7_big_uint17, 0x1aaab_big_uint17}, +// {0x1e240_big_uint17, 0x1936f_big_uint17, 0xfb0b_big_uint17}, +// {0x1e240_big_uint17, 0x13067_big_uint17, 0x1566c_big_uint17}, +// {0x1e240_big_uint17, 0x1b960_big_uint17, 0x1773f_big_uint17}, +// {0x1e240_big_uint17, 0x101e4_big_uint17, 0x156ca_big_uint17}, +// {0x1e240_big_uint17, 0x167f3_big_uint17, 0x13c52_big_uint17}, +// {0x1e240_big_uint17, 0xc536_big_uint17, 0x14c8e_big_uint17}, +// {0x1e240_big_uint17, 0xed02_big_uint17, 0x1dafc_big_uint17}, +// {0x1e240_big_uint17, 0x126a6_big_uint17, 0x18a8b_big_uint17}, +// {0x1e240_big_uint17, 0x111ac_big_uint17, 0x94c2_big_uint17}, +// {0x1e240_big_uint17, 0x3a03_big_uint17, 0x89d8_big_uint17}, +// {0x1e240_big_uint17, 0x3add_big_uint17, 0x101ae_big_uint17}, +// {0x1e240_big_uint17, 0x8db4_big_uint17, 0x50e2_big_uint17}, +// {0x1e240_big_uint17, 0x1bab_big_uint17, 0x1d5f6_big_uint17}, +// {0x1e240_big_uint17, 0x144dc_big_uint17, 0x172f8_big_uint17}, +// {0x1e240_big_uint17, 0x1cd30_big_uint17, 0x1a5c_big_uint17}, +// {0x1e240_big_uint17, 0x13c3d_big_uint17, 0x4358_big_uint17}, +// {0x1e240_big_uint17, 0x18d68_big_uint17, 0x1299d_big_uint17}, +// {0x1e240_big_uint17, 0x10153_big_uint17, 0x2c8a_big_uint17}, // }}; // bool res = base_operations_test(test_data); @@ -435,26 +435,26 @@ BOOST_AUTO_TEST_CASE(base_ops_even_mod_backend_64) { // using test_set = std::array; // using test_data_t = std::array; // constexpr test_data_t test_data = {{ -// {0x1e241_bigui17, 0x3a97_bigui17, 0xc070_bigui17}, -// {0x1e241_bigui17, 0x1dea7_bigui17, 0x1aaab_bigui17}, -// {0x1e241_bigui17, 0x1936f_bigui17, 0xfb0b_bigui17}, -// {0x1e241_bigui17, 0x13067_bigui17, 0x1566c_bigui17}, -// {0x1e241_bigui17, 0x1b960_bigui17, 0x1773f_bigui17}, -// {0x1e241_bigui17, 0x101e4_bigui17, 0x156ca_bigui17}, -// {0x1e241_bigui17, 0x167f3_bigui17, 0x13c52_bigui17}, -// {0x1e241_bigui17, 0xc536_bigui17, 0x14c8e_bigui17}, -// {0x1e241_bigui17, 0xed02_bigui17, 0x1dafc_bigui17}, -// {0x1e241_bigui17, 0x126a6_bigui17, 0x18a8b_bigui17}, -// {0x1e241_bigui17, 0x111ac_bigui17, 0x94c2_bigui17}, -// {0x1e241_bigui17, 0x3a03_bigui17, 0x89d8_bigui17}, -// {0x1e241_bigui17, 0x3add_bigui17, 0x101ae_bigui17}, -// {0x1e241_bigui17, 0x8db4_bigui17, 0x50e2_bigui17}, -// {0x1e241_bigui17, 0x1bab_bigui17, 0x1d5f6_bigui17}, -// {0x1e241_bigui17, 0x144dc_bigui17, 0x172f8_bigui17}, -// {0x1e241_bigui17, 0x1cd30_bigui17, 0x1a5c_bigui17}, -// {0x1e241_bigui17, 0x13c3d_bigui17, 0x4358_bigui17}, -// {0x1e241_bigui17, 0x18d68_bigui17, 0x1299d_bigui17}, -// {0x1e241_bigui17, 0x10153_bigui17, 0x2c8a_bigui17}, +// {0x1e241_big_uint17, 0x3a97_big_uint17, 0xc070_big_uint17}, +// {0x1e241_big_uint17, 0x1dea7_big_uint17, 0x1aaab_big_uint17}, +// {0x1e241_big_uint17, 0x1936f_big_uint17, 0xfb0b_big_uint17}, +// {0x1e241_big_uint17, 0x13067_big_uint17, 0x1566c_big_uint17}, +// {0x1e241_big_uint17, 0x1b960_big_uint17, 0x1773f_big_uint17}, +// {0x1e241_big_uint17, 0x101e4_big_uint17, 0x156ca_big_uint17}, +// {0x1e241_big_uint17, 0x167f3_big_uint17, 0x13c52_big_uint17}, +// {0x1e241_big_uint17, 0xc536_big_uint17, 0x14c8e_big_uint17}, +// {0x1e241_big_uint17, 0xed02_big_uint17, 0x1dafc_big_uint17}, +// {0x1e241_big_uint17, 0x126a6_big_uint17, 0x18a8b_big_uint17}, +// {0x1e241_big_uint17, 0x111ac_big_uint17, 0x94c2_big_uint17}, +// {0x1e241_big_uint17, 0x3a03_big_uint17, 0x89d8_big_uint17}, +// {0x1e241_big_uint17, 0x3add_big_uint17, 0x101ae_big_uint17}, +// {0x1e241_big_uint17, 0x8db4_big_uint17, 0x50e2_big_uint17}, +// {0x1e241_big_uint17, 0x1bab_big_uint17, 0x1d5f6_big_uint17}, +// {0x1e241_big_uint17, 0x144dc_big_uint17, 0x172f8_big_uint17}, +// {0x1e241_big_uint17, 0x1cd30_big_uint17, 0x1a5c_big_uint17}, +// {0x1e241_big_uint17, 0x13c3d_big_uint17, 0x4358_big_uint17}, +// {0x1e241_big_uint17, 0x18d68_big_uint17, 0x1299d_big_uint17}, +// {0x1e241_big_uint17, 0x10153_big_uint17, 0x2c8a_big_uint17}, // }}; // bool res = base_operations_test(test_data); @@ -469,11 +469,11 @@ BOOST_AUTO_TEST_CASE(secp256k1_incorrect_multiplication) { using modular_number = nil::crypto3::multiprecision::big_mod_rt<256>; constexpr standart_number modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_big_uint256; constexpr standart_number x_standard = - 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_bigui256; + 0xb5d724ce6f44c3c587867bbcb417e9eb6fa05e7e2ef029166568f14eb3161387_big_uint256; constexpr standart_number res_standard = - 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_bigui256; + 0xad6e1fcc680392abfb075838eafa513811112f14c593e0efacb6e9d0d7770b4_big_uint256; constexpr modular_number x(x_standard, modulus); constexpr modular_number res(res_standard, modulus); BOOST_CHECK_EQUAL(x * x, res); @@ -484,7 +484,7 @@ BOOST_AUTO_TEST_CASE(bad_negation) { using modular_number = nil::crypto3::multiprecision::big_mod_rt<256>; constexpr standart_number modulus = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_big_uint256; constexpr modular_number x(0u, modulus); constexpr modular_number res = -x; // TODO @@ -497,10 +497,10 @@ BOOST_AUTO_TEST_CASE(conversion_to_shorter_number) { using standart_number = nil::crypto3::multiprecision::big_uint<256>; using short_number = nil::crypto3::multiprecision::big_uint<128>; constexpr standart_number x = - 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_bigui256; + 0xfffffffffffffffffffffffffffffffffffffffffffffffffffffffefffffc2f_big_uint256; short_number s = x.truncate<128>(); // 2nd half of the number must stay. - BOOST_CHECK_EQUAL(s, 0xfffffffffffffffffffffffefffffc2f_bigui128); + BOOST_CHECK_EQUAL(s, 0xfffffffffffffffffffffffefffffc2f_big_uint128); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp index b1ae6df252..9ed30d21aa 100644 --- a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp +++ b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/recursive_verifier_generator.hpp @@ -453,7 +453,7 @@ namespace nil { std::string result; std::vector v; if( term.get_coeff() != field_type::value_type::one() || term.get_vars().size() == 0) - v.push_back("pallas::base_field_type::value_type(0x" + to_hex_string(term.get_coeff()) + "_bigui255)"); + v.push_back("pallas::base_field_type::value_type(0x" + to_hex_string(term.get_coeff()) + "_big_uint255)"); for(auto& var: term.get_vars()){ v.push_back("z[" + to_string(_indices.at(var)) + "]"); } @@ -663,7 +663,7 @@ namespace nil { prepare_U_V_str << "\n"; } for( std::size_t j = 0; j < placeholder_info.batches_sizes[0]; j++){ - prepare_U_V_str << "\tU[unique_points] += theta_acc * pallas::base_field_type::value_type(0x"<< std::hex << common_data.commitment_scheme_data.at(0)[j] << std::dec << "_bigui255); theta_acc *= challenges.lpc_theta;\n"; + prepare_U_V_str << "\tU[unique_points] += theta_acc * pallas::base_field_type::value_type(0x"<< std::hex << common_data.commitment_scheme_data.at(0)[j] << std::dec << "_big_uint255); theta_acc *= challenges.lpc_theta;\n"; } std::stringstream lpc_y_computation; @@ -717,7 +717,7 @@ namespace nil { } start_position += batches_sizes[i]; if( i == 0 ) - initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == pallas::base_field_type::value_type(0x$VK1$_bigui255));\n\n"; + initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == pallas::base_field_type::value_type(0x$VK1$_big_uint255));\n\n"; else initial_proof_check_str += "\t\t__builtin_assigner_exit_check(hash_state == proof.commitments[" + to_string(i-1) + "]);\n\n"; } @@ -1031,8 +1031,8 @@ namespace nil { reps["$QUOTIENT_POLYS_AMOUNT$"] = to_string(quotient_polys); reps["$D0_SIZE$"] = to_string(fri_params.D[0]->m); reps["$D0_LOG$"] = to_string(log2(fri_params.D[0]->m)); - reps["$D0_OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(fri_params.D[0]->get_domain_element(1)) + "_bigui255)"; - reps["$OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(common_data.basic_domain->get_domain_element(1)) + "_bigui255)"; + reps["$D0_OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(fri_params.D[0]->get_domain_element(1)) + "_big_uint255)"; + reps["$OMEGA$"] = "pallas::base_field_type::value_type(0x" + to_hex_string(common_data.basic_domain->get_domain_element(1)) + "_big_uint255)"; reps["$FRI_ROUNDS$"] = to_string(fri_params.r); reps["$UNIQUE_POINTS$"] = to_string(singles_strs.size()); reps["$SINGLES_AMOUNT$"] = to_string(singles_strs.size()); diff --git a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp index 39c033b6ed..9953f432df 100644 --- a/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp +++ b/crypto3/libs/transpiler/include/nil/blueprint/transpiler/templates/recursive_verifier.hpp @@ -210,8 +210,8 @@ const std::array gates_sizes = {$GATES_SIZES$}; const size_t unique_points = $UNIQUE_POINTS$; const size_t singles_amount = $SINGLES_AMOUNT$; const std::array batches_amount_list = {$BATCHES_AMOUNT_LIST$}; -pallas::base_field_type::value_type vk0 = pallas::base_field_type::value_type(0x$VK0$_bigui255); -pallas::base_field_type::value_type vk1 = pallas::base_field_type::value_type(0x$VK1$_bigui255); +pallas::base_field_type::value_type vk0 = pallas::base_field_type::value_type(0x$VK0$_big_uint255); +pallas::base_field_type::value_type vk1 = pallas::base_field_type::value_type(0x$VK1$_big_uint255); $LOOKUP_VARS$ diff --git a/crypto3/libs/zk/test/commitment/kzg.cpp b/crypto3/libs/zk/test/commitment/kzg.cpp index 17e5d9ab3b..215d16637b 100644 --- a/crypto3/libs/zk/test/commitment/kzg.cpp +++ b/crypto3/libs/zk/test/commitment/kzg.cpp @@ -220,13 +220,13 @@ BOOST_AUTO_TEST_CASE(kzg_test_mnt6_accumulated) { std::size_t n = 8; scalar_value_type z = 2u; const polynomial f = { - 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_bigui298, - 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_bigui298, - 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_bigui298, - 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_bigui298, - 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_bigui298, - 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_bigui298, - 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_bigui298, + 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_big_uint298, + 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_big_uint298, + 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_big_uint298, + 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_big_uint298, + 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_big_uint298, + 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_big_uint298, + 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_big_uint298, }; auto f_eval = f.evaluate(alpha); @@ -395,83 +395,83 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 0~-~-~-~ {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_big_uint298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_big_uint298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_big_uint298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_big_uint298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_big_uint298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_big_uint298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_big_uint298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_big_uint298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_big_uint298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_big_uint298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_big_uint298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_big_uint298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_big_uint298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_big_uint298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_big_uint298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_big_uint298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_big_uint298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_big_uint298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_big_uint298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_big_uint298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_big_uint298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_big_uint298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_big_uint298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_big_uint298, }}, {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_big_uint298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_big_uint298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_big_uint298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_big_uint298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_big_uint298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_big_uint298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_big_uint298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_big_uint298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_big_uint298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_big_uint298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_big_uint298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_big_uint298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_big_uint298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_big_uint298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_big_uint298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_big_uint298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_big_uint298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_big_uint298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_big_uint298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_big_uint298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_big_uint298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_big_uint298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_big_uint298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_big_uint298, }}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x0u, 0x0u,}}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x1u,}}, @@ -481,9 +481,9 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x1u, 0x0u, 0x0u, - 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_bigui298, - 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_bigui298, - 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_bigui298, + 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_big_uint298, + 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_big_uint298, + 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_big_uint298, }}, {8, { 0x0u, @@ -491,43 +491,43 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x0u, 0x1u, 0x1u, - 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_bigui298, - 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_bigui298, - 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_bigui298, + 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_big_uint298, + 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_big_uint298, + 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_big_uint298, }}, //~-~-~-~ commiting to batch: 1~-~-~-~ {8, { - 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_bigui298, - 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_bigui298, - 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_bigui298, - 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_bigui298, - 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_bigui298, - 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_bigui298, - 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_bigui298, - 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_bigui298, + 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_big_uint298, + 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_big_uint298, + 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_big_uint298, + 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_big_uint298, + 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_big_uint298, + 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_big_uint298, + 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_big_uint298, + 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_big_uint298, }}, {8, { - 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_bigui298, - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, - 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_bigui298, - 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_bigui298, - 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_bigui298, + 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_big_uint298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_big_uint298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_big_uint298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, + 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_big_uint298, + 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_big_uint298, + 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_big_uint298, }}, {8, { - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, - 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_bigui298, - 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_bigui298, - 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_bigui298, - 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_bigui298, - 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_bigui298, - 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_bigui298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_big_uint298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_big_uint298, + 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_big_uint298, + 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_big_uint298, + 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_big_uint298, + 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_big_uint298, + 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_big_uint298, + 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_big_uint298, }}, {8, { - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, 0x0u, 0x1u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, }}, @@ -536,24 +536,24 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 3~-~-~-~ {8, { - 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_bigui298, - 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_bigui298, - 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_bigui298, - 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_bigui298, - 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_bigui298, - 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_bigui298, - 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_bigui298, - 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_bigui298, + 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_big_uint298, + 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_big_uint298, + 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_big_uint298, + 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_big_uint298, + 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_big_uint298, + 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_big_uint298, + 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_big_uint298, + 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_big_uint298, }}, {8, { - 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_bigui298, - 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_bigui298, - 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_bigui298, - 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_bigui298, - 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_bigui298, - 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_bigui298, - 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_bigui298, - 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_bigui298, + 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_big_uint298, + 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_big_uint298, + 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_big_uint298, + 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_big_uint298, + 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_big_uint298, + 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_big_uint298, + 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_big_uint298, + 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_big_uint298, }}, math::polynomial_dfs::zero(), math::polynomial_dfs::zero(), @@ -579,39 +579,39 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { } std::vector> S = { - /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, }; std::vector T = zk::algorithms::merge_eval_points(S); { std::vector T_check = { - 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298, + 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298, }; std::sort(T.begin(), T.end()); BOOST_CHECK(T == T_check); diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp index 7d5ee68c87..f0d8d9566e 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/kimchi.cpp @@ -64,7 +64,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) >; template - nil::crypto3::multiprecision::uint256_t get_bigui256(Iterator it) { + nil::crypto3::multiprecision::uint256_t get_big_uint256(Iterator it) { BOOST_ASSERT(it->second.template get_value() != ""); return nil::crypto3::multiprecision::uint256_t(it->second.template get_value()); } @@ -80,14 +80,14 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: best_chain.second.get_child(base_path + "messages.w_comm")) { auto it = row.second.get_child("").begin()->second.get_child("").begin(); - proof.commitments.w_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + proof.commitments.w_comm[i].unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); ++i; } auto it = best_chain.second.get_child(base_path + "messages.z_comm").begin()->second.get_child("").begin(); - proof.commitments.z_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + proof.commitments.z_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = best_chain.second.get_child(base_path + "messages.t_comm").begin()->second.get_child("").begin(); - proof.commitments.t_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + proof.commitments.t_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); // proof.commitments.lookup; // TODO: where it is? i = 0; @@ -96,14 +96,14 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) auto it1 = row.second.begin(); it1++; it1 = it1->second.begin(); - proof.proof.lr.push_back({{get_bigui256(it0++), get_bigui256(it0)}, - {get_bigui256(it1++), get_bigui256(it1)}}); + proof.proof.lr.push_back({{get_big_uint256(it0++), get_big_uint256(it0)}, + {get_big_uint256(it1++), get_big_uint256(it1)}}); ++i; } it = best_chain.second.get_child(base_path + "openings.proof.delta").begin(); - proof.proof.delta = {get_bigui256(it++), get_bigui256(it)}; + proof.proof.delta = {get_big_uint256(it++), get_big_uint256(it)}; it = best_chain.second.get_child(base_path + "openings.proof.sg").begin(); - proof.proof.sg = {get_bigui256(it++), get_bigui256(it)}; + proof.proof.sg = {get_big_uint256(it++), get_big_uint256(it)}; proof.proof.z1 = nil::crypto3::multiprecision::uint256_t( best_chain.second.get(base_path + "openings.proof.z_1")); @@ -116,32 +116,32 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: evals_it.second.get_child("w")) { for (auto &cell: row.second) { - proof.evals[ev_i].w[i].emplace_back(get_bigui256(&cell)); + proof.evals[ev_i].w[i].emplace_back(get_big_uint256(&cell)); } i++; } - //proof.evals[ev_i].z.size();= get_bigui256(evals_it.second.get_child("z").begin()); + //proof.evals[ev_i].z.size();= get_big_uint256(evals_it.second.get_child("z").begin()); for (auto z_it: evals_it.second.get_child("z")) { - proof.evals[ev_i].z.emplace_back(get_bigui256(&z_it)); + proof.evals[ev_i].z.emplace_back(get_big_uint256(&z_it)); } i = 0; for (auto &row: evals_it.second.get_child("s")) { for (auto &cell: row.second) { - proof.evals[ev_i].s[i].emplace_back(get_bigui256(&cell)); + proof.evals[ev_i].s[i].emplace_back(get_big_uint256(&cell)); } i++; } -// proof.evals[ev_i].generic_selector = get_bigui256(evals_it.second.get_child("generic_selector").begin()); +// proof.evals[ev_i].generic_selector = get_big_uint256(evals_it.second.get_child("generic_selector").begin()); for (auto s_it: evals_it.second.get_child("generic_selector")) { - proof.evals[ev_i].generic_selector.emplace_back(get_bigui256(&s_it)); + proof.evals[ev_i].generic_selector.emplace_back(get_big_uint256(&s_it)); } -// proof.evals[ev_i].poseidon_selector = get_bigui256(evals_it.second.get_child("poseidon_selector").begin()); +// proof.evals[ev_i].poseidon_selector = get_big_uint256(evals_it.second.get_child("poseidon_selector").begin()); for (auto p_it: evals_it.second.get_child("poseidon_selector")) { - proof.evals[ev_i].poseidon_selector.emplace_back(get_bigui256(&p_it)); + proof.evals[ev_i].poseidon_selector.emplace_back(get_big_uint256(&p_it)); } ev_i++; } @@ -183,35 +183,35 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) i = 0; for (auto &row: root.get_child("data.blockchainVerificationKey.commitments.sigma_comm")) { auto it = row.second.begin(); - ver_index.sigma_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.sigma_comm[i].unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); ++i; } i = 0; for (auto &row: root.get_child("data.blockchainVerificationKey.commitments.coefficients_comm")) { auto it = row.second.begin(); - ver_index.coefficients_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.coefficients_comm[i].unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); ++i; } auto it = root.get_child("data.blockchainVerificationKey.commitments.generic_comm").begin(); - ver_index.generic_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.generic_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.psm_comm").begin(); - ver_index.psm_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.psm_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.complete_add_comm").begin(); - ver_index.complete_add_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.complete_add_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.mul_comm").begin(); - ver_index.mul_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.mul_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.emul_comm").begin(); - ver_index.emul_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.emul_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); it = root.get_child("data.blockchainVerificationKey.commitments.endomul_scalar_comm").begin(); - ver_index.endomul_scalar_comm.unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + ver_index.endomul_scalar_comm.unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); // TODO: null in example // i = 0; // for (auto &row : root.get_child("data.blockchainVerificationKey.commitments.chacha_comm")) { // auto it = row.second.begin(); - // ver_index.chacha_comm[i].unshifted.emplace_back(get_bigui256(it++), get_bigui256(it)); + // ver_index.chacha_comm[i].unshifted.emplace_back(get_big_uint256(it++), get_big_uint256(it)); // ++i; // } //i = 0; @@ -223,10 +223,10 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) // Polynomial in coefficients form // Const - ver_index.zkpm = {0x2C46205451F6C3BBEA4BABACBEE609ECF1039A903C42BFF639EDC5BA33356332_bigui256, - 0x1764D9CB4C64EBA9A150920807637D458919CB6948821F4D15EB1994EADF9CE3_bigui256, - 0x0140117C8BBC4CE4644A58F7007148577782213065BB9699BF5C391FBE1B3E6D_bigui256, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256}; + ver_index.zkpm = {0x2C46205451F6C3BBEA4BABACBEE609ECF1039A903C42BFF639EDC5BA33356332_big_uint256, + 0x1764D9CB4C64EBA9A150920807637D458919CB6948821F4D15EB1994EADF9CE3_big_uint256, + 0x0140117C8BBC4CE4644A58F7007148577782213065BB9699BF5C391FBE1B3E6D_big_uint256, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256}; ver_index.w = nil::crypto3::multiprecision::uint256_t(const_root.get("verify_index.w")); ver_index.endo = nil::crypto3::multiprecision::uint256_t(const_root.get("verify_index.endo")); @@ -240,7 +240,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fr_sponge_params.round_constants")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.round_constants[i].emplace_back(get_bigui256(&cell)); + ver_index.fr_sponge_params.round_constants[i].emplace_back(get_big_uint256(&cell)); j++; } i++; @@ -250,7 +250,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fr_sponge_params.mds")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.mds[i][j] = get_bigui256(&cell); + ver_index.fr_sponge_params.mds[i][j] = get_big_uint256(&cell); j++; } i++; @@ -262,7 +262,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fq_sponge_params.round_constants")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fq_sponge_params.round_constants[i].emplace_back(get_bigui256(&cell)); + ver_index.fq_sponge_params.round_constants[i].emplace_back(get_big_uint256(&cell)); j++; } i++; @@ -272,7 +272,7 @@ BOOST_AUTO_TEST_SUITE(kimchi_proof_struct_test_suite) for (auto &row: const_root.get_child("verify_index.fq_sponge_params.mds")) { size_t j = 0; for (auto cell: row.second) { - ver_index.fr_sponge_params.mds[i][j] = get_bigui256(&cell); + ver_index.fr_sponge_params.mds[i][j] = get_big_uint256(&cell); j++; } i++; diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp index 42060d10e5..2f6c014f82 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/pickles.cpp @@ -64,21 +64,21 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { zk::snark::proof_type proof; zk::snark::verifier_index index; std::vector> w_comm_unshifted = {{ - {0x37D59F0CA7295B0B8C8A658A848933E8EE65F1524C1D2FAD1A2BBEBA01F34DB5_bigui256, 0x38BE9AFC02BE5C46B256233C81A668AF9F96B8482E6DCC09C96A70DDDF442FEE_bigui256}, - {0x2091BF5506C80B75CA58F2A7DB834C2EB165472D0B2A81BE8021BF9A9CCA5AA2_bigui256, 0x39F8E74CCED923CC68A42FE5BADD44A606F0F534A52DB0931DECF6AC8DC11A39_bigui256}, - {0x15D23E10A563E84D239600A75B11523D4522B2C251FD75B0BC517D62676EC397_bigui256, 0x14978858398AF358CE60C21B331E58E7617A5FB7D3F3D25B0079945905FA152C_bigui256}, - {0x3C2AE60A1169863541F6435E895B2BFED6BE488027489194B9060F246F228781_bigui256, 0x0C593145B42D87F2F6BFA525E53F6F70BF70ABBDDAF7DC2328A7C4E62429DC2D_bigui256}, - {0x1D66359053B1B305F65D69FEA147CF182C4D8E1130EA6F3D0224952AEB9A88CD_bigui256, 0x28759D87B74BF16443700034A42A7E7AC307FE949992B59BD3C57A3A6B2F8EC2_bigui256}, - {0x297F2B9076E473E9BF3A385F1BCE10480E65CA640B08587E059AF017AB8D4172_bigui256, 0x12EB28BE66434FF49E5F897066CE07F492C21983DE7961575B894DE46DF0E341_bigui256}, - {0x3D40963F63F238DCA50026C01F6A7A265165624E956FBC16578D8ED303A68EC0_bigui256, 0x3E269040E3E7BDEF490CEE6B0CAA3425367E777A8E18E9B5641E6BB1931EE690_bigui256}, - {0x238BD7EBC99EAB0458C81D7D2F3601F3F8F2DCE5D8C9ECFA84D9156B268920B9_bigui256, 0x3E76531982AB5721C2A843667FEA035E5CF0CC46E09764E8CA0E490F5F71C616_bigui256}, - {0x31A91EC4F6FBA9193F10385AFAAC0631A9E062426BED82DEE9F70464DAFEDB27_bigui256, 0x364F995D1C7B1ACC8FEE6612FFA89B4499F3AC6B7A52898B99F2648F15116000_bigui256}, - {0x3EBF8308C09A54C9F828658CE46562DAC696F0C455F5ADFA6437DAA49328AAC6_bigui256, 0x177B5E81A8C2BCA234C1BE2D06A43463B41D58D8C8A1426B58FE8EF2CBD19E84_bigui256}, - {0x02F7E5219B5F53DF4FE489F9827D79DCBBCBC43BC0F11403B6F9F9AB0F2D5287_bigui256, 0x0F1326405C0DDE95C8DB9D90A8983CE7F549ACEE1791AEDD15794FA7FEDF56BB_bigui256}, - {0x310126DE51CA0F4E88A15B5192F2E10645B3D3FFEF137609805B1D112ACEAD93_bigui256, 0x2AA8D27909092417B8513EBF43E3B2F80D6212C845BFCD79C5E76343D1047581_bigui256}, - {0x36FB4AF93A11A17EB064DE001D7BE84D6F957539B66243A31773CE1254672FD5_bigui256, 0x3D750F7FD0EBF2A251C123870D94305A357A2AF90232FF3DD613B28B6C95B152_bigui256}, - {0x14D1F0BEB1F9E03A7C0D2D137318E9EC825F445FD62E533C758C120597159648_bigui256, 0x1829116C05DB93863741AFEF107AD3DD16CDEBAB91D0800E059D51696F4FB1F0_bigui256}, - {0x1AFA3C262588E880CD82B938F1DC48E209A170562F480B9FFCA27B4CFFF9C5BD_bigui256, 0x1EF02FAAC420520FAEEC93CE20A41639AE47B495035EB70A7E09953B9EB05E3C_bigui256}, + {0x37D59F0CA7295B0B8C8A658A848933E8EE65F1524C1D2FAD1A2BBEBA01F34DB5_big_uint256, 0x38BE9AFC02BE5C46B256233C81A668AF9F96B8482E6DCC09C96A70DDDF442FEE_big_uint256}, + {0x2091BF5506C80B75CA58F2A7DB834C2EB165472D0B2A81BE8021BF9A9CCA5AA2_big_uint256, 0x39F8E74CCED923CC68A42FE5BADD44A606F0F534A52DB0931DECF6AC8DC11A39_big_uint256}, + {0x15D23E10A563E84D239600A75B11523D4522B2C251FD75B0BC517D62676EC397_big_uint256, 0x14978858398AF358CE60C21B331E58E7617A5FB7D3F3D25B0079945905FA152C_big_uint256}, + {0x3C2AE60A1169863541F6435E895B2BFED6BE488027489194B9060F246F228781_big_uint256, 0x0C593145B42D87F2F6BFA525E53F6F70BF70ABBDDAF7DC2328A7C4E62429DC2D_big_uint256}, + {0x1D66359053B1B305F65D69FEA147CF182C4D8E1130EA6F3D0224952AEB9A88CD_big_uint256, 0x28759D87B74BF16443700034A42A7E7AC307FE949992B59BD3C57A3A6B2F8EC2_big_uint256}, + {0x297F2B9076E473E9BF3A385F1BCE10480E65CA640B08587E059AF017AB8D4172_big_uint256, 0x12EB28BE66434FF49E5F897066CE07F492C21983DE7961575B894DE46DF0E341_big_uint256}, + {0x3D40963F63F238DCA50026C01F6A7A265165624E956FBC16578D8ED303A68EC0_big_uint256, 0x3E269040E3E7BDEF490CEE6B0CAA3425367E777A8E18E9B5641E6BB1931EE690_big_uint256}, + {0x238BD7EBC99EAB0458C81D7D2F3601F3F8F2DCE5D8C9ECFA84D9156B268920B9_big_uint256, 0x3E76531982AB5721C2A843667FEA035E5CF0CC46E09764E8CA0E490F5F71C616_big_uint256}, + {0x31A91EC4F6FBA9193F10385AFAAC0631A9E062426BED82DEE9F70464DAFEDB27_big_uint256, 0x364F995D1C7B1ACC8FEE6612FFA89B4499F3AC6B7A52898B99F2648F15116000_big_uint256}, + {0x3EBF8308C09A54C9F828658CE46562DAC696F0C455F5ADFA6437DAA49328AAC6_big_uint256, 0x177B5E81A8C2BCA234C1BE2D06A43463B41D58D8C8A1426B58FE8EF2CBD19E84_big_uint256}, + {0x02F7E5219B5F53DF4FE489F9827D79DCBBCBC43BC0F11403B6F9F9AB0F2D5287_big_uint256, 0x0F1326405C0DDE95C8DB9D90A8983CE7F549ACEE1791AEDD15794FA7FEDF56BB_big_uint256}, + {0x310126DE51CA0F4E88A15B5192F2E10645B3D3FFEF137609805B1D112ACEAD93_big_uint256, 0x2AA8D27909092417B8513EBF43E3B2F80D6212C845BFCD79C5E76343D1047581_big_uint256}, + {0x36FB4AF93A11A17EB064DE001D7BE84D6F957539B66243A31773CE1254672FD5_big_uint256, 0x3D750F7FD0EBF2A251C123870D94305A357A2AF90232FF3DD613B28B6C95B152_big_uint256}, + {0x14D1F0BEB1F9E03A7C0D2D137318E9EC825F445FD62E533C758C120597159648_big_uint256, 0x1829116C05DB93863741AFEF107AD3DD16CDEBAB91D0800E059D51696F4FB1F0_big_uint256}, + {0x1AFA3C262588E880CD82B938F1DC48E209A170562F480B9FFCA27B4CFFF9C5BD_big_uint256, 0x1EF02FAAC420520FAEEC93CE20A41639AE47B495035EB70A7E09953B9EB05E3C_big_uint256}, }}; std::vector w_comm_shifted(COLUMNS); @@ -90,259 +90,259 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { } // // z_comm proof.commitments.z_comm.unshifted.emplace_back( - 0x02D12945583E0CE5C20142E1DB4B19A8E644BCEE07F25516941DB26A38E1EA5D_bigui256, - 0x36F230B302E081E88BAEB5B3FD213D99CAD1CD7E8B2A2483B05FBA2D414155DD_bigui256); + 0x02D12945583E0CE5C20142E1DB4B19A8E644BCEE07F25516941DB26A38E1EA5D_big_uint256, + 0x36F230B302E081E88BAEB5B3FD213D99CAD1CD7E8B2A2483B05FBA2D414155DD_big_uint256); // t_comm proof.commitments.t_comm.unshifted.assign({ - {0x110D9EF8090D154F6EFF13AC56AABA47F74566FFE37ACD28620A2B20E4F6F103_bigui256, - 0x26E410DBC25C6D70806230921A18EFCF8CB5118B86D107DF470B52CD3F886768_bigui256}, - {0x01EE59DAF6AB1C13AF0D05909EFD17A1C032956371384A0AD9555E42A6E52AAF_bigui256, - 0x2ABDF22ED010D9A34FCC62D43B3B06432976EAF2855A1AD2292F189E45E0A0F9_bigui256}, - {0x3FA91D5BC8AC02F5E88CE34492E06354C8FB35E2FB635EC0D6E7DF97DB2FDAB2_bigui256, - 0x30F90A99F0EA41BFA466310309F220FF4C3442878FBC6A0EDDCC1D1C1B5B9AEC_bigui256}, - {0x37962BA26AB78DA50CD54712604EF151EB45AF2A3903D77129495E7ECD6CFF65_bigui256, - 0x1BD455ED670C7C422A6A2B179411D014EC970B2AFB3491AEEC09DF613B47DB1D_bigui256}, - {0x1EB582AA419C591322EA6295EE6E028CAB38DAF13F611EFFA7C605369253E561_bigui256, - 0x0BEF30013E760029F68C81BCA30D73BC09F7F9BB8F632F2CB438783834D854A1_bigui256}, - {0x2CEF8331B908170318C146626953800A8B0B3DDFA060B6BE9C1303903004A10D_bigui256, - 0x1C381FC7E8A986E28DE8E254FE335019EF0B016E9EE74118FB1D38FBD6C611FF_bigui256}, - {0x0A8C3CE07FC7DABF928F064376C201AF936AC5501AC32E08B87BC6C3D02B4703_bigui256, - 0x14740C6D1C4984E1049CC26F7F1C8AD4605C3BB32C704214CBD9F845E8E24635_bigui256}, + {0x110D9EF8090D154F6EFF13AC56AABA47F74566FFE37ACD28620A2B20E4F6F103_big_uint256, + 0x26E410DBC25C6D70806230921A18EFCF8CB5118B86D107DF470B52CD3F886768_big_uint256}, + {0x01EE59DAF6AB1C13AF0D05909EFD17A1C032956371384A0AD9555E42A6E52AAF_big_uint256, + 0x2ABDF22ED010D9A34FCC62D43B3B06432976EAF2855A1AD2292F189E45E0A0F9_big_uint256}, + {0x3FA91D5BC8AC02F5E88CE34492E06354C8FB35E2FB635EC0D6E7DF97DB2FDAB2_big_uint256, + 0x30F90A99F0EA41BFA466310309F220FF4C3442878FBC6A0EDDCC1D1C1B5B9AEC_big_uint256}, + {0x37962BA26AB78DA50CD54712604EF151EB45AF2A3903D77129495E7ECD6CFF65_big_uint256, + 0x1BD455ED670C7C422A6A2B179411D014EC970B2AFB3491AEEC09DF613B47DB1D_big_uint256}, + {0x1EB582AA419C591322EA6295EE6E028CAB38DAF13F611EFFA7C605369253E561_big_uint256, + 0x0BEF30013E760029F68C81BCA30D73BC09F7F9BB8F632F2CB438783834D854A1_big_uint256}, + {0x2CEF8331B908170318C146626953800A8B0B3DDFA060B6BE9C1303903004A10D_big_uint256, + 0x1C381FC7E8A986E28DE8E254FE335019EF0B016E9EE74118FB1D38FBD6C611FF_big_uint256}, + {0x0A8C3CE07FC7DABF928F064376C201AF936AC5501AC32E08B87BC6C3D02B4703_big_uint256, + 0x14740C6D1C4984E1049CC26F7F1C8AD4605C3BB32C704214CBD9F845E8E24635_big_uint256}, }); proof.proof.lr.assign({ - {{0x0097DDEE3FC1597E4CA77260AC311372574CD19B0E48466745DDA9A5927F9525_bigui256, 0x114F2A66D1AAE2C1A0ADA357F7F454DD4BD6722A0C747C84712CD498EEC814D1_bigui256}, - {0x30C7AE3DC6B1BA3E35385FEBCEFE39DA16D4ACF77780B098387B1450D4773D2E_bigui256, 0x1F3CCD56C3D0523F675FA85361878ECC6A69C5D833408DB32E16F78C6733BA10_bigui256}}, - {{0x17F3C28356AB5AF3FC69DF809114E10081FD01DAFE81F26A2538223033258FA2_bigui256, 0x2361848DC301E6534FEECE2CCF9FF176BA15C57C5011EBCC05C8B663EB4D2D8F_bigui256}, - {0x2F05F9AC607AB4E99E2B2A25D1B81A677FC58AE964B6C58F8DF7348F0798D28C_bigui256, 0x3DFD1D28554A0787E24FCD989A3C0B8D957DB7094FE7CA54F849DCC7DDE42D0C_bigui256}}, - {{0x2DC7573E0F46A4EA37CBECCAD3DE5C2E2150956C85111805C57EDA0F6B62F064_bigui256, 0x33CA15AA795016559B5E00380D4931E35809D9A1F574063B7BEB6AC195CB9F8B_bigui256}, - {0x24689817A7690449627E6FE240CBAFB2BEA71D2FC6825BD7EE4B29B5339AA457_bigui256, 0x29308F028040D033813FBDF844C0512F4472440CE72C44B241B03D776AF8178C_bigui256}}, - {{0x3C289CD39608326A27B949CA9332C4B7F3A9F82668E2A8DFC187952A6ECA4734_bigui256, 0x2AB833558061F365CA621F5E570953AD5BBFBF45809B245C8D66D0CD00C9C8D6_bigui256}, - {0x22A6D04A1964B9B54F5183648117CD67FCAF9AB2B0D926565D725B87108F586B_bigui256, 0x36016051DA2BA6FE1D8BE3A614959AE431B3DC9F543D4CC3E6526A843FD3F668_bigui256}}, - {{0x3C4DE244A5E4B969BBB3BA8A41FC1076FBF8FCD1174AB350AB9F414B2B5F02B7_bigui256, 0x273F19EDC54275DF166E3A80D3F8BBCE48C67F49154C45D576F5838E59049401_bigui256}, - {0x1A6C28E8E8679AE8998192577C2FA9B5ABC67FFE84ADB63D4F655960ADCA06C3_bigui256, 0x16A0AD9FE756A1285C0F151EAB8E8C90A84862E3C3B552BF11BD473FDF42AEA5_bigui256}}, - {{0x25DB17042CD86EFBF52B129CF874E093D0F6930D6D9B91A1874954B8E2F89DAC_bigui256, 0x1790B39E7FF4D2C2D40ACF986D32EAC3D0C8CA6024555867BE258A9F581D68A4_bigui256}, - {0x213853D57B0E3FD0D663149C5DE7A1CDC9B4796F946D33BCFC5731A1FE262D76_bigui256, 0x0D6156942605E3AD61EAE4D43D60434B1351B2F1817C9E322F7A0BD78EA0E7FD_bigui256}}, + {{0x0097DDEE3FC1597E4CA77260AC311372574CD19B0E48466745DDA9A5927F9525_big_uint256, 0x114F2A66D1AAE2C1A0ADA357F7F454DD4BD6722A0C747C84712CD498EEC814D1_big_uint256}, + {0x30C7AE3DC6B1BA3E35385FEBCEFE39DA16D4ACF77780B098387B1450D4773D2E_big_uint256, 0x1F3CCD56C3D0523F675FA85361878ECC6A69C5D833408DB32E16F78C6733BA10_big_uint256}}, + {{0x17F3C28356AB5AF3FC69DF809114E10081FD01DAFE81F26A2538223033258FA2_big_uint256, 0x2361848DC301E6534FEECE2CCF9FF176BA15C57C5011EBCC05C8B663EB4D2D8F_big_uint256}, + {0x2F05F9AC607AB4E99E2B2A25D1B81A677FC58AE964B6C58F8DF7348F0798D28C_big_uint256, 0x3DFD1D28554A0787E24FCD989A3C0B8D957DB7094FE7CA54F849DCC7DDE42D0C_big_uint256}}, + {{0x2DC7573E0F46A4EA37CBECCAD3DE5C2E2150956C85111805C57EDA0F6B62F064_big_uint256, 0x33CA15AA795016559B5E00380D4931E35809D9A1F574063B7BEB6AC195CB9F8B_big_uint256}, + {0x24689817A7690449627E6FE240CBAFB2BEA71D2FC6825BD7EE4B29B5339AA457_big_uint256, 0x29308F028040D033813FBDF844C0512F4472440CE72C44B241B03D776AF8178C_big_uint256}}, + {{0x3C289CD39608326A27B949CA9332C4B7F3A9F82668E2A8DFC187952A6ECA4734_big_uint256, 0x2AB833558061F365CA621F5E570953AD5BBFBF45809B245C8D66D0CD00C9C8D6_big_uint256}, + {0x22A6D04A1964B9B54F5183648117CD67FCAF9AB2B0D926565D725B87108F586B_big_uint256, 0x36016051DA2BA6FE1D8BE3A614959AE431B3DC9F543D4CC3E6526A843FD3F668_big_uint256}}, + {{0x3C4DE244A5E4B969BBB3BA8A41FC1076FBF8FCD1174AB350AB9F414B2B5F02B7_big_uint256, 0x273F19EDC54275DF166E3A80D3F8BBCE48C67F49154C45D576F5838E59049401_big_uint256}, + {0x1A6C28E8E8679AE8998192577C2FA9B5ABC67FFE84ADB63D4F655960ADCA06C3_big_uint256, 0x16A0AD9FE756A1285C0F151EAB8E8C90A84862E3C3B552BF11BD473FDF42AEA5_big_uint256}}, + {{0x25DB17042CD86EFBF52B129CF874E093D0F6930D6D9B91A1874954B8E2F89DAC_big_uint256, 0x1790B39E7FF4D2C2D40ACF986D32EAC3D0C8CA6024555867BE258A9F581D68A4_big_uint256}, + {0x213853D57B0E3FD0D663149C5DE7A1CDC9B4796F946D33BCFC5731A1FE262D76_big_uint256, 0x0D6156942605E3AD61EAE4D43D60434B1351B2F1817C9E322F7A0BD78EA0E7FD_big_uint256}}, }); - proof.proof.delta = {0x1841D56E15736C31F97ADAE3DCA7B0C7EFDDB800C6AD958C8C317206C00DC72D_bigui256, - 0x371285C1D5F12E0C32C4913C64678ABC8947C5D61BE6C7D0AB102CBF4E955893_bigui256}; - proof.proof.z1 = 0x0F55A25FD477DB4D5486AD5B7FDECD3BA87AEABD8FD8EB81158D68CE342AD400_bigui256; - proof.proof.z2 = 0x35E29FC28BED57075811257A7182C30C0273CB460AF5212E14B5D47C6B820E9E_bigui256; - proof.proof.sg = {0x22202A4EE86A05EAD5695178EC52EE4B27B162B4A41AA26D2181BC8BE7620F2F_bigui256, - 0x195B0A20E4C1CD6840DF5B0937CB00CA9C10AEB7B2A05C8721D5571ECBECAA7D_bigui256}; + proof.proof.delta = {0x1841D56E15736C31F97ADAE3DCA7B0C7EFDDB800C6AD958C8C317206C00DC72D_big_uint256, + 0x371285C1D5F12E0C32C4913C64678ABC8947C5D61BE6C7D0AB102CBF4E955893_big_uint256}; + proof.proof.z1 = 0x0F55A25FD477DB4D5486AD5B7FDECD3BA87AEABD8FD8EB81158D68CE342AD400_big_uint256; + proof.proof.z2 = 0x35E29FC28BED57075811257A7182C30C0273CB460AF5212E14B5D47C6B820E9E_big_uint256; + proof.proof.sg = {0x22202A4EE86A05EAD5695178EC52EE4B27B162B4A41AA26D2181BC8BE7620F2F_big_uint256, + 0x195B0A20E4C1CD6840DF5B0937CB00CA9C10AEB7B2A05C8721D5571ECBECAA7D_big_uint256}; - proof.evals[0].w[0] = {0x218C1B364EAB7D60FB30A1D1865BB51B9EC1BBD61308CAAE14244A054B122E93_bigui256}; - proof.evals[0].w[1] = {0x3E72A7C4AB5A497B6B4C19E2F4BDBFDA667526DFF7310B59053536560A5B69B1_bigui256}; - proof.evals[0].w[2] = {0x2E678A3459123FBCAB752483B33EE996CDE93AA456A77AA68EE2B392E85A8AD3_bigui256}; - proof.evals[0].w[3] = {0x15051A7601CC5949B5CE177941BA55869E860C39C9DE872387958B8907979BCE_bigui256}; - proof.evals[0].w[4] = {0x0485A39322005BF5C7A01501646A1CAED8BF7BDF3EBBF563D7E38DD59EED4C1F_bigui256}; - proof.evals[0].w[5] = {0x0AC812E8C385BF25F1CB39E9F5081567AA21329558BE4DD1A9108344C23184BD_bigui256}; - proof.evals[0].w[6] = {0x3FF83F99525275EFE8A9BA42F177E083ADDF4618AC5981BB99510FEE28384A24_bigui256}; - proof.evals[0].w[7] = {0x14736CB71FEDE1E1F004BC88D20A9897F5DE9E48C06B22536450EA9CBE66BDF3_bigui256}; - proof.evals[0].w[8] = {0x3E0A7FD54262D5A95C13E98950C29412D2D70C410F294958A2D3876C1C59B6BE_bigui256}; - proof.evals[0].w[9] = {0x298284D82997B6D9814B8643C976B43601DE36E710C2A67CFDB83AADA8532744_bigui256}; - proof.evals[0].w[10] = {0x0D478CF727DADD5E084A9077F49EEFFE9337E7FF43B079617BBAE51A67ABE0C6_bigui256}; - proof.evals[0].w[11] = {0x3E25792FCB0C4C612C3BC6C772B7E8D74EB844F841D25C766406DD497D594EDF_bigui256}; - proof.evals[0].w[12] = {0x33F1A21853B94B69C3838A5BB737F6795F927047521344F98A9C42EC62131941_bigui256}; - proof.evals[0].w[13] = {0x29BDCB00DC664A725ACB4DEFFBB8041B706C9B9662542D7CB131A88F46CCE3A3_bigui256}; - proof.evals[0].w[14] = {0x1F89F3E96513497AF2131184403811BD8146C6E5729515FFD7C70E322B86AE05_bigui256}; - proof.evals[0].z = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; - // proof.evals[0].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; - // proof.evals[0].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; - proof.evals[0].s[0] = {0x0284596D78C52B3B5BA71D1A9A173ABF9E63F9B848C39206169C36B878AF6DDA_bigui256}; - proof.evals[0].s[1] = {0x0614A2627FBCD1D7356FB7BFB33DD7D7C81F761E421B12251672D250A0C2F5A5_bigui256}; - proof.evals[0].s[2] = {0x06170D49F379823E790EE625247E2DCFD100B5B5ACF8A900D86405D09C480A72_bigui256}; - proof.evals[0].s[3] = {0x2E1F15C0649E24B7F3AB4DA6E881866F2E74C11656850F1DDD9EA945B3BFA6A9_bigui256}; - proof.evals[0].s[4] = {0x3725E0A20A90564DACEEBD1B8E4037D9A563AD0105BB87932846E5194F5853FF_bigui256}; - proof.evals[0].s[5] = {0x315BC904B7DBD7D45780562C242882BF93CE41138876DA231D9D0AFB8036CF11_bigui256}; + proof.evals[0].w[0] = {0x218C1B364EAB7D60FB30A1D1865BB51B9EC1BBD61308CAAE14244A054B122E93_big_uint256}; + proof.evals[0].w[1] = {0x3E72A7C4AB5A497B6B4C19E2F4BDBFDA667526DFF7310B59053536560A5B69B1_big_uint256}; + proof.evals[0].w[2] = {0x2E678A3459123FBCAB752483B33EE996CDE93AA456A77AA68EE2B392E85A8AD3_big_uint256}; + proof.evals[0].w[3] = {0x15051A7601CC5949B5CE177941BA55869E860C39C9DE872387958B8907979BCE_big_uint256}; + proof.evals[0].w[4] = {0x0485A39322005BF5C7A01501646A1CAED8BF7BDF3EBBF563D7E38DD59EED4C1F_big_uint256}; + proof.evals[0].w[5] = {0x0AC812E8C385BF25F1CB39E9F5081567AA21329558BE4DD1A9108344C23184BD_big_uint256}; + proof.evals[0].w[6] = {0x3FF83F99525275EFE8A9BA42F177E083ADDF4618AC5981BB99510FEE28384A24_big_uint256}; + proof.evals[0].w[7] = {0x14736CB71FEDE1E1F004BC88D20A9897F5DE9E48C06B22536450EA9CBE66BDF3_big_uint256}; + proof.evals[0].w[8] = {0x3E0A7FD54262D5A95C13E98950C29412D2D70C410F294958A2D3876C1C59B6BE_big_uint256}; + proof.evals[0].w[9] = {0x298284D82997B6D9814B8643C976B43601DE36E710C2A67CFDB83AADA8532744_big_uint256}; + proof.evals[0].w[10] = {0x0D478CF727DADD5E084A9077F49EEFFE9337E7FF43B079617BBAE51A67ABE0C6_big_uint256}; + proof.evals[0].w[11] = {0x3E25792FCB0C4C612C3BC6C772B7E8D74EB844F841D25C766406DD497D594EDF_big_uint256}; + proof.evals[0].w[12] = {0x33F1A21853B94B69C3838A5BB737F6795F927047521344F98A9C42EC62131941_big_uint256}; + proof.evals[0].w[13] = {0x29BDCB00DC664A725ACB4DEFFBB8041B706C9B9662542D7CB131A88F46CCE3A3_big_uint256}; + proof.evals[0].w[14] = {0x1F89F3E96513497AF2131184403811BD8146C6E5729515FFD7C70E322B86AE05_big_uint256}; + proof.evals[0].z = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_big_uint256}; + // proof.evals[0].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_big_uint256}; + // proof.evals[0].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_big_uint256}; + proof.evals[0].s[0] = {0x0284596D78C52B3B5BA71D1A9A173ABF9E63F9B848C39206169C36B878AF6DDA_big_uint256}; + proof.evals[0].s[1] = {0x0614A2627FBCD1D7356FB7BFB33DD7D7C81F761E421B12251672D250A0C2F5A5_big_uint256}; + proof.evals[0].s[2] = {0x06170D49F379823E790EE625247E2DCFD100B5B5ACF8A900D86405D09C480A72_big_uint256}; + proof.evals[0].s[3] = {0x2E1F15C0649E24B7F3AB4DA6E881866F2E74C11656850F1DDD9EA945B3BFA6A9_big_uint256}; + proof.evals[0].s[4] = {0x3725E0A20A90564DACEEBD1B8E4037D9A563AD0105BB87932846E5194F5853FF_big_uint256}; + proof.evals[0].s[5] = {0x315BC904B7DBD7D45780562C242882BF93CE41138876DA231D9D0AFB8036CF11_big_uint256}; - proof.evals[1].w[0] = {0x0CE4579CFE87F1D15160DDE1078E01AC2795B12A93D40263C613A3341EF2C27D_bigui256}; - proof.evals[1].w[1] = {0x3728E63BF46BAA60AC6078292280E1FD7F4FB0F85BBD642CB62F4600737A6CAC_bigui256}; - proof.evals[1].w[2] = {0x3C89AC7E8C016AF82E276185E310D5D36E0F3A14202A981C4F51D014569E458E_bigui256}; - proof.evals[1].w[3] = {0x3099E164DFF4B7506A32E0D10119A74A0EE794BB1F4C488EBE192C37BC4E4E5C_bigui256}; - proof.evals[1].w[4] = {0x1A8C403E7B17F751B6C9573DD36C1BFCE6FA6B0C1A51D5759184D63DFF2CB28A_bigui256}; - proof.evals[1].w[5] = {0x092E41B804AA2C03F28EE41EBA2F370C6FD6C1ADBEA08D1C19C50DDF3D7E7154_bigui256}; - proof.evals[1].w[6] = {0x208E4B0B4277B90CE839D21A96E3C68ECA076C6EC3992A7F0D2277E6CC4A9C55_bigui256}; - proof.evals[1].w[7] = {0x3BF1050F00050486620C9ABC34863D8628AAC362EC76BA4234618EC7956EC9F2_bigui256}; - proof.evals[1].w[8] = {0x04E39785D3438752F23993771796047837282E33171C5A62EF1E7B5141855829_bigui256}; - proof.evals[1].w[9] = {0x1B5BA02A80313D49A8D2BFCE1E951A3C795EB2A01A65C193D92B46D61B26ACCF_bigui256}; - proof.evals[1].w[10] = {0x327242E90C704A0EB53538A6F1311E6B8E1DBC86812246DA7597B3AC1A4FF8CD_bigui256}; - proof.evals[1].w[11] = {0x109B911705D2385C5AD5B80ED76D78835971175398C34D2E962C49FB1F3F3FCE_bigui256}; - proof.evals[1].w[12] = {0x39F57515F459363F447611DFF8F54D4A1AF705D7E477086F2154258DCCE6C991_bigui256}; - proof.evals[1].w[13] = {0x234F5914E2E034222E166BB11A7D2210BA365B6026DDCA94134ED0337A8E5353_bigui256}; - proof.evals[1].w[14] = {0x0CA93D13D167320517B6C5823C04F6D75975B0E869448CB905497AD92835DD15_bigui256}; - proof.evals[1].z = {0x359872A0067A0765E595D6AFEB42B023EAC3EBC9735945F780A635A9CC256703_bigui256}; - // proof.evals[1].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; - // proof.evals[1].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_bigui256}; - proof.evals[1].s[0] = {0x353E417DD92E1B8C4C2BB40358A4FF43CED6AFDF2218C49867D2C45D1DB174AF_bigui256}; - proof.evals[1].s[1] = {0x109165335DD3FABD6AF198D5E7CC45B4E11356D1A4027B8BC01344356F7ADABB_bigui256}; - proof.evals[1].s[2] = {0x177C41BBAE20A957704CBCD4777244F4BC252BEA68362D9F0B00A22267247C3A_bigui256}; - proof.evals[1].s[3] = {0x34D9D201F2E42D5E3D86CD5C70DF153E472CD9401CE1E1FB9EC742EFF8BEDE2C_bigui256}; - proof.evals[1].s[4] = {0x00C022C8689A0F23EFA00918CCA8ECCB106CB89037E7B034840DCD614E4DECF7_bigui256}; - proof.evals[1].s[5] = {0x0E9A479740A633919DF200A1F25FF75982AFF0749111C1E87EBB69DC2B1A5BC7_bigui256}; + proof.evals[1].w[0] = {0x0CE4579CFE87F1D15160DDE1078E01AC2795B12A93D40263C613A3341EF2C27D_big_uint256}; + proof.evals[1].w[1] = {0x3728E63BF46BAA60AC6078292280E1FD7F4FB0F85BBD642CB62F4600737A6CAC_big_uint256}; + proof.evals[1].w[2] = {0x3C89AC7E8C016AF82E276185E310D5D36E0F3A14202A981C4F51D014569E458E_big_uint256}; + proof.evals[1].w[3] = {0x3099E164DFF4B7506A32E0D10119A74A0EE794BB1F4C488EBE192C37BC4E4E5C_big_uint256}; + proof.evals[1].w[4] = {0x1A8C403E7B17F751B6C9573DD36C1BFCE6FA6B0C1A51D5759184D63DFF2CB28A_big_uint256}; + proof.evals[1].w[5] = {0x092E41B804AA2C03F28EE41EBA2F370C6FD6C1ADBEA08D1C19C50DDF3D7E7154_big_uint256}; + proof.evals[1].w[6] = {0x208E4B0B4277B90CE839D21A96E3C68ECA076C6EC3992A7F0D2277E6CC4A9C55_big_uint256}; + proof.evals[1].w[7] = {0x3BF1050F00050486620C9ABC34863D8628AAC362EC76BA4234618EC7956EC9F2_big_uint256}; + proof.evals[1].w[8] = {0x04E39785D3438752F23993771796047837282E33171C5A62EF1E7B5141855829_big_uint256}; + proof.evals[1].w[9] = {0x1B5BA02A80313D49A8D2BFCE1E951A3C795EB2A01A65C193D92B46D61B26ACCF_big_uint256}; + proof.evals[1].w[10] = {0x327242E90C704A0EB53538A6F1311E6B8E1DBC86812246DA7597B3AC1A4FF8CD_big_uint256}; + proof.evals[1].w[11] = {0x109B911705D2385C5AD5B80ED76D78835971175398C34D2E962C49FB1F3F3FCE_big_uint256}; + proof.evals[1].w[12] = {0x39F57515F459363F447611DFF8F54D4A1AF705D7E477086F2154258DCCE6C991_big_uint256}; + proof.evals[1].w[13] = {0x234F5914E2E034222E166BB11A7D2210BA365B6026DDCA94134ED0337A8E5353_big_uint256}; + proof.evals[1].w[14] = {0x0CA93D13D167320517B6C5823C04F6D75975B0E869448CB905497AD92835DD15_big_uint256}; + proof.evals[1].z = {0x359872A0067A0765E595D6AFEB42B023EAC3EBC9735945F780A635A9CC256703_big_uint256}; + // proof.evals[1].poseidon_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_big_uint256}; + // proof.evals[1].generic_selector = {0x1FE86B9FC1DF5F4888F0FA8A83E8B724ABB34455BD297CF03D5DAE3EFC7BD428_big_uint256}; + proof.evals[1].s[0] = {0x353E417DD92E1B8C4C2BB40358A4FF43CED6AFDF2218C49867D2C45D1DB174AF_big_uint256}; + proof.evals[1].s[1] = {0x109165335DD3FABD6AF198D5E7CC45B4E11356D1A4027B8BC01344356F7ADABB_big_uint256}; + proof.evals[1].s[2] = {0x177C41BBAE20A957704CBCD4777244F4BC252BEA68362D9F0B00A22267247C3A_big_uint256}; + proof.evals[1].s[3] = {0x34D9D201F2E42D5E3D86CD5C70DF153E472CD9401CE1E1FB9EC742EFF8BEDE2C_big_uint256}; + proof.evals[1].s[4] = {0x00C022C8689A0F23EFA00918CCA8ECCB106CB89037E7B034840DCD614E4DECF7_big_uint256}; + proof.evals[1].s[5] = {0x0E9A479740A633919DF200A1F25FF75982AFF0749111C1E87EBB69DC2B1A5BC7_big_uint256}; - proof.ft_eval1 = 0x01AEC83A8925441906ED7C843289815B1F2098EBE21BA2EC9C9BDE738323A79C_bigui256; + proof.ft_eval1 = 0x01AEC83A8925441906ED7C843289815B1F2098EBE21BA2EC9C9BDE738323A79C_big_uint256; index.domain = math::basic_radix2_domain(64); - index.domain.omega = 0x1868CA50534A180D97FF23A878E088B0B9569C85B0A15D666C23DED157FCEEBA_bigui256; + index.domain.omega = 0x1868CA50534A180D97FF23A878E088B0B9569C85B0A15D666C23DED157FCEEBA_big_uint256; // std::cout << "index domain size " << index.domain.size() << '\n'; index.max_poly_size = 64; index.max_quot_size = 448; index.srs.g.assign({ - {0x121C4426885FD5A9701385AAF8D43E52E7660F1FC5AFC5F6468CC55312FC60F8_bigui256, 0x21B439C01247EA3518C5DDEB324E4CB108AF617780DDF766D96D3FD8AB028B70_bigui256}, - {0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_bigui256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_bigui256}, - {0x26985F27306586711466C5B2C28754AA62FE33516D75CEF1F7751F1A169713FD_bigui256, 0x2E8930092FE6A18B331CE0E6E27B413AA18E76394F18A2835DA9FAE10AA3229D_bigui256}, - {0x014B2DB7B753A74D454061FCB3AC537E1B4BA512F9ED258C996A59D9DACD13E5_bigui256, 0x06F392D371494FC39174C4B70C692B96F3B7C42DA288F6B7AABF463334A952D0_bigui256}, - {0x12CA0E2DBF286021CB76B7C12B6C9AD7FDF1D05F722F6EF14BD43E53E7B92120_bigui256, 0x216A80B79D3995D1F39CE19855C475052D1148ACBDD379FE98961BFBD0A3E428_bigui256}, - {0x1D257C1F4EC9872C9E06549BC910F7B7196F2E7CB120AEC3FDCEB049C7A0C9A5_bigui256, 0x191CBEC20ED5EA342B6B395E92996215F7D93C675DA56A13D548EFB58524D336_bigui256}, - {0x06236026ED7DC19C44540FBAF0C1C3498F82880A34422547FFF519FFF744BB48_bigui256, 0x3A02C5410DABDE160BD09232A14F00B1EF6CD4D6285C90A8D41FA00BFF922F0A_bigui256}, - {0x079333FDE60D3F670068B5A1D486EDDD87DDF91D1E1FC000F387991B4ED848B4_bigui256, 0x3F7FC1A39FD74BDEDC129195080D298CFC2C2CF714BAD9F9334F0DAFB035C200_bigui256}, - {0x069B398C2968553B7987FF840CF0B71359D10F249F08C40898550A63F196D856_bigui256, 0x1B68BB879D6EC4EFAA2207E212B59BAD0D8E5E2493F99BE3F2F24764046CD277_bigui256}, - {0x2CBD65973AE0BE0B9E652CEC35EFE509E1FA8DD8349DC1E644DB494DC2B4FD75_bigui256, 0x1E27B8178E720407694F4EA1413B0CB87AF4058CB308BBD68FF42D5078DE243E_bigui256}, - {0x0F29A22EF6949DE85427F72CCD04E3F8F56837BB56DA17D8FA5DE9025E6B9ED5_bigui256, 0x26A2CD91BD2771E20DECAACDC6CA96E7759668F3D0B7E8810866D27737627A59_bigui256}, - {0x300EE47C831AB28067BFE9364A819C894FA02155C5FC3E94E83A0EAD3110E9E5_bigui256, 0x2D4FD253E12958FD548AC51E62F3158EB3EE8CB10F148F0A44D2C6E562D632CA_bigui256}, - {0x2A9EA5BCE9D10ED951E11E4DE64DED939D1FC6B5DE07DFF33D49861B7DE2EE71_bigui256, 0x0708F926C80F2A68C3F59C8C25D26F29FF90842A7C1BEDE0B1801D7DF258077B_bigui256}, - {0x2DEA83FC8EA7A9727A5F2184EDCBF6A17083C10DACE4F45DADB330CE1624DC8B_bigui256, 0x02DE1252440BF67F0B7A40DE4B7D9157993CE1D0DC47F8D4B3BCF126FBE00E2B_bigui256}, - {0x341DE1D9B175235F492C6DAD8580443D11B12DF39EE95D497935BFF99D4E775F_bigui256, 0x01177651EA542F5402CA5B075C5A2082F5F4EE1D3B054FC97CF7D30758D89841_bigui256}, - {0x37D2BB9884B41B3125444D81C59E8EDA167284FB5D637C9D54B21753830F14A0_bigui256, 0x0D5708EB79051B4704EDB309CDFCA38030CD8B656A5C9051B5C1AFA6B1C30D46_bigui256}, - {0x026A67515EF102D65C7694144B457240C4E3270A0240640A5EAF9B3E7489C54E_bigui256, 0x1B78FD66A3E4A168D0CEC1846F03B1624342491857F9204743A44DE2E90A42E2_bigui256}, - {0x2E2489CBFD8534059574AACD43C137788C54D86B1292CF4B17850EE95F913198_bigui256, 0x10D13EAD8E28E1493325B7DBB89025DA06A8867EE60BCADD1D794A847D871A46_bigui256}, - {0x3FB39F7B1DBD63694D40FC6C105FBD8242908DB2CF82B5F0FACE46A7792CC0A0_bigui256, 0x01DF2D8291BAA5ECFF544683F16F36D8C83078DFD24B5C8C93DFEDA524704750_bigui256}, - {0x39DA705C7CD47D34F9B2E2A7F57200F656A229398E7A0F89A5534D72C8BAA2C7_bigui256, 0x1C5E177C851121F1A90AC844245B7D7D5512C822ABF4AF37213AF5B2EBCED4F0_bigui256}, - {0x0A35295A58443F71E676CE42BA6FC44D4EF1DEB8E9E9C7D537CE4CD453576521_bigui256, 0x3600DA2E2E5D3674E13613871FA8B9A5D96F905DD69114FBF3F69F61D0C57263_bigui256}, - {0x2879FDC5D79EC2FD73D8776DD5ED76F8BC6DA10D4501AA892D11CC02152E33C5_bigui256, 0x06FC48C9C7CF8B4CD94812DC8EE2ABBC4A0775D52E01097E6877F2A1A7547786_bigui256}, - {0x0A3499DB18871CBF14818C2D5152742B4457FDF30DF5936172EDE2FE9A537701_bigui256, 0x0548D846722829A12B1C9C39411DE0AC8C5C2F97C1953432DF60251E0DAE91B2_bigui256}, - {0x25A8F59C1D7C23576952D07640231EEBDE39D9F89BB85110966096D36043DB0A_bigui256, 0x0F6EB10365B419FA5179D3278BC7F834D27AD930AE11674FFC5F00549556DBB8_bigui256}, - {0x1F4A67F9C220741648FBACFAC1934B09C3E903EFBE12DECFA6820656D3778DAA_bigui256, 0x3685316B926A7C4351AB8AB802174B11BF8EBD5999989F0343555D9575CFA3CC_bigui256}, - {0x1ECC9BE71F9ACF900FA6CDCC452550C7991BFC25258CEFACBCF51D541DF2D819_bigui256, 0x0FBDFA76ACB83F9C4DF9337FEC47F38672D31E9EB5406034812E5C21C6494BDD_bigui256}, - {0x2E79A282F86F8FC1B2DB59443975544DD7C92883322C82C2C283DC51A0E34825_bigui256, 0x0118E6A449918C38AA0D290373F1D605DC21B6B5F228C41BFF596C635AF7761E_bigui256}, - {0x3FCD47170790B2A3E85CEAEE44940DACA0E11DD132960092FB2E1613B364849B_bigui256, 0x2859254A7ABFB288138B64009A85178250FD120351634CCD41D9ECE993D9F6A3_bigui256}, - {0x1A29CFD3AF8F7C0F19861362DAC9FD8034F82C2C1750A425B446461B5BC63E4B_bigui256, 0x15E12C10AE7FFF431F6FAAB8EE607386AA85EB7AFB806E264B8952D51404E17D_bigui256}, - {0x2EECD04E0E37FAF9C51C61249470F118C5C5EA8E6DDB4B645F99C47D3BA07F68_bigui256, 0x33E6418DD36692F7EE870BB3577115F87D62E9D257374950A17A3B0154B8B35D_bigui256}, - {0x3BADB4DCEADF739775588552805A959B7D216BFD86847BA54D662B777B2B1FCF_bigui256, 0x0CB8DEE5BE3197C76685F25D4596C766A2DA3542BD89FD9633D7590EA2B68FD0_bigui256}, - {0x3FC5DE9E2422625B53D18E55C069CBCEC9C2D2C4F8DAB5B1BC11D3702F3F5E22_bigui256, 0x0EE46C6ABF41C33D66B60AA4E508CE43DFE02535EF19E158AB66B49D12BD171F_bigui256}, - {0x0172960667016B5FFF7A489C3BC65F38A63FB833A16AC7AF4882A193A1B9E0DE_bigui256, 0x241362235399643C11C8DA0E103B5F17975EB78BF493F02DC9749905CE1E7BA7_bigui256}, - {0x060A1110F23BFB345A81751266E1394C0CF7939CB382AD2387FC0F43B83E330C_bigui256, 0x0403BDFA41BAD631ADE30CFE0EF41ABE17E3F4F02BE4F4394D680BD287D4152E_bigui256}, - {0x0C0411B3AC12207D214F1749F3EB08746DEF500AFD2288417A03CB8C64ADCFDC_bigui256, 0x05A41050D3CC198441E920E2B1D07E9B50E082B65911F4305533BE021269AC45_bigui256}, - {0x136245F44B95D1AC824C6C7F385F8260F6D5C4970FE7AE3C170A37AE6622EB28_bigui256, 0x197FC03FCD4758E4B7D3B28CAF5A94911DB2993EFC37F29DAF39853F58AFC559_bigui256}, - {0x3C542327CCAAFA02BCE394AD125622601ADB4DDF55FF9608F31E352B57BAA272_bigui256, 0x201A3AF528EDABBA05CC0B972DA2EDC9C645596ED0C89306516C93C3724C17E1_bigui256}, - {0x0CBA8DE360D3EF1E92303DAEC903351A356881500BF66686F7990B0BFC9CC4D9_bigui256, 0x33DADFB27017F21BAC0F56BD9AD5A7BE0A5A19A714C4DC982FB480D5186EBBD2_bigui256}, - {0x3BD1FDD3FA99286EC812DBE11FD2B988AE6132BDF17A85C80ED2FD3751A6841E_bigui256, 0x105AFCE44F11C190275BB98AEBFB482BCC0021812EAEA404961584C07660FE1F_bigui256}, - {0x07CFF56D62EEBE6F42B55715F8982558E9F252ACBD39D30362D103EF3C98223E_bigui256, 0x084950454C739DF8CC80BCF70D8B95A0ADF5843244DD1CE5D6A083E993F25E18_bigui256}, - {0x1FBB25E4665F8BAB853FA6F5D416757573D546EF597E5F0479293CF2C2A94A6A_bigui256, 0x197C835ECE76501982D3FC07CF8668B416738EABA5A2B7D47B670A9EF6F1F9CC_bigui256}, - {0x0F9348EE41AD355E13B8EA3E11E9C3310A9BE6202C1A5AD59F644F959A51C2C7_bigui256, 0x0A951D45F026168B6BBE24F6DC2C06E1E835877590215529CCA99ECCB4B22782_bigui256}, - {0x146E17ACFCBFCAEA52213C07111BE2749CEF66F8659DC5C06DD0B03231A92BC3_bigui256, 0x3C43FA8A983391EDFBE6756FE64AA67919BBB049323BF191962A0825B909D86D_bigui256}, - {0x3A1ED0BBD35E9AFBAA00826D113E54F9823AE6344728F4A42BBC9EFFD7074832_bigui256, 0x3C20D27B56210D0FE45A7AC692FE929E0768305A1790DA1E8CB5BBAE24B906BE_bigui256}, - {0x171063605C748AFDF525BE0BBE745017A1105871B955BFD210F56E7AA76852E6_bigui256, 0x07687195D7A46F80CE26DADA430C7824F537641F6C654033A418358383427EB6_bigui256}, - {0x363E263819EEB4997CD47FA7FBC35B47FF78D551BD6ABAB919C8996A63A188BC_bigui256, 0x2334D5A3A1685AA651A300835BE4D863AF5512DAE6A7971465937627C9DDD35A_bigui256}, - {0x19C69BC40754819BE0BE01E22A097FB3911E061F8B1818A55B0FF2BA6952A2B5_bigui256, 0x3B6BCF2566E3A1C894C6AEB801B740F767A51B5F7E931002F5AE385A601129C0_bigui256}, - {0x3471FB5C070BD548AD32FEF8CB1F3F9F0E22CD7380FC7E9739D80304EFE69331_bigui256, 0x3B1B5D6A11C58B24B1E6E69628C50C8894FEDCF4EA42190BB1188803D45F9D44_bigui256}, - {0x177D76562D402928EA6EE3838C20AD6426841D2167307EEC3058C85481DBFFAB_bigui256, 0x3E38C317E2E2B5035DC2E80653768DFC5CA8088DD8C7F2EA04861CF3CDFB6E62_bigui256}, - {0x28BCEA14F64CFD5162DE1066DD22B68A20D49A1BC6FC16E71449573E1B9DC8B0_bigui256, 0x21884B615876855022D0B96B1FDE642B96A11D08D90A23BC96A78BE5D1386AF9_bigui256}, - {0x01EBE18E65A82CD77E7F442D534D2DA483BB6723E0B5D4B874A67E318532B0E1_bigui256, 0x14E7278F16C6153C09706C2CC1D608FA47253B5F2AE0900574FEAFBE1378E26D_bigui256}, - {0x366A1904B0AF71A6AFD2AA761C79B98985F39F6097CA440F5CE65563FE0B1E06_bigui256, 0x2A00227D98A2C2E75EB8FA537141585C13181744CA41680F12B9703B5187AADD_bigui256}, - {0x21DF93F25B9A4383F9004C8252C2D0AE2BAE44E7A6D2611D737D85FDF0F5FEAB_bigui256, 0x05D8D88A4A1A9F22FD14BF7D5EC1C10ABE794B84C3871028A3DF69AF48F19193_bigui256}, - {0x3A25707AA4604A4E0DB2E250BF60008BC5E3F33C77B8DF183F7AEE9294504B91_bigui256, 0x2870F2ED277AA0CFBD81A4EAF3E8737589B15ECB81B0FA063656D5C445795646_bigui256}, - {0x2653831E973B7D7C77C45F31C2A7209B2F6C353C731EB9128B692E5447EF42F2_bigui256, 0x3C9017F46FD225938BD8F7DEE085C42C069905C4F9AD7612EFB2997C95E5238E_bigui256}, - {0x08A413C57382ACF055DB927E2ED34CCB8259C7290FF8400EACFD6BF16308BC6F_bigui256, 0x398990AF4D3FEC325BE1E6A3D0A8AB183D494112B9B0FD8A7AA92E2FD7741794_bigui256}, - {0x02E242BDEA7226C5ADAFCC278015F469301BF4C9A4F8687FF9CDE09EF3D8BC38_bigui256, 0x279D5FA5CD209F89675257B185659B89F548EBEE2865A0DAE1D12929DDD36DA8_bigui256}, - {0x3C58D4342E718537E4231F3502A39F3724A03C07E5B3D68AC291E645BD4EA9C3_bigui256, 0x314E911944450CE2050DD050EA72550D64F0A7FD9F1C47CD31EB1E4D19DAA8F2_bigui256}, - {0x3DCE5FCF09DE55C8BC95BBDB2EF08BCD558361AE86455746DCBA6FD142513627_bigui256, 0x1D461F17B4A16512A3908E117011D151E8A15354AEEF357652A7B541C9FA220F_bigui256}, - {0x1371BAD9CCDDA06E18DCD9C23551DC89CCEB8D323395D8B3D83B3D0950B4A20D_bigui256, 0x3CE57B893A3BD3666EAD668622B901F6E25A1B3D359642251438CEC04BB38570_bigui256}, - {0x2102942CA851EF0ED89CE016C172D6EBFB72C7110A04D50B27EC230143914714_bigui256, 0x02E9DBF7C11BC61F61ABE7648195F851543040551808C81E6DFE424D2D701F40_bigui256}, - {0x33F626F2BDDF65045480FDF7CD921CA42254B8F4FBEEDC68D751D7DFF48AAF9A_bigui256, 0x3640D5780FE1EFC6391F777B6ED6B09B7EBFAAA9B2CC0B6AF6E3BF7B572EBB79_bigui256}, - {0x221F9081BAED33F9B610EBBA00D87F33A0E2F209C333E31BE17BE83B87AC838A_bigui256, 0x01098EEAE4534F394020A9F2E3A9408BF2B88151D23CB87D9A7D0F306D694658_bigui256}, - {0x018E6B0BEBB52C9F275C971F2FF0FCE922435A309DC9A15FD4CEC218D3700B59_bigui256, 0x3B61D8723EFE39A06E9ACC7D0A2C67DCAC479479934F5593E7E9542E64B3FDA6_bigui256}, + {0x121C4426885FD5A9701385AAF8D43E52E7660F1FC5AFC5F6468CC55312FC60F8_big_uint256, 0x21B439C01247EA3518C5DDEB324E4CB108AF617780DDF766D96D3FD8AB028B70_big_uint256}, + {0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_big_uint256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_big_uint256}, + {0x26985F27306586711466C5B2C28754AA62FE33516D75CEF1F7751F1A169713FD_big_uint256, 0x2E8930092FE6A18B331CE0E6E27B413AA18E76394F18A2835DA9FAE10AA3229D_big_uint256}, + {0x014B2DB7B753A74D454061FCB3AC537E1B4BA512F9ED258C996A59D9DACD13E5_big_uint256, 0x06F392D371494FC39174C4B70C692B96F3B7C42DA288F6B7AABF463334A952D0_big_uint256}, + {0x12CA0E2DBF286021CB76B7C12B6C9AD7FDF1D05F722F6EF14BD43E53E7B92120_big_uint256, 0x216A80B79D3995D1F39CE19855C475052D1148ACBDD379FE98961BFBD0A3E428_big_uint256}, + {0x1D257C1F4EC9872C9E06549BC910F7B7196F2E7CB120AEC3FDCEB049C7A0C9A5_big_uint256, 0x191CBEC20ED5EA342B6B395E92996215F7D93C675DA56A13D548EFB58524D336_big_uint256}, + {0x06236026ED7DC19C44540FBAF0C1C3498F82880A34422547FFF519FFF744BB48_big_uint256, 0x3A02C5410DABDE160BD09232A14F00B1EF6CD4D6285C90A8D41FA00BFF922F0A_big_uint256}, + {0x079333FDE60D3F670068B5A1D486EDDD87DDF91D1E1FC000F387991B4ED848B4_big_uint256, 0x3F7FC1A39FD74BDEDC129195080D298CFC2C2CF714BAD9F9334F0DAFB035C200_big_uint256}, + {0x069B398C2968553B7987FF840CF0B71359D10F249F08C40898550A63F196D856_big_uint256, 0x1B68BB879D6EC4EFAA2207E212B59BAD0D8E5E2493F99BE3F2F24764046CD277_big_uint256}, + {0x2CBD65973AE0BE0B9E652CEC35EFE509E1FA8DD8349DC1E644DB494DC2B4FD75_big_uint256, 0x1E27B8178E720407694F4EA1413B0CB87AF4058CB308BBD68FF42D5078DE243E_big_uint256}, + {0x0F29A22EF6949DE85427F72CCD04E3F8F56837BB56DA17D8FA5DE9025E6B9ED5_big_uint256, 0x26A2CD91BD2771E20DECAACDC6CA96E7759668F3D0B7E8810866D27737627A59_big_uint256}, + {0x300EE47C831AB28067BFE9364A819C894FA02155C5FC3E94E83A0EAD3110E9E5_big_uint256, 0x2D4FD253E12958FD548AC51E62F3158EB3EE8CB10F148F0A44D2C6E562D632CA_big_uint256}, + {0x2A9EA5BCE9D10ED951E11E4DE64DED939D1FC6B5DE07DFF33D49861B7DE2EE71_big_uint256, 0x0708F926C80F2A68C3F59C8C25D26F29FF90842A7C1BEDE0B1801D7DF258077B_big_uint256}, + {0x2DEA83FC8EA7A9727A5F2184EDCBF6A17083C10DACE4F45DADB330CE1624DC8B_big_uint256, 0x02DE1252440BF67F0B7A40DE4B7D9157993CE1D0DC47F8D4B3BCF126FBE00E2B_big_uint256}, + {0x341DE1D9B175235F492C6DAD8580443D11B12DF39EE95D497935BFF99D4E775F_big_uint256, 0x01177651EA542F5402CA5B075C5A2082F5F4EE1D3B054FC97CF7D30758D89841_big_uint256}, + {0x37D2BB9884B41B3125444D81C59E8EDA167284FB5D637C9D54B21753830F14A0_big_uint256, 0x0D5708EB79051B4704EDB309CDFCA38030CD8B656A5C9051B5C1AFA6B1C30D46_big_uint256}, + {0x026A67515EF102D65C7694144B457240C4E3270A0240640A5EAF9B3E7489C54E_big_uint256, 0x1B78FD66A3E4A168D0CEC1846F03B1624342491857F9204743A44DE2E90A42E2_big_uint256}, + {0x2E2489CBFD8534059574AACD43C137788C54D86B1292CF4B17850EE95F913198_big_uint256, 0x10D13EAD8E28E1493325B7DBB89025DA06A8867EE60BCADD1D794A847D871A46_big_uint256}, + {0x3FB39F7B1DBD63694D40FC6C105FBD8242908DB2CF82B5F0FACE46A7792CC0A0_big_uint256, 0x01DF2D8291BAA5ECFF544683F16F36D8C83078DFD24B5C8C93DFEDA524704750_big_uint256}, + {0x39DA705C7CD47D34F9B2E2A7F57200F656A229398E7A0F89A5534D72C8BAA2C7_big_uint256, 0x1C5E177C851121F1A90AC844245B7D7D5512C822ABF4AF37213AF5B2EBCED4F0_big_uint256}, + {0x0A35295A58443F71E676CE42BA6FC44D4EF1DEB8E9E9C7D537CE4CD453576521_big_uint256, 0x3600DA2E2E5D3674E13613871FA8B9A5D96F905DD69114FBF3F69F61D0C57263_big_uint256}, + {0x2879FDC5D79EC2FD73D8776DD5ED76F8BC6DA10D4501AA892D11CC02152E33C5_big_uint256, 0x06FC48C9C7CF8B4CD94812DC8EE2ABBC4A0775D52E01097E6877F2A1A7547786_big_uint256}, + {0x0A3499DB18871CBF14818C2D5152742B4457FDF30DF5936172EDE2FE9A537701_big_uint256, 0x0548D846722829A12B1C9C39411DE0AC8C5C2F97C1953432DF60251E0DAE91B2_big_uint256}, + {0x25A8F59C1D7C23576952D07640231EEBDE39D9F89BB85110966096D36043DB0A_big_uint256, 0x0F6EB10365B419FA5179D3278BC7F834D27AD930AE11674FFC5F00549556DBB8_big_uint256}, + {0x1F4A67F9C220741648FBACFAC1934B09C3E903EFBE12DECFA6820656D3778DAA_big_uint256, 0x3685316B926A7C4351AB8AB802174B11BF8EBD5999989F0343555D9575CFA3CC_big_uint256}, + {0x1ECC9BE71F9ACF900FA6CDCC452550C7991BFC25258CEFACBCF51D541DF2D819_big_uint256, 0x0FBDFA76ACB83F9C4DF9337FEC47F38672D31E9EB5406034812E5C21C6494BDD_big_uint256}, + {0x2E79A282F86F8FC1B2DB59443975544DD7C92883322C82C2C283DC51A0E34825_big_uint256, 0x0118E6A449918C38AA0D290373F1D605DC21B6B5F228C41BFF596C635AF7761E_big_uint256}, + {0x3FCD47170790B2A3E85CEAEE44940DACA0E11DD132960092FB2E1613B364849B_big_uint256, 0x2859254A7ABFB288138B64009A85178250FD120351634CCD41D9ECE993D9F6A3_big_uint256}, + {0x1A29CFD3AF8F7C0F19861362DAC9FD8034F82C2C1750A425B446461B5BC63E4B_big_uint256, 0x15E12C10AE7FFF431F6FAAB8EE607386AA85EB7AFB806E264B8952D51404E17D_big_uint256}, + {0x2EECD04E0E37FAF9C51C61249470F118C5C5EA8E6DDB4B645F99C47D3BA07F68_big_uint256, 0x33E6418DD36692F7EE870BB3577115F87D62E9D257374950A17A3B0154B8B35D_big_uint256}, + {0x3BADB4DCEADF739775588552805A959B7D216BFD86847BA54D662B777B2B1FCF_big_uint256, 0x0CB8DEE5BE3197C76685F25D4596C766A2DA3542BD89FD9633D7590EA2B68FD0_big_uint256}, + {0x3FC5DE9E2422625B53D18E55C069CBCEC9C2D2C4F8DAB5B1BC11D3702F3F5E22_big_uint256, 0x0EE46C6ABF41C33D66B60AA4E508CE43DFE02535EF19E158AB66B49D12BD171F_big_uint256}, + {0x0172960667016B5FFF7A489C3BC65F38A63FB833A16AC7AF4882A193A1B9E0DE_big_uint256, 0x241362235399643C11C8DA0E103B5F17975EB78BF493F02DC9749905CE1E7BA7_big_uint256}, + {0x060A1110F23BFB345A81751266E1394C0CF7939CB382AD2387FC0F43B83E330C_big_uint256, 0x0403BDFA41BAD631ADE30CFE0EF41ABE17E3F4F02BE4F4394D680BD287D4152E_big_uint256}, + {0x0C0411B3AC12207D214F1749F3EB08746DEF500AFD2288417A03CB8C64ADCFDC_big_uint256, 0x05A41050D3CC198441E920E2B1D07E9B50E082B65911F4305533BE021269AC45_big_uint256}, + {0x136245F44B95D1AC824C6C7F385F8260F6D5C4970FE7AE3C170A37AE6622EB28_big_uint256, 0x197FC03FCD4758E4B7D3B28CAF5A94911DB2993EFC37F29DAF39853F58AFC559_big_uint256}, + {0x3C542327CCAAFA02BCE394AD125622601ADB4DDF55FF9608F31E352B57BAA272_big_uint256, 0x201A3AF528EDABBA05CC0B972DA2EDC9C645596ED0C89306516C93C3724C17E1_big_uint256}, + {0x0CBA8DE360D3EF1E92303DAEC903351A356881500BF66686F7990B0BFC9CC4D9_big_uint256, 0x33DADFB27017F21BAC0F56BD9AD5A7BE0A5A19A714C4DC982FB480D5186EBBD2_big_uint256}, + {0x3BD1FDD3FA99286EC812DBE11FD2B988AE6132BDF17A85C80ED2FD3751A6841E_big_uint256, 0x105AFCE44F11C190275BB98AEBFB482BCC0021812EAEA404961584C07660FE1F_big_uint256}, + {0x07CFF56D62EEBE6F42B55715F8982558E9F252ACBD39D30362D103EF3C98223E_big_uint256, 0x084950454C739DF8CC80BCF70D8B95A0ADF5843244DD1CE5D6A083E993F25E18_big_uint256}, + {0x1FBB25E4665F8BAB853FA6F5D416757573D546EF597E5F0479293CF2C2A94A6A_big_uint256, 0x197C835ECE76501982D3FC07CF8668B416738EABA5A2B7D47B670A9EF6F1F9CC_big_uint256}, + {0x0F9348EE41AD355E13B8EA3E11E9C3310A9BE6202C1A5AD59F644F959A51C2C7_big_uint256, 0x0A951D45F026168B6BBE24F6DC2C06E1E835877590215529CCA99ECCB4B22782_big_uint256}, + {0x146E17ACFCBFCAEA52213C07111BE2749CEF66F8659DC5C06DD0B03231A92BC3_big_uint256, 0x3C43FA8A983391EDFBE6756FE64AA67919BBB049323BF191962A0825B909D86D_big_uint256}, + {0x3A1ED0BBD35E9AFBAA00826D113E54F9823AE6344728F4A42BBC9EFFD7074832_big_uint256, 0x3C20D27B56210D0FE45A7AC692FE929E0768305A1790DA1E8CB5BBAE24B906BE_big_uint256}, + {0x171063605C748AFDF525BE0BBE745017A1105871B955BFD210F56E7AA76852E6_big_uint256, 0x07687195D7A46F80CE26DADA430C7824F537641F6C654033A418358383427EB6_big_uint256}, + {0x363E263819EEB4997CD47FA7FBC35B47FF78D551BD6ABAB919C8996A63A188BC_big_uint256, 0x2334D5A3A1685AA651A300835BE4D863AF5512DAE6A7971465937627C9DDD35A_big_uint256}, + {0x19C69BC40754819BE0BE01E22A097FB3911E061F8B1818A55B0FF2BA6952A2B5_big_uint256, 0x3B6BCF2566E3A1C894C6AEB801B740F767A51B5F7E931002F5AE385A601129C0_big_uint256}, + {0x3471FB5C070BD548AD32FEF8CB1F3F9F0E22CD7380FC7E9739D80304EFE69331_big_uint256, 0x3B1B5D6A11C58B24B1E6E69628C50C8894FEDCF4EA42190BB1188803D45F9D44_big_uint256}, + {0x177D76562D402928EA6EE3838C20AD6426841D2167307EEC3058C85481DBFFAB_big_uint256, 0x3E38C317E2E2B5035DC2E80653768DFC5CA8088DD8C7F2EA04861CF3CDFB6E62_big_uint256}, + {0x28BCEA14F64CFD5162DE1066DD22B68A20D49A1BC6FC16E71449573E1B9DC8B0_big_uint256, 0x21884B615876855022D0B96B1FDE642B96A11D08D90A23BC96A78BE5D1386AF9_big_uint256}, + {0x01EBE18E65A82CD77E7F442D534D2DA483BB6723E0B5D4B874A67E318532B0E1_big_uint256, 0x14E7278F16C6153C09706C2CC1D608FA47253B5F2AE0900574FEAFBE1378E26D_big_uint256}, + {0x366A1904B0AF71A6AFD2AA761C79B98985F39F6097CA440F5CE65563FE0B1E06_big_uint256, 0x2A00227D98A2C2E75EB8FA537141585C13181744CA41680F12B9703B5187AADD_big_uint256}, + {0x21DF93F25B9A4383F9004C8252C2D0AE2BAE44E7A6D2611D737D85FDF0F5FEAB_big_uint256, 0x05D8D88A4A1A9F22FD14BF7D5EC1C10ABE794B84C3871028A3DF69AF48F19193_big_uint256}, + {0x3A25707AA4604A4E0DB2E250BF60008BC5E3F33C77B8DF183F7AEE9294504B91_big_uint256, 0x2870F2ED277AA0CFBD81A4EAF3E8737589B15ECB81B0FA063656D5C445795646_big_uint256}, + {0x2653831E973B7D7C77C45F31C2A7209B2F6C353C731EB9128B692E5447EF42F2_big_uint256, 0x3C9017F46FD225938BD8F7DEE085C42C069905C4F9AD7612EFB2997C95E5238E_big_uint256}, + {0x08A413C57382ACF055DB927E2ED34CCB8259C7290FF8400EACFD6BF16308BC6F_big_uint256, 0x398990AF4D3FEC325BE1E6A3D0A8AB183D494112B9B0FD8A7AA92E2FD7741794_big_uint256}, + {0x02E242BDEA7226C5ADAFCC278015F469301BF4C9A4F8687FF9CDE09EF3D8BC38_big_uint256, 0x279D5FA5CD209F89675257B185659B89F548EBEE2865A0DAE1D12929DDD36DA8_big_uint256}, + {0x3C58D4342E718537E4231F3502A39F3724A03C07E5B3D68AC291E645BD4EA9C3_big_uint256, 0x314E911944450CE2050DD050EA72550D64F0A7FD9F1C47CD31EB1E4D19DAA8F2_big_uint256}, + {0x3DCE5FCF09DE55C8BC95BBDB2EF08BCD558361AE86455746DCBA6FD142513627_big_uint256, 0x1D461F17B4A16512A3908E117011D151E8A15354AEEF357652A7B541C9FA220F_big_uint256}, + {0x1371BAD9CCDDA06E18DCD9C23551DC89CCEB8D323395D8B3D83B3D0950B4A20D_big_uint256, 0x3CE57B893A3BD3666EAD668622B901F6E25A1B3D359642251438CEC04BB38570_big_uint256}, + {0x2102942CA851EF0ED89CE016C172D6EBFB72C7110A04D50B27EC230143914714_big_uint256, 0x02E9DBF7C11BC61F61ABE7648195F851543040551808C81E6DFE424D2D701F40_big_uint256}, + {0x33F626F2BDDF65045480FDF7CD921CA42254B8F4FBEEDC68D751D7DFF48AAF9A_big_uint256, 0x3640D5780FE1EFC6391F777B6ED6B09B7EBFAAA9B2CC0B6AF6E3BF7B572EBB79_big_uint256}, + {0x221F9081BAED33F9B610EBBA00D87F33A0E2F209C333E31BE17BE83B87AC838A_big_uint256, 0x01098EEAE4534F394020A9F2E3A9408BF2B88151D23CB87D9A7D0F306D694658_big_uint256}, + {0x018E6B0BEBB52C9F275C971F2FF0FCE922435A309DC9A15FD4CEC218D3700B59_big_uint256, 0x3B61D8723EFE39A06E9ACC7D0A2C67DCAC479479934F5593E7E9542E64B3FDA6_big_uint256}, }); std::unordered_map > lb; lb[64] = { - {0x3C89BC840A9BFA941E3795587975566DE58A27D3D437C50C38F2617E22A39C83_bigui256, 0x037A0EEEB2D1297911993DC43C13A6784351957A116C1A66D0748242690CF999_bigui256}, - {0x311B73AC73D24F10E03F64D457B8FCC469CA69A718031DE58D754745447381E3_bigui256, 0x3D5F15A562AFE60D10EEDCC494E91029156D901A5366814B5019FAD10767E308_bigui256}, - {0x17FAAA160C38DE2C4F890E8E9F9D0CC55CF655400AD1F6D9BE86718DEA48A634_bigui256, 0x2FF9EA226552FB4B51796F638C35D335A41F80B1AD2D7D665BD92907C5CBCEDD_bigui256}, - {0x24FEBDFCBDC67B69F1899A665D6D1D2C210B63452B3F85D8D1B139D766DEDD8B_bigui256, 0x09CFE9337A2A9095F46A0B43D2E6C28A055BBDCDB1314F71131022880D3C16F0_bigui256}, - {0x0136DAD72EBCE55FA8F3763293D74D6360CACFE6C1E2E49B1932B45F0C45FB52_bigui256, 0x2F149D6CF6936BB6F04E15CC317B7D847AD3C6364743077F8DD813378E4D8958_bigui256}, - {0x0804A76DA2C0326D97EAEBC790CF96FFAD0511F8AAD2322448B2E61D3DB1832C_bigui256, 0x0C7ABD82BA04EDE7FFFF200360F13E79A64F51DE5B2B48D88829F9BE7FDC0B7D_bigui256}, - {0x38A6EFBB2BB65133E17DBE78A32DD92D2CC7203F9F170F5557EB7B8D8D4A0286_bigui256, 0x145532FAA79ED6F2ABA0C8BA0A0FBCCC34A4960E44B6B522BC1D8988DAD201E6_bigui256}, - {0x04D4CFA5D074EAD706F31AF4988023B9B785F1140A19D01D8A69817ECFBC0771_bigui256, 0x0E74A9CE01A11DF980FA7BDD75981EE0583E31796AE55DFD222609FAA8C02731_bigui256}, - {0x1F48A4346711E5FAA4487B424AA17AE53E6D4104414F9ED47E47FE663E3017C0_bigui256, 0x0F934EA50068A5F16B15BCF2F95FA7B708640149AACA3AA9B3557AE7C111E4EE_bigui256}, - {0x1ACDF9E08E6D7FDB7F359034A7055D54B5FDB5F04546B9886FA43A56CE224F13_bigui256, 0x0511C6980AFE051256A6F0CEAF1D391F4634C307AC432CAD6694899E88700A6F_bigui256}, - {0x263AAA4441BB60272EEF0774918FB22DA9BB2D40893ED3C95397266DD2646F46_bigui256, 0x14AFC51B9C097EBC59187FA9B5C5E0E3D370A33D4D95D8B00D0AD1D4EF16C644_bigui256}, - {0x00FB91CCBD9B18645BDC0B54096458F20A286CFDC7271E79C1102E3AF6D20A4D_bigui256, 0x02EB26A22949C21D5015E9CD09A4723EB3EC0D5F03D86D80648F96D2AC8AE68F_bigui256}, - {0x2DF6658AB48DA915166CB36E301D39FCDC4C22FF3BC729858F4D832E2437713F_bigui256, 0x371210957FE84FA3861700AD6565AF2B5255E1615E13C035595A884DB4D17F1D_bigui256}, - {0x222C42D9F0E4B95745B4942D329E9F175E98045286D7043FA927087B977D471D_bigui256, 0x2918339EBEA41F2BA9AAF690CB4DBC23A6B73441A4394B9F4A4D6909F38ACA0C_bigui256}, - {0x3624A396CB168A1203C991119ECBBC6198722121298DC4B3ED0C5815BC5CF25A_bigui256, 0x3FD7696D730E57FFD17411388C1394F00B0ED51BED3949D6E8104DF6E7051034_bigui256}, - {0x15FDB7C4200AFE05277EE9BAEFA8A35DBD6B2064DFFD19BBADF0451C87737CB4_bigui256, 0x1679DF1E82C8D7B213CA50AE4FB4C01B451C35FB9773D1AFCA88F4036E7DE6B5_bigui256}, - {0x168C859A6F15D8FCF7F04CD64CCB765E40D5133230772A96D5794F345339056F_bigui256, 0x12DBDEDA81DC4F3BFF48DED7ED60871EBDCE3F645230430F854532FDC7669EF5_bigui256}, - {0x29BCFC91A2A6AD3A0967E2B413A426C8B55105479AB3D7E5A6E1F6E14112042D_bigui256, 0x0B838A8D03F7A7E4CAF0FAA27CF26298380D8877C22AB47D226EC6C94ED1D41E_bigui256}, - {0x107059654B51B4DE00EA74A04AEB2F1D262BB0ADBC1F74886098152FC1D42C21_bigui256, 0x2007CF92469A2E935A5B6849146B974AE49F5A226FD0FF348C9BBA3E49D03F77_bigui256}, - {0x320E00A7C54FDD11AFDC1CFFCE893A578B89EC7929A369735387503CBD7BAD56_bigui256, 0x18516D9F2EEF18B9CD474EAB18E58F08C8FF7A647514D212E617343CFA8E4BFD_bigui256}, - {0x3352BB1A90CF8A7250183BA1AE95644B390C8429F2D3CB0A1F9A0B8FA69C12D8_bigui256, 0x0906450E7D4AC8394CC2723FDA6A84D9BD2DD83F65F19D93D85C3B14970AFAF1_bigui256}, - {0x2080B1B270D63DF226EE44C5E03036656B437F88E972061E3D26A190A3427FCB_bigui256, 0x34D9BA01F40B2E521EA0A7493ED7B7AD7F419634BDE91809BB747981F4BA4691_bigui256}, - {0x1B72B4BD6713F958EAEB8F91A1DB37D245B0B31E43C98282DE58DA424D0E7CDC_bigui256, 0x3B36009A35DED46973B3E2BF4BB64EE3406916D927F8A00E452FAE381D3C2AD6_bigui256}, - {0x3AD4D7F604FC1261F3AA227E61ABFD3DB766B9CADF07660471289264682633BD_bigui256, 0x2C87A76A484DF472917476A5ABCC8FE7324123F4365B176391A5F65A3D4EE47F_bigui256}, - {0x3E0A9D8A6BD0DF3C64D8964829CA93FB70B400344BB0AB6E117874F4DDE6DF6A_bigui256, 0x311DED62A49E2E452C9B96350E45B2C52AA2951F09321652B255703AFD213FE6_bigui256}, - {0x3E4C3344680BDE8FCD5E7934067D0642C178BAD402F2CD554DC15C7E29D9982B_bigui256, 0x2A92BBC7B9DC4A592BDEBC06510476FDAB5B5AC2BF28984A27C4ADA37CE39D97_bigui256}, - {0x0F429110528C4DCBA1E59682B9467A30C6F366F0BE8FC2FC597DE75A4447FDAC_bigui256, 0x0813847967DB68D88DA632E74A3E1D2C7C09E775719F48D802D6A2546B122DFE_bigui256}, - {0x3AB2F27A8040747A3D0A74B9F45AF533DAD6D79103D5B7EF02D4A0EB09C9B91B_bigui256, 0x11EE126988D11C7232E60D920B51B7CC2391AD5324AF32AEC1EAC8C485FABEBC_bigui256}, - {0x20CBDB07812379E2074B969E43A22699FA6B2803FC00087BBDA531E5C6D14B39_bigui256, 0x15A465EDDC45B8EB428E9B23B14D3084F99096AF3E5988E1098A5957F9937BB4_bigui256}, - {0x23CF677347411249DB6BC8853AB2B562229E7B773C4E18AFEFB57A5123B5EDC5_bigui256, 0x03A2CF573B4EB51DEB58A057A611B8A641FA3C4B78B039BC1D25522F1F4E152B_bigui256}, - {0x0A844BAB65A39230B31A1F8339D275C932BDC044F3E45C20118F2CB0A3585F49_bigui256, 0x154E9EA6E40A8F5243BACC1D5613300F2D709AE0E8958FD3CC47143BD5C532B5_bigui256}, - {0x0D072415CB893496134E551EE4C4582262FB1B8E37AFD1BF6C7CD57E33115B7F_bigui256, 0x3804E5B57477FB43239378D6C220EF0930C6732CCC242ABC6A9368C0664AAD7A_bigui256}, - {0x1E7B4D1881A5BB64CAA8FB1E2815A8CDC8AFEF00649BDECE17596554C636AA9C_bigui256, 0x177CC53E9B41D37E5058B9AE33D82413F32F535DA37444B212CB4B3BC221F9AF_bigui256}, - {0x3F43332116BD7C42986271B0C98066D0A5F5A2B5FC9DB32F3F8E272BF7EB9FF2_bigui256, 0x0C827C6BDB35BCE4F8DD289056AA2F1B95F9A7BFBA3116B20CFE98E894682092_bigui256}, - {0x28CA8B3695515D80A55CB135B42DC68B11204EDEC6E1E57B90763D8B764D4E4A_bigui256, 0x2366E50F7EBBE57A68E0320B0CF43615A1A038F56885FAF4D4F08390518A31F1_bigui256}, - {0x28BA918C4AFDAA3E87F07B1DBA299F849C323C66463B81E7D29381532DA03DCC_bigui256, 0x21C5E945F8877E52CDAF2B7D37AAD1F895F1F23C853FB5F36B7E822611284F82_bigui256}, - {0x3FCFA209B59D36F244DFDBB45C667CD518B58D21DD042B76785F4FBA80F4B7EA_bigui256, 0x1DAA63C559BF92982E773F16524722CFEF8384A1CB7DB8FD500847EAFA2386E0_bigui256}, - {0x1C52D056521BC5AAB401F489B5A099BC4E2FF9112E8E89F79ABFA83F6141B1E7_bigui256, 0x3975139F4FF73871BA2D1B228135C1ED6F807FD4729BFD25773DCD0CA0567AEC_bigui256}, - {0x39CA6B9121820798E4F8C9E56FAA19F6C6186E91FB58B9219A57CF946EB4404C_bigui256, 0x00F36DE792588AE497FC844588103E3EF3AEC5378443D5CF4D8A31924B15F409_bigui256}, - {0x366276BAC098B06CCB3BF10CDD74AE208A6F72DD295A439481F3FF0F19EA4472_bigui256, 0x05682488CC82C1C4B963B0F4B696574B216D10E3DEF1970E7DD6EF1D4D9DC95E_bigui256}, - {0x3E6E698789A213627EEF178DCCE852BBDCDE95F2FEF6F99ADB54BA91A4DBD633_bigui256, 0x3D1BCC88A6C0F515C42AD2FF96B4485580D8900B53CBD1E9D9B6C874012DA1CA_bigui256}, - {0x06FDA94AC505426D3D5C8B82B96A1512E44F4A84849178753BE8346EB068E4C9_bigui256, 0x1EB1DB4AA54111F8105904ACE22576022989821736A3273ADAA71E561717B410_bigui256}, - {0x340DCBE21EA8A8F1D9DF1F07E51B3CB97D8284F28ACCE8497E445C259F213BB4_bigui256, 0x2DA0ABCF3573491D505CC5F619523BD2453FD67287A6109EAEDF00E5A2906740_bigui256}, - {0x1AF462A6713530F9C71A555363B5199F839B8B39154663C67264F3B5DC6F9691_bigui256, 0x209E3B30E10ABE2F47D0D28E56BC22E4F7FD746D9BFEF7CD5093880D4A32BDD8_bigui256}, - {0x0A5A714A06E8CEF3695DC12B7BB2CE62682EF127A922E1941595EEA4521DAA9B_bigui256, 0x083549F026A2C593AD6A21B5B18546AD77B8999C8EC48FBB90F4A7A5CBF4BBE6_bigui256}, - {0x319D8AAF8C24EB1067A600FEDD5E89DF9141395BF1C51E0145ACD251A375C616_bigui256, 0x1231B2BCE3B7E245A93682F5C776B387F0AAB9637E984C8C9023E27F60DCBD85_bigui256}, - {0x2839EA83958EB5C4018A2618FA89A78C99E905A49A119A4DECD2FC80319C3E5F_bigui256, 0x1D74130ED38B699544BA43687070012EE571009FEB480B15346104AE1A5E910A_bigui256}, - {0x24914C51064F1BEEF7A723A34A26709AA02BC4CE8D44FB4ED3F31356838A095F_bigui256, 0x152137EC9B4777B8C6F913E3268E2261B44C41B8DA89A7BCF1BCB24711CA45F1_bigui256}, - {0x2E1B58CC9A736C19547D35B15B88E4A5C6852B93B9FA079A564B25F63608B97C_bigui256, 0x267DBE881E33F759E3CA043DC58991CDE682DDF3D52A2C9C6C743369CF34D52C_bigui256}, - {0x1997469E9AFCE26367CBFAEAB96C25BC79B36EFDA34885B2E9EEBD16EF5F7E1D_bigui256, 0x1538A3F7C25841AC797CF7E25EEEFCA7F41C071CC306728F174A4ED211FE6ACD_bigui256}, - {0x32BE50F7D0C1E119F925FFECB9D6EDF01F2051628EA6B8D473A1E3813E39A6CD_bigui256, 0x2819810C3D069979C7BDD4DF764E7E5EB21CDC68C4C6D856D7FFC35EE5A35615_bigui256}, - {0x2C29D5A8980BDACE5708A7D42C4EE5900C14638D63B5E4A56D2A525384ECEB0D_bigui256, 0x14097A6815520C3EC8B0D61CF6E1ACBFC37B3FBB9CC588F04DFD4F8F3DB0C8B3_bigui256}, - {0x02DE03DB892A85BD073B31F33E4F7DA209AF0F66A7185A23C537C453A152292F_bigui256, 0x3A31D9BB9A44A12E2685C23AB864490D0A7943187BDD31F87FE9E6E787448E0E_bigui256}, - {0x37E39B187FF0747D2CCAD7092AA9CB24A6AE2DB7CF17BFD23D3DA657FCCA695D_bigui256, 0x2CE80F107CCB457C9E78CE10B4BA5BE5623DA20C1ED45BB00E6780C6A767CC83_bigui256}, - {0x3B593FA9CB5848054B88DF7A09E84F97F999545DD30524BA158D1C77144A7D14_bigui256, 0x0F0A7E093F5DA7C75DFC238BC36125F02ED97BD79C425B1A77B740467D379509_bigui256}, - {0x056338F486ACBC5048CB96BE50676D31DBA01F962FBF177A9E9F3112671AD51D_bigui256, 0x0C8EC6604982DF2AF84709DCD16FD7EF89CCE63EED31868106E0FE53478F5EE3_bigui256}, - {0x123E53A4A256FD4711C68003B0F17D90708976723116BF1972B10643BACCFB06_bigui256, 0x23F176C9D80799DB9F7396E649517B942747AB57F79E2CCBCC9A46BD954BAACE_bigui256}, - {0x3237CF192BD09509F090E30147FDE7877BC2214DA7CD4524E6D46F4AA24422F8_bigui256, 0x0489D219C52A9912C4DDF4713F8E2B5D7D1470AFAF7DD1D31206C0549DDFCB3B_bigui256}, - {0x19029EB9DEC80B3A35F875F806C621E19938211623B0CA7325F092A091A8ED4A_bigui256, 0x38EC6FA4220CBFB39BA2ABB78861FD1B293D1147833BF7C19430E8CEE4DDB688_bigui256}, - {0x2B3C070B9B85E1723CEB55DE10A309F0E948F1A8507134DD7188024F8DE12BA9_bigui256, 0x3F2992F73FECA28A841A4F51662BF667B2B8CE49DEE75C7B51AEE082FB050FCF_bigui256}, - {0x227D4B9A0C21B7CDA0D85E91AFFD9D8E38B51CBD0BC877B92A7EC1B315B3B24D_bigui256, 0x39E7154095B659B654F69BE25AD02188536ADDD0F30C4235C22282847E809B8C_bigui256}, - {0x20C8053B87A050C01008750EFC18489AA56C138743769A4AD7553D29F2531AE7_bigui256, 0x2F46839877B7DB1EC2689916B93533D60F4F6E6C583A2CBB43879695E059B4FE_bigui256}, - {0x21533DF31582C49F0534D6B39711EF3FCE360E85354949F4E717F337F3EA3024_bigui256, 0x064F8D082581EBAE41A3BCB4BB388941EA3B679E2DF0E6D6F5F4D9E21A508E8A_bigui256}, - {0x318F8D6E431858DE00CAD3B9EDDFA82B9AA5332DDFE90DD511D13405BEBC45D5_bigui256, 0x1CD48075F42F46FA8E87CF3D326CE480DB2BBDFE144FBC75AD0A2409E6C91406_bigui256}, + {0x3C89BC840A9BFA941E3795587975566DE58A27D3D437C50C38F2617E22A39C83_big_uint256, 0x037A0EEEB2D1297911993DC43C13A6784351957A116C1A66D0748242690CF999_big_uint256}, + {0x311B73AC73D24F10E03F64D457B8FCC469CA69A718031DE58D754745447381E3_big_uint256, 0x3D5F15A562AFE60D10EEDCC494E91029156D901A5366814B5019FAD10767E308_big_uint256}, + {0x17FAAA160C38DE2C4F890E8E9F9D0CC55CF655400AD1F6D9BE86718DEA48A634_big_uint256, 0x2FF9EA226552FB4B51796F638C35D335A41F80B1AD2D7D665BD92907C5CBCEDD_big_uint256}, + {0x24FEBDFCBDC67B69F1899A665D6D1D2C210B63452B3F85D8D1B139D766DEDD8B_big_uint256, 0x09CFE9337A2A9095F46A0B43D2E6C28A055BBDCDB1314F71131022880D3C16F0_big_uint256}, + {0x0136DAD72EBCE55FA8F3763293D74D6360CACFE6C1E2E49B1932B45F0C45FB52_big_uint256, 0x2F149D6CF6936BB6F04E15CC317B7D847AD3C6364743077F8DD813378E4D8958_big_uint256}, + {0x0804A76DA2C0326D97EAEBC790CF96FFAD0511F8AAD2322448B2E61D3DB1832C_big_uint256, 0x0C7ABD82BA04EDE7FFFF200360F13E79A64F51DE5B2B48D88829F9BE7FDC0B7D_big_uint256}, + {0x38A6EFBB2BB65133E17DBE78A32DD92D2CC7203F9F170F5557EB7B8D8D4A0286_big_uint256, 0x145532FAA79ED6F2ABA0C8BA0A0FBCCC34A4960E44B6B522BC1D8988DAD201E6_big_uint256}, + {0x04D4CFA5D074EAD706F31AF4988023B9B785F1140A19D01D8A69817ECFBC0771_big_uint256, 0x0E74A9CE01A11DF980FA7BDD75981EE0583E31796AE55DFD222609FAA8C02731_big_uint256}, + {0x1F48A4346711E5FAA4487B424AA17AE53E6D4104414F9ED47E47FE663E3017C0_big_uint256, 0x0F934EA50068A5F16B15BCF2F95FA7B708640149AACA3AA9B3557AE7C111E4EE_big_uint256}, + {0x1ACDF9E08E6D7FDB7F359034A7055D54B5FDB5F04546B9886FA43A56CE224F13_big_uint256, 0x0511C6980AFE051256A6F0CEAF1D391F4634C307AC432CAD6694899E88700A6F_big_uint256}, + {0x263AAA4441BB60272EEF0774918FB22DA9BB2D40893ED3C95397266DD2646F46_big_uint256, 0x14AFC51B9C097EBC59187FA9B5C5E0E3D370A33D4D95D8B00D0AD1D4EF16C644_big_uint256}, + {0x00FB91CCBD9B18645BDC0B54096458F20A286CFDC7271E79C1102E3AF6D20A4D_big_uint256, 0x02EB26A22949C21D5015E9CD09A4723EB3EC0D5F03D86D80648F96D2AC8AE68F_big_uint256}, + {0x2DF6658AB48DA915166CB36E301D39FCDC4C22FF3BC729858F4D832E2437713F_big_uint256, 0x371210957FE84FA3861700AD6565AF2B5255E1615E13C035595A884DB4D17F1D_big_uint256}, + {0x222C42D9F0E4B95745B4942D329E9F175E98045286D7043FA927087B977D471D_big_uint256, 0x2918339EBEA41F2BA9AAF690CB4DBC23A6B73441A4394B9F4A4D6909F38ACA0C_big_uint256}, + {0x3624A396CB168A1203C991119ECBBC6198722121298DC4B3ED0C5815BC5CF25A_big_uint256, 0x3FD7696D730E57FFD17411388C1394F00B0ED51BED3949D6E8104DF6E7051034_big_uint256}, + {0x15FDB7C4200AFE05277EE9BAEFA8A35DBD6B2064DFFD19BBADF0451C87737CB4_big_uint256, 0x1679DF1E82C8D7B213CA50AE4FB4C01B451C35FB9773D1AFCA88F4036E7DE6B5_big_uint256}, + {0x168C859A6F15D8FCF7F04CD64CCB765E40D5133230772A96D5794F345339056F_big_uint256, 0x12DBDEDA81DC4F3BFF48DED7ED60871EBDCE3F645230430F854532FDC7669EF5_big_uint256}, + {0x29BCFC91A2A6AD3A0967E2B413A426C8B55105479AB3D7E5A6E1F6E14112042D_big_uint256, 0x0B838A8D03F7A7E4CAF0FAA27CF26298380D8877C22AB47D226EC6C94ED1D41E_big_uint256}, + {0x107059654B51B4DE00EA74A04AEB2F1D262BB0ADBC1F74886098152FC1D42C21_big_uint256, 0x2007CF92469A2E935A5B6849146B974AE49F5A226FD0FF348C9BBA3E49D03F77_big_uint256}, + {0x320E00A7C54FDD11AFDC1CFFCE893A578B89EC7929A369735387503CBD7BAD56_big_uint256, 0x18516D9F2EEF18B9CD474EAB18E58F08C8FF7A647514D212E617343CFA8E4BFD_big_uint256}, + {0x3352BB1A90CF8A7250183BA1AE95644B390C8429F2D3CB0A1F9A0B8FA69C12D8_big_uint256, 0x0906450E7D4AC8394CC2723FDA6A84D9BD2DD83F65F19D93D85C3B14970AFAF1_big_uint256}, + {0x2080B1B270D63DF226EE44C5E03036656B437F88E972061E3D26A190A3427FCB_big_uint256, 0x34D9BA01F40B2E521EA0A7493ED7B7AD7F419634BDE91809BB747981F4BA4691_big_uint256}, + {0x1B72B4BD6713F958EAEB8F91A1DB37D245B0B31E43C98282DE58DA424D0E7CDC_big_uint256, 0x3B36009A35DED46973B3E2BF4BB64EE3406916D927F8A00E452FAE381D3C2AD6_big_uint256}, + {0x3AD4D7F604FC1261F3AA227E61ABFD3DB766B9CADF07660471289264682633BD_big_uint256, 0x2C87A76A484DF472917476A5ABCC8FE7324123F4365B176391A5F65A3D4EE47F_big_uint256}, + {0x3E0A9D8A6BD0DF3C64D8964829CA93FB70B400344BB0AB6E117874F4DDE6DF6A_big_uint256, 0x311DED62A49E2E452C9B96350E45B2C52AA2951F09321652B255703AFD213FE6_big_uint256}, + {0x3E4C3344680BDE8FCD5E7934067D0642C178BAD402F2CD554DC15C7E29D9982B_big_uint256, 0x2A92BBC7B9DC4A592BDEBC06510476FDAB5B5AC2BF28984A27C4ADA37CE39D97_big_uint256}, + {0x0F429110528C4DCBA1E59682B9467A30C6F366F0BE8FC2FC597DE75A4447FDAC_big_uint256, 0x0813847967DB68D88DA632E74A3E1D2C7C09E775719F48D802D6A2546B122DFE_big_uint256}, + {0x3AB2F27A8040747A3D0A74B9F45AF533DAD6D79103D5B7EF02D4A0EB09C9B91B_big_uint256, 0x11EE126988D11C7232E60D920B51B7CC2391AD5324AF32AEC1EAC8C485FABEBC_big_uint256}, + {0x20CBDB07812379E2074B969E43A22699FA6B2803FC00087BBDA531E5C6D14B39_big_uint256, 0x15A465EDDC45B8EB428E9B23B14D3084F99096AF3E5988E1098A5957F9937BB4_big_uint256}, + {0x23CF677347411249DB6BC8853AB2B562229E7B773C4E18AFEFB57A5123B5EDC5_big_uint256, 0x03A2CF573B4EB51DEB58A057A611B8A641FA3C4B78B039BC1D25522F1F4E152B_big_uint256}, + {0x0A844BAB65A39230B31A1F8339D275C932BDC044F3E45C20118F2CB0A3585F49_big_uint256, 0x154E9EA6E40A8F5243BACC1D5613300F2D709AE0E8958FD3CC47143BD5C532B5_big_uint256}, + {0x0D072415CB893496134E551EE4C4582262FB1B8E37AFD1BF6C7CD57E33115B7F_big_uint256, 0x3804E5B57477FB43239378D6C220EF0930C6732CCC242ABC6A9368C0664AAD7A_big_uint256}, + {0x1E7B4D1881A5BB64CAA8FB1E2815A8CDC8AFEF00649BDECE17596554C636AA9C_big_uint256, 0x177CC53E9B41D37E5058B9AE33D82413F32F535DA37444B212CB4B3BC221F9AF_big_uint256}, + {0x3F43332116BD7C42986271B0C98066D0A5F5A2B5FC9DB32F3F8E272BF7EB9FF2_big_uint256, 0x0C827C6BDB35BCE4F8DD289056AA2F1B95F9A7BFBA3116B20CFE98E894682092_big_uint256}, + {0x28CA8B3695515D80A55CB135B42DC68B11204EDEC6E1E57B90763D8B764D4E4A_big_uint256, 0x2366E50F7EBBE57A68E0320B0CF43615A1A038F56885FAF4D4F08390518A31F1_big_uint256}, + {0x28BA918C4AFDAA3E87F07B1DBA299F849C323C66463B81E7D29381532DA03DCC_big_uint256, 0x21C5E945F8877E52CDAF2B7D37AAD1F895F1F23C853FB5F36B7E822611284F82_big_uint256}, + {0x3FCFA209B59D36F244DFDBB45C667CD518B58D21DD042B76785F4FBA80F4B7EA_big_uint256, 0x1DAA63C559BF92982E773F16524722CFEF8384A1CB7DB8FD500847EAFA2386E0_big_uint256}, + {0x1C52D056521BC5AAB401F489B5A099BC4E2FF9112E8E89F79ABFA83F6141B1E7_big_uint256, 0x3975139F4FF73871BA2D1B228135C1ED6F807FD4729BFD25773DCD0CA0567AEC_big_uint256}, + {0x39CA6B9121820798E4F8C9E56FAA19F6C6186E91FB58B9219A57CF946EB4404C_big_uint256, 0x00F36DE792588AE497FC844588103E3EF3AEC5378443D5CF4D8A31924B15F409_big_uint256}, + {0x366276BAC098B06CCB3BF10CDD74AE208A6F72DD295A439481F3FF0F19EA4472_big_uint256, 0x05682488CC82C1C4B963B0F4B696574B216D10E3DEF1970E7DD6EF1D4D9DC95E_big_uint256}, + {0x3E6E698789A213627EEF178DCCE852BBDCDE95F2FEF6F99ADB54BA91A4DBD633_big_uint256, 0x3D1BCC88A6C0F515C42AD2FF96B4485580D8900B53CBD1E9D9B6C874012DA1CA_big_uint256}, + {0x06FDA94AC505426D3D5C8B82B96A1512E44F4A84849178753BE8346EB068E4C9_big_uint256, 0x1EB1DB4AA54111F8105904ACE22576022989821736A3273ADAA71E561717B410_big_uint256}, + {0x340DCBE21EA8A8F1D9DF1F07E51B3CB97D8284F28ACCE8497E445C259F213BB4_big_uint256, 0x2DA0ABCF3573491D505CC5F619523BD2453FD67287A6109EAEDF00E5A2906740_big_uint256}, + {0x1AF462A6713530F9C71A555363B5199F839B8B39154663C67264F3B5DC6F9691_big_uint256, 0x209E3B30E10ABE2F47D0D28E56BC22E4F7FD746D9BFEF7CD5093880D4A32BDD8_big_uint256}, + {0x0A5A714A06E8CEF3695DC12B7BB2CE62682EF127A922E1941595EEA4521DAA9B_big_uint256, 0x083549F026A2C593AD6A21B5B18546AD77B8999C8EC48FBB90F4A7A5CBF4BBE6_big_uint256}, + {0x319D8AAF8C24EB1067A600FEDD5E89DF9141395BF1C51E0145ACD251A375C616_big_uint256, 0x1231B2BCE3B7E245A93682F5C776B387F0AAB9637E984C8C9023E27F60DCBD85_big_uint256}, + {0x2839EA83958EB5C4018A2618FA89A78C99E905A49A119A4DECD2FC80319C3E5F_big_uint256, 0x1D74130ED38B699544BA43687070012EE571009FEB480B15346104AE1A5E910A_big_uint256}, + {0x24914C51064F1BEEF7A723A34A26709AA02BC4CE8D44FB4ED3F31356838A095F_big_uint256, 0x152137EC9B4777B8C6F913E3268E2261B44C41B8DA89A7BCF1BCB24711CA45F1_big_uint256}, + {0x2E1B58CC9A736C19547D35B15B88E4A5C6852B93B9FA079A564B25F63608B97C_big_uint256, 0x267DBE881E33F759E3CA043DC58991CDE682DDF3D52A2C9C6C743369CF34D52C_big_uint256}, + {0x1997469E9AFCE26367CBFAEAB96C25BC79B36EFDA34885B2E9EEBD16EF5F7E1D_big_uint256, 0x1538A3F7C25841AC797CF7E25EEEFCA7F41C071CC306728F174A4ED211FE6ACD_big_uint256}, + {0x32BE50F7D0C1E119F925FFECB9D6EDF01F2051628EA6B8D473A1E3813E39A6CD_big_uint256, 0x2819810C3D069979C7BDD4DF764E7E5EB21CDC68C4C6D856D7FFC35EE5A35615_big_uint256}, + {0x2C29D5A8980BDACE5708A7D42C4EE5900C14638D63B5E4A56D2A525384ECEB0D_big_uint256, 0x14097A6815520C3EC8B0D61CF6E1ACBFC37B3FBB9CC588F04DFD4F8F3DB0C8B3_big_uint256}, + {0x02DE03DB892A85BD073B31F33E4F7DA209AF0F66A7185A23C537C453A152292F_big_uint256, 0x3A31D9BB9A44A12E2685C23AB864490D0A7943187BDD31F87FE9E6E787448E0E_big_uint256}, + {0x37E39B187FF0747D2CCAD7092AA9CB24A6AE2DB7CF17BFD23D3DA657FCCA695D_big_uint256, 0x2CE80F107CCB457C9E78CE10B4BA5BE5623DA20C1ED45BB00E6780C6A767CC83_big_uint256}, + {0x3B593FA9CB5848054B88DF7A09E84F97F999545DD30524BA158D1C77144A7D14_big_uint256, 0x0F0A7E093F5DA7C75DFC238BC36125F02ED97BD79C425B1A77B740467D379509_big_uint256}, + {0x056338F486ACBC5048CB96BE50676D31DBA01F962FBF177A9E9F3112671AD51D_big_uint256, 0x0C8EC6604982DF2AF84709DCD16FD7EF89CCE63EED31868106E0FE53478F5EE3_big_uint256}, + {0x123E53A4A256FD4711C68003B0F17D90708976723116BF1972B10643BACCFB06_big_uint256, 0x23F176C9D80799DB9F7396E649517B942747AB57F79E2CCBCC9A46BD954BAACE_big_uint256}, + {0x3237CF192BD09509F090E30147FDE7877BC2214DA7CD4524E6D46F4AA24422F8_big_uint256, 0x0489D219C52A9912C4DDF4713F8E2B5D7D1470AFAF7DD1D31206C0549DDFCB3B_big_uint256}, + {0x19029EB9DEC80B3A35F875F806C621E19938211623B0CA7325F092A091A8ED4A_big_uint256, 0x38EC6FA4220CBFB39BA2ABB78861FD1B293D1147833BF7C19430E8CEE4DDB688_big_uint256}, + {0x2B3C070B9B85E1723CEB55DE10A309F0E948F1A8507134DD7188024F8DE12BA9_big_uint256, 0x3F2992F73FECA28A841A4F51662BF667B2B8CE49DEE75C7B51AEE082FB050FCF_big_uint256}, + {0x227D4B9A0C21B7CDA0D85E91AFFD9D8E38B51CBD0BC877B92A7EC1B315B3B24D_big_uint256, 0x39E7154095B659B654F69BE25AD02188536ADDD0F30C4235C22282847E809B8C_big_uint256}, + {0x20C8053B87A050C01008750EFC18489AA56C138743769A4AD7553D29F2531AE7_big_uint256, 0x2F46839877B7DB1EC2689916B93533D60F4F6E6C583A2CBB43879695E059B4FE_big_uint256}, + {0x21533DF31582C49F0534D6B39711EF3FCE360E85354949F4E717F337F3EA3024_big_uint256, 0x064F8D082581EBAE41A3BCB4BB388941EA3B679E2DF0E6D6F5F4D9E21A508E8A_big_uint256}, + {0x318F8D6E431858DE00CAD3B9EDDFA82B9AA5332DDFE90DD511D13405BEBC45D5_big_uint256, 0x1CD48075F42F46FA8E87CF3D326CE480DB2BBDFE144FBC75AD0A2409E6C91406_big_uint256}, }; index.srs.lagrange_bases = lb; - index.srs.h = {0x092060386301C999AAB4F263757836369CA27975E28BC7A8E5B2CE5B26262201_bigui256, - 0x314FC4D83AE66A509F9D41BE6165F2606A209A9B5805EE85CE20249C5EBCBE26_bigui256}; + index.srs.h = {0x092060386301C999AAB4F263757836369CA27975E28BC7A8E5B2CE5B26262201_big_uint256, + 0x314FC4D83AE66A509F9D41BE6165F2606A209A9B5805EE85CE20249C5EBCBE26_big_uint256}; - index.srs.endo_q = 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_bigui256; - index.srs.endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui256; + index.srs.endo_q = 0x06819A58283E528E511DB4D81CF70F5A0FED467D47C033AF2AA9D2E050AA0E4F_big_uint256; + index.srs.endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint256; std::vector> sigma_commitments_unshifted = { - {{0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_bigui256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_bigui256}}, - {{0x35AF80504B4DBF58CE3535F3E159BD407695088EFBF1EF56D4597A7F1CBEF531_bigui256, 0x2D36B9BCB23702DF2F4A2C9E60ABBB81C2BE261D227AF025DDDE4FFF354727CB_bigui256}}, - {{0x1CFDC82F8279850B957D0BDE2A188AD5060D80A97EF8B4E56CD17CFE1067CBD9_bigui256, 0x2863D1D7D5EFC2155B2BCCB849B6EA6738E2705A4DC63115045B797E2CFA6511_bigui256}}, - {{0x262ABA0787800EF4CBD18688A534659AB77861C373006A4E0E42BC06D85F9E79_bigui256, 0x150A55D182F3B621B10774BD11C8B8198048DEE7C535DDD08992B41928E45DC3_bigui256}}, - {{0x0C51759D046C2382B5800C5CAA9D9DF74636E1FE0671DF237CD2AC771D56436D_bigui256, 0x39AE43E4BE7084DB9EFDCA61204B29929A2C242605FEFE95F41F0D5DD286DA38_bigui256}}, - {{0x18819B168F851F614CF0DD2F4C30030C1267688C1723BF68293324770AB41DE3_bigui256, 0x1E03B384B597E7A9F17F1B7E36A0B1179291AD17F30C8871379318BADEC65C8C_bigui256}}, - {{0x12D8B90170966FA0956A13A852F52EA682F50A66738527AD24827CAC02A7EDF0_bigui256, 0x3566FB28328CAA573331BECEAE6CED6440F32CD9191FA3DFC7A97BBC681DFF30_bigui256}}, + {{0x26C9349FF7FB4AB230A6F6AEF045F451FBBE9B37C43C3274E2AA4B82D131FD26_big_uint256, 0x1996274D67EC0464C51F79CCFA1F511C2AABB666ABE67733EE8185B71B27A504_big_uint256}}, + {{0x35AF80504B4DBF58CE3535F3E159BD407695088EFBF1EF56D4597A7F1CBEF531_big_uint256, 0x2D36B9BCB23702DF2F4A2C9E60ABBB81C2BE261D227AF025DDDE4FFF354727CB_big_uint256}}, + {{0x1CFDC82F8279850B957D0BDE2A188AD5060D80A97EF8B4E56CD17CFE1067CBD9_big_uint256, 0x2863D1D7D5EFC2155B2BCCB849B6EA6738E2705A4DC63115045B797E2CFA6511_big_uint256}}, + {{0x262ABA0787800EF4CBD18688A534659AB77861C373006A4E0E42BC06D85F9E79_big_uint256, 0x150A55D182F3B621B10774BD11C8B8198048DEE7C535DDD08992B41928E45DC3_big_uint256}}, + {{0x0C51759D046C2382B5800C5CAA9D9DF74636E1FE0671DF237CD2AC771D56436D_big_uint256, 0x39AE43E4BE7084DB9EFDCA61204B29929A2C242605FEFE95F41F0D5DD286DA38_big_uint256}}, + {{0x18819B168F851F614CF0DD2F4C30030C1267688C1723BF68293324770AB41DE3_big_uint256, 0x1E03B384B597E7A9F17F1B7E36A0B1179291AD17F30C8871379318BADEC65C8C_big_uint256}}, + {{0x12D8B90170966FA0956A13A852F52EA682F50A66738527AD24827CAC02A7EDF0_big_uint256, 0x3566FB28328CAA573331BECEAE6CED6440F32CD9191FA3DFC7A97BBC681DFF30_big_uint256}}, }; for(int i = 0; i < index.sigma_comm.size(); ++i){ @@ -350,29 +350,29 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { } index.complete_add_comm.unshifted = { - {0x0A4A178180BC6805CE9A4EBD32096780850C51CCC28D177FD967545D2B258B7F_bigui256, - 0x0FEE8D807491B9385C499C3FC4048B076FFA334C5D14E19FFCF4A3AA26391F91_bigui256} + {0x0A4A178180BC6805CE9A4EBD32096780850C51CCC28D177FD967545D2B258B7F_big_uint256, + 0x0FEE8D807491B9385C499C3FC4048B076FFA334C5D14E19FFCF4A3AA26391F91_big_uint256} }; index.shift = { - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256, - 0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3_bigui256, - 0x0033BFCF8112720332825BD83D44D92CADC0C30466E8102C419C30FA2665695A_bigui256, - 0x0087F4BB29954E16960F2DE3A1FA5AC7B62146DB348C7C9F0E8BF10B2C8E8411_bigui256, - 0x00EC71373B9F6CF15ED1949647365DB60B2E26C3A8ABBA5BB06BF23E9DBE5893_bigui256, - 0x00F39197CC4C55084C68D31F64F1A172406B585CB86445F00C248C721C496D10_bigui256, - 0x00B8DD039799DBEE12D2E6A4299A83E067353C0143C5DFD203190C239159EEA3_bigui256, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256, + 0x00B9CDC8FD0BD4B27E2A74AF7AEBD5734D52D75BDF85EBF1CAD03413E914A2E3_big_uint256, + 0x0033BFCF8112720332825BD83D44D92CADC0C30466E8102C419C30FA2665695A_big_uint256, + 0x0087F4BB29954E16960F2DE3A1FA5AC7B62146DB348C7C9F0E8BF10B2C8E8411_big_uint256, + 0x00EC71373B9F6CF15ED1949647365DB60B2E26C3A8ABBA5BB06BF23E9DBE5893_big_uint256, + 0x00F39197CC4C55084C68D31F64F1A172406B585CB86445F00C248C721C496D10_big_uint256, + 0x00B8DD039799DBEE12D2E6A4299A83E067353C0143C5DFD203190C239159EEA3_big_uint256, }; index.zkpm = { - 0x09A34F1BBA67AF009244016BF35AC10B2E69F4D0CCD1D4DC3224A0EB1B74A8B0_bigui256, - 0x0C8A48BFC715E34B967F6C3AC31D85365479365291235AEFB8FD6316EE248595_bigui256, - 0x3F325BBF0B081782F305686C3A74163236DBB334B393D9B7AF4B577B6CE6EDBB_bigui256, - 0x0000000000000000000000000000000000000000000000000000000000000001_bigui256, + 0x09A34F1BBA67AF009244016BF35AC10B2E69F4D0CCD1D4DC3224A0EB1B74A8B0_big_uint256, + 0x0C8A48BFC715E34B967F6C3AC31D85365479365291235AEFB8FD6316EE248595_big_uint256, + 0x3F325BBF0B081782F305686C3A74163236DBB334B393D9B7AF4B577B6CE6EDBB_big_uint256, + 0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256, }; - index.w = 0x3DFB4B65F2CDFB71DF8EAFB896CAE55375F24670939CE3BD5EBCB1BB6D3421E9_bigui256; - index.endo = 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_bigui256; + index.w = 0x3DFB4B65F2CDFB71DF8EAFB896CAE55375F24670939CE3BD5EBCB1BB6D3421E9_big_uint256; + index.endo = 0x2D33357CB532458ED3552A23A8554E5005270D29D19FC7D27B7FD22F0201B547_big_uint256; index.linearization.constant_term = { PolishToken(Variable(Column(gate_type::Poseidon))), // @@ -665,7 +665,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 3), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -673,7 +673,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 6), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -681,7 +681,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -689,7 +689,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 5), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -697,7 +697,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -758,14 +758,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -773,14 +773,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -788,14 +788,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -803,14 +803,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -818,14 +818,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -833,14 +833,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -848,14 +848,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -863,14 +863,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_bigui256), + PolishToken(0x1555555555555555555555555555555560C232FEADC45309330F104F00000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_bigui256), + PolishToken(0x2000000000000000000000000000000011234C7E04A67C8DCC9698767FFFFFFE_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_bigui256), + PolishToken(0x0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB061197F56E229849987882780000002_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -886,112 +886,112 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 0), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 2), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 3), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 4), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 5), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 6), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Dup), PolishToken(token_type::Add), PolishToken(token_type::Load, 7), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000003_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Add), PolishToken(token_type::Add), PolishToken(token_type::Add), @@ -1002,15 +1002,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 3), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1019,15 +1019,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1036,15 +1036,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 5), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 8), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1053,15 +1053,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 6), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 9), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1070,15 +1070,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 10), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1087,15 +1087,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 8), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1104,15 +1104,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 9), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1121,15 +1121,15 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_bigui256), + PolishToken(0x000000000000000000000000000000000000000000000000000000000000000B_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ECFFFFFFFB_big_uint256), PolishToken(token_type::Add), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::Mul), @@ -1140,7 +1140,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1179,10 +1179,10 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 4), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 11), CurrOrNext:: Curr)), PolishToken(token_type::EndoCoefficient), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(token_type::Mul), PolishToken(token_type::Add), @@ -1196,7 +1196,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 12), CurrOrNext:: Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1256,10 +1256,10 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Add), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 13), CurrOrNext:: Curr)), PolishToken(token_type::EndoCoefficient), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(token_type::Mul), PolishToken(token_type::Add), @@ -1273,7 +1273,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 14), CurrOrNext:: Curr)), PolishToken(token_type::Dup), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1359,7 +1359,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 7), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1367,7 +1367,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1375,7 +1375,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 2), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1383,7 +1383,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 8), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1394,7 +1394,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Sub), PolishToken(token_type::Store), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Sub), PolishToken(token_type::Sub), @@ -1423,7 +1423,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(token_type::Load, 1), PolishToken(token_type::Sub), PolishToken(token_type::Mul), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(Variable(Column(column_type::Witness, 7), CurrOrNext::Curr)), PolishToken(token_type::Sub), PolishToken(token_type::Load, 0), @@ -1485,14 +1485,14 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { })), std::make_tuple(Column(column_type::Coefficient, 0), std::vector>({ PolishToken(Variable(Column(gate_type::Poseidon))), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), })), std::make_tuple(Column(column_type::Coefficient, 1), std::vector>({ PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1540,7 +1540,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 2), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1617,7 +1617,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 3), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 3), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1694,7 +1694,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 4), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 4), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1771,7 +1771,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 5), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 5), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1848,7 +1848,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Next)), PolishToken(Variable(Column(column_type::Witness, 6), CurrOrNext::Next)), PolishToken(token_type::Add), - PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_bigui256), + PolishToken(0x0000000000000000000000000000000000000000000000000000000000000001_big_uint256), PolishToken(token_type::Sub), PolishToken(Variable(Column(column_type::Witness, 1), CurrOrNext::Curr)), PolishToken(token_type::Mul), @@ -1910,7 +1910,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1918,7 +1918,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 1), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), @@ -1926,7 +1926,7 @@ BOOST_AUTO_TEST_CASE(pickles_proof_struct_test_suite) { PolishToken(Variable(Column(gate_type::Poseidon))), PolishToken(token_type::Alpha), PolishToken(token_type::Pow, 9), - PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_bigui256), + PolishToken(0x40000000000000000000000000000000224698FC094CF91B992D30ED00000000_big_uint256), PolishToken(token_type::Mul), PolishToken(token_type::Mul), })), diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp index 36316db906..032064f4f2 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/to_field.cpp @@ -52,10 +52,10 @@ BOOST_AUTO_TEST_CASE(pickles_kimchi_to_field_vesta_test) { using curve_type = algebra::curves::vesta; using field_type = curve_type::scalar_field_type; - typename field_type::value_type endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_bigui256; - std::vector inputs = {0, 0x00000000000000000000000000000000347936BC4A445B92516BE8A8EAB7D2B9_bigui256}; - std::vector expected_results = {0x1955ABB8AF556360261C069D1C8AEB8444BD73BE7B3163ADBE2E2610A9922C78_bigui256, - 0x01FD131CD87BB2DDCF0D446F7E0EEBCDCE145EE5CA5C7851FC5D22AC186BDDBB_bigui256}; + typename field_type::value_type endo_r = 0x12CCCA834ACDBA712CAAD5DC57AAB1B01D1F8BD237AD31491DAD5EBDFDFE4AB9_big_uint256; + std::vector inputs = {0, 0x00000000000000000000000000000000347936BC4A445B92516BE8A8EAB7D2B9_big_uint256}; + std::vector expected_results = {0x1955ABB8AF556360261C069D1C8AEB8444BD73BE7B3163ADBE2E2610A9922C78_big_uint256, + 0x01FD131CD87BB2DDCF0D446F7E0EEBCDCE145EE5CA5C7851FC5D22AC186BDDBB_big_uint256}; for (std::size_t i = 0; i < inputs.size(); i++) { typename field_type::value_type res = to_field(endo_r, inputs[i]); BOOST_CHECK(res == expected_results[i]); diff --git a/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp b/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp index ed31f4745e..a54a2e1149 100644 --- a/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp +++ b/crypto3/libs/zk/test/systems/plonk/pickles/to_group.cpp @@ -22,10 +22,10 @@ BOOST_AUTO_TEST_CASE(pickles_kimchi_to_field_test_case_1){ zk::snark::group_map map; - field_type::value_type value = field_type::value_type(0x2060BAF54AE1E0CE2BA2AA4B7629A41FE5768E1BAB024882BAC729FF5747F100_bigui256); + field_type::value_type value = field_type::value_type(0x2060BAF54AE1E0CE2BA2AA4B7629A41FE5768E1BAB024882BAC729FF5747F100_big_uint256); auto result = map.to_group(value); - BOOST_CHECK(result.X == field_type::value_type(0x344483C5EC8A0B6619CD78B13B20A32E68064ACC43DA911EF5FDD8DF8EB15CA9_bigui256)); - BOOST_CHECK(result.Y == field_type::value_type(0x184C418DCCDD4751FF8F2FA1ADC1E617F8BAC4FDA7C177B42F3863A957B7EAA8_bigui256)); + BOOST_CHECK(result.X == field_type::value_type(0x344483C5EC8A0B6619CD78B13B20A32E68064ACC43DA911EF5FDD8DF8EB15CA9_big_uint256)); + BOOST_CHECK(result.Y == field_type::value_type(0x184C418DCCDD4751FF8F2FA1ADC1E617F8BAC4FDA7C177B42F3863A957B7EAA8_big_uint256)); } diff --git a/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp b/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp index 5b0e56ac39..83a2abeb1e 100644 --- a/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp +++ b/crypto3/libs/zk/test/transcript/kimchi_transcript.cpp @@ -66,50 +66,50 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[15]; g[0] = group_type::value_type( - 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_bigui256, - 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_bigui256); + 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_big_uint256, + 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_big_uint256); g[1] = group_type::value_type( - 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_bigui256, - 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_bigui256); + 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_big_uint256, + 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_big_uint256); g[2] = group_type::value_type( - 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_bigui256, - 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_bigui256); + 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_big_uint256, + 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_big_uint256); g[3] = group_type::value_type( - 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_bigui256, - 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_bigui256); + 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_big_uint256, + 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_big_uint256); g[4] = group_type::value_type( - 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_bigui256, - 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_bigui256); + 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_big_uint256, + 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_big_uint256); g[5] = group_type::value_type( - 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_bigui256, - 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_bigui256); + 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_big_uint256, + 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_big_uint256); g[6] = group_type::value_type( - 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_bigui256, - 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_bigui256); + 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_big_uint256, + 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_big_uint256); g[7] = group_type::value_type( - 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_bigui256, - 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_bigui256); + 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_big_uint256, + 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_big_uint256); g[8] = group_type::value_type( - 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_bigui256, - 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_bigui256); + 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_big_uint256, + 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_big_uint256); g[9] = group_type::value_type( - 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_bigui256, - 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_bigui256); + 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_big_uint256, + 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_big_uint256); g[10] = group_type::value_type( - 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_bigui256, - 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_bigui256); + 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_big_uint256, + 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_big_uint256); g[11] = group_type::value_type( - 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_bigui256, - 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_bigui256); + 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_big_uint256, + 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_big_uint256); g[12] = group_type::value_type( - 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_bigui256, - 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_bigui256); + 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_big_uint256, + 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_big_uint256); g[13] = group_type::value_type( - 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_bigui256, - 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_bigui256); + 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_big_uint256, + 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_big_uint256); g[14] = group_type::value_type( - 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_bigui256, - 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_bigui256); + 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_big_uint256, + 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_big_uint256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -117,7 +117,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } auto check1 = spng.challenge(); - scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_bigui256; + scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_big_uint256; BOOST_CHECK(check1 == chal1); } @@ -126,50 +126,50 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[15]; g[0] = group_type::value_type( - 0x0A0C2BD5D6D122644F29A3AD675F1EB7BA01AE9D9EBC323086E3BDED095987D4_bigui256, - 0x273211F773739D39B20CCD4D5EB77479115769B4742F2FB03A4F3ED1A1EC22D4_bigui256); + 0x0A0C2BD5D6D122644F29A3AD675F1EB7BA01AE9D9EBC323086E3BDED095987D4_big_uint256, + 0x273211F773739D39B20CCD4D5EB77479115769B4742F2FB03A4F3ED1A1EC22D4_big_uint256); g[1] = group_type::value_type( - 0x220593B5A19D0A67847BBF80DB81F49D6CF8F9591B9E8C9A2F32670DDA1D8AC6_bigui256, - 0x07211D7F83661CB78042848839E2DBD04B101F157A7DA31B30A3DB8886E9B7B0_bigui256); + 0x220593B5A19D0A67847BBF80DB81F49D6CF8F9591B9E8C9A2F32670DDA1D8AC6_big_uint256, + 0x07211D7F83661CB78042848839E2DBD04B101F157A7DA31B30A3DB8886E9B7B0_big_uint256); g[2] = group_type::value_type( - 0x02D77AF331102A224026E24CA18EE6B7B0D5D7709527D066F1FE5FABE4CE85D1_bigui256, - 0x0845660D92C66C0462CF57ADA39E558E0AD9ECC2359F0332901B1D2FE98A10D6_bigui256); + 0x02D77AF331102A224026E24CA18EE6B7B0D5D7709527D066F1FE5FABE4CE85D1_big_uint256, + 0x0845660D92C66C0462CF57ADA39E558E0AD9ECC2359F0332901B1D2FE98A10D6_big_uint256); g[3] = group_type::value_type( - 0x0639954FFC6E0B2CCD1929139BE3105E15252BC2FA0A36024455525E659B7D88_bigui256, - 0x15A3400CC3658E630DDBAA76288D06ADFC22DA21C84575D444D633F8DA6DC932_bigui256); + 0x0639954FFC6E0B2CCD1929139BE3105E15252BC2FA0A36024455525E659B7D88_big_uint256, + 0x15A3400CC3658E630DDBAA76288D06ADFC22DA21C84575D444D633F8DA6DC932_big_uint256); g[4] = group_type::value_type( - 0x2CB8A1CA2F4340039B7912FED931EF963E442CE9920FB0A3126E25BD83E598B6_bigui256, - 0x37651EF464571CEF0E7F6DC731365AFDEF8216C6D253DD2BA93A2AFB676C04E2_bigui256); + 0x2CB8A1CA2F4340039B7912FED931EF963E442CE9920FB0A3126E25BD83E598B6_big_uint256, + 0x37651EF464571CEF0E7F6DC731365AFDEF8216C6D253DD2BA93A2AFB676C04E2_big_uint256); g[5] = group_type::value_type( - 0x3A427D5DBECF18AB05809180B1F80E7509BCD963FBA6217E2E9A3292513F2049_bigui256, - 0x1E66FA970D768A59A53D6349E03A4C8D7A93316D08572A133CDE18C2FE64AA03_bigui256); + 0x3A427D5DBECF18AB05809180B1F80E7509BCD963FBA6217E2E9A3292513F2049_big_uint256, + 0x1E66FA970D768A59A53D6349E03A4C8D7A93316D08572A133CDE18C2FE64AA03_big_uint256); g[6] = group_type::value_type( - 0x31525F1FEC6FB330DAB5CEFEC348E7221108CF82F543DA0A8E512F3A390AE5E1_bigui256, - 0x1CFCABDD222DBFD199A208CFCF97FA22627E03B878AE4FD1284AF1CCDFE48384_bigui256); + 0x31525F1FEC6FB330DAB5CEFEC348E7221108CF82F543DA0A8E512F3A390AE5E1_big_uint256, + 0x1CFCABDD222DBFD199A208CFCF97FA22627E03B878AE4FD1284AF1CCDFE48384_big_uint256); g[7] = group_type::value_type( - 0x20BCF66A9DBB51680B5976759A9B9BABC07153E95978C3571B85DAE260326428_bigui256, - 0x0FC9D105713B9FD6CC8587E84D1521BBF3737834FE5384AD76D98051619F7813_bigui256); + 0x20BCF66A9DBB51680B5976759A9B9BABC07153E95978C3571B85DAE260326428_big_uint256, + 0x0FC9D105713B9FD6CC8587E84D1521BBF3737834FE5384AD76D98051619F7813_big_uint256); g[8] = group_type::value_type( - 0x31975A5C9BD269C5B7B115205B63A9F82C9E5FAFB789FC0E3A1D9F6D1698FCFF_bigui256, - 0x2B3B885F8AB568D02E0DE2BCADDBD2D9B6EDE04AA3DEC5ABB8B53913F6EE0E35_bigui256); + 0x31975A5C9BD269C5B7B115205B63A9F82C9E5FAFB789FC0E3A1D9F6D1698FCFF_big_uint256, + 0x2B3B885F8AB568D02E0DE2BCADDBD2D9B6EDE04AA3DEC5ABB8B53913F6EE0E35_big_uint256); g[9] = group_type::value_type( - 0x380C43392B70A7370D69266BFFC5D21825D80F34EB6DD165BF300618E0871AE7_bigui256, - 0x267301AFABFE44E37DD209B0C38D662582F7CF13EE036BD77576767A70D07B88_bigui256); + 0x380C43392B70A7370D69266BFFC5D21825D80F34EB6DD165BF300618E0871AE7_big_uint256, + 0x267301AFABFE44E37DD209B0C38D662582F7CF13EE036BD77576767A70D07B88_big_uint256); g[10] = group_type::value_type( - 0x1458C0D03E1240A352ACDF0B8858993ACF8F4D4EC4091E695C69A1F5CE30D939_bigui256, - 0x1EDB145A8D6C3EDF28A85B0B7CCD77792C06AD3B787394BD0D98B3B453CE634A_bigui256); + 0x1458C0D03E1240A352ACDF0B8858993ACF8F4D4EC4091E695C69A1F5CE30D939_big_uint256, + 0x1EDB145A8D6C3EDF28A85B0B7CCD77792C06AD3B787394BD0D98B3B453CE634A_big_uint256); g[11] = group_type::value_type( - 0x20E6522DB98F94CD90E75B74AE0F038C245BD8FACDF94652B4220B139F9A8E36_bigui256, - 0x133B8A97B147D68805619B1579DD49A6B898F713DC63EBCDBD311C1B99F4CED9_bigui256); + 0x20E6522DB98F94CD90E75B74AE0F038C245BD8FACDF94652B4220B139F9A8E36_big_uint256, + 0x133B8A97B147D68805619B1579DD49A6B898F713DC63EBCDBD311C1B99F4CED9_big_uint256); g[12] = group_type::value_type( - 0x00203F56944A4BA0454C150B4922711F88B429B8304DE1D7AFA3AF26BBAB84A5_bigui256, - 0x1371005325482F9B36105AD5C548CB5B16B94B55876F22AE1B396744C76AA548_bigui256); + 0x00203F56944A4BA0454C150B4922711F88B429B8304DE1D7AFA3AF26BBAB84A5_big_uint256, + 0x1371005325482F9B36105AD5C548CB5B16B94B55876F22AE1B396744C76AA548_big_uint256); g[13] = group_type::value_type( - 0x27E71C246DEB9222E939D9994A010A063231BA76DAE041FB38C0DEF3E5A8E92D_bigui256, - 0x17A6FF821B3E498999B1500CE2C3CDFB1B44691B990585B0522B6548BDDAAA83_bigui256); + 0x27E71C246DEB9222E939D9994A010A063231BA76DAE041FB38C0DEF3E5A8E92D_big_uint256, + 0x17A6FF821B3E498999B1500CE2C3CDFB1B44691B990585B0522B6548BDDAAA83_big_uint256); g[14] = group_type::value_type( - 0x0E86C27EF127EFDF0374B82A92D675AF7A0A02EC8A8D0EF2F9BA888427E6CFAB_bigui256, - 0x2A14FA11389648694F68426BDA965E8380C1B155B277467B0C96C5EC73CE17EB_bigui256); + 0x0E86C27EF127EFDF0374B82A92D675AF7A0A02EC8A8D0EF2F9BA888427E6CFAB_big_uint256, + 0x2A14FA11389648694F68426BDA965E8380C1B155B277467B0C96C5EC73CE17EB_big_uint256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -177,7 +177,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } typename scalar_field_type::value_type chal1( - 0x000000000000000000000000000000006586A4AF99E47C9EA8C7AD23A9E42247_bigui256); + 0x000000000000000000000000000000006586A4AF99E47C9EA8C7AD23A9E42247_big_uint256); BOOST_CHECK(spng.challenge() == chal1); } @@ -186,74 +186,74 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) group_type::value_type g[23]; g[0] = group_type::value_type( - 0x27CCCDE41398B04DD09FAEEFB7B78767B51BB2AFC6587838D0F5A43C43A4A218_bigui256, - 0x1728B31CFD99AD2D3DA948387D407DC6F61CD630758344996E05C21B89B4FF7E_bigui256); + 0x27CCCDE41398B04DD09FAEEFB7B78767B51BB2AFC6587838D0F5A43C43A4A218_big_uint256, + 0x1728B31CFD99AD2D3DA948387D407DC6F61CD630758344996E05C21B89B4FF7E_big_uint256); g[1] = group_type::value_type( - 0x2AEF45CFCF1C7A3AB0437D11B00089226C1EAD9F65D17B02EBFBEEDD6ED8FFFB_bigui256, - 0x354C1269DA294634A5E6E3C6D85F5068044BE97B9A41E47CFFD096AA3991D61F_bigui256); + 0x2AEF45CFCF1C7A3AB0437D11B00089226C1EAD9F65D17B02EBFBEEDD6ED8FFFB_big_uint256, + 0x354C1269DA294634A5E6E3C6D85F5068044BE97B9A41E47CFFD096AA3991D61F_big_uint256); g[2] = group_type::value_type( - 0x01B21F2FBE8FADFD3CF5ADA9332F17B86DE9AF278982CC4E1E5CEDBC6ADFB5C5_bigui256, - 0x11FFAFCFDE4766A966DCB1083C422E8A863BB1871EA5657E79149504BDF4C3F7_bigui256); + 0x01B21F2FBE8FADFD3CF5ADA9332F17B86DE9AF278982CC4E1E5CEDBC6ADFB5C5_big_uint256, + 0x11FFAFCFDE4766A966DCB1083C422E8A863BB1871EA5657E79149504BDF4C3F7_big_uint256); g[3] = group_type::value_type( - 0x10B268CA02F1CCC0A9179B4DC8678E0E5E63B04D8149E8A85515B81529AD04F5_bigui256, - 0x1DD587777C89876DFAF9135F7F58D4A1B37DE6F6B610043C231E23BEAAA84CF6_bigui256); + 0x10B268CA02F1CCC0A9179B4DC8678E0E5E63B04D8149E8A85515B81529AD04F5_big_uint256, + 0x1DD587777C89876DFAF9135F7F58D4A1B37DE6F6B610043C231E23BEAAA84CF6_big_uint256); g[4] = group_type::value_type( - 0x13C0DC5466D51C6852266A549093DA4F59C1B06B278ABEBB85519F07D75972ED_bigui256, - 0x109EA2EA135BC41544A6892C17E0F4202C6E8EA4E75E0202436104F1D2DD0AEC_bigui256); + 0x13C0DC5466D51C6852266A549093DA4F59C1B06B278ABEBB85519F07D75972ED_big_uint256, + 0x109EA2EA135BC41544A6892C17E0F4202C6E8EA4E75E0202436104F1D2DD0AEC_big_uint256); g[5] = group_type::value_type( - 0x30F72723AC67E979D3956C3CDFE0662D0A515C3EA6D257F24BD292DB5E0450F4_bigui256, - 0x1E021A1B6BF8A365E8251A51B430C39F3F1B9E08E3A13B5DCC641094EEA10A0E_bigui256); + 0x30F72723AC67E979D3956C3CDFE0662D0A515C3EA6D257F24BD292DB5E0450F4_big_uint256, + 0x1E021A1B6BF8A365E8251A51B430C39F3F1B9E08E3A13B5DCC641094EEA10A0E_big_uint256); g[6] = group_type::value_type( - 0x04F8423216ED528B6ACB493F9E122F8E88BB173037489185ADED577FB35DD4C8_bigui256, - 0x0568CBE5D3AF7A1DC593E160088A1438B8570A87E1A40AFF548F19AB88246186_bigui256); + 0x04F8423216ED528B6ACB493F9E122F8E88BB173037489185ADED577FB35DD4C8_big_uint256, + 0x0568CBE5D3AF7A1DC593E160088A1438B8570A87E1A40AFF548F19AB88246186_big_uint256); g[7] = group_type::value_type( - 0x3C276D9F50711A0FADC6C9215B7FE55772D8854ED88055B61D624D50A46BF2D1_bigui256, - 0x064EC8440A5C9EE94D2E495DD697031A0FFAB03AD8AF8653B083B024EC2E0947_bigui256); + 0x3C276D9F50711A0FADC6C9215B7FE55772D8854ED88055B61D624D50A46BF2D1_big_uint256, + 0x064EC8440A5C9EE94D2E495DD697031A0FFAB03AD8AF8653B083B024EC2E0947_big_uint256); g[8] = group_type::value_type( - 0x37F0A0BFF99A231FBEB6FA8BF1BAC5D27D681D96A3BFE439526E8E36DC3F456B_bigui256, - 0x05438AD52E7ED1CADD62053822F42888E4F4027A009541D26BBB8A3277747690_bigui256); + 0x37F0A0BFF99A231FBEB6FA8BF1BAC5D27D681D96A3BFE439526E8E36DC3F456B_big_uint256, + 0x05438AD52E7ED1CADD62053822F42888E4F4027A009541D26BBB8A3277747690_big_uint256); g[9] = group_type::value_type( - 0x21EF274FA84AD809DDE6858504CB06764F23349E9AD698AB06C7C88AB9938F10_bigui256, - 0x22BB862C8B9C96A349540FF9127984EDEB425FA7727A86A33F0521A36F385567_bigui256); + 0x21EF274FA84AD809DDE6858504CB06764F23349E9AD698AB06C7C88AB9938F10_big_uint256, + 0x22BB862C8B9C96A349540FF9127984EDEB425FA7727A86A33F0521A36F385567_big_uint256); g[10] = group_type::value_type( - 0x339487A2AE045A6CE9B13B548CAF8C9580B1216EC279026A9EA12E5685745822_bigui256, - 0x019050F98DE9302849A3C7F024544DD6D73FC5A174D0A1D3D7FED3E8612C0BDF_bigui256); + 0x339487A2AE045A6CE9B13B548CAF8C9580B1216EC279026A9EA12E5685745822_big_uint256, + 0x019050F98DE9302849A3C7F024544DD6D73FC5A174D0A1D3D7FED3E8612C0BDF_big_uint256); g[11] = group_type::value_type( - 0x11FD07718FACABBFA2B0FDB6D559EECE04406643C11AE03228A6A55C0199B78F_bigui256, - 0x1B3F5E6BDB2CFC18947322EB26A6A89E1CE0B3BCB79EE30245FCA702CE174390_bigui256); + 0x11FD07718FACABBFA2B0FDB6D559EECE04406643C11AE03228A6A55C0199B78F_big_uint256, + 0x1B3F5E6BDB2CFC18947322EB26A6A89E1CE0B3BCB79EE30245FCA702CE174390_big_uint256); g[12] = group_type::value_type( - 0x3393E80C17EB7DF85CA4FAD7F6043A084773ACD3B5ED712030E4B2000FF5086F_bigui256, - 0x033B8C65937B8EE3B1DC600E4BA1FD9EBD851D29590C16379BEEFB93A6F6226E_bigui256); + 0x3393E80C17EB7DF85CA4FAD7F6043A084773ACD3B5ED712030E4B2000FF5086F_big_uint256, + 0x033B8C65937B8EE3B1DC600E4BA1FD9EBD851D29590C16379BEEFB93A6F6226E_big_uint256); g[13] = group_type::value_type( - 0x15E069E1CFD96C634513360C4BED63D8D22D32947BC156649D447BFA415D9D25_bigui256, - 0x3F183AD1D896978D1AB0568AF4AA91CF413A2E011352B7692E17E5C0157619EF_bigui256); + 0x15E069E1CFD96C634513360C4BED63D8D22D32947BC156649D447BFA415D9D25_big_uint256, + 0x3F183AD1D896978D1AB0568AF4AA91CF413A2E011352B7692E17E5C0157619EF_big_uint256); g[14] = group_type::value_type( - 0x1D42ED837696F2A777E7C1FF0436D46E96878B624ECDE039732E37AFCD409C88_bigui256, - 0x1DD9078FBA2CE4F2ECE3D8374E805A0494D5F6FF85B7B1A0F255F91C79F08929_bigui256); + 0x1D42ED837696F2A777E7C1FF0436D46E96878B624ECDE039732E37AFCD409C88_big_uint256, + 0x1DD9078FBA2CE4F2ECE3D8374E805A0494D5F6FF85B7B1A0F255F91C79F08929_big_uint256); g[15] = group_type::value_type( - 0x0A4020BF547A53FAF4DA99584BBAC1FD5D878D264A99BDF19710748597362B9B_bigui256, - 0x179AFDC1C16BD21205B6B9E487799A032BE077512F18F1DD3215250F0C67FC64_bigui256); + 0x0A4020BF547A53FAF4DA99584BBAC1FD5D878D264A99BDF19710748597362B9B_big_uint256, + 0x179AFDC1C16BD21205B6B9E487799A032BE077512F18F1DD3215250F0C67FC64_big_uint256); g[16] = group_type::value_type( - 0x363AA1A805E5BAFF2DB4BDD817E60CCC546DE456367677C5ECD48CAC2675E21F_bigui256, - 0x1638CDF842DB7274F494B0DC06D9CD0B2565666F7C9E4330A21412F216227FEC_bigui256); + 0x363AA1A805E5BAFF2DB4BDD817E60CCC546DE456367677C5ECD48CAC2675E21F_big_uint256, + 0x1638CDF842DB7274F494B0DC06D9CD0B2565666F7C9E4330A21412F216227FEC_big_uint256); g[17] = group_type::value_type( - 0x39A5B4737045A5192E159C13092B428E3AED966EE0A4DDA365F54AA14D17674E_bigui256, - 0x052FBAB263CAC3E2B7C701B154F8F621A9BE5390D5795A3D7622C57536A30ACB_bigui256); + 0x39A5B4737045A5192E159C13092B428E3AED966EE0A4DDA365F54AA14D17674E_big_uint256, + 0x052FBAB263CAC3E2B7C701B154F8F621A9BE5390D5795A3D7622C57536A30ACB_big_uint256); g[18] = group_type::value_type( - 0x3A90A56D28DC7E01F9384207FAE64E783C7A628048F155C8D14ECB1CD53C93A8_bigui256, - 0x17A22DB9090348E8C363B687BF96EC25CCA79BA366F28F176097BF5474D8C32C_bigui256); + 0x3A90A56D28DC7E01F9384207FAE64E783C7A628048F155C8D14ECB1CD53C93A8_big_uint256, + 0x17A22DB9090348E8C363B687BF96EC25CCA79BA366F28F176097BF5474D8C32C_big_uint256); g[19] = group_type::value_type( - 0x02790E33CB485684C1D1CB250DBA08DE299C27F4CD340AC03720983FBF9441BE_bigui256, - 0x30022C5A33C30487C1B375625E5317A351C2E5498C27B39FB0DF2DE8E95036FA_bigui256); + 0x02790E33CB485684C1D1CB250DBA08DE299C27F4CD340AC03720983FBF9441BE_big_uint256, + 0x30022C5A33C30487C1B375625E5317A351C2E5498C27B39FB0DF2DE8E95036FA_big_uint256); g[20] = group_type::value_type( - 0x1E98D2E550D673BF3B2CEEC098C5319494441382C9427F71557B82187A1F6E72_bigui256, - 0x0D336D94B3CE0D0C30073BDE4C3044F458A598B6B50A1FD1944D29C9F681EB60_bigui256); + 0x1E98D2E550D673BF3B2CEEC098C5319494441382C9427F71557B82187A1F6E72_big_uint256, + 0x0D336D94B3CE0D0C30073BDE4C3044F458A598B6B50A1FD1944D29C9F681EB60_big_uint256); g[21] = group_type::value_type( - 0x0E826DABA538B6DFDFBC0133093600E5FB812F513D0FCC04106CB4BD3F32FAD3_bigui256, - 0x282038D2B42F1EEF395753E663C6C62523F3C22857CFD6BCFF83B1B0F130B320_bigui256); + 0x0E826DABA538B6DFDFBC0133093600E5FB812F513D0FCC04106CB4BD3F32FAD3_big_uint256, + 0x282038D2B42F1EEF395753E663C6C62523F3C22857CFD6BCFF83B1B0F130B320_big_uint256); g[22] = group_type::value_type( - 0x0557F05F4FE835D81BF63FFA8E35B5C014E2A4828AC3E5AEE216F11F4662D8F3_bigui256, - 0x22083FE3C84501B1C06B8BF9EDC10783523E080B10B41106555D3994B42DE333_bigui256); + 0x0557F05F4FE835D81BF63FFA8E35B5C014E2A4828AC3E5AEE216F11F4662D8F3_big_uint256, + 0x22083FE3C84501B1C06B8BF9EDC10783523E080B10B41106555D3994B42DE333_big_uint256); for (int i = 0; i < 15; ++i) { std::vector input({g[i]}); @@ -261,17 +261,17 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } typename scalar_field_type::value_type chal1( - 0x000000000000000000000000000000005D6E02ED382BBF4A9FF5C2C13A1F0E3D_bigui256); + 0x000000000000000000000000000000005D6E02ED382BBF4A9FF5C2C13A1F0E3D_big_uint256); BOOST_CHECK(spng.challenge() == chal1); typename scalar_field_type::value_type chal2( - 0x0000000000000000000000000000000058C638E4FE632BB34E9D712D10953688_bigui256); + 0x0000000000000000000000000000000058C638E4FE632BB34E9D712D10953688_big_uint256); BOOST_CHECK(spng.challenge() == chal2); std::vector input({g[15]}); spng.absorb_g(input); typename scalar_field_type::value_type chal3( - 0x0000000000000000000000000000000072D58D72518968134276BCBD15848A54_bigui256); + 0x0000000000000000000000000000000072D58D72518968134276BCBD15848A54_big_uint256); BOOST_CHECK(spng.challenge() == chal3); for (int i = 16; i < 23; ++i) { @@ -279,7 +279,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) spng.absorb_g(input); } typename scalar_field_type::value_type chal4( - 0x00000000000000000000000000000000126C2E2D31FBDDB543E4FE174987EDBC_bigui256); + 0x00000000000000000000000000000000126C2E2D31FBDDB543E4FE174987EDBC_big_uint256); BOOST_CHECK(spng.challenge() == chal4); } @@ -287,36 +287,36 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) fq_sponge_type spng; // fq_sponge_type2 spng2; scalar_field_type::value_type g[30] = { - 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_bigui256, - 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_bigui256, - 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_bigui256, - 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_bigui256, - 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_bigui256, - 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_bigui256, - 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_bigui256, - 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_bigui256, - 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_bigui256, - 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_bigui256, - 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_bigui256, - 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_bigui256, - 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_bigui256, - 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_bigui256, - 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_bigui256, - 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_bigui256, - 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_bigui256, - 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_bigui256, - 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_bigui256, - 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_bigui256, - 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_bigui256, - 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_bigui256, - 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_bigui256, - 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_bigui256, - 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_bigui256, - 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_bigui256, - 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_bigui256, - 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_bigui256, - 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_bigui256, - 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_bigui256}; + 0x1CF10D1482EB88632AEFED15C16082007B38DDC528626195CF6B040E2C7D5914_big_uint256, + 0x15A406A92FA16DB6E24D125C8EC5365D76DD8BB188106C0063BA9EC51E0FB8E7_big_uint256, + 0x3B38AC47170B2DB158AE7C02E939B2877139040D240171F6A6BB01183902566E_big_uint256, + 0x05AAC7FD92471BBFF23D5E4F9AD0B64783467A4809940FEBB7BD6C91A9E9E1C0_big_uint256, + 0x281BD2B891CF0795B1439B3AB149ED2A535B8E08C4430112D7D4BF53F3789BEF_big_uint256, + 0x10B2FA452CAC5D11CC8040D5DD504222A2621FC378EFD7D08A01BAB3A3DE28DF_big_uint256, + 0x0158FEA0E6586A75F36FB621E9C9FC7A38970812F0F1753D3BB716655E3B9D79_big_uint256, + 0x2A9688F370DCC43130D38AB7AD2B3FF2A925791F587B55AD138B1F067E874C59_big_uint256, + 0x0CA7898337AB528838EAD23D7CBCD4861F1E5E2E5D3B1BD3B733A832C7931547_big_uint256, + 0x351C82EC1D20E977ABFC632BBA2330AF61270A00BC2D32B6F2E1DA93AA0D51F1_big_uint256, + 0x00DCE7DC20642A850002731F9B3820327CF5856B1D8C3B0EE6BD7BC03BC85FFD_big_uint256, + 0x3B1BCBA06B0D33F08123EDD6DF725CC1F8CD2213EA867FF4020C2D18619BB2DB_big_uint256, + 0x0F7C2FF92D8F0776629F87BBF25702CEAA45B1893617F7C9AC10AACB080B6E10_big_uint256, + 0x16E7207D6596C7FAFF46FB335E14DC57E08E150AB7F692607F3B8DCC9E6CDA93_big_uint256, + 0x2CD748E8C8806196ABE34DF032864491CADCF205AF70CB9152507BD16B912BEC_big_uint256, + 0x2219EC3C1873373A6717E7BFA24827AD89BF949B0F240D7B9D8981C2006E400F_big_uint256, + 0x027E878BD478FC5DE36CA783CB60297C5F75CB638C71615A04714C52E9B15E8E_big_uint256, + 0x2CCE580022C7D44E72BA8E7E608C3733A3F3EDC0304566097C07D6CCA172A1B4_big_uint256, + 0x0DC7C8FE3A9007F09283D29C5BE99AACEB9DA6996CD691BBAC5D075BDD6DA223_big_uint256, + 0x1FA4B95451090B8A36D503BFDBF086D4462745626B4BA4490AF42A7A6B5FD449_big_uint256, + 0x20254A64C61A3C1882EC3E9FCA0ABAE814B0EB0477C3396E562C1006054347F3_big_uint256, + 0x23CDCBDE9DCBD33AD86BF48181B1616FC76D24A18711A3953D184E772D936418_big_uint256, + 0x00DB22BCFC9A1D1A10A53716A7E7D4022DBF101B8767B68E78837CB8263BE097_big_uint256, + 0x3E283D2F0D90CAC87B3FCD95E7A8933FB2B2B43EF07FA577CA566527481AB6C9_big_uint256, + 0x0D24814B6FE1C8C42FC05834B95212E473B76C8B9588D1272BFAE8FA0E2B9384_big_uint256, + 0x11C75275709440AC01B74C4E64E2606F7826294F868F6B0265008E758C148369_big_uint256, + 0x007997CB753B919B586243FCAF6E5886676F180C2220BAC055AE9739CA4A1B4B_big_uint256, + 0x166859AE2ECE3520D33C2D146F6DBCFC819779C288E9D81C3F7369DF5642EF31_big_uint256, + 0x04E774B3DE1A78D6C9408D7B10D9E4614FC8AE4DFE4BFE6762278EE72BB9E25D_big_uint256, + 0x178AC19F836752BAF356D9E9C3C35470F27A52C16B7572EEF2C61A43B4D0499B_big_uint256}; for (int i = 0; i < 30; ++i) { std::vector input({g[i]}); @@ -324,7 +324,7 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) } auto check1 = spng.challenge(); - scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_bigui256; + scalar_field_type::value_type chal1 = 0x0000000000000000000000000000000006906F18EE1C02C944C3186D54A8D03E_big_uint256; BOOST_CHECK(check1 == chal1); } @@ -338,13 +338,13 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) using fq_sponge_type = zk::transcript::DefaultFqSponge; std::vector input_values = { - 0x3AA52C0B2BC507CEC6CEEDBFD2C02B9C74CFA1043847011BA789D6F871201A52_bigui256}; + 0x3AA52C0B2BC507CEC6CEEDBFD2C02B9C74CFA1043847011BA789D6F871201A52_big_uint256}; fq_sponge_type spng; spng.absorb_fr(input_values); base_field_type::value_type real_value = spng.challenge_fq(); algebra::fields::detail::element_fp> real_inputs( - 0x1D52960595E283E7636776DFE96015CE3A67D0821C23808DD3C4EB7C38900D29_bigui256); + 0x1D52960595E283E7636776DFE96015CE3A67D0821C23808DD3C4EB7C38900D29_big_uint256); fq_sponge_type spng_real; spng_real.sponge.absorb(real_inputs); base_field_type::value_type expected_value = spng_real.challenge_fq(); @@ -354,132 +354,132 @@ BOOST_AUTO_TEST_SUITE(zk_sponge_test_suite) BOOST_AUTO_TEST_CASE(zk_sponge_test_real_case) { fq_sponge_type spng; - spng.absorb_fr(value_type(0x1B76B0452DBEE0301162D6D04350DDC0361222FEF7467C285DB383D51E043D83_bigui256)); + spng.absorb_fr(value_type(0x1B76B0452DBEE0301162D6D04350DDC0361222FEF7467C285DB383D51E043D83_big_uint256)); BOOST_CHECK( spng.challenge_fq() == base_field_type::value_type( - 0x23A5199486C064AC4CB9D8BBD59B20EB2A2B1A3CA77DFA6E9DAB7C387D270E23_bigui256)); + 0x23A5199486C064AC4CB9D8BBD59B20EB2A2B1A3CA77DFA6E9DAB7C387D270E23_big_uint256)); spng.absorb_g(group_type::value_type( - 0x1757CFBC6F79F5DA18CAD5BFE889D8BB11A04BEFD2F5F4ECA71CDF1541FD6A10_bigui256, - 0x3440D97DA37051ACEA71310B6A9519E8989E86DE57D324745616A3BA065F2272_bigui256)); + 0x1757CFBC6F79F5DA18CAD5BFE889D8BB11A04BEFD2F5F4ECA71CDF1541FD6A10_big_uint256, + 0x3440D97DA37051ACEA71310B6A9519E8989E86DE57D324745616A3BA065F2272_big_uint256)); spng.absorb_g(group_type::value_type( - 0x2D47BB4464D0A3788F10C5D70FC35BF750246155649C6B6690F657D372CCE6FF_bigui256, - 0x1A86D626C558F0BC02FA5F89A591DD8392DA153EB457611BA1B3A40AE3E68BD8_bigui256)); + 0x2D47BB4464D0A3788F10C5D70FC35BF750246155649C6B6690F657D372CCE6FF_big_uint256, + 0x1A86D626C558F0BC02FA5F89A591DD8392DA153EB457611BA1B3A40AE3E68BD8_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000005A694EDCBC5D63D83F6E14016563BD69_bigui256)); + value_type(0x000000000000000000000000000000005A694EDCBC5D63D83F6E14016563BD69_big_uint256)); spng.absorb_g(group_type::value_type( - 0x3FCEA348F31BE8357433DBC714AAB303EE1477D6BCFFEC816D45199D004EA0EB_bigui256, - 0x37851472B67A5A35A8F54A001659CB995C7C501CEFF4BE5448D7250508A14FBC_bigui256)); + 0x3FCEA348F31BE8357433DBC714AAB303EE1477D6BCFFEC816D45199D004EA0EB_big_uint256, + 0x37851472B67A5A35A8F54A001659CB995C7C501CEFF4BE5448D7250508A14FBC_big_uint256)); spng.absorb_g(group_type::value_type( - 0x32ACB0BD9286BDE74B949BEFA7224706890479EF2B3AE5BD11B977910D1B7478_bigui256, - 0x2FB122CE2BFC57B5FF1D2CDB673D3328B6770C065E8253E90980A283AF8EBB15_bigui256)); + 0x32ACB0BD9286BDE74B949BEFA7224706890479EF2B3AE5BD11B977910D1B7478_big_uint256, + 0x2FB122CE2BFC57B5FF1D2CDB673D3328B6770C065E8253E90980A283AF8EBB15_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000063597BF8593B53D1BEA983CAE5AA0140_bigui256)); + value_type(0x0000000000000000000000000000000063597BF8593B53D1BEA983CAE5AA0140_big_uint256)); spng.absorb_g(group_type::value_type( - 0x1012AEEE4AB904D4A3B47AACDD04BD8D119B3A8015F76DF7F24AD13B7C06BB90_bigui256, - 0x03428FD045BAA622B9F7EEB54E8321D96EE1CC04CEFB26F1AEB3D6D40A4DED20_bigui256)); + 0x1012AEEE4AB904D4A3B47AACDD04BD8D119B3A8015F76DF7F24AD13B7C06BB90_big_uint256, + 0x03428FD045BAA622B9F7EEB54E8321D96EE1CC04CEFB26F1AEB3D6D40A4DED20_big_uint256)); spng.absorb_g(group_type::value_type( - 0x184F8EA7DFF1970F52E5A75BC74D8F0FAF76BEB2C56A42D44CB96CCCA895870A_bigui256, - 0x110904EE3F6325E6D3D591FC6D1EAE61D43ACDB54357A7F76AD4FD6DFA59FCB8_bigui256)); + 0x184F8EA7DFF1970F52E5A75BC74D8F0FAF76BEB2C56A42D44CB96CCCA895870A_big_uint256, + 0x110904EE3F6325E6D3D591FC6D1EAE61D43ACDB54357A7F76AD4FD6DFA59FCB8_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000027ABB6B27E12348F52A181F17FE29F41_bigui256)); + value_type(0x0000000000000000000000000000000027ABB6B27E12348F52A181F17FE29F41_big_uint256)); spng.absorb_g(group_type::value_type( - 0x22F5F9CD40DE3BA2268208BAC69D839A0EFF28C445FFC36C21EA64FCC62A7FC5_bigui256, - 0x35FF2C0CAB2901382134A1862322C212A143237419EE758AE4CB6B02FF1BA141_bigui256)); + 0x22F5F9CD40DE3BA2268208BAC69D839A0EFF28C445FFC36C21EA64FCC62A7FC5_big_uint256, + 0x35FF2C0CAB2901382134A1862322C212A143237419EE758AE4CB6B02FF1BA141_big_uint256)); spng.absorb_g(group_type::value_type( - 0x1E0518490D0DD242420C8786B744E444FF09E2ECB44217B3FC2323BF739BE8A0_bigui256, - 0x00A9F106114217ECA4313604AA123351DEC9EE0B6C42624270CA9390D34DD0F1_bigui256)); + 0x1E0518490D0DD242420C8786B744E444FF09E2ECB44217B3FC2323BF739BE8A0_big_uint256, + 0x00A9F106114217ECA4313604AA123351DEC9EE0B6C42624270CA9390D34DD0F1_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000000B79378485D93E3A44F4E3EAEF25D3DA_bigui256)); + value_type(0x000000000000000000000000000000000B79378485D93E3A44F4E3EAEF25D3DA_big_uint256)); spng.absorb_g(group_type::value_type( - 0x14309CF280C4C82C856B17A808A2E5A583DA7EEB1C385F3B4EB12039EA76AE83_bigui256, - 0x241285C939BD25A6CA34D6F347596BD110FE55AF173A0EBBFB659630A4C96B99_bigui256)); + 0x14309CF280C4C82C856B17A808A2E5A583DA7EEB1C385F3B4EB12039EA76AE83_big_uint256, + 0x241285C939BD25A6CA34D6F347596BD110FE55AF173A0EBBFB659630A4C96B99_big_uint256)); spng.absorb_g(group_type::value_type( - 0x09DA297567A8850406E640FF07BC76CCB9A4FA5C11F328EF03708414CBC1F4B9_bigui256, - 0x3BE674505BBBD0F9ED806218258E029084BAECD51ABE6F9264E80C1899307ED6_bigui256)); + 0x09DA297567A8850406E640FF07BC76CCB9A4FA5C11F328EF03708414CBC1F4B9_big_uint256, + 0x3BE674505BBBD0F9ED806218258E029084BAECD51ABE6F9264E80C1899307ED6_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x000000000000000000000000000000003CBCF6C44411CE451A33BAB179026502_bigui256)); + value_type(0x000000000000000000000000000000003CBCF6C44411CE451A33BAB179026502_big_uint256)); spng.absorb_g(group_type::value_type( - 0x1DA94235A1E998434A93578409C4EB18BD82A01EC5A25E5D7C7C7C5E001F18FB_bigui256, - 0x04A566923D712C1CEBF2DBE553DD185F8FDACF604E50948925264D3A49C037EA_bigui256)); + 0x1DA94235A1E998434A93578409C4EB18BD82A01EC5A25E5D7C7C7C5E001F18FB_big_uint256, + 0x04A566923D712C1CEBF2DBE553DD185F8FDACF604E50948925264D3A49C037EA_big_uint256)); BOOST_CHECK(spng.challenge() == - value_type(0x0000000000000000000000000000000072FF5A26FAF972660330A5D0CC5C4700_bigui256)); + value_type(0x0000000000000000000000000000000072FF5A26FAF972660330A5D0CC5C4700_big_uint256)); } BOOST_AUTO_TEST_CASE(zk_fr_sponge_test_real_case) { // using value_type = base_field_type::value_type; fr_sponge_type spng; - spng.absorb(value_type(0x0ACB65E0765F80498D643313EAAEBFBC7899766A4A337EAF61261344E8C2C551_bigui256)); - - spng.absorb(value_type(0x1480D3E4FD095CEC3688F88B105EE6F2365DCFAAA28CCB6B87DAB7E71E58010B_bigui256)); - spng.absorb(value_type(0x0C2F522FB163AE4A8D2890C57ABF95E55EF7DDD27A928EFAD0D3FA447D40BC29_bigui256)); - spng.absorb(value_type(0x3F0169364239FF2352BFFEF6D2A206A6DC8FAA526C51EB51FC7610F6E73DFAE5_bigui256)); - spng.absorb(value_type(0x2BCBED001BA14933A1766C68E09BF19C133AB20B87A9D0DB68321A99C4C7A157_bigui256)); - spng.absorb(value_type(0x1430DC77EBF0048A4E26DDB817DD34D3F253AA9894C7D442B8BC06C7683D0188_bigui256)); - spng.absorb(value_type(0x3B79EBE49FAEF6F123C168CF484296A84186EF1FB9FFFA528B0AAC0761F535AD_bigui256)); - spng.absorb(value_type(0x16C6D43CFFB252215D05E1A05DBA2EEAADB3FAAF88B8AABDBD4E8860B9623530_bigui256)); - spng.absorb(value_type(0x1C0801C94EA28AAD68CEA9C9524106D39DC1A3491435A23D35EEBE56DB3AB116_bigui256)); - spng.absorb(value_type(0x21545E083F1282D939751D5E0D4EF173C7528C9E38349FE5E02BAB4686B542D4_bigui256)); - spng.absorb(value_type(0x2E8F53F919EBB22022424A175A051F6FBDB2B57E06E1AC8A8201FBDD02CEE2FD_bigui256)); - spng.absorb(value_type(0x1B5A53763A06BFAF8BAAF566FE885CD31355B2AC4F0F04B13F05610DE1EBAB5E_bigui256)); - spng.absorb(value_type(0x212CC53B694BA1B3ED2D6C514B97325D62BF301F18E76B7DF94F04B7875C7E64_bigui256)); - spng.absorb(value_type(0x22C1E6932B0336B13262867483DEE4C6B8E798C24F4245051254A64C61EAC604_bigui256)); - spng.absorb(value_type(0x356428F289E597185A60ED494351FF93B5802480DC375E4B2C6ECAB816B69524_bigui256)); - spng.absorb(value_type(0x08066B51E8C7F77F825F541E02C51A608FD217435FDF7E75AD5BBE36CB826443_bigui256)); - spng.absorb(value_type(0x1AA8ADB147AA57E6AA5DBAF2C238352D8C6AA301ECD497BBC775E2A2804E3363_bigui256)); - spng.absorb(value_type(0x03D8C35D2E1466E8514E20A8E658F4E2B1116AB123F7BF53F9A1C7376F788EB1_bigui256)); - spng.absorb(value_type(0x05EDDC1E6C268DF398F068F06C51794D6F672E27FB800DFF6C5C35E5C3D84207_bigui256)); - spng.absorb(value_type(0x1B03A1DBEA987367FDEF97CC27F7441C4845E93AD1583167DA4A1A9CCFFB1E71_bigui256)); - spng.absorb(value_type(0x11347E33DF1631D59D66F6149D99DD22FD23B185D7D89CFE0909877C494D7916_bigui256)); - spng.absorb(value_type(0x0E1372B72364C37883171F80BC89F2AC7043464C8C30E1D2B5D94105035A6C6E_bigui256)); - spng.absorb(value_type(0x336A5683971A09A68D33D77B41947F8CAFFE3923190B51D443E515761A32889B_bigui256)); + spng.absorb(value_type(0x0ACB65E0765F80498D643313EAAEBFBC7899766A4A337EAF61261344E8C2C551_big_uint256)); + + spng.absorb(value_type(0x1480D3E4FD095CEC3688F88B105EE6F2365DCFAAA28CCB6B87DAB7E71E58010B_big_uint256)); + spng.absorb(value_type(0x0C2F522FB163AE4A8D2890C57ABF95E55EF7DDD27A928EFAD0D3FA447D40BC29_big_uint256)); + spng.absorb(value_type(0x3F0169364239FF2352BFFEF6D2A206A6DC8FAA526C51EB51FC7610F6E73DFAE5_big_uint256)); + spng.absorb(value_type(0x2BCBED001BA14933A1766C68E09BF19C133AB20B87A9D0DB68321A99C4C7A157_big_uint256)); + spng.absorb(value_type(0x1430DC77EBF0048A4E26DDB817DD34D3F253AA9894C7D442B8BC06C7683D0188_big_uint256)); + spng.absorb(value_type(0x3B79EBE49FAEF6F123C168CF484296A84186EF1FB9FFFA528B0AAC0761F535AD_big_uint256)); + spng.absorb(value_type(0x16C6D43CFFB252215D05E1A05DBA2EEAADB3FAAF88B8AABDBD4E8860B9623530_big_uint256)); + spng.absorb(value_type(0x1C0801C94EA28AAD68CEA9C9524106D39DC1A3491435A23D35EEBE56DB3AB116_big_uint256)); + spng.absorb(value_type(0x21545E083F1282D939751D5E0D4EF173C7528C9E38349FE5E02BAB4686B542D4_big_uint256)); + spng.absorb(value_type(0x2E8F53F919EBB22022424A175A051F6FBDB2B57E06E1AC8A8201FBDD02CEE2FD_big_uint256)); + spng.absorb(value_type(0x1B5A53763A06BFAF8BAAF566FE885CD31355B2AC4F0F04B13F05610DE1EBAB5E_big_uint256)); + spng.absorb(value_type(0x212CC53B694BA1B3ED2D6C514B97325D62BF301F18E76B7DF94F04B7875C7E64_big_uint256)); + spng.absorb(value_type(0x22C1E6932B0336B13262867483DEE4C6B8E798C24F4245051254A64C61EAC604_big_uint256)); + spng.absorb(value_type(0x356428F289E597185A60ED494351FF93B5802480DC375E4B2C6ECAB816B69524_big_uint256)); + spng.absorb(value_type(0x08066B51E8C7F77F825F541E02C51A608FD217435FDF7E75AD5BBE36CB826443_big_uint256)); + spng.absorb(value_type(0x1AA8ADB147AA57E6AA5DBAF2C238352D8C6AA301ECD497BBC775E2A2804E3363_big_uint256)); + spng.absorb(value_type(0x03D8C35D2E1466E8514E20A8E658F4E2B1116AB123F7BF53F9A1C7376F788EB1_big_uint256)); + spng.absorb(value_type(0x05EDDC1E6C268DF398F068F06C51794D6F672E27FB800DFF6C5C35E5C3D84207_big_uint256)); + spng.absorb(value_type(0x1B03A1DBEA987367FDEF97CC27F7441C4845E93AD1583167DA4A1A9CCFFB1E71_big_uint256)); + spng.absorb(value_type(0x11347E33DF1631D59D66F6149D99DD22FD23B185D7D89CFE0909877C494D7916_big_uint256)); + spng.absorb(value_type(0x0E1372B72364C37883171F80BC89F2AC7043464C8C30E1D2B5D94105035A6C6E_big_uint256)); + spng.absorb(value_type(0x336A5683971A09A68D33D77B41947F8CAFFE3923190B51D443E515761A32889B_big_uint256)); // BOOST_CHECK(spng.challenge().value() == - // value_type(0x0000000000000000000000000000000000F9B1BCD2BB1DE25807BE9313410D43_bigui256)); - - spng.absorb(value_type(0x1635A182C3B5623D5E7CF31D244F389FB478B0612B27937A39D48B473DB68931_bigui256)); - spng.absorb(value_type(0x144FF7F30B8C75C60E63614EA792F9A41E41C2DBE40F816A602160960C071F56_bigui256)); - spng.absorb(value_type(0x114768369E43EA7A13DE72AC855AE7D31DC52B34EB45BB96EA1BDFF54FEC4AB8_bigui256)); - spng.absorb(value_type(0x006259A5F4A9A82296077396D476F9E59392BDDA93E63B9A582EF9BBA452A7A2_bigui256)); - spng.absorb(value_type(0x3F9EBB3D514729A24B0C87FB434FC043F48195FA45E510BA5817F0ED05DED76B_bigui256)); - spng.absorb(value_type(0x06F0CA9962E207949F85C22ADCBE8F27E632D14B843F2C65E264752B6100049E_bigui256)); - spng.absorb(value_type(0x3885B6A574C4B6B89867EE499534E0F4937C7D71BA724A857F5E7F797059E879_bigui256)); - spng.absorb(value_type(0x0554E97666ABA1659D7D107E3F709F546625481B1A5684BE24EFE9B3CBBC300F_bigui256)); - spng.absorb(value_type(0x06C748D2C049B08C50633EBF7F7A0C68A03677CE382BF6697B7D285F30215616_bigui256)); - spng.absorb(value_type(0x0B252004A6768951624E56F1D98B1DDB006B2284FE1C08B258D95B92BF40266F_bigui256)); - spng.absorb(value_type(0x029236F173E5278B30CB9DAD8C87CEDE865AD1293B9BBF991F1743E8D1FD6638_bigui256)); - spng.absorb(value_type(0x28C63DB702FFC629457818259603A154886B11D1D1FB7065037F51212E5BE2D3_bigui256)); - spng.absorb(value_type(0x0219DC4D947F1109C90CD6C0112559A5D04528C2B264062A98DC5E7BBF85F269_bigui256)); - spng.absorb(value_type(0x246CB73F3BB0A9AC5FA65DED8A1617E0CB8231146F0DF67467ED5E85242DF2B6_bigui256)); - spng.absorb(value_type(0x06BF9230E2E2424EF63FE51B0306D61BA478A06A226AEDA29DD12DA188D5F302_bigui256)); - spng.absorb(value_type(0x29126D228A13DAF18CD96C487BF794569FB5A8BBDF14DDEC6CE22DAAED7DF34F_bigui256)); - spng.absorb(value_type(0x069DE7D0EBB1985B05DAB9E13348C12530D374BAD474C76C4AB9FAC8EB557332_bigui256)); - spng.absorb(value_type(0x177B2B5F39976BE667F5D6768480F1555F52395613AF100529C99844DA28DCC9_bigui256)); - spng.absorb(value_type(0x2941C2A82AC0067D3DD6A2C47EDD675D5B7BA071414A8324BA4CFAA1816B163F_bigui256)); - spng.absorb(value_type(0x05EA2B93EF3D2CD3E8DDDA175F2446A8390E35219DFBA39111C8CDBFA3038FCE_bigui256)); - spng.absorb(value_type(0x15C6FB1ACD775DF5E860906CDDF37C4E6B82CDC1A67F02F129DEAE98A11620D6_bigui256)); - spng.absorb(value_type(0x338D629CA1F64B37674CA7B5AF91015CA50A5D335E7076E25D9F4C230C99395D_bigui256)); + // value_type(0x0000000000000000000000000000000000F9B1BCD2BB1DE25807BE9313410D43_big_uint256)); + + spng.absorb(value_type(0x1635A182C3B5623D5E7CF31D244F389FB478B0612B27937A39D48B473DB68931_big_uint256)); + spng.absorb(value_type(0x144FF7F30B8C75C60E63614EA792F9A41E41C2DBE40F816A602160960C071F56_big_uint256)); + spng.absorb(value_type(0x114768369E43EA7A13DE72AC855AE7D31DC52B34EB45BB96EA1BDFF54FEC4AB8_big_uint256)); + spng.absorb(value_type(0x006259A5F4A9A82296077396D476F9E59392BDDA93E63B9A582EF9BBA452A7A2_big_uint256)); + spng.absorb(value_type(0x3F9EBB3D514729A24B0C87FB434FC043F48195FA45E510BA5817F0ED05DED76B_big_uint256)); + spng.absorb(value_type(0x06F0CA9962E207949F85C22ADCBE8F27E632D14B843F2C65E264752B6100049E_big_uint256)); + spng.absorb(value_type(0x3885B6A574C4B6B89867EE499534E0F4937C7D71BA724A857F5E7F797059E879_big_uint256)); + spng.absorb(value_type(0x0554E97666ABA1659D7D107E3F709F546625481B1A5684BE24EFE9B3CBBC300F_big_uint256)); + spng.absorb(value_type(0x06C748D2C049B08C50633EBF7F7A0C68A03677CE382BF6697B7D285F30215616_big_uint256)); + spng.absorb(value_type(0x0B252004A6768951624E56F1D98B1DDB006B2284FE1C08B258D95B92BF40266F_big_uint256)); + spng.absorb(value_type(0x029236F173E5278B30CB9DAD8C87CEDE865AD1293B9BBF991F1743E8D1FD6638_big_uint256)); + spng.absorb(value_type(0x28C63DB702FFC629457818259603A154886B11D1D1FB7065037F51212E5BE2D3_big_uint256)); + spng.absorb(value_type(0x0219DC4D947F1109C90CD6C0112559A5D04528C2B264062A98DC5E7BBF85F269_big_uint256)); + spng.absorb(value_type(0x246CB73F3BB0A9AC5FA65DED8A1617E0CB8231146F0DF67467ED5E85242DF2B6_big_uint256)); + spng.absorb(value_type(0x06BF9230E2E2424EF63FE51B0306D61BA478A06A226AEDA29DD12DA188D5F302_big_uint256)); + spng.absorb(value_type(0x29126D228A13DAF18CD96C487BF794569FB5A8BBDF14DDEC6CE22DAAED7DF34F_big_uint256)); + spng.absorb(value_type(0x069DE7D0EBB1985B05DAB9E13348C12530D374BAD474C76C4AB9FAC8EB557332_big_uint256)); + spng.absorb(value_type(0x177B2B5F39976BE667F5D6768480F1555F52395613AF100529C99844DA28DCC9_big_uint256)); + spng.absorb(value_type(0x2941C2A82AC0067D3DD6A2C47EDD675D5B7BA071414A8324BA4CFAA1816B163F_big_uint256)); + spng.absorb(value_type(0x05EA2B93EF3D2CD3E8DDDA175F2446A8390E35219DFBA39111C8CDBFA3038FCE_big_uint256)); + spng.absorb(value_type(0x15C6FB1ACD775DF5E860906CDDF37C4E6B82CDC1A67F02F129DEAE98A11620D6_big_uint256)); + spng.absorb(value_type(0x338D629CA1F64B37674CA7B5AF91015CA50A5D335E7076E25D9F4C230C99395D_big_uint256)); // BOOST_CHECK(spng.challenge().value() == - // value_type(0x00000000000000000000000000000000578543A9BA83C66925F5301C187FBF94_bigui256)); + // value_type(0x00000000000000000000000000000000578543A9BA83C66925F5301C187FBF94_big_uint256)); - spng.absorb(value_type(0x16FE1AE7F56997161DB512632BE7BFA337F47F422E0D01AF06DE298DD8C429D5_bigui256)); + spng.absorb(value_type(0x16FE1AE7F56997161DB512632BE7BFA337F47F422E0D01AF06DE298DD8C429D5_big_uint256)); auto squeezed_val1 = spng.challenge().value(); // std::cout << std::hex << squeezed_val1.data << '\n'; BOOST_CHECK(squeezed_val1 == - value_type(0x0000000000000000000000000000000070BB1327D20E6ADBCA0F584AEC2D4D0C_bigui256)); + value_type(0x0000000000000000000000000000000070BB1327D20E6ADBCA0F584AEC2D4D0C_big_uint256)); squeezed_val1 = spng.challenge().value(); // std::cout << std::hex << squeezed_val1.data << '\n'; BOOST_CHECK(squeezed_val1 == - value_type(0x0000000000000000000000000000000062BE7EB9CB6245B29DF02D68B4B51EC5_bigui256)); + value_type(0x0000000000000000000000000000000062BE7EB9CB6245B29DF02D68B4B51EC5_big_uint256)); } BOOST_AUTO_TEST_SUITE_END() diff --git a/crypto3/libs/zk/test/transcript/transcript.cpp b/crypto3/libs/zk/test/transcript/transcript.cpp index 7d5cfd3cbd..1195508d02 100644 --- a/crypto3/libs/zk/test/transcript/transcript.cpp +++ b/crypto3/libs/zk/test/transcript/transcript.cpp @@ -63,12 +63,12 @@ BOOST_AUTO_TEST_CASE(zk_transcript_manual_test) { auto ch2 = tr.challenge(); auto ch_n = tr.challenges(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_bigui254).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_bigui254).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_big_uint254).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_big_uint254).data); - BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_big_uint254).data); + BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_big_uint254).data); + BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_big_uint254).data); } BOOST_AUTO_TEST_SUITE_END() @@ -90,8 +90,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0x6296); init_blob = {}; @@ -100,8 +100,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { ch2 = tr.challenge(); ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0xC92); } @@ -115,8 +115,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_no_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0xc92); } @@ -141,20 +141,20 @@ void test_transcript(typename curve_type::base_field_type::value_type const& exp BOOST_AUTO_TEST_CASE(mnt4_keccak) { test_transcript> - (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_bigui298); + (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_big_uint298); } BOOST_AUTO_TEST_CASE(mnt6_keccak) { test_transcript> - (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_bigui298); + (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_big_uint298); } BOOST_AUTO_TEST_CASE(bls12_keccak) { test_transcript> - (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_bigui381); + (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_big_uint381); /* TODO: no marshalling for bls12-377 curve test_transcript> - (0x0_bigui377); + (0x0_big_uint377); */ } @@ -164,7 +164,7 @@ BOOST_AUTO_TEST_CASE(pallas_poseidon) { using hash_type = hashes::poseidon>; test_transcript - (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_bigui256); + (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_big_uint256); } BOOST_AUTO_TEST_SUITE_END() diff --git a/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp b/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp index 9f16209c64..3c66946c19 100644 --- a/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp +++ b/parallel-crypto3/libs/parallel-containers/test/merkle/merkle.cpp @@ -285,14 +285,14 @@ BOOST_AUTO_TEST_CASE(merkletree_validate_test_1) { BOOST_STATIC_ASSERT_MSG(algebra::is_field_element::value, "Expecting Poseidon to consume field elements"); std::vector> v_field = { - {0x0_bigui255}, - {0x1_bigui255}, - {0x2_bigui255}, - {0x3_bigui255}, - {0x4_bigui255}, - {0x5_bigui255}, - {0x6_bigui255}, - {0x7_bigui255} + {0x0_big_uint255}, + {0x1_big_uint255}, + {0x2_big_uint255}, + {0x3_big_uint255}, + {0x4_big_uint255}, + {0x5_big_uint255}, + {0x6_big_uint255}, + {0x7_big_uint255} }; testing_validate_template(v_field); testing_validate_template(v_field); @@ -355,7 +355,7 @@ BOOST_AUTO_TEST_CASE(merkletree_hash_test_1) { wrappers.emplace_back(inner_containers); } merkle_tree tree = make_merkle_tree(wrappers.begin(), wrappers.end()); - BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_bigui255); + BOOST_CHECK(tree.root() == 0x6E7641F1EAE17C0DA8227840EFEA6E1D17FB5EBA600D9DC34F314D5400E5BF3_big_uint255); } BOOST_AUTO_TEST_CASE(merkletree_hash_test_2) { diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp index 14977402e8..719db76f0a 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs.cpp @@ -52,23 +52,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs a = { 7, - {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; + {0x35_big_uint255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}}; polynomial_dfs a1 = { 7, - {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; + {0x35_big_uint255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}}; BOOST_CHECK_EQUAL(a, a1); } @@ -81,14 +81,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui255, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; + 0x35_big_uint255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -103,13 +103,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs a = { 7, - {0x35_bigui255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}}; + {0x35_big_uint255, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector c = a.coefficients(); @@ -123,13 +123,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs a = { 8, {0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -143,38 +143,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 7, { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, { - 0x71_bigui255, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, + 0x71_big_uint255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -182,57 +182,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; + {0x4e_big_uint255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; polynomial_dfs b = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs c = a + b; polynomial_dfs c_res = { 7, - {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; + {0x4e_big_uint255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -241,27 +241,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sum) { { 7, { - 0x37_bigui255, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255 + 0x37_big_uint255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255 } }, { 6, { - 0x4e_bigui255, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255 + 0x4e_big_uint255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255 } } }; @@ -277,38 +277,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 7, { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }}; a += b; polynomial_dfs c_res = { 7, { - 0x71_bigui255, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, + 0x71_big_uint255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -316,57 +316,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; + {0x4e_big_uint255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs a = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; polynomial_dfs b = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; a += b; polynomial_dfs c_res = { 7, - {0x4e_bigui255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}}; + {0x4e_big_uint255, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -379,27 +379,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs a = { 7, { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -409,14 +409,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -427,27 +427,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }}; // 9, 3, 11, 14, 7 polynomial_dfs b = { 4, { - 0x2c_bigui255, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, - 0xa_bigui255, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui255, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui255, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui255, + 0x2c_big_uint255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint255, + 0xa_big_uint255, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_big_uint255, + 0x61283ccdf122134fa2421001b12210000000b000000000005_big_uint255, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_big_uint255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -456,14 +456,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui255, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui255, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui255, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui255, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui255, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui255, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui255, + 0xb_big_uint255, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_big_uint255, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_big_uint255, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_big_uint255, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_big_uint255, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_big_uint255, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -474,27 +474,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, - 0xc250799be244269f448420036244200000016000000000003_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, + 0x27_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint255, + 0xc250799be244269f448420036244200000016000000000003_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint255, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui255, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, - 0xe_bigui255, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, + 0x32_big_uint255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint255, + 0xe_big_uint255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint255, }}; polynomial_dfs c(7, 1, FieldType::value_type::zero()); @@ -503,14 +503,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -524,27 +524,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs a = { 7, { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs b = { 7, { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }}; a -= b; @@ -552,14 +552,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -570,23 +570,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs a = { 7, { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }}; // 9, 3, 11, 14 polynomial_dfs b = { 3, { - 0x2c_bigui255, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, + 0x2c_big_uint255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint255, }}; polynomial_dfs c(8, 1, FieldType::value_type::zero()); @@ -595,14 +595,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs c_res = { 7, { - 0xb_bigui255, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_bigui255, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_bigui255, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_bigui255, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_bigui255, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_bigui255, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_bigui255, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_bigui255 + 0xb_big_uint255, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_big_uint255, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_big_uint255, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_big_uint255, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_big_uint255, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_big_uint255, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_big_uint255, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_big_uint255 }}; BOOST_CHECK_EQUAL(c_res, a); @@ -612,27 +612,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs a = { 4, { - 0x27_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, - 0xc250799be244269f448420036244200000016000000000003_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, + 0x27_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint255, + 0xc250799be244269f448420036244200000016000000000003_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint255, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs b = { 6, { - 0x32_bigui255, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, - 0xe_bigui255, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, + 0x32_big_uint255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint255, + 0xe_big_uint255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint255, }}; a -= b; @@ -640,14 +640,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint255, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -660,40 +660,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; polynomial_dfs b = { 2, { - 0x17_bigui255, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, - 0x11_bigui255, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, + 0x17_big_uint255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint255, + 0x11_big_uint255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 5, - {0x2f7_bigui255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, - 0x13522f003a2269a89044690056226900000023000000000048_bigui255, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}}; + {0x2f7_big_uint255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint255, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -703,44 +703,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }}; polynomial_dfs b = { 5, { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; + {0x60f_big_uint255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -750,44 +750,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }}; polynomial_dfs b = { 3, { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 8, - {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; + {0x60f_big_uint255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -796,38 +796,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; polynomial_dfs c = a * b; polynomial_dfs c_res = { 9, - {0x4f1_bigui255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, - 0xc250799be244269f44842003624420000001600000000003b_bigui255, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}}; + {0x4f1_big_uint255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint255, + 0xc250799be244269f44842003624420000001600000000003b_big_uint255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint255}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -840,40 +840,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs a = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; polynomial_dfs b = { 2, { - 0x17_bigui255, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, - 0x11_bigui255, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, + 0x17_big_uint255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint255, + 0x11_big_uint255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint255, }}; a *= b; polynomial_dfs c_res = { 5, - {0x2f7_bigui255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, - 0x13522f003a2269a89044690056226900000023000000000048_bigui255, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}}; + {0x2f7_big_uint255, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint255, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -882,44 +882,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs a = { 3, { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }}; polynomial_dfs b = { 5, { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; + {0x60f_big_uint255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -929,44 +929,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs a = { 5, { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }}; polynomial_dfs b = { 3, { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }}; a *= b; polynomial_dfs c_res = { 8, - {0x60f_bigui255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}}; + {0x60f_big_uint255, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -975,38 +975,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs a = { 7, - {0x37_bigui255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}}; + {0x37_big_uint255, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}}; polynomial_dfs b = { 2, - {0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}}; + {0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}}; a *= b; polynomial_dfs c_res = { 9, - {0x4f1_bigui255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, - 0xc250799be244269f44842003624420000001600000000003b_bigui255, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}}; + {0x4f1_big_uint255, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint255, + 0xc250799be244269f44842003624420000001600000000003b_big_uint255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint255}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -1020,25 +1020,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs a = { 5, - {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; + {0x13_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}}; //{13, 0, 1}; polynomial_dfs b = { 2, { - 0xe_bigui255, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, - 0xe_bigui255, - 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_big_uint255, + 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, + 0xe_big_uint255, + 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, }}; polynomial_dfs Q = a / b; @@ -1046,17 +1046,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs Q_ans = { 3, - {0x1_bigui255, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui255, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui255, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui255, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui255, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui255}}; // {0, 0, 0, 1}; + {0x1_big_uint255, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_big_uint255, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_big_uint255, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_big_uint255, + 0x8d51ccce760304d0ec030002760300000001000000000000_big_uint255, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_big_uint255}}; // {0, 0, 0, 1}; polynomial_dfs R_ans = {0, - {0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, - 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, - 0x5_bigui255}}; //{5}; + {0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, + 0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, + 0x5_big_uint255}}; //{5}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1121,25 +1121,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs a = { 5, - {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; + {0x13_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}}; - typename FieldType::value_type c = 0x10_bigui255; + typename FieldType::value_type c = 0x10_big_uint255; polynomial_dfs c_res = { 5, - {0x23_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000015_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_bigui255} + {0x23_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000015_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_big_uint255} }; polynomial_dfs c1 = a + c; @@ -1154,36 +1154,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs a = { 5, - {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; + {0x13_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}}; - typename FieldType::value_type c = 0x10_bigui255; + typename FieldType::value_type c = 0x10_big_uint255; polynomial_dfs c_res = { 5, - {0x3_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_bigui255, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_bigui255}}; + {0x3_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_big_uint255}}; polynomial_dfs c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_bigui255, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_bigui255, - 0x19_bigui255, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_bigui255}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_big_uint255, + 0x19_big_uint255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_big_uint255}}; polynomial_dfs c1 = a - c; polynomial_dfs c2 = c - a; @@ -1198,26 +1198,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs a = { 5, - {0x13_bigui255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}}; + {0x13_big_uint255, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}}; - typename FieldType::value_type c = 0x123456789abcdef0_bigui255; + typename FieldType::value_type c = 0x123456789abcdef0_big_uint255; polynomial_dfs c_res = { 5, - {0x159e26af37c048bd0_bigui255, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_bigui255, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_bigui255, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_bigui255, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_bigui255, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_bigui255, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_bigui255 + {0x159e26af37c048bd0_big_uint255, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_big_uint255, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_big_uint255, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_big_uint255, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_big_uint255, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_big_uint255, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_big_uint255 }}; polynomial_dfs c1 = a * c; @@ -1236,14 +1236,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs a = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; polynomial_dfs res = a; @@ -1262,17 +1262,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; - typename FieldType::value_type point = 0x10_bigui255; + typename FieldType::value_type point = 0x10_big_uint255; polynomial_dfs large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1285,17 +1285,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; - typename FieldType::value_type point = 0x10_bigui255; + typename FieldType::value_type point = 0x10_big_uint255; polynomial_dfs large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1309,14 +1309,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs small_poly = { 3, { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }}; polynomial_dfs zero = polynomial_dfs::zero(); diff --git a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp index 12405977fd..aa6404b662 100644 --- a/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp +++ b/parallel-crypto3/libs/parallel-math/test/polynomial_dfs_view.cpp @@ -52,14 +52,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { a.from_coefficients(polynomial); std::vector c_res = { - 0x35_bigui255, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; + 0x35_big_uint255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,14 +73,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector a_v = { - 0x35_bigui255, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_bigui255, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_bigui255, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_bigui255, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_bigui255, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_bigui255, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_bigui255}; + 0x35_big_uint255, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_big_uint255, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_big_uint255, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_big_uint255, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_big_uint255, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_big_uint255, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_big_uint255}; polynomial_dfs_view a = {7, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; @@ -95,13 +95,13 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector a_v = { 0x37u, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}; polynomial_dfs_view a = {8, a_v}; std::vector c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector c = a.coefficients(); @@ -117,39 +117,39 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { std::vector a_v = { - 0x37_bigui255, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; + 0x37_big_uint255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x71_bigui255, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_bigui255, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_bigui255, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_bigui255, - 0x13522f003a2269a89044690056226900000022fffffffffffc_bigui255, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_bigui255, + 0x71_big_uint255, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_big_uint255, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_big_uint255, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_big_uint255, + 0x13522f003a2269a89044690056226900000022fffffffffffc_big_uint255, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_big_uint255, }; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -161,32 +161,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { std::vector a_v = { - 0x37_bigui255, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; + 0x37_big_uint255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; + 0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}; polynomial_dfs_view b = {2, b_v}; a += b; std::vector c_v = { - 0x4e_bigui255, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}; + 0x4e_big_uint255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -197,32 +197,32 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_addition_less_a) { std::vector a_v = { - 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; + 0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}; polynomial_dfs_view a = {2, a_v}; std::vector b_v = { - 0x37_bigui255, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; + 0x37_big_uint255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}; polynomial_dfs_view b = {7, b_v}; a += b; std::vector c_v = { - 0x4e_bigui255, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_bigui255, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_bigui255, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_bigui255, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_bigui255, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_bigui255, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_bigui255}; + 0x4e_big_uint255, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_big_uint255, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_big_uint255, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_big_uint255, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_big_uint255, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_big_uint255, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_big_uint255}; polynomial_dfs_view c_res = {7, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -240,26 +240,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //{1, 3, 4, 25, 6, 7, 7, 2} std::vector a_v = { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }; polynomial_dfs_view a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector b_v = { - 0x3a_bigui255, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_bigui255, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_bigui255, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_bigui255, - 0x6_bigui255, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_bigui255, - 0x9efc066844c3656b09836002c4c3600000012000000000000_bigui255, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_bigui255, + 0x3a_big_uint255, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_big_uint255, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_big_uint255, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_big_uint255, + 0x6_big_uint255, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_big_uint255, + 0x9efc066844c3656b09836002c4c3600000012000000000000_big_uint255, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_big_uint255, }; polynomial_dfs_view b = {7, b_v}; @@ -267,14 +267,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { //-8, 0, -7, 11, -1, 6, 2, -6 std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_bigui255, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_bigui255, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_bigui255, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_bigui255, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_bigui255, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_big_uint255, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_big_uint255, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_big_uint255, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_big_uint255, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_big_uint255, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_big_uint255, }; polynomial_dfs_view c_res = {7, c_v}; @@ -288,40 +288,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_b) { // 1, 3, 4, 25, 6, 7, 7, 2 std::vector a_v = { - 0x37_bigui255, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_bigui255, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_bigui255, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_bigui255, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_bigui255, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_bigui255, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_bigui255, + 0x37_big_uint255, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_big_uint255, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_big_uint255, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_big_uint255, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_big_uint255, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_big_uint255, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_big_uint255, }; polynomial_dfs_view a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector b_v = { - 0x2c_bigui255, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_bigui255, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_bigui255, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_bigui255, - 0xa_bigui255, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_bigui255, - 0x61283ccdf122134fa2421001b12210000000b000000000005_bigui255, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_bigui255, + 0x2c_big_uint255, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_big_uint255, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_big_uint255, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_big_uint255, + 0xa_big_uint255, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_big_uint255, + 0x61283ccdf122134fa2421001b12210000000b000000000005_big_uint255, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_big_uint255, }; polynomial_dfs_view b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector c_v = { - 0xb_bigui255, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_bigui255, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_bigui255, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_bigui255, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_bigui255, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_bigui255, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_bigui255, + 0xb_big_uint255, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_big_uint255, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_big_uint255, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_big_uint255, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_big_uint255, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_big_uint255, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_big_uint255, }; polynomial_dfs_view c_res = {7, c_v}; @@ -336,26 +336,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { // 1, 3, 4, 25, 6 std::vector a_v = { - 0x27_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_bigui255, - 0xc250799be244269f448420036244200000016000000000003_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_bigui255, + 0x27_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_big_uint255, + 0xc250799be244269f448420036244200000016000000000003_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_big_uint255, }; polynomial_dfs_view a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector b_v = { - 0x32_bigui255, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_bigui255, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_bigui255, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_bigui255, - 0xe_bigui255, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_bigui255, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_bigui255, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_bigui255, + 0x32_big_uint255, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_big_uint255, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_big_uint255, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_big_uint255, + 0xe_big_uint255, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_big_uint255, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_big_uint255, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_big_uint255, }; polynomial_dfs_view b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_bigui255, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_bigui255, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_bigui255, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000003_bigui255, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_bigui255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_big_uint255, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_big_uint255, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_big_uint255, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000003_big_uint255, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_big_uint255, }; polynomial_dfs_view c_res = {6, c_v}; @@ -389,40 +389,40 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { std::vector a_v = { - 0x21_bigui255, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_bigui255, + 0x21_big_uint255, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_big_uint255, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x17_bigui255, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_bigui255, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_bigui255, - 0x11_bigui255, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_bigui255, + 0x17_big_uint255, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_big_uint255, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_big_uint255, + 0x11_big_uint255, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_big_uint255, }; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x2f7_bigui255, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_bigui255, - 0x13522f003a2269a89044690056226900000023000000000048_bigui255, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_bigui255, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_bigui255, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_bigui255, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_bigui255}; + 0x2f7_big_uint255, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_big_uint255, + 0x13522f003a2269a89044690056226900000023000000000048_big_uint255, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_big_uint255, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_big_uint255, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_big_uint255, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_big_uint255}; polynomial_dfs_view c_res = {5, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -435,44 +435,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_without_resize) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { std::vector a_v = { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }; polynomial_dfs_view a = {3, a_v}; std::vector b_v = { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }; polynomial_dfs_view b = {5, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui255, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}; + 0x60f_big_uint255, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -485,44 +485,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_a) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { std::vector a_v = { - 0x2f_bigui255, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_bigui255, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_bigui255, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_bigui255, - 0xd_bigui255, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_bigui255, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_bigui255, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_bigui255, + 0x2f_big_uint255, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_big_uint255, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_big_uint255, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_big_uint255, + 0xd_big_uint255, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_big_uint255, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_big_uint255, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_big_uint255, }; polynomial_dfs_view a = {5, a_v}; std::vector b_v = { - 0x21_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_bigui255, - 0xc250799be244269f448420036244200000015fffffffffffd_bigui255, + 0x21_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_big_uint255, + 0xc250799be244269f448420036244200000015fffffffffffd_big_uint255, }; polynomial_dfs_view b = {3, b_v}; a *= b; std::vector c_v = { - 0x60f_bigui255, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_bigui255, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_bigui255, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_bigui255, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_bigui255, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_bigui255, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_bigui255, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_bigui255, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_bigui255, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_bigui255, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_bigui255, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_bigui255, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_bigui255, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_bigui255, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_bigui255}; + 0x60f_big_uint255, + 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_big_uint255, + 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_big_uint255, + 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_big_uint255, + 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_big_uint255, + 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_big_uint255, + 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_big_uint255, + 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_big_uint255, + 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_big_uint255, + 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_big_uint255, + 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_big_uint255, + 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_big_uint255, + 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_big_uint255, + 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_big_uint255, + 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_big_uint255}; polynomial_dfs_view c_res = {8, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -535,40 +535,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_b) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_multiplication_resize_both) { std::vector a_v = { - 0x37_bigui255, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_bigui255, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_bigui255, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_bigui255, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_bigui255, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_bigui255, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_bigui255, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_bigui255}; + 0x37_big_uint255, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_big_uint255, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_big_uint255, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_big_uint255, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_big_uint255, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_big_uint255, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_big_uint255, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_big_uint255}; polynomial_dfs_view a = {7, a_v}; std::vector b_v = { - 0x17_bigui255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_bigui255, 0x11_bigui255, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_bigui255}; + 0x17_big_uint255, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_big_uint255, 0x11_big_uint255, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_big_uint255}; polynomial_dfs_view b = {2, b_v}; a *= b; std::vector c_v = { - 0x4f1_bigui255, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_bigui255, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_bigui255, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_bigui255, - 0xc250799be244269f44842003624420000001600000000003b_bigui255, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_bigui255, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_bigui255, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_bigui255, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_bigui255, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_bigui255, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_bigui255, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_bigui255, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_bigui255, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_bigui255, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_bigui255}; + 0x4f1_big_uint255, + 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_big_uint255, + 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_big_uint255, + 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_big_uint255, + 0xc250799be244269f44842003624420000001600000000003b_big_uint255, + 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_big_uint255, + 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_big_uint255, + 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_big_uint255, + 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_big_uint255, + 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_big_uint255, + 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_big_uint255, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_big_uint255, + 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_big_uint255, + 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_big_uint255, + 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_big_uint255}; polynomial_dfs_view c_res = {9, c_v}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); @@ -584,35 +584,35 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui255, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}; + 0x13_big_uint255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, - 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_big_uint255, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, + 0xe_big_uint255, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, }; polynomial_dfs_view b = {2, b_v}; a /= b; std::vector q_v = { - 0x1_bigui255, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_bigui255, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_bigui255, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_bigui255, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_bigui255, - 0x8d51ccce760304d0ec030002760300000001000000000000_bigui255, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_bigui255}; + 0x1_big_uint255, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_big_uint255, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_big_uint255, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_big_uint255, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_big_uint255, + 0x8d51ccce760304d0ec030002760300000001000000000000_big_uint255, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_big_uint255}; polynomial_dfs_view q_ans = {3, q_v}; // {0, 0, 0, 1}; BOOST_CHECK_EQUAL(q_ans.size(), a.size()); @@ -625,28 +625,28 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_division) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { // {5, 0, 0, 13, 0, 1}; std::vector a_v = { - 0x13_bigui255, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_bigui255, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_bigui255, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_bigui255, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_bigui255, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_bigui255, - 0x69fd599ad882439cb1024001d88240000000c000000000005_bigui255, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_bigui255}; + 0x13_big_uint255, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_big_uint255, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_big_uint255, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_big_uint255, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_big_uint255, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_big_uint255, + 0x69fd599ad882439cb1024001d88240000000c000000000005_big_uint255, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_big_uint255}; polynomial_dfs_view a = {5, a_v}; //{13, 0, 1}; std::vector b_v = { - 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, - 0xe_bigui255, 0x8d51ccce760304d0ec03000276030000000100000000000d_bigui255, - 0xc_bigui255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_bigui255, + 0xe_big_uint255, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, + 0xe_big_uint255, 0x8d51ccce760304d0ec03000276030000000100000000000d_big_uint255, + 0xc_big_uint255, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_big_uint255, }; polynomial_dfs_view b = {2, b_v}; a %= b; - std::vector r_v = {0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, - 0x5_bigui255, 0x5_bigui255, 0x5_bigui255, 0x5_bigui255}; + std::vector r_v = {0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, + 0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255, 0x5_big_uint255}; polynomial_dfs_view r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); diff --git a/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp b/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp index 9910a037ba..674a7fa404 100644 --- a/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp +++ b/parallel-crypto3/libs/parallel-zk/test/commitment/kzg.cpp @@ -219,13 +219,13 @@ BOOST_AUTO_TEST_CASE(kzg_test_mnt6_accumulated) { std::size_t n = 8; scalar_value_type z = 2u; const polynomial f = { - 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_bigui298, - 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_bigui298, - 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_bigui298, - 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_bigui298, - 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_bigui298, - 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_bigui298, - 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_bigui298, + 0x0ed6fb07f52c1f1ef7952250702368474f20fd7af906ba3a5842cdb7946c69b603852bf1069_big_uint298, + 0x14db9efba58de09f8ccb1d73fefce45393856e6a7509006561fe67ea354ec69d791b44c1476_big_uint298, + 0x0e9fa83a6f8891bc7e6aa1afae85e11dd80cdef32dfcef7cedc12792cf74141c899c8fb1f98_big_uint298, + 0x101cc0b43782ca40ae5bf96aabf461e1a623ab9284acac3bb6d55bff4429356dad714ee0bd0_big_uint298, + 0x1310586a4d1ed251d1e4c95711fb9346a2b233649f5ce32fe1cf3aea423d131787187a13799_big_uint298, + 0x0d9ed064a24e83ac6134de7cca08bdc3e31ffd4db0a004b63039f76821ec2cc53b7e6a74735_big_uint298, + 0x2839e48822f55b4e487b817ddf06a6e32e0dcc0c2ced1e738d38fec15bd4717d7680dda90ec_big_uint298, }; auto f_eval = f.evaluate(alpha); @@ -394,83 +394,83 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 0~-~-~-~ {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_big_uint298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_big_uint298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_big_uint298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_big_uint298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_big_uint298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_big_uint298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_big_uint298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_big_uint298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_big_uint298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_big_uint298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_big_uint298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_big_uint298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_big_uint298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_big_uint298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_big_uint298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_big_uint298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_big_uint298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_big_uint298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_big_uint298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_big_uint298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_big_uint298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_big_uint298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_big_uint298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_big_uint298, }}, {8, { 0x1u, - 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_bigui298, - 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_bigui298, - 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_bigui298, - 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_bigui298, - 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_bigui298, - 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_bigui298, + 0x29ab55a4b34e699f13959ce2c174be01985b7a0c88268d41489977b2219cd8a8a4e33032230_big_uint298, + 0x00f73779fe09916dfdcc2fd1f968d534beb17daf7518cd9fae5c1f7bdcf94dd5d7def6980c4_big_uint298, + 0x0078fe16f00d3d46d50e74ed550e57c9dda4ca5bc69da7a1820913abb7f1f371dd044f1a9c9_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a71660000_big_uint298, + 0x1224262893ebbcc33644de228777f0eafdda5726867d8d5ced4b9a4ebf8fb824c0c3e62ddd1_big_uint298, + 0x3ad84453493094f44c0e4b334f83d9b7d7845383998b4cfe8788f285043342f78dc81fc7f3d_big_uint298, + 0x3b567db6572ce91b74cc0617f3de5722b89106d7480672fcb3dbfe55293a9d5b88a2c745638_big_uint298, }}, {8, { 0x11u, - 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_bigui298, - 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_bigui298, - 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_bigui298, - 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_bigui298, - 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_bigui298, - 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_bigui298, + 0x32765e1dd8b55d57208c21d4b69519f0a9c31da369823c8981592cca8e802a5f94e83d34525_big_uint298, + 0x106aaf19dea2a84dda8f2cf18ff62880a9c958a6c6a5a79a941e1739ac8e2b3355ce6018d04_big_uint298, + 0x0808df85f0e111b425f5c3c2a5f3d467b7f17018307821b9a29a4e6737112a8fad4940c4659_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fff0_big_uint298, + 0x09591daf6e84c90b294e5930925794fbec72b38fa521de14b48be53652ac666dd0bed92badc_big_uint298, + 0x2b64ccb368977e146f4b4e13b8f6866bec6c788c47fe7303a1c6fac7349e659a0fd8b6472fd_big_uint298, + 0x33c69c47565914ae23e4b742a2f8da84de44611ade2bf8e4934ac399aa1b663db85dd59b9a8_big_uint298, }}, {8, { 0x121u, - 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_bigui298, - 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_bigui298, - 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_bigui298, - 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_bigui298, - 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_bigui298, - 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_bigui298, + 0x14837ac17edd19691f5b84d622f5280b0f03870f34ac907aa464fd672612e51d5448d739767_big_uint298, + 0x27d7b182abe493a25c180ff56ba5f4d8ed879e46f66fb6cafe6b42d0f0be9b331c180825d40_big_uint298, + 0x10f7e04a707de031f19d09e27357bd0a0a9ccf351ab20817607510d8e5cab1efb68f204abe7_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165fee0_big_uint298, + 0x274c010bc85d0cf92a7ef62f25f786e187324a23d9f78a2391801499bb19abb0115e3f2689a_big_uint298, + 0x13f7ca4a9b5592bfedc26b0fdd46ba13a8ae32ec183463d33779cf2ff06df59a498f0e3a2c1_big_uint298, + 0x2ad79b82d6bc4630583d7122d594f1e28b9901fdf3f21286d5700127fb61deddaf17f61541a_big_uint298, }}, {8, { 0x1331u, - 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_bigui298, - 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_bigui298, - 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_bigui298, - 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_bigui298, - 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_bigui298, - 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_bigui298, - 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_bigui298, + 0x31adbbd7088bf00fa3cf6b1de5a83e1d102ee2033641130ddd3b79d5216262ef9c92daf0dd2_big_uint298, + 0x136877db5aae278ef135c61203d9be3d51b18584bc5dfeae9447a9d64fbe15917f6a9463135_big_uint298, + 0x3137f5bc5b7349c7e403bbf48520d1f85b927dba8b421f149031d663bdc38db588e4cb76a53_big_uint298, + 0x3bcf7bcd473a266249da7b0548ecaeec9635d1330ea41a9e35e51200e12c90cd65a7165ecd0_big_uint298, + 0x0a21bff63eae3652a60b0fe7634470cf8606ef2fd863079058a9982bbfca2dddc9143b6f22f_big_uint298, + 0x286703f1ec8bfed358a4b4f34512f0af44844bae52461befa19d682a916e7b3be63c81fcecc_big_uint298, + 0x0a978610ebc6dc9a65d6bf10c3cbdcf43aa353788361fb89a5b33b9d23690317dcc24ae95ae_big_uint298, }}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x0u, 0x0u,}}, {8, {0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, 0x1u, 0x1u,}}, @@ -480,9 +480,9 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x1u, 0x0u, 0x0u, - 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_bigui298, - 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_bigui298, - 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_bigui298, + 0x1f8915cc2533543f2bc6164e6238fc23a81c0f463c4646f1d40c1d7dfd0ae08ab78492cbef1_big_uint298, + 0x39bef1b52e65b396fbac77780f097c34e4287e259355a4ea31e0dcfacd0677a359e136b2fdd_big_uint298, + 0x173564dab75ba19b463030c03996325d30e7829fc226518b459919e6d64278946b02141888b_big_uint298, }}, {8, { 0x0u, @@ -490,43 +490,43 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { 0x0u, 0x1u, 0x1u, - 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_bigui298, - 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_bigui298, - 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_bigui298, + 0x0722a67f49f9ecfe9f0874df295dcd87a484fabc9ed6fa56696cb563b4ded702bbe2984c787_big_uint298, + 0x3b1bf86dcd7b7526048b0705c8287a3b97ca771ba445718a3614352160278d229349a1b7d08_big_uint298, + 0x1e127023ee88eeab382e9d07a328168599c3a9e3c0fe99eadb31575515db872426d7356b1bb_big_uint298, }}, //~-~-~-~ commiting to batch: 1~-~-~-~ {8, { - 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_bigui298, - 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_bigui298, - 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_bigui298, - 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_bigui298, - 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_bigui298, - 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_bigui298, - 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_bigui298, - 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_bigui298, + 0x39ef702ef59ff1816e4f51f2ae7fe2d78108c006d5f3039cd1a474ba8c48c16a62518f86863_big_uint298, + 0x17dadc1965bae6d9426ef1a2e6d3640ac4cd96089c55c7dc3800924668fcc450cbaa7de9f4c_big_uint298, + 0x1202bd2e4122c826d8ba7cd66346c0df0326468fd6e7989c8eebe3dedfcbd9b0ecdc1fb41c2_big_uint298, + 0x3b718dda0c9262c55640bd1e364df577ec246e46cb05109733008263282cc1a8959b4bf6fa7_big_uint298, + 0x27b08d175547d973e48f341c081c3851eee512d6e73200bfa47b1e049e1d268409ad2ce21c9_big_uint298, + 0x1872fd6e208095436bfcb92388e0d1c8509c3f8e89235d0430c61add0ab203ac30370518ce6_big_uint298, + 0x304c1332568ebbe7347b598eef6cb41f198a574c4ff7cd151337211efea753ec6fc7d61330b_big_uint298, + 0x1b41e76a1c5a4daa01029a0ec27b5f0b06ca7b480b600b8b573ae00feaab4ad9f1146a99459_big_uint298, }}, {8, { - 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_bigui298, - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, - 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_bigui298, - 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_bigui298, - 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_bigui298, + 0x11cccdf2e5ccc50aa597c4194181c1fe652f508e4aafb2a0137f878c4b3b9d09511285954a1_big_uint298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_big_uint298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_big_uint298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, + 0x011394bbd52cee496c395d41b68e0732c88572384d492e195f8f5b1c7a1c61f6ed67f94c950_big_uint298, + 0x194e4123c5669a48341b2f6b127f0a8b109818666a3d2229f23414de9c5d23d2d63c05309be_big_uint298, + 0x30641ec0f843aeb8202263821cac300d11b237ce42e2876763c8c16513494b993aaf5941f61_big_uint298, }}, {8, { - 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_bigui298, - 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_bigui298, - 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_bigui298, - 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_bigui298, - 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_bigui298, - 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_bigui298, - 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_bigui298, - 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_bigui298, + 0x1e2f5a14babe0e0d4adcace1969a3c78807ea6da4ae1cca797a6bf88c3101397d8d2452a9dc_big_uint298, + 0x360a362e2078f4e68d4b9e847d6da083454c3ce2e7379483cfa751cf2c0cd7e8a47cc314928_big_uint298, + 0x0c3d778f1a6196ab1c2ba05597c7b275b23cb23faf7b128228ae23ad2aac20cc2bb1cc68ae9_big_uint298, + 0x1d871330c3db0fc34493247dc5f22570c08e3c4d3019e89ccadb340ddf48317d9dda6bf5cd9_big_uint298, + 0x114ac4e3bcbc6bf412878efb87080a493920fdbdb54535e797af6c6f15cacfa5a93c46626f0_big_uint298, + 0x0cfede4389503774cda3e57a7034cc1c54ad074f86f551b54a44118a30afd0fc06ad7393ee6_big_uint298, + 0x3b079297527c765d71f9db51a85f47c081d4047080ad9352f6a325410e1e8490ddc59988939_big_uint298, + 0x299eacd3439bb98b27f8cbaafb3983162a895d3de16cb29360ad4b12f5f114dee4f5a065b97_big_uint298, }}, {8, { - 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_bigui298, + 0x126a1e24bba3895afe1e9d30005f807b7df2082352cd5c31f79e7e1faee22ae9ef6d091bb5c_big_uint298, 0x0u, 0x1u, 0x0u, 0x0u, 0x0u, 0x0u, 0x0u, }}, @@ -535,24 +535,24 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { //~-~-~-~ commiting to batch: 3~-~-~-~ {8, { - 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_bigui298, - 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_bigui298, - 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_bigui298, - 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_bigui298, - 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_bigui298, - 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_bigui298, - 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_bigui298, - 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_bigui298, + 0x2783a8a7c5cf7e94e4d1fdc4aa6eb807ea4eddbf81ea87939f040dc851e9212b9dca604ac9a_big_uint298, + 0x13230785fb96c79b65251354a51866632384c4dc7ceff4e48dc2fac8f09db1ce7367e20608b_big_uint298, + 0x2ccbbf5a905e4515c62fede907c2625d90bfda58027217f7e58155b67d5851fb4cf46f04364_big_uint298, + 0x17adaf6b5019e118bc7ac6213b0dc84cf1a9cada9cc620471384b7a191db27251337ec3d3b7_big_uint298, + 0x05b19c26a34901d91528679eeac2c7f311aa3f5f0fa669855b10522373949671df3f1e23c38_big_uint298, + 0x37421ad4e9cf2ccadc50246390593aa253e4ca3ba5767e931130a2f905a49443e0e02fc0ce8_big_uint298, + 0x2a2814a40ce271f86b0369793c4c79d31686212ad02a382f6288ef94cabe1e2cff80ce74bd5_big_uint298, + 0x383fcb086d115688ba77b1449bd46480f3bd7cbb070242833338005e60dcaa9ba238c801961_big_uint298, }}, {8, { - 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_bigui298, - 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_bigui298, - 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_bigui298, - 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_bigui298, - 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_bigui298, - 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_bigui298, - 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_bigui298, - 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_bigui298, + 0x0710f09328ac0442d2d93a61f4eda9b265a27ea0570484e3a1cf1aaa249974ea1a99377a11c_big_uint298, + 0x2bb0eec490c8ac0bbe164c6ee7072a8989e33a7006d8f222b1476b15c2ef0386b49b7d6bc28_big_uint298, + 0x3552ef5f48bc3702e4e9f8fc7b236de25d1a78e256d8417ff106bbc75b7cbfc36c8977b2896_big_uint298, + 0x3871e84395a7af9c0fdd19321af6b742815a982bb5f59bcf7be6793caa98f4a919032d2969d_big_uint298, + 0x153bd600c1074537112d1df7afd22932c713cc84c08d3c197cbdd9d84b675ab9c62e78d36a0_big_uint298, + 0x12d86d35994854ef3606ae63e5114209bec8dbb0d3ebb1bb9a786fd27ced58870d3779d3d7a_big_uint298, + 0x2e0895904268862017c64e0a495813bf84b1d2137a53102097557bd90c2aac21c0802fc1787_big_uint298, + 0x0742ee092a59ae6b7169ac51e7339c52adc1dc74471e0d207a3d29dd37d60ea9bc9438e5c15_big_uint298, }}, math::polynomial_dfs::zero(), math::polynomial_dfs::zero(), @@ -578,39 +578,39 @@ BOOST_AUTO_TEST_CASE(batched_kzg_placeholder_repr) { } std::vector> S = { - /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298,}, - /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, - /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298,}, + /* points_k_i:0,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,6: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,7: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,8: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:0,9: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:0,10:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:0,11:*/ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:1,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:2,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298,}, + /* points_k_i:3,0: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,1: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,2: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,3: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,4: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, + /* points_k_i:3,5: */ {0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298,}, }; std::vector T = zk::algorithms::merge_eval_points(S); { std::vector T_check = { - 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_bigui298, - 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_bigui298, + 0x3a3eeb9eda157d043c7a56f0bb263b4d1bc21dc74cfb1b5e9a80f65a461c3916_big_uint298, + 0x3afff0e9becdc8be161a77a403b466aa7d696ebe365418763ba1157a5aa27fd000e04d44b99_big_uint298, }; std::sort(T.begin(), T.end()); BOOST_CHECK(T == T_check); diff --git a/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp b/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp index 94b983a1cd..e9e49d829e 100644 --- a/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp +++ b/parallel-crypto3/libs/parallel-zk/test/transcript/transcript.cpp @@ -62,12 +62,12 @@ BOOST_AUTO_TEST_CASE(zk_transcript_manual_test) { auto ch2 = tr.challenge(); auto ch_n = tr.challenges(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_bigui254).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_bigui254).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0xe858ba005424eabd6d97de7e930779def59a85c1a9ff7e8a5d001cdb07f6e4_big_uint254).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0xf61f38f58a55b3bbee0480fc5ec3cf8df81603579f4f7134f764bfd3ca5938b_big_uint254).data); - BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_bigui254).data); - BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_bigui254).data); + BOOST_CHECK_EQUAL(ch_n[0].data, field_type::value_type(0x4f6b97a9bc99d6996fab5e03d1cd0b418a9b3c97ed64cca070e15777e7cc99a_big_uint254).data); + BOOST_CHECK_EQUAL(ch_n[1].data, field_type::value_type(0x2414ddf7ecff246500beb2c01b0c5912a400bc3cdca6d7f24bd2bd4987b21e04_big_uint254).data); + BOOST_CHECK_EQUAL(ch_n[2].data, field_type::value_type(0x10bfe2f4a414eec551dda5fd9899e9b46e327648b4fa564ed0517b6a99396aec_big_uint254).data); } BOOST_AUTO_TEST_SUITE_END() @@ -89,8 +89,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x27B1BE8A820DE1A5E91A441F59F29D42D9DB9FC7778A0852819F331D5CD60B43_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x12096E03B2ADEC9B317042D36F048C06AF123EED4A3FC040579E66DCE46C0AEE_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0x6296); init_blob = {}; @@ -99,8 +99,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_init_test) { ch2 = tr.challenge(); ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947FA1063436F4E5434029CCAEC64075C9FC80034C0923054A2B1D30BD2_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1B961886411EE8722DD6B576CBA5876EB30999B5237FE0E14255E6D006CFF63C_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0xC92); } @@ -114,8 +114,8 @@ BOOST_AUTO_TEST_CASE(zk_poseidon_transcript_no_init_test) { auto ch2 = tr.challenge(); int ch_int = tr.int_challenge(); - BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_bigui255).data); - BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_bigui255).data); + BOOST_CHECK_EQUAL(ch1.data, field_type::value_type(0x35626947fa1063436f4e5434029ccaec64075c9fc80034c0923054a2b1d30bd2_big_uint255).data); + BOOST_CHECK_EQUAL(ch2.data, field_type::value_type(0x1b961886411ee8722dd6b576cba5876eb30999b5237fe0e14255e6d006cff63c_big_uint255).data); BOOST_CHECK_EQUAL(ch_int, 0xc92); } @@ -140,20 +140,20 @@ void test_transcript(typename curve_type::base_field_type::value_type const& exp BOOST_AUTO_TEST_CASE(mnt4_keccak) { test_transcript> - (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_bigui298); + (0xb985b0419fda7e26db3867b38cbb55465717e8d3ff208768cac6949bd68c2b7_big_uint298); } BOOST_AUTO_TEST_CASE(mnt6_keccak) { test_transcript> - (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_bigui298); + (0x56d23a0a6f75fe3a7670906b341b29cdde80696fc418771e3c84910217546ef1_big_uint298); } BOOST_AUTO_TEST_CASE(bls12_keccak) { test_transcript> - (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_bigui381); + (0x7cc24317960f68f067e0a1cfe610fe3db024d52b064ff2115ea0f594602f0784_big_uint381); /* TODO: no marshalling for bls12-377 curve test_transcript> - (0x0_bigui377); + (0x0_big_uint377); */ } @@ -163,7 +163,7 @@ BOOST_AUTO_TEST_CASE(pallas_poseidon) { using hash_type = hashes::poseidon>; test_transcript - (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_bigui256); + (0xb4a4cca5ad2d998a81ce64953c1fe0b16e27e4d298808165644421eebd2bc3a_big_uint256); } BOOST_AUTO_TEST_SUITE_END() From b4401eccd9a0ecbdaf4e1c6bf5ff7117d082e404 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Fri, 6 Dec 2024 14:00:43 +0000 Subject: [PATCH 14/18] proof-generator: use zkevm_word_integral_type --- .../include/nil/proof-generator/assigner/trace_parser.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp b/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp index b3008c7898..ffead47970 100644 --- a/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp +++ b/proof-producer/libs/assigner/include/nil/proof-generator/assigner/trace_parser.hpp @@ -34,9 +34,9 @@ namespace nil { // Convert protobuf Uint256 to zkevm_word_type [[nodiscard]] blueprint::zkevm_word_type proto_uint256_to_zkevm_word(const executionproofs::Uint256& pb_uint) { - blueprint::zkevm_word_type result = 0; + blueprint::zkevm_word_integral_type result = 0; for (size_t i = 0; i < pb_uint.word_parts_size() && i < 4; i++) { - result |= (static_cast(pb_uint.word_parts(i)) << (i * 64)); + result |= (static_cast(pb_uint.word_parts(i)) << (i * 64)); } return result; } From a4c7e60236ce44f3725bd58f0891d367a46f084e Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Mon, 9 Dec 2024 15:22:49 +0000 Subject: [PATCH 15/18] big_mod: pow: support negative exponent --- .../crypto3/multiprecision/modular/ops/pow.hpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp index 7c1794b054..49ca5c6ef3 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/ops/pow.hpp @@ -13,21 +13,27 @@ // IWYU pragma: private; include "nil/crypto3/multiprecision/big_mod.hpp" -#include #include #include -#include "nil/crypto3/multiprecision/big_uint.hpp" #include "nil/crypto3/multiprecision/modular/big_mod_impl.hpp" +#include "nil/crypto3/multiprecision/modular/ops/inverse.hpp" namespace nil::crypto3::multiprecision { template && - std::numeric_limits>::is_integer, + std::numeric_limits::is_integer, int> = 0> - constexpr big_mod_t pow(const big_mod_t &b, T &&e) { + constexpr big_mod_t pow(big_mod_t b, T e) { + if constexpr (std::is_signed_v) { + if (e < 0) { + b = inverse_extended_euclidean_algorithm(b); + // TODO(ioxid): this won't work for e == min() + e = -e; + } + } auto result = b; - result.ops().exp(result.raw_base(), b.raw_base(), std::forward(e)); + result.ops().exp(result.raw_base(), b.raw_base(), std::move(e)); return result; } } // namespace nil::crypto3::multiprecision From 080817f507695ee62c893e6efae0f11373d0042a Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Mon, 9 Dec 2024 17:55:18 +0000 Subject: [PATCH 16/18] big_uint, big_mod: optimizations --- .../crypto3/multiprecision/big_uint_impl.hpp | 4 +-- .../multiprecision/modular/big_mod_impl.hpp | 30 ++++++++++++++++--- .../multiprecision/modular/modular_ops.hpp | 14 +++++---- 3 files changed, 37 insertions(+), 11 deletions(-) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp index 5327aead16..1ccd224209 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/big_uint_impl.hpp @@ -1216,8 +1216,8 @@ namespace nil::crypto3::multiprecision { template static constexpr void multiply(big_uint& result, const big_uint& a, const big_uint& b) noexcept { - std::size_t as = a.limbs_count(); - std::size_t bs = b.limbs_count(); + std::size_t as = a.used_limbs(); + std::size_t bs = b.used_limbs(); const_limb_pointer pa = a.limbs(); const_limb_pointer pb = b.limbs(); limb_pointer pr = result.limbs(); diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp index 959c842bc7..1e4c108447 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/big_mod_impl.hpp @@ -23,6 +23,7 @@ #include "nil/crypto3/multiprecision/big_uint_impl.hpp" #include "nil/crypto3/multiprecision/detail/assert.hpp" +#include "nil/crypto3/multiprecision/integer_ops_base.hpp" // IWYU pragma: keep (used for is_zero) #include "nil/crypto3/multiprecision/modular/modular_ops.hpp" #include "nil/crypto3/multiprecision/modular/modular_ops_storage.hpp" @@ -42,7 +43,14 @@ namespace nil::crypto3::multiprecision { template constexpr big_mod_impl(const T& b, const modular_ops_storage_t& modular_ops_storage) : m_modular_ops_storage(modular_ops_storage) { - init_raw_base(m_raw_base, b, ops()); + if (!nil::crypto3::multiprecision::is_zero(b)) { + init_raw_base(m_raw_base, b, ops()); + } + } + + constexpr big_mod_impl(const modular_ops_storage_t& modular_ops_storage) + : m_modular_ops_storage(modular_ops_storage) { + // NB: m_raw_base is initialized to zero, this is correct for Montgomery form too } public: @@ -105,12 +113,16 @@ namespace nil::crypto3::multiprecision { using typename base_type::modular_ops_storage_t; using typename base_type::modular_ops_t; - constexpr big_mod_ct_impl() : base_type(big_uint_t{}, {}) {} + constexpr big_mod_ct_impl() : base_type({}) {} template, int> = 0> constexpr big_mod_ct_impl(const T& b) : base_type(b, {}) {} // For generic code + + constexpr big_mod_ct_impl(const modular_ops_storage_t& ops_storage) + : base_type(ops_storage) {} + template, int> = 0> constexpr big_mod_ct_impl(const T& b, const modular_ops_storage_t& ops_storage) : base_type(b, ops_storage) {} @@ -127,11 +139,18 @@ namespace nil::crypto3::multiprecision { using typename base_type::modular_ops_storage_t; using typename base_type::modular_ops_t; + template, int> = 0> + constexpr big_mod_rt_impl(const T& m) : base_type(m) {} + template && detail::is_integral_v, int> = 0> + std::enable_if_t && detail::is_integral_v, int> = 0> constexpr big_mod_rt_impl(const T1& b, const T2& m) : base_type(b, m) {} // For generic code + + constexpr big_mod_rt_impl(const modular_ops_storage_t& ops_storage) + : base_type(ops_storage) {} + template, int> = 0> constexpr big_mod_rt_impl(const T& b, const modular_ops_storage_t& ops_storage) : base_type(b, ops_storage) {} @@ -160,6 +179,9 @@ namespace nil::crypto3::multiprecision { std::enable_if_t, int> = 0> typename modular_ops_t::big_uint_t convert_to_raw_base(const S& s, const modular_ops_t& ops) { + if (nil::crypto3::multiprecision::is_zero(s)) { + return typename modular_ops_t::big_uint_t{}; + } typename modular_ops_t::big_uint_t result; init_raw_base(result, s, ops); return result; @@ -229,7 +251,7 @@ namespace nil::crypto3::multiprecision { typename big_mod_t = std::conditional_t, T1, T2>> \ constexpr auto operator OP_(const T1& a, const T2& b) noexcept { \ const auto& ops_storage = detail::get_ops_storage_from_operands(a, b); \ - big_mod_t result(0u, ops_storage); \ + big_mod_t result(ops_storage); \ result.raw_base() = detail::convert_to_raw_base(a, ops_storage.ops()); \ ops_storage.ops().METHOD_(result.raw_base(), \ detail::convert_to_raw_base(b, ops_storage.ops())); \ diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp index fbf7a18249..5e3f44347a 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/modular/modular_ops.hpp @@ -231,6 +231,7 @@ namespace nil::crypto3::multiprecision::detail { template constexpr void adjust_modular(big_uint_t &result, big_uint input) const { + // TODO(ioxid): optimize for cases where input is 1 barrett_reduce(result, input); } @@ -281,6 +282,9 @@ namespace nil::crypto3::multiprecision::detail { m_montgomery_r2 = static_cast(r); m_no_carry_montgomery_mul_allowed = is_applicable_for_no_carry_montgomery_mul(); + + m_one = 1u; + adjust_modular(m_one); } private: @@ -289,7 +293,7 @@ namespace nil::crypto3::multiprecision::detail { * is even. If input is odd, then input and 2^n are relatively prime * and an inverse exists. */ - constexpr static limb_type monty_inverse(const limb_type &a) { + static constexpr limb_type monty_inverse(const limb_type &a) { if (a % 2 == 0) { throw std::invalid_argument("inverse does not exist"); } @@ -564,14 +568,12 @@ namespace nil::crypto3::multiprecision::detail { /// input parameter should be less than modulus NIL_CO3_MP_ASSERT(a < this->mod()); - big_uint_t R_mod_m(1u); - adjust_modular(R_mod_m); + big_uint_t R_mod_m = m_one; big_uint_t base(a); if (is_zero(exp)) { - result = 1u; - adjust_modular(result); + result = m_one; return; } if (this->mod() == 1u) { @@ -599,6 +601,7 @@ namespace nil::crypto3::multiprecision::detail { template constexpr void adjust_modular(big_uint_t &result, const big_uint &input) const { + // TODO(ioxid): optimize for cases where input is 0 or 1 big_uint_doubled_limbs tmp; this->barrett_reduce(tmp, input); tmp *= r2(); @@ -617,6 +620,7 @@ namespace nil::crypto3::multiprecision::detail { protected: big_uint_t m_montgomery_r2; limb_type m_montgomery_p_dash; + big_uint_t m_one; // If set, no-carry optimization is allowed. Is set to // is_applicable_for_no_carry_montgomery_mul() after initialization. From 0b9efbbb42dbac5e7de9942c61b9e830c8e3feb8 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Tue, 10 Dec 2024 13:31:32 +0000 Subject: [PATCH 17/18] big_uint: fix tests --- crypto3/libs/multiprecision/test/big_int.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crypto3/libs/multiprecision/test/big_int.cpp b/crypto3/libs/multiprecision/test/big_int.cpp index 049d445eec..75b7ef2e2d 100644 --- a/crypto3/libs/multiprecision/test/big_int.cpp +++ b/crypto3/libs/multiprecision/test/big_int.cpp @@ -113,12 +113,12 @@ BOOST_AUTO_TEST_SUITE(addition) BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_big_uint60 + 0x3_big_uint60, 0x5_big_uint60); } -BOOST_AUTO_TEST_CASE(does_not_wrap) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 + 0x2_big_uint32, 0x100000001_big_uint33); +BOOST_AUTO_TEST_CASE(wraps) { + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 + 0x2_big_uint32, 0x00000001_big_uint32); } -BOOST_AUTO_TEST_CASE(does_not_wrap_rev) { - BOOST_CHECK_EQUAL(0x2_big_uint32 + 0xFFFFFFFF_big_uint32, 0x100000001_big_uint33); +BOOST_AUTO_TEST_CASE(wraps_rev) { + BOOST_CHECK_EQUAL(0x2_big_uint32 + 0xFFFFFFFF_big_uint32, 0x00000001_big_uint32); } BOOST_AUTO_TEST_CASE(multilimb) { @@ -136,11 +136,11 @@ BOOST_AUTO_TEST_SUITE(multiplication) BOOST_AUTO_TEST_CASE(simple) { BOOST_CHECK_EQUAL(0x2_big_uint60 * 0x3_big_uint60, 0x6_big_uint60); } BOOST_AUTO_TEST_CASE(wraps) { - BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 * 0x2_big_uint32, 0x1FFFFFFFE_big_uint33); + BOOST_CHECK_EQUAL(0xFFFFFFFF_big_uint32 * 0x2_big_uint32, 0xFFFFFFFE_big_uint32); } BOOST_AUTO_TEST_CASE(multilimb) { - BOOST_CHECK_EQUAL(0xAFFFFFFFF_big_uint36 * 0x2_big_uint36, 0x15FFFFFFFE_big_uint37); + BOOST_CHECK_EQUAL(0xAFFFFFFFF_big_uint36 * 0x2_big_uint36, 0x5FFFFFFFE_big_uint36); } BOOST_AUTO_TEST_SUITE_END() From 53a6f4a00c1a235e475ff2023b757d78cbe1abf0 Mon Sep 17 00:00:00 2001 From: Andrey Nefedov Date: Tue, 10 Dec 2024 14:00:09 +0000 Subject: [PATCH 18/18] Clarify TODO in import_bits_generic --- .../include/nil/crypto3/multiprecision/ops/import_export.hpp | 1 + 1 file changed, 1 insertion(+) diff --git a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp index 8e9ae2e71a..9bea324b66 100644 --- a/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp +++ b/crypto3/libs/multiprecision/include/nil/crypto3/multiprecision/ops/import_export.hpp @@ -125,6 +125,7 @@ namespace nil::crypto3::multiprecision { size_type bits = limbs * chunk_size; // TODO(ioxid): this breaks marshalling tests + // We should throw an exception here. And check that excess bits are zero. // NIL_CO3_MP_ASSERT(bits <= Bits); difference_type bit_location = msv_first ? bits - chunk_size : 0;