From 00730e2eafa1172bd92336ab1e6495b6f946a18c Mon Sep 17 00:00:00 2001 From: Martun Karapetyan <martun.karapetyan@gmail.com> Date: Wed, 15 May 2024 17:59:05 +0400 Subject: [PATCH] Some changes related to recent changes in multiprecision. (#84) --- .../crypto3/math/algorithms/unity_root.hpp | 28 +- .../math/domains/evaluation_domain.hpp | 4 +- .../math/domains/step_radix2_domain.hpp | 2 +- .../math/polynomial/basic_operations.hpp | 6 +- .../crypto3/math/polynomial/polynomial.hpp | 28 +- .../math/polynomial/polynomial_dfs.hpp | 9 +- .../math/polynomial/polynomial_dfs_view.hpp | 2 +- .../math/polynomial/polynomial_view.hpp | 2 +- test/evaluation_domain.cpp | 24 +- test/polynomial.cpp | 57 +- test/polynomial_arithmetic.cpp | 112 +- test/polynomial_dfs.cpp | 1225 +++++++++-------- test/polynomial_dfs_view.cpp | 600 ++++---- test/polynomial_view.cpp | 107 +- 14 files changed, 1120 insertions(+), 1086 deletions(-) diff --git a/include/nil/crypto3/math/algorithms/unity_root.hpp b/include/nil/crypto3/math/algorithms/unity_root.hpp index e464c00..168a8f8 100644 --- a/include/nil/crypto3/math/algorithms/unity_root.hpp +++ b/include/nil/crypto3/math/algorithms/unity_root.hpp @@ -88,10 +88,10 @@ namespace nil { * @return a root of unity. */ template<typename Backend, - multiprecision::expression_template_option ExpressionTemplates> - multiprecision::number<Backend, ExpressionTemplates> - unity_root(uint32_t m, const multiprecision::number<Backend, ExpressionTemplates> &modulo) { - using namespace multiprecision; + boost::multiprecision::expression_template_option ExpressionTemplates> + boost::multiprecision::number<Backend, ExpressionTemplates> + unity_root(uint32_t m, const boost::multiprecision::number<Backend, ExpressionTemplates> &modulo) { + using namespace boost::multiprecision; number<Backend, ExpressionTemplates> M(m); @@ -99,9 +99,9 @@ namespace nil { return {}; } - number<modular_adaptor<Backend, backends::modular_params_rt<Backend>>, ExpressionTemplates> - gen(find_generator(modulo), modulo), result = multiprecision::pow(gen, (modulo - 1) / M); - if (result == 1) { + number<backends::modular_adaptor<Backend, backends::modular_params_rt<Backend>>, ExpressionTemplates> + gen(find_generator(modulo), modulo), result = boost::multiprecision::pow(gen, (modulo - 1) / M); + if (result == 1u) { result = unity_root(m, modulo); } @@ -120,20 +120,20 @@ namespace nil { * */ - multiprecision::number<Backend, ExpressionTemplates> mu = modulo.ComputeMu(); - multiprecision::number<Backend, ExpressionTemplates> x(1); + boost::multiprecision::number<Backend, ExpressionTemplates> mu = modulo.ComputeMu(); + boost::multiprecision::number<Backend, ExpressionTemplates> x(1); x.ModMulEq(result, modulo, mu); - multiprecision::number<Backend, ExpressionTemplates> minRU(x); - multiprecision::number<Backend, ExpressionTemplates> curPowIdx(1); - std::vector<multiprecision::number<Backend, ExpressionTemplates>> coprimes = algebra::totient_list<multiprecision::number<Backend, ExpressionTemplates>>( + boost::multiprecision::number<Backend, ExpressionTemplates> minRU(x); + boost::multiprecision::number<Backend, ExpressionTemplates> curPowIdx(1); + std::vector<boost::multiprecision::number<Backend, ExpressionTemplates>> coprimes = algebra::totient_list<boost::multiprecision::number<Backend, ExpressionTemplates>>( m); for (uint32_t i = 0; i < coprimes.size(); i++) { auto nextPowIdx = coprimes[i]; - multiprecision::number<Backend, ExpressionTemplates> diffPow(nextPowIdx - curPowIdx); + boost::multiprecision::number<Backend, ExpressionTemplates> diffPow(nextPowIdx - curPowIdx); for (std::size_t j = 0; j < diffPow; j++) { x.ModMulEq(result, modulo, mu); } - if (x < minRU && x != multiprecision::number<Backend, ExpressionTemplates>(1)) { + if (x < minRU && x != boost::multiprecision::number<Backend, ExpressionTemplates>(1)) { minRU = x; } curPowIdx = nextPowIdx; diff --git a/include/nil/crypto3/math/domains/evaluation_domain.hpp b/include/nil/crypto3/math/domains/evaluation_domain.hpp index dfbdaaf..7c95906 100644 --- a/include/nil/crypto3/math/domains/evaluation_domain.hpp +++ b/include/nil/crypto3/math/domains/evaluation_domain.hpp @@ -28,7 +28,7 @@ #include <vector> -#include <nil/crypto3/multiprecision/integer.hpp> +#include <boost/multiprecision/integer.hpp> #include <nil/crypto3/math/polynomial/polynomial.hpp> namespace nil { @@ -55,7 +55,7 @@ namespace nil { * * (See the function get_evaluation_domain below.) */ - evaluation_domain(const std::size_t m) : m(m), log2_size(multiprecision::msb(m)) {}; + evaluation_domain(const std::size_t m) : m(m), log2_size(boost::multiprecision::msb(m)) {}; inline std::size_t size() const { return m; diff --git a/include/nil/crypto3/math/domains/step_radix2_domain.hpp b/include/nil/crypto3/math/domains/step_radix2_domain.hpp index 7dce339..1291234 100755 --- a/include/nil/crypto3/math/domains/step_radix2_domain.hpp +++ b/include/nil/crypto3/math/domains/step_radix2_domain.hpp @@ -177,7 +177,7 @@ namespace nil { } // compute A_prefix - const field_value_type over_two = field_value_type(2).inversed(); + const field_value_type over_two = field_value_type(2u).inversed(); for (std::size_t i = 0; i < small_m; ++i) { a[i] = (U0[i] + U1[i]) * over_two; } diff --git a/include/nil/crypto3/math/polynomial/basic_operations.hpp b/include/nil/crypto3/math/polynomial/basic_operations.hpp index 3747964..e9f896c 100755 --- a/include/nil/crypto3/math/polynomial/basic_operations.hpp +++ b/include/nil/crypto3/math/polynomial/basic_operations.hpp @@ -32,6 +32,7 @@ #include <nil/crypto3/math/algorithms/unity_root.hpp> #include <nil/crypto3/math/domains/detail/basic_radix2_domain_aux.hpp> #include <nil/crypto3/math/detail/field_utils.hpp> +#include <nil/crypto3/detail/type_traits.hpp> namespace nil { namespace crypto3 { @@ -94,7 +95,8 @@ namespace nil { * @param &power is the exponent. * @return exponentiated polynomial (input^power). */ - template<typename FieldRange, typename IntegerType> + template<typename FieldRange, typename IntegerType, + typename = typename std::enable_if<nil::crypto3::detail::is_range<FieldRange>::value>::type> FieldRange power(const FieldRange &input, IntegerType power) { typedef typename std::iterator_traits<decltype(std::begin( @@ -321,7 +323,7 @@ namespace nil { [&c](const value_type &value) { return value * c; }); // We will always have no reminder here. r.resize(1); - r[0] = 0; + r[0] = 0u; } // Special case when B = X^N + C. else if (b.back() == value_type::one() && is_zero(b.begin() + 1, b.end() - 1) && a.size() >= b.size()) { diff --git a/include/nil/crypto3/math/polynomial/polynomial.hpp b/include/nil/crypto3/math/polynomial/polynomial.hpp index f10f46d..5dff93b 100644 --- a/include/nil/crypto3/math/polynomial/polynomial.hpp +++ b/include/nil/crypto3/math/polynomial/polynomial.hpp @@ -55,24 +55,24 @@ namespace nil { typedef typename container_type::reverse_iterator reverse_iterator; typedef typename container_type::const_reverse_iterator const_reverse_iterator; - polynomial() : val(1, 0) { + polynomial() : val(1, FieldValueType::zero()) { } - explicit polynomial(size_type n) : val(n) { + explicit polynomial(size_type n) : val(n, FieldValueType::zero()) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } - explicit polynomial(size_type n, const allocator_type& a) : val(n, a) { + explicit polynomial(size_type n, const allocator_type& a) : val(n, FieldValueType::zero(), a) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } polynomial(size_type n, const value_type& x) : val(n, x) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } @@ -81,14 +81,14 @@ namespace nil { template<typename InputIterator> polynomial(InputIterator first, InputIterator last) : val(first, last) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } template<typename InputIterator> polynomial(InputIterator first, InputIterator last, const allocator_type& a) : val(first, last, a) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } @@ -113,19 +113,19 @@ namespace nil { polynomial(polynomial&& x, const allocator_type& a) : val(x.val, a) { } - polynomial(const FieldValueType& value, std::size_t power = 0) : val(power + 1, FieldValueType(0)) { + polynomial(const FieldValueType& value, std::size_t power = 0) : val(power + 1, FieldValueType::zero()) { this->operator[](power) = value; } explicit polynomial(const container_type &c) : val(c) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } explicit polynomial(container_type &&c) : val(c) { if (val.empty()) { - val.push_back(0); + val.push_back(FieldValueType::zero()); } } @@ -363,7 +363,7 @@ namespace nil { } FieldValueType evaluate(const FieldValueType& value) const { - FieldValueType result = 0; + FieldValueType result = FieldValueType::zero(); auto end = this->end(); while (end != this->begin()) { result = result * value + *--end; @@ -376,7 +376,7 @@ namespace nil { */ bool is_zero() const { return std::all_of(this->begin(), this->end(), - [](FieldValueType i) { return i == FieldValueType(0); }); + [](FieldValueType i) { return i == FieldValueType::zero(); }); } /** @@ -385,7 +385,7 @@ namespace nil { bool is_one() const { return (*this->begin() == FieldValueType(1)) && std::all_of(++this->begin(), this->end(), - [](FieldValueType i) { return i == FieldValueType(0); }); + [](FieldValueType i) { return i == FieldValueType::zero(); }); } inline static polynomial zero() { diff --git a/include/nil/crypto3/math/polynomial/polynomial_dfs.hpp b/include/nil/crypto3/math/polynomial/polynomial_dfs.hpp index 25ec80d..e448c3d 100644 --- a/include/nil/crypto3/math/polynomial/polynomial_dfs.hpp +++ b/include/nil/crypto3/math/polynomial/polynomial_dfs.hpp @@ -67,8 +67,7 @@ namespace nil { typedef typename container_type::const_reverse_iterator const_reverse_iterator; // Default constructor creates a zero polynomial of degree 0 and size 1. - polynomial_dfs() : val(1, 0) { - _d = 0; + polynomial_dfs() : val(1, FieldValueType::zero()), _d(0) { } explicit polynomial_dfs(size_t d, size_type n) : val(n), _d(d) { @@ -111,7 +110,7 @@ namespace nil { polynomial_dfs(const polynomial_dfs& x, const allocator_type& a) : val(x.val, a), _d(x._d) { } - polynomial_dfs(size_t d, std::initializer_list<value_type> il) : val(il), _d(d) { + polynomial_dfs(std::size_t d, std::initializer_list<value_type> il) : val(il), _d(d) { } polynomial_dfs(size_t d, std::initializer_list<value_type> il, const allocator_type& a) : @@ -364,7 +363,7 @@ namespace nil { FieldValueType evaluate(const FieldValueType& value) const { std::vector<FieldValueType> tmp = this->coefficients(); - FieldValueType result = 0; + FieldValueType result = FieldValueType::zero(); auto end = tmp.end(); while (end != tmp.begin()) { result = result * value + *--end; @@ -399,7 +398,7 @@ namespace nil { } inline static polynomial_dfs one() { - return polynomial_dfs(0, size_type(1), value_type(1)); + return polynomial_dfs(0, size_type(1), value_type::one()); } /** diff --git a/include/nil/crypto3/math/polynomial/polynomial_dfs_view.hpp b/include/nil/crypto3/math/polynomial/polynomial_dfs_view.hpp index 77b1411..2ba563f 100644 --- a/include/nil/crypto3/math/polynomial/polynomial_dfs_view.hpp +++ b/include/nil/crypto3/math/polynomial/polynomial_dfs_view.hpp @@ -495,7 +495,7 @@ namespace nil { tmp.begin(), std::bind(std::multiplies<value_type>(), sconst, std::placeholders::_1)); size_t r_size = tmp.size(); - while (r_size > 0 && tmp[r_size - 1] == FieldValueType(0)) { + while (r_size > 0 && tmp[r_size - 1] == FieldValueType::zero()) { --r_size; } tmp.resize(r_size); diff --git a/include/nil/crypto3/math/polynomial/polynomial_view.hpp b/include/nil/crypto3/math/polynomial/polynomial_view.hpp index baf3ccf..d4bb38a 100644 --- a/include/nil/crypto3/math/polynomial/polynomial_view.hpp +++ b/include/nil/crypto3/math/polynomial/polynomial_view.hpp @@ -315,7 +315,7 @@ namespace nil { */ bool is_zero() const { return std::all_of(this->begin(), this->end(), - [](FieldValueType i) { return i == FieldValueType(0); }); + [](FieldValueType i) { return i == FieldValueType::zero(); }); } /** diff --git a/test/evaluation_domain.cpp b/test/evaluation_domain.cpp index c635885..58d565c 100755 --- a/test/evaluation_domain.cpp +++ b/test/evaluation_domain.cpp @@ -76,7 +76,7 @@ void test_fft() { typedef typename FieldType::value_type value_type; const std::size_t m = 4; - std::vector<value_type> f = {2, 5, 3, 8}; + std::vector<value_type> f = {2u, 5u, 3u, 8u}; std::shared_ptr<evaluation_domain<FieldType>> domain = make_evaluation_domain<FieldType>(m); @@ -139,7 +139,7 @@ template<typename FieldType> void test_inverse_fft_of_fft() { typedef typename FieldType::value_type value_type; const std::size_t m = 4; - std::vector<value_type> f = {2, 5, 3, 8}; + std::vector<value_type> f = {2u, 5u, 3u, 8u}; std::shared_ptr<evaluation_domain<FieldType>> domain = make_evaluation_domain<FieldType>(m); @@ -158,7 +158,7 @@ template<typename FieldType> void test_inverse_coset_ftt_of_coset_fft() { typedef typename FieldType::value_type value_type; const std::size_t m = 4; - std::vector<value_type> f = {2, 5, 3, 8}; + std::vector<value_type> f = {2u, 5u, 3u, 8u}; value_type coset = value_type(fields::arithmetic_params<FieldType>::multiplicative_generator); @@ -182,7 +182,7 @@ void test_lagrange_coefficients() { typedef typename FieldType::value_type value_type; const std::size_t m = 8; - value_type t = value_type(10); + value_type t = value_type(10u); std::shared_ptr<evaluation_domain<FieldType>> domain; @@ -210,7 +210,7 @@ void test_compute_z() { typedef typename FieldType::value_type value_type; const std::size_t m = 8; - value_type t = value_type(10); + value_type t = value_type(10u); std::shared_ptr<evaluation_domain<FieldType>> domain; domain = make_evaluation_domain<FieldType>(m); @@ -238,7 +238,9 @@ void test_fft_curve_elements() { // Make sure the results are reproducible. std::srand(0); std::vector<field_value_type> f(m); - std::generate(f.begin(), f.end(), std::rand); + for(std::size_t i = 0; i < m; ++i) { + f[i] = unsigned(std::rand()); + } std::vector<value_type> g(m); for(std::size_t i = 0; i < m; ++i) { g[i] = value_type::one() * f[i]; @@ -274,7 +276,9 @@ void test_inverse_fft_curve_elements() { // Make sure the results are reproducible. std::srand(0); std::vector<field_value_type> f(m); - std::generate(f.begin(), f.end(), std::rand); + for(std::size_t i = 0; i < m; ++i) { + f[i] = unsigned(std::rand()); + } std::vector<value_type> g(m); for(std::size_t i = 0; i < m; ++i) { g[i] = value_type::one() * f[i]; @@ -306,7 +310,7 @@ void test_lagrange_coefficients_from_powers(std::size_t m) { // Make sure the results are reproducible. std::srand(0); - field_value_type t = std::rand(); + field_value_type t = unsigned(std::rand()); std::vector<field_value_type> t_powers(m); t_powers[0] = field_value_type::one(); for(std::size_t i = 1; i < m; ++i) { @@ -336,7 +340,7 @@ void test_lagrange_coefficients_curve_elements(std::size_t m) { // Make sure the results are reproducible. std::srand(0); - field_value_type t = std::rand(); + field_value_type t = unsigned(std::rand()); std::vector<value_type> t_powers(m); t_powers[0] = value_type::one(); for(std::size_t i = 1; i < m; ++i) { @@ -367,7 +371,7 @@ void test_get_vanishing_polynomial(std::size_t m) { // Make sure the results are reproducible. std::srand(0); - field_value_type t = std::rand(); + field_value_type t = unsigned(std::rand()); std::shared_ptr<evaluation_domain<FieldType>> domain; diff --git a/test/polynomial.cpp b/test/polynomial.cpp index 4ada159..012c672 100644 --- a/test/polynomial.cpp +++ b/test/polynomial.cpp @@ -45,13 +45,13 @@ typedef fields::bls12_fr<381> FieldType; BOOST_AUTO_TEST_SUITE(field_utils_test_suite) BOOST_DATA_TEST_CASE(is_power_of_two, - boost::unit_test::data::make({1, 2, 4, 8, 16, 32, 512, 1024, 2048, 4096, 16384, 32768}), + boost::unit_test::data::make({1u, 2u, 4u, 8u, 16u, 32u, 512u, 1024u, 2048u, 4096u, 16384u, 32768u}), iterator) { BOOST_CHECK(nil::crypto3::math::detail::is_power_of_two(iterator)); } BOOST_DATA_TEST_CASE(is_not_power_of_two, - boost::unit_test::data::make({0, 3, 5, 7, 9, 31, 33, 1025, 4095}), + boost::unit_test::data::make({0u, 3u, 5u, 7u, 9u, 31u, 33u, 1025u, 4095u}), iterator) { BOOST_CHECK(!nil::crypto3::math::detail::is_power_of_two(iterator)); } @@ -63,7 +63,7 @@ BOOST_AUTO_TEST_SUITE(polynomial_constructor_test_suite) BOOST_AUTO_TEST_CASE(polynomial_constructor) { polynomial<typename FieldType::value_type> a(FieldType::value_type::one(), 5); - polynomial<typename FieldType::value_type> a_expected = {0, 0, 0, 0, 0, 1}; + polynomial<typename FieldType::value_type> a_expected = {0u, 0u, 0u, 0u, 0u, 1u}; BOOST_CHECK_EQUAL(a_expected, a); } @@ -83,23 +83,23 @@ BOOST_AUTO_TEST_SUITE(polynomial_addition_test_suite) } BOOST_AUTO_TEST_CASE(polynomial_addition_equal) { - test_addition({1, 3, 4, 25, 6, 7, 7, 2}, {9, 3, 11, 14, 7, 1, 5, 8}, {10, 6, 15, 39, 13, 8, 12, 10}); + test_addition({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}, {10u, 6u, 15u, 39u, 13u, 8u, 12u, 10u}); } BOOST_AUTO_TEST_CASE(polynomial_addition_long_a) { - test_addition({1, 3, 4, 25, 6, 7, 7, 2}, {9, 3, 11, 14, 7}, {10, 6, 15, 39, 13, 7, 7, 2}); + test_addition({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {9u, 3u, 11u, 14u, 7u}, {10u, 6u, 15u, 39u, 13u, 7u, 7u, 2u}); } BOOST_AUTO_TEST_CASE(polynomial_addition_long_b) { - test_addition({1, 3, 4, 25, 6}, {9, 3, 11, 14, 7, 1, 5, 8}, {10, 6, 15, 39, 13, 1, 5, 8}); + test_addition({1u, 3u, 4u, 25u, 6u}, {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}, {10u, 6u, 15u, 39u, 13u, 1u, 5u, 8u}); } BOOST_AUTO_TEST_CASE(polynomial_addition_zero_a) { - test_addition({0, 0, 0}, {1, 3, 4, 25, 6, 7, 7, 2}, {1, 3, 4, 25, 6, 7, 7, 2}); + test_addition({0u, 0u, 0u}, {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}); } BOOST_AUTO_TEST_CASE(polynomial_addition_zero_b) { - test_addition({1, 3, 4, 25, 6, 7, 7, 2}, {0, 0, 0}, {1, 3, 4, 25, 6, 7, 7, 2}); + test_addition({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {0u, 0u, 0u}, {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}); } BOOST_AUTO_TEST_SUITE_END() @@ -117,23 +117,29 @@ BOOST_AUTO_TEST_SUITE(polynomial_subtraction_test_suite) } BOOST_AUTO_TEST_CASE(polynomial_subtraction_equal) { - test_substraction({1, 3, 4, 25, 6, 7, 7, 2}, {9, 3, 11, 14, 7, 1, 5, 8}, {-8, 0, -7, 11, -1, 6, 2, -6}); + test_substraction({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}, + {FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, 6u, 2u, FieldType::modulus - 6u}); } BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_a) { - test_substraction({1, 3, 4, 25, 6, 7, 7, 2}, {9, 3, 11, 14, 7}, {-8, 0, -7, 11, -1, 7, 7, 2}); + test_substraction({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {9u, 3u, 11u, 14u, 7u}, + {FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, 7u, 7u, 2u}); } BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_b) { - test_substraction({1, 3, 4, 25, 6}, {9, 3, 11, 14, 7, 1, 5, 8}, {-8, 0, -7, 11, -1, -1, -5, -8}); + test_substraction({1u, 3u, 4u, 25u, 6u}, {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}, + {FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, FieldType::modulus - 1u, + FieldType::modulus - 5u, FieldType::modulus - 8u}); } BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_a) { - test_substraction({0, 0, 0}, {1, 3, 4, 25, 6, 7, 7, 2}, {-1, -3, -4, -25, -6, -7, -7, -2}); + test_substraction({0u, 0u, 0u}, {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, + {FieldType::modulus - 1, FieldType::modulus - 3, FieldType::modulus - 4, FieldType::modulus - 25, + FieldType::modulus - 6, FieldType::modulus - 7, FieldType::modulus - 7, FieldType::modulus - 2}); } BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_b) { - test_substraction({1, 3, 4, 25, 6, 7, 7, 2}, {0, 0, 0}, {1, 3, 4, 25, 6, 7, 7, 2}); + test_substraction({1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}, {0u, 0u, 0u}, {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}); } BOOST_AUTO_TEST_SUITE_END() @@ -151,19 +157,19 @@ BOOST_AUTO_TEST_SUITE(polynomial_multiplication_test_suite) } BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_a) { - test_multiplication({5, 0, 0, 13, 0, 1}, {13, 0, 1}, {65, 0, 5, 169, 0, 26, 0, 1}); + test_multiplication({5u, 0u, 0u, 13u, 0u, 1u}, {13u, 0u, 1u}, {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}); } BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_b) { - test_multiplication({13, 0, 1}, {5, 0, 0, 13, 0, 1}, {65, 0, 5, 169, 0, 26, 0, 1}); + test_multiplication({13u, 0u, 1u}, {5u, 0u, 0u, 13u, 0u, 1u}, {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}); } BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_a) { - test_multiplication({0}, {5, 0, 0, 13, 0, 1}, {0}); + test_multiplication({0u}, {5u, 0u, 0u, 13u, 0u, 1u}, {0u}); } BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_b) { - test_multiplication({5, 0, 0, 13, 0, 1}, {0}, {0}); + test_multiplication({5u, 0u, 0u, 13u, 0u, 1u}, {0u}, {0u}); } /* this should throw an assertion @@ -199,26 +205,27 @@ BOOST_AUTO_TEST_SUITE(polynomial_division_test_suite) } BOOST_AUTO_TEST_CASE(polynomial_division) { - test_division({5, 0, 0, 13, 0, 1}, {13, 2, 1}, {18, 4, -2, 1}, {-229, -88}); + test_division({5u, 0u, 0u, 13u, 0u, 1u}, {13u, 2u, 1u}, {18u, 4u, FieldType::modulus - 2u, 1u}, + {FieldType::modulus - 229u, FieldType::modulus - 88u}); } BOOST_AUTO_TEST_CASE(polynomial_division_horner_binomial) { - test_division({2, 0, 3, 2, 1}, {-2, 1}, {22, 11, 4, 1}, {46}); + test_division({2u, 0u, 3u, 2u, 1u}, {FieldType::modulus - 2u, 1u}, {22u, 11u, 4u, 1u}, {46u}); } BOOST_AUTO_TEST_CASE(polynomial_division_horner_long_second) { - test_division({2, 0, 3, 2, 1}, {-2, 0, 0, 1}, {2, 1}, {6, 2, 3}); + test_division({2u, 0u, 3u, 2u, 1u}, {FieldType::modulus - 2u, 0u, 0u, 1u}, {2u, 1u}, {6u, 2u, 3u}); } BOOST_AUTO_TEST_CASE(polynomial_division_horner_long_equal) { - test_division({2, 0, 3, 2, 2}, {-2, 0, 0, 0, 1}, {2}, {6, 0, 3, 2}); + test_division({2u, 0u, 3u, 2u, 2u}, {FieldType::modulus - 2u, 0u, 0u, 0u, 1u}, {2u}, {6u, 0u, 3u, 2u}); } BOOST_AUTO_TEST_CASE(polynomial_division_on_zero_degree_polys) { - test_division({0, 1}, {1}, {0, 1}, {0}); - test_division({0, 4}, {2}, {0, 2}, {0}); - test_division({2, 0, 3, 2, 2}, {1}, {2, 0, 3, 2, 2}, {0}); - test_division({4, 0, 4, 2, 2}, {2}, {2, 0, 2, 1, 1}, {0}); + test_division({0u, 1u}, {1u}, {0u, 1u}, {0u}); + test_division({0u, 4u}, {2u}, {0u, 2u}, {0u}); + test_division({2u, 0u, 3u, 2u, 2u}, {1u}, {2u, 0u, 3u, 2u, 2u}, {0u}); + test_division({4u, 0u, 4u, 2u, 2u}, {2u}, {2u, 0u, 2u, 1u, 1u}, {0u}); } BOOST_AUTO_TEST_SUITE_END() diff --git a/test/polynomial_arithmetic.cpp b/test/polynomial_arithmetic.cpp index d30fc43..f1d9aaf 100755 --- a/test/polynomial_arithmetic.cpp +++ b/test/polynomial_arithmetic.cpp @@ -48,13 +48,13 @@ typedef fields::bls12_fr<381> ScalarFieldType; BOOST_AUTO_TEST_SUITE(polynomial_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_addition_equal) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::addition(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {10, 6, 15, 39, 13, 8, 12, 10}; + std::vector<typename FieldType::value_type> c_ans = {10u, 6u, 15u, 39u, 13u, 8u, 12u, 10u}; for (std::size_t i = 0; i < c.size(); ++i) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -63,13 +63,13 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_addition_long_a) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::addition(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {10, 6, 15, 39, 13, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_ans = {10u, 6u, 15u, 39u, 13u, 7u, 7u, 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -78,13 +78,13 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_long_a) { BOOST_AUTO_TEST_CASE(polynomial_addition_long_b) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::addition(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {10, 6, 15, 39, 13, 1, 5, 8}; + std::vector<typename FieldType::value_type> c_ans = {10u, 6u, 15u, 39u, 13u, 1u, 5u, 8u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -93,13 +93,13 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_long_b) { BOOST_AUTO_TEST_CASE(polynomial_addition_zero_a) { - std::vector<typename FieldType::value_type> a = {0, 0, 0}; - std::vector<typename FieldType::value_type> b = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a = {0u, 0u, 0u}; + std::vector<typename FieldType::value_type> b = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::addition(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -108,13 +108,13 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_addition_zero_b) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {0, 0, 0}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {0u, 0u, 0u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::addition(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -127,13 +127,15 @@ BOOST_AUTO_TEST_SUITE(polynomial_subtraction_test_suite) BOOST_AUTO_TEST_CASE(polynomial_subtraction_equal) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::subtraction(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {-8, 0, -7, 11, -1, 6, 2, -6}; + std::vector<typename FieldType::value_type> c_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, + 6u, 2u, FieldType::modulus - 6u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -142,13 +144,15 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_a) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::subtraction(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {-8, 0, -7, 11, -1, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, + FieldType::modulus - 1u, 7u, 7u, 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -157,13 +161,15 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_a) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_b) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6}; - std::vector<typename FieldType::value_type> b = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u}; + std::vector<typename FieldType::value_type> b = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::subtraction(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {-8, 0, -7, 11, -1, -1, -5, -8}; + std::vector<typename FieldType::value_type> c_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, + FieldType::modulus - 1u, FieldType::modulus - 5u, FieldType::modulus - 8u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -172,13 +178,16 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_b) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_a) { - std::vector<typename FieldType::value_type> a = {0, 0, 0}; - std::vector<typename FieldType::value_type> b = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a = {0u, 0u, 0u}; + std::vector<typename FieldType::value_type> b = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::subtraction(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {-1, -3, -4, -25, -6, -7, -7, -2}; + std::vector<typename FieldType::value_type> c_ans = { + FieldType::modulus - 1u, FieldType::modulus - 3u, FieldType::modulus - 4u, + FieldType::modulus - 25u, FieldType::modulus - 6u, FieldType::modulus - 7u, + FieldType::modulus - 7u, FieldType::modulus - 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -187,13 +196,13 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_b) { - std::vector<typename FieldType::value_type> a = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b = {0, 0, 0}; + std::vector<typename FieldType::value_type> a = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b = {0u, 0u, 0u}; std::vector<typename FieldType::value_type> c(1, FieldType::value_type::zero()); nil::crypto3::math::subtraction(c, a, b); - std::vector<typename FieldType::value_type> c_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -206,13 +215,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_a) { - std::vector<typename ScalarFieldType::value_type> a = {5, 0, 0, 13, 0, 1}; - std::vector<typename ScalarFieldType::value_type> b = {13, 0, 1}; + std::vector<typename ScalarFieldType::value_type> a = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename ScalarFieldType::value_type> b = {13u, 0u, 1u}; std::vector<typename ScalarFieldType::value_type> c(1, ScalarFieldType::value_type::zero()); nil::crypto3::math::multiplication(c, a, b); - std::vector<typename ScalarFieldType::value_type> c_ans = {65, 0, 5, 169, 0, 26, 0, 1}; + std::vector<typename ScalarFieldType::value_type> c_ans = {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -221,13 +230,13 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_a) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_b) { - std::vector<typename ScalarFieldType::value_type> a = {13, 0, 1}; - std::vector<typename ScalarFieldType::value_type> b = {5, 0, 0, 13, 0, 1}; + std::vector<typename ScalarFieldType::value_type> a = {13u, 0u, 1u}; + std::vector<typename ScalarFieldType::value_type> b = {5u, 0u, 0u, 13u, 0u, 1u}; std::vector<typename ScalarFieldType::value_type> c(1, ScalarFieldType::value_type::zero()); nil::crypto3::math::multiplication(c, a, b); - std::vector<typename ScalarFieldType::value_type> c_ans = {65, 0, 5, 169, 0, 26, 0, 1}; + std::vector<typename ScalarFieldType::value_type> c_ans = {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -236,13 +245,13 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_b) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_a) { - std::vector<typename ScalarFieldType::value_type> a = {0}; - std::vector<typename ScalarFieldType::value_type> b = {5, 0, 0, 13, 0, 1}; + std::vector<typename ScalarFieldType::value_type> a = {0u}; + std::vector<typename ScalarFieldType::value_type> b = {5u, 0u, 0u, 13u, 0u, 1u}; std::vector<typename ScalarFieldType::value_type> c(1, ScalarFieldType::value_type::zero()); nil::crypto3::math::multiplication(c, a, b); - std::vector<typename ScalarFieldType::value_type> c_ans = {0}; + std::vector<typename ScalarFieldType::value_type> c_ans = {0u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -251,13 +260,13 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_b) { - std::vector<typename ScalarFieldType::value_type> a = {5, 0, 0, 13, 0, 1}; - std::vector<typename ScalarFieldType::value_type> b = {0}; + std::vector<typename ScalarFieldType::value_type> a = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename ScalarFieldType::value_type> b = {0u}; std::vector<typename ScalarFieldType::value_type> c(1, ScalarFieldType::value_type::zero()); nil::crypto3::math::multiplication(c, a, b); - std::vector<typename ScalarFieldType::value_type> c_ans = {0}; + std::vector<typename ScalarFieldType::value_type> c_ans = {0u}; for (std::size_t i = 0; i < c.size(); i++) { BOOST_CHECK_EQUAL(c_ans[i].data, c[i].data); @@ -266,18 +275,20 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_b) { BOOST_AUTO_TEST_SUITE_END() +BOOST_AUTO_TEST_SUITE(polynomial_division_test_suite) + BOOST_AUTO_TEST_CASE(polynomial_division1) { - std::vector<typename FieldType::value_type> a = {5, 0, 0, 13, 0, 1}; - std::vector<typename FieldType::value_type> b = {13, 0, 1}; + std::vector<typename FieldType::value_type> a = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b = {13u, 0u, 1u}; std::vector<typename FieldType::value_type> Q(1, FieldType::value_type::zero()); std::vector<typename FieldType::value_type> R(1, FieldType::value_type::zero()); nil::crypto3::math::division(Q, R, a, b); - std::vector<typename FieldType::value_type> Q_ans = {0, 0, 0, 1}; - std::vector<typename FieldType::value_type> R_ans = {5}; + std::vector<typename FieldType::value_type> Q_ans = {0u, 0u, 0u, 1u}; + std::vector<typename FieldType::value_type> R_ans = {5u}; for (std::size_t i = 0; i < Q.size(); i++) { BOOST_CHECK_EQUAL(Q_ans[i].data, Q[i].data); @@ -342,8 +353,9 @@ BOOST_AUTO_TEST_CASE(polynomial_division2) { BOOST_AUTO_TEST_CASE(extended_gcd) { - std::vector<typename ScalarFieldType::value_type> a = {0, 0, 0, 0, 1}; - std::vector<typename ScalarFieldType::value_type> b = {1, -6, 11, -6}; + std::vector<typename ScalarFieldType::value_type> a = {0u, 0u, 0u, 0u, 1u}; + std::vector<typename ScalarFieldType::value_type> b = { + 1u, ScalarFieldType::modulus - 6u, 11u, ScalarFieldType::modulus - 6u}; std::vector<typename ScalarFieldType::value_type> pg(1, ScalarFieldType::value_type::zero()); std::vector<typename ScalarFieldType::value_type> pu(1, ScalarFieldType::value_type::zero()); @@ -351,9 +363,11 @@ BOOST_AUTO_TEST_CASE(extended_gcd) { extended_euclidean(a, b, pg, pu, pv); - std::vector<typename ScalarFieldType::value_type> pv_ans = {1, 6, 25, 90}; + std::vector<typename ScalarFieldType::value_type> pv_ans = {1u, 6u, 25u, 90u}; for (std::size_t i = 0; i < pv.size(); i++) { BOOST_CHECK_EQUAL(pv_ans[i].data, pv[i].data); } } + +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/polynomial_dfs.cpp b/test/polynomial_dfs.cpp index bde6aba..2c495e3 100644 --- a/test/polynomial_dfs.cpp +++ b/test/polynomial_dfs.cpp @@ -51,43 +51,43 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_equal_test){ polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x35_cppui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}}; + {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> a1 = { 7, - {0x35_cppui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}}; + {0x35_cppui_modular253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}}; BOOST_CHECK_EQUAL(a, a1); } BOOST_AUTO_TEST_CASE(polynomial_dfs_from_coefficients_less_degree) { std::vector<typename FieldType::value_type> a_v; - std::vector<typename FieldType::value_type> polynomial = {1, 3, 4, 25, 6, 7, 7}; + std::vector<typename FieldType::value_type> polynomial = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; polynomial_dfs<typename FieldType::value_type> a = {0, a_v}; a.from_coefficients(polynomial); std::vector<typename FieldType::value_type> c_res = { - 0x35_cppui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}; + 0x35_cppui_modular253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -102,14 +102,14 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x35_cppui253, 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}}; - std::vector<typename FieldType::value_type> c_res = {1, 3, 4, 25, 6, 7, 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}}; + std::vector<typename FieldType::value_type> c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector<typename FieldType::value_type> c = a.coefficients(); BOOST_CHECK_EQUAL(c_res.size(), c.size()); @@ -121,14 +121,15 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_coefficients_same_degree) { polynomial_dfs<typename FieldType::value_type> a = { 8, - {0x37, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; - std::vector<typename FieldType::value_type> c_res = {1, 3, 4, 25, 6, 7, 7, 2}; + {0x37u, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; + std::vector<typename FieldType::value_type> c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector<typename FieldType::value_type> c = a.coefficients(); for (std::size_t i = 0; i < c_res.size(); i++) { BOOST_CHECK_EQUAL(c_res[i].data, c[i].data); @@ -141,38 +142,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 7, { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c = a + b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0x71_cppui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui253, + 0x71_cppui_modular253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, c); } @@ -180,57 +181,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> c = a + b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, - {0x4e_cppui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}}; + {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs<typename FieldType::value_type> a = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> c = a + b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, - {0x4e_cppui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}}; + {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, c); } BOOST_AUTO_TEST_SUITE_END() @@ -239,38 +240,38 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_addition_eq_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 7, { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }}; a += b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0x71_cppui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui253, + 0x71_cppui_modular253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, a); } @@ -278,57 +279,57 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_eq_equal) { BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_b) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; a += b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, - {0x4e_cppui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}}; + {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_CASE(polynomial_dfs_addition_less_a) { polynomial_dfs<typename FieldType::value_type> a = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; a += b; polynomial_dfs<typename FieldType::value_type> c_res = { 7, - {0x4e_cppui253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}}; + {0x4e_cppui_modular253, 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, a); } BOOST_AUTO_TEST_SUITE_END() @@ -341,27 +342,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs<typename FieldType::value_type> a = { 7, { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs<typename FieldType::value_type> b = { 7, { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c(8, 1, FieldType::value_type::zero()); @@ -371,14 +372,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_equal) { polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -389,27 +390,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs<typename FieldType::value_type> a = { 7, { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }}; // 9, 3, 11, 14, 7 polynomial_dfs<typename FieldType::value_type> b = { 4, { - 0x2c_cppui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui253, - 0xa_cppui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui253, + 0x2c_cppui_modular253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, + 0xa_cppui_modular253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c(8, 1, FieldType::value_type::zero()); @@ -418,14 +419,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_b) { polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0xb_cppui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui253, + 0xb_cppui_modular253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -436,27 +437,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs<typename FieldType::value_type> a = { 4, { - 0x27_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui253, - 0xc250799be244269f448420036244200000016000000000003_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui253, + 0x27_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, + 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs<typename FieldType::value_type> b = { 6, { - 0x32_cppui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui253, - 0xe_cppui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui253, + 0x32_cppui_modular253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, + 0xe_cppui_modular253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c(7, 1, FieldType::value_type::zero()); @@ -465,14 +466,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_less_a) { polynomial_dfs<typename FieldType::value_type> c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, c); @@ -486,27 +487,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs<typename FieldType::value_type> a = { 7, { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }}; // {9, 3, 11, 14, 7, 1, 5, 8} polynomial_dfs<typename FieldType::value_type> b = { 7, { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }}; a -= b; @@ -514,14 +515,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_equal) { polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -532,23 +533,23 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs<typename FieldType::value_type> a = { 7, { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }}; // 9, 3, 11, 14 polynomial_dfs<typename FieldType::value_type> b = { 3, { - 0x2c_cppui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui253, + 0x2c_cppui_modular253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c(8, 1, FieldType::value_type::zero()); @@ -557,14 +558,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_b) { polynomial_dfs<typename FieldType::value_type> c_res = { 7, { - 0xb_cppui253, - 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_cppui253, - 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_cppui253, - 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_cppui253, - 0x61283ccdf122134fa2421001b12210000000affffffffffe8_cppui253, - 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_cppui253, - 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_cppui253, - 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_cppui253 + 0xb_cppui_modular253, + 0x2a0cf6cbe1265f2f69c5fd7f23de0a85a42a7b5b43d65a71dd6e2e081f3acfea_cppui_modular253, + 0x25dca9e18637dc987d958e25d84deb0599a1478360c5ed2566591d49ad40df0c_cppui_modular253, + 0x1200fa2d09728089883f89488cf6cfb560ba457f80713d469fdbf1666aff4730_cppui_modular253, + 0x61283ccdf122134fa2421001b12210000000affffffffffe8_cppui_modular253, + 0x6f8014ca51c232ed6480b1981a3dd3d72cfe0a9c2986ba7d8dc20181d20cf8db_cppui_modular253, + 0x151cdb46d4f99b9102fc2c91a0645c689d89f312c7239269a1362ba1abd896cb_cppui_modular253, + 0x35926b84873e2d16fc9273ec962a65b7d27133d4c3a8957fc8e27f9fcd265a6_cppui_modular253 }}; BOOST_CHECK_EQUAL(c_res, a); @@ -574,27 +575,27 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs<typename FieldType::value_type> a = { 4, { - 0x27_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui253, - 0xc250799be244269f448420036244200000016000000000003_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui253, + 0x27_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, + 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, }}; // 9, 3, 11, 14, 7, 1, 5 polynomial_dfs<typename FieldType::value_type> b = { 6, { - 0x32_cppui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui253, - 0xe_cppui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui253, + 0x32_cppui_modular253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, + 0xe_cppui_modular253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, }}; a -= b; @@ -602,14 +603,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_subtraction_eq_less_a) { polynomial_dfs<typename FieldType::value_type> c_res = { 6, { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, }}; BOOST_CHECK_EQUAL(c_res, a); @@ -622,40 +623,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_without_resize) { polynomial_dfs<typename FieldType::value_type> a = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 2, { - 0x17_cppui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui253, - 0x11_cppui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui253, + 0x17_cppui_modular253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, + 0x11_cppui_modular253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c = a * b; polynomial_dfs<typename FieldType::value_type> c_res = { 5, - {0x2f7_cppui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui253}}; + {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, + 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -665,44 +666,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_a) { polynomial_dfs<typename FieldType::value_type> a = { 3, { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 5, { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c = a * b; polynomial_dfs<typename FieldType::value_type> c_res = { 8, - {0x60f_cppui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -712,44 +713,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_b) { polynomial_dfs<typename FieldType::value_type> a = { 5, { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 3, { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> c = a * b; polynomial_dfs<typename FieldType::value_type> c_res = { 8, - {0x60f_cppui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -758,38 +759,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_resize_both) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> c = a * b; polynomial_dfs<typename FieldType::value_type> c_res = { 9, - {0x4f1_cppui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui253, - 0xc250799be244269f44842003624420000001600000000003b_cppui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, c); } @@ -802,40 +803,40 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_without_resize) { polynomial_dfs<typename FieldType::value_type> a = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 2, { - 0x17_cppui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui253, - 0x11_cppui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui253, + 0x17_cppui_modular253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, + 0x11_cppui_modular253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, }}; a *= b; polynomial_dfs<typename FieldType::value_type> c_res = { 5, - {0x2f7_cppui253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui253}}; + {0x2f7_cppui_modular253, 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, + 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -844,44 +845,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_a) { polynomial_dfs<typename FieldType::value_type> a = { 3, { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 5, { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }}; a *= b; polynomial_dfs<typename FieldType::value_type> c_res = { 8, - {0x60f_cppui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -891,44 +892,44 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_b) { polynomial_dfs<typename FieldType::value_type> a = { 5, { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> b = { 3, { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }}; a *= b; polynomial_dfs<typename FieldType::value_type> c_res = { 8, - {0x60f_cppui253, 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -937,38 +938,38 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_multiplication_eq_resize_both) { polynomial_dfs<typename FieldType::value_type> a = { 7, - {0x37_cppui253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}}; + {0x37_cppui_modular253, 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> b = { 2, - {0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}}; + {0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}}; a *= b; polynomial_dfs<typename FieldType::value_type> c_res = { 9, - {0x4f1_cppui253, 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui253, - 0xc250799be244269f44842003624420000001600000000003b_cppui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui253}}; + {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}}; BOOST_CHECK_EQUAL(c_res, a); } @@ -982,25 +983,25 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { // {5, 0, 0, 13, 0, 1}; polynomial_dfs<typename FieldType::value_type> a = { 5, - {0x13_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}}; + {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; //{13, 0, 1}; polynomial_dfs<typename FieldType::value_type> b = { 2, { - 0xe_cppui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, - 0xe_cppui253, - 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, + 0xe_cppui_modular253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_cppui_modular253, + 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> Q = a / b; @@ -1008,17 +1009,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_division) { polynomial_dfs<typename FieldType::value_type> Q_ans = { 3, - {0x1_cppui253, 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui253}}; // {0, 0, 0, 1}; + {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}; polynomial_dfs<typename FieldType::value_type> R_ans = {0, - {0x5_cppui253, 0x5_cppui253, 0x5_cppui253, 0x5_cppui253, - 0x5_cppui253, 0x5_cppui253, 0x5_cppui253, - 0x5_cppui253}}; //{5}; + {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}; BOOST_CHECK_EQUAL(Q_ans, Q); BOOST_CHECK_EQUAL(R_ans, R); @@ -1028,14 +1029,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_shift) { polynomial_dfs<typename FieldType::value_type> a = { 0, - {0x01, - 0x02, - 0x03, - 0x04, - 0x05, - 0x06, - 0x07, - 0x08}}; + {0x01u, + 0x02u, + 0x03u, + 0x04u, + 0x05u, + 0x06u, + 0x07u, + 0x08u}}; std::vector<typename FieldType::value_type> a_coefficients = a.coefficients(); @@ -1083,25 +1084,25 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_operations_with_constants_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { polynomial_dfs<typename FieldType::value_type> a = { 5, - {0x13_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}}; + {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; - typename FieldType::value_type c = 0x10_cppui253; + typename FieldType::value_type c = 0x10_cppui_modular253; polynomial_dfs<typename FieldType::value_type> c_res = { 5, - {0x23_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000015_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_cppui253} + {0x23_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2f0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000016_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de914_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000008_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d3b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000015_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21717_cppui_modular253} }; polynomial_dfs<typename FieldType::value_type> c1 = a + c; @@ -1116,36 +1117,36 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_add_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { polynomial_dfs<typename FieldType::value_type> a = { 5, - {0x13_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}}; + {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; - typename FieldType::value_type c = 0x10_cppui253; + typename FieldType::value_type c = 0x10_cppui_modular253; polynomial_dfs<typename FieldType::value_type> c_res = { 5, - {0x3_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_cppui253, - 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_cppui253}}; + {0x3_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2d0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3fffefffffff6_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de8f4_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d1b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000bfffffffffff5_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb216f7_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> c2_res = { 5, - {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_cppui253, - 0x69fd599ad882439cb1024001d88240000000c00000000000b_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_cppui253, - 0x19_cppui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_cppui253}}; + {0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d31_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c00000000000b_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb2170d_cppui_modular253, + 0x19_cppui_modular253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e6_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff0000000c_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de90a_cppui_modular253}}; polynomial_dfs<typename FieldType::value_type> c1 = a - c; polynomial_dfs<typename FieldType::value_type> c2 = c - a; @@ -1160,26 +1161,26 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_sub_constant) { BOOST_AUTO_TEST_CASE(polynomial_dfs_mul_constant) { polynomial_dfs<typename FieldType::value_type> a = { 5, - {0x13_cppui253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}}; + {0x13_cppui_modular253, 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}}; - typename FieldType::value_type c = 0x123456789abcdef0_cppui253; + typename FieldType::value_type c = 0x123456789abcdef0_cppui_modular253; polynomial_dfs<typename FieldType::value_type> c_res = { 5, - {0x159e26af37c048bd0_cppui253, - 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_cppui253, - 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_cppui253, - 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_cppui253, - 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_cppui253, - 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_cppui253, - 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_cppui253 + {0x159e26af37c048bd0_cppui_modular253, + 0x561eb8d15cf56ffae9f06589af84b8c28cc573357badfeb6369351fbc07369c3_cppui_modular253, + 0x6f4395a4399ecdf012d23e04abddbe468b2b136318957723e7c5b05905b05ab2_cppui_modular253, + 0x25025c1ee2b3c9846b9b3b1a4106e62e52434883b230fa78188b5373797c67d7_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfe5c28f5c18f5c2991_cppui_modular253, + 0x1dceee81cca80d4d4949727e5a1d1f42c6f830cd84505d497f780eb94aed4b9e_cppui_modular253, + 0x4aa11aeeffeaf5820679a035dc419bec892909fe768e4dbce45b05c05b05aaf_cppui_modular253, + 0x4eeb4b3446e9b3c3c79e9cedc89af1d7017a5b7f4dcd61879d800d4191e44d8a_cppui_modular253 }}; polynomial_dfs<typename FieldType::value_type> c1 = a * c; @@ -1198,14 +1199,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_pow_eq_test) { polynomial_dfs<typename FieldType::value_type> a = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> res = a; @@ -1224,17 +1225,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_test) { polynomial_dfs<typename FieldType::value_type> small_poly = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; - typename FieldType::value_type point = 0x10_cppui253; + typename FieldType::value_type point = 0x10_cppui_modular253; polynomial_dfs<typename FieldType::value_type> large_poly = small_poly; for (size_t new_size : {16, 32, 64, 128, 256, 512}) { large_poly.resize(new_size); @@ -1247,17 +1248,17 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_evaluate_after_resize_and_shift_test) { polynomial_dfs<typename FieldType::value_type> small_poly = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; - typename FieldType::value_type point = 0x10_cppui253; + typename FieldType::value_type point = 0x10_cppui_modular253; polynomial_dfs<typename FieldType::value_type> large_poly = small_poly; small_poly = polynomial_shift(small_poly, -1, 8); for (size_t new_size : {16, 32, 64, 128, 256, 512}) { @@ -1271,14 +1272,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_zero_one_test) { polynomial_dfs<typename FieldType::value_type> small_poly = { 3, { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }}; polynomial_dfs<typename FieldType::value_type> zero = polynomial_dfs<typename FieldType::value_type>::zero(); diff --git a/test/polynomial_dfs_view.cpp b/test/polynomial_dfs_view.cpp index 77f0b4a..32b0c0b 100644 --- a/test/polynomial_dfs_view.cpp +++ b/test/polynomial_dfs_view.cpp @@ -46,20 +46,20 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_from_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_from_coefficients_less_degree) { std::vector<typename FieldType::value_type> a_v; - std::vector<typename FieldType::value_type> polynomial = {1, 3, 4, 25, 6, 7, 7}; + std::vector<typename FieldType::value_type> polynomial = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; polynomial_dfs_view<typename FieldType::value_type> a = {0, a_v}; a.from_coefficients(polynomial); std::vector<typename FieldType::value_type> c_res = { - 0x35_cppui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}; + 0x35_cppui_modular253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; BOOST_CHECK_EQUAL(c_res.size(), a.size()); for (std::size_t i = 0; i < c_res.size(); i++) { @@ -73,17 +73,17 @@ BOOST_AUTO_TEST_SUITE(polynomial_dfs_view_coefficients_test_suite) BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { std::vector<typename FieldType::value_type> a_v = { - 0x35_cppui253, - 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui253, - 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui253, - 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui253, - 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui253, - 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui253, - 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui253}; + 0x35_cppui_modular253, + 0x26D37C08AED60085FDE335498E7DFEE2AFB1463D06E338219CD0E5DDAF27D68F_cppui_modular253, + 0x73EDA753299D7D3FEB6ED7EF1F748FC77F90A3DE15D15BFEFFF0FFFEFFFFFFFD_cppui_modular253, + 0x4871BC0D4FC8E6B9695B3B2BDCA6D2CACD64A30E404507B3A523C00D0FF4F223_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFF0_cppui_modular253, + 0x4D1A2B4A7AC77CBEE56BD5E7B711BC3D1BFA5DB7350923DD63291A2150D82968_cppui_modular253, + 0x847CB0018EA2D483DD42D0024EA2D0000000EFFFFFFFFFFFC_cppui_modular253, + 0x2B7BEB45D9D4969219C969B2F10D22200E6B010383CB544B5AE23FF1F00B0DD4_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; - std::vector<typename FieldType::value_type> c_res = {1, 3, 4, 25, 6, 7, 7}; + std::vector<typename FieldType::value_type> c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u}; std::vector<typename FieldType::value_type> c = a.coefficients(); BOOST_CHECK_EQUAL(c_res.size(), c.size()); @@ -94,16 +94,16 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_less_degree) { BOOST_AUTO_TEST_CASE(polynomial_dfs_view_coefficients_same_degree) { std::vector<typename FieldType::value_type> a_v = { - 0x37, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}; + 0x37u, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {8, a_v}; - std::vector<typename FieldType::value_type> c_res = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> c_res = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; std::vector<typename FieldType::value_type> c = a.coefficients(); BOOST_CHECK_EQUAL(c_res.size(), c.size()); @@ -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<typename FieldType::value_type> a_v = { - 0x37_cppui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}; + 0x37_cppui_modular253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {7, b_v}; a += b; std::vector<typename FieldType::value_type> c_v = { - 0x71_cppui253, - 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui253, - 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui253, - 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui253, - 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui253, - 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui253, + 0x71_cppui_modular253, + 0x68636b5b00b192231d91e1b254b83b1e84ee26a82bdf89850208da4c9875963c_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcfffefffffffd_cppui_modular253, + 0x585b6d9bc639a84d588e0b7a5dbc783088ed0270c1e5cb682e31b1e0caf89067_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff4_cppui_modular253, + 0xb8a3bf828ebeb286592c32c78fbb9cc56e17d699830d279fdfd25b2678a69bf_cppui_modular253, + 0x13522f003a2269a89044690056226900000022fffffffffffc_cppui_modular253, + 0x1b9239b76363d4f78ac0ffb6e7d342ef42bea1837a069096d1c84e1e35076f94_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x37_cppui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}; + 0x37_cppui_modular253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}; + 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> b = {2, b_v}; a += b; std::vector<typename FieldType::value_type> c_v = { - 0x4e_cppui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}; + 0x4e_cppui_modular253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}; + 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {2, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x37_cppui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}; + 0x37_cppui_modular253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> b = {7, b_v}; a += b; std::vector<typename FieldType::value_type> c_v = { - 0x4e_cppui253, - 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui253, - 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui253, - 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui253, - 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui253, - 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui253, - 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui253}; + 0x4e_cppui_modular253, + 0x2984a53ad76597710bc6e589547653b47dcce72f84e0617332e6e0761851f4a9_cppui_modular253, + 0x73eda753299d7d4078c0a4bd957794986b93a3e08bd45bfefff1fffefffffffb_cppui_modular253, + 0x195e04ac5e7749b26f0033b1486ae23bed8b1011de0d893be16ec12aecd863c2_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffff_cppui_modular253, + 0x4a6902185237e5dffc8fbf66155bd15f9620bcfadb4dfa8bcd291f88e7ae0b60_cppui_modular253, + 0x7ba79334a742a436ce82a0022742a0000000dfffffffffffa_cppui_modular253, + 0x5a8fa2a6cb26338cef1cd76f6106a8baa60293c9c1c0d2c31e813ed413279c47_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; // {9, 3, 11, 14, 7, 1, 5, 8} std::vector<typename FieldType::value_type> b_v = { - 0x3a_cppui253, - 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui253, - 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui253, - 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui253, - 0x6_cppui253, - 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui253, - 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui253, - 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui253, + 0x3a_cppui_modular253, + 0x67f753af0b9db226952762685b47bb06f22600d84e5cf11425a7f17246806009_cppui_modular253, + 0x73eda753299d7d3e43797183bd6b8154bb87a3d6b3c85bfeffedffff00000001_cppui_modular253, + 0x4aad82754c8121ad40543e15922c725cee0fee48fc9d5b66d5fec3be9ec1d37_cppui_modular253, + 0x6_cppui_modular253, + 0xbf653a41dffcb283de80f4d367e56c971bba34839c56aeada640e8cb97f9ffc_cppui_modular253, + 0x9efc066844c3656b09836002c4c3600000012000000000000_cppui_modular253, + 0x6f42cf2bd4d56b26bf5efa79285ad71474b8a500e8108648929413c31613e2ce_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui253, - 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui253, - 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui253, - 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui253, - 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui253, - 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffffe_cppui_modular253, + 0xc626b501313ab1e267cf4e9a7ca9d15f45fc8fa8f24035bb6b8f7670b74d62b_cppui_modular253, + 0x8d51ccce760304d0ec030002760300000000fffffffffffc_cppui_modular253, + 0x4f05bd4d1ca98417b08383b7ab76e9e4eb2b04a7a2521ffb5371d968f72055f9_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe8_cppui_modular253, + 0x678b3c031689d2201cfc7c9a15a0e43ec727dadc24a458a349350897f48b29c8_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffefffefffffffd_cppui_modular253, + 0x24e7ea060cf3f93a7276bad4aa6144d100c89f87a9e23c03aca0269608dfa9fa_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x37_cppui253, - 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui253, - 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui253, - 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui253, - 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui253, - 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui253, - 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui253, + 0x37_cppui_modular253, + 0x6c17abf513dffc886a7f49f970801792c825cfdd829870dc60e8da51f53633_cppui_modular253, + 0x73eda753299d7d3ed0cb3e52336e8625a78aa3d929cb5bfeffeefffefffffffd_cppui_modular253, + 0x53b09574717196328488c7990499b10aba0c038c321bf5b1c0d1c5a4e10c7330_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffee_cppui_modular253, + 0x73818fa734899d485ae48be74c1f3b0838e37e245e69c38e23991724ae0ac9c4_cppui_modular253, + 0x9626e99b5d63351dfac330029d63300000010fffffffffffc_cppui_modular253, + 0x203d11deb82be718fe9bdd45c91a43e021c3a08591f4664d3f343a5a1ef38cc7_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; // 9, 3, 11, 14, 7 std::vector<typename FieldType::value_type> b_v = { - 0x2c_cppui253, - 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui253, - 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui253, - 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui253, - 0xa_cppui253, - 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui253, - 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui253, - 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui253, + 0x2c_cppui_modular253, + 0x4e10fd71a365a0a65335b02c5b209b200de95c55c9056ed99995e2b552bf20f1_cppui_modular253, + 0x73eda753299d7d4220b60b28f780a30b2f9ca3e7eddd5bfefff4ffff00000006_cppui_modular253, + 0x5ed0cc0c54a3e1c092ac452c3f70cd7c6266b11a0f0dc9955edad45d54276932_cppui_modular253, + 0xa_cppui_modular253, + 0x25dca9e18637dcae050bc199d2c3a6d98e1647e35b3aed2566801d49ad40df14_cppui_modular253, + 0x61283ccdf122134fa2421001b12210000000b000000000005_cppui_modular253, + 0x151cdb46d4f99b7b7b85f91da5eea094a914f2b2ccae9269a10f2ba1abd896d3_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {4, b_v}; a -= b; //-8, 0, -7, 11, -1, 7, 7, 2 std::vector<typename FieldType::value_type> c_v = { - 0xb_cppui253, - 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui253, - 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui253, - 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui253, - 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui253, - 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui253, - 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui253, + 0xb_cppui_modular253, + 0x2648c18d7b4bbc9e686ea725a7f1bcfcd89c6d7d147b859642cb0623ff361543_cppui_modular253, + 0x73eda753299d7d44e34f0b31458fbb1fcbaba3f43bec5bfefff9fffefffffff8_cppui_modular253, + 0x68cd70bb466b31ba25165a74cecabb93ab62f675230c881b61f6f1468ce509ff_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe4_cppui_modular253, + 0x4da4e5c5ae51c09a55d8ca4d795b942eaacd3641032ed668bd18f9db00c9eab0_cppui_modular253, + 0x34feaccd6c4121ce58812000ec41200000005fffffffffff7_cppui_modular253, + 0xb203697e3324b9d8315e428232ba34b78aeadd2c545d3e39e250eb8731af5f4_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x27_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui253, - 0xc250799be244269f448420036244200000016000000000003_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui253, + 0x27_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e2_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff00000004_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d6262364_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff0_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d15_cppui_modular253, + 0xc250799be244269f448420036244200000016000000000003_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc93_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {4, a_v}; // 9, 3, 11, 14, 7, 1, 5 std::vector<typename FieldType::value_type> b_v = { - 0x32_cppui253, - 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui253, - 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui253, - 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui253, - 0xe_cppui253, - 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui253, - 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui253, - 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui253, + 0x32_cppui_modular253, + 0x19b9967b9f6b39bc04968a569c3a0628be4f3a86f3e2b7d92767e581bb4ae177_cppui_modular253, + 0x73eda753299d7d42ae07d7f76d83a7dc1b9fa3ea63e05bfefff5ffff00000001_cppui_modular253, + 0x4b9d19ddf7c2d17e9a88ea34c2f9262b700120efc86c79bcfea7d5dba58e1904_cppui_modular253, + 0xe_cppui_modular253, + 0x5a3410d78a324392ce78e75ef58c0ba7a5926999943fa425d8a41a7d44b51e8e_cppui_modular253, + 0x5853200109c1e3029381e00189c1e0000000a000000000000_cppui_modular253, + 0x28508d7531daabc2f8db5425be84780ed39882f5af6de242014c2a235a71e701_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {6, b_v}; @@ -363,14 +363,14 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_subtraction_less_a) { a -= b; std::vector<typename FieldType::value_type> c_v = { - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui253, - 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui253, - 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui253, - 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui253, - 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff6_cppui_modular253, + 0x1fb4c04dae6b1f4a1106c51e2557fc93530c0c0ffea46d4e948eecc8180ab16b_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000004_cppui_modular253, + 0xf50da20b89009cfd9825c485fa5eeaa7ac0cf884e9760e247fcdfbe30980a60_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffe2_cppui_modular253, + 0x5438e7057b325dfbecebdfb00c3dc82e50a597e9294deeb06b6d1336e7f54e88_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000003_cppui_modular253, + 0x649ccd32710d737a8efeaef98207fc9e8908d4848972fb1cb8072040cf67f593_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x21_cppui253, - 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, - 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui253, + 0x21_cppui_modular253, + 0x396e56c94dd65906159d4f74c19202bc115b4696f2872527bbf6d249d35592e8_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x5aedf3feb052db4e740b467d229f14d5eac1f0781703da9f46a4b599d626236a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0x3a7f5089dbc72446882aef06f827fbd0a27a5d7fbd8f36d744112db52caa6d1b_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, + 0x18ffb354794aa1f554a02b1736ea9ca808e3b37738e2815fb9534a6529d9dc99_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {3, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x17_cppui253, - 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui253, - 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, - 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui253, - 0x11_cppui253, - 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253, - 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui253, + 0x17_cppui_modular253, + 0x29188d8ee251b774835c663f5b05d39ceb04c15fa75dc9025685f79bc65cbe76_cppui_modular253, + 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, + 0x399b168b16a330c81db144204d730936873cb088abefef89209cfb850bcbf093_cppui_modular253, + 0x11_cppui_modular253, + 0x4ad519c4474bc5dfd4e50b86d2de6e5cb0fae2d97ce292fca990086339a3419d_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253, + 0x3a5290c812fa4c73f080fa2997ec64da843ef3442fcc6c75df4d0479f4340f80_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {2, b_v}; a *= b; std::vector<typename FieldType::value_type> c_v = { - 0x2f7_cppui253, - 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui253, - 0x13522f003a2269a89044690056226900000023000000000048_cppui253, - 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui253, - 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui253, - 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui253, - 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui253}; + 0x2f7_cppui_modular253, + 0xc2586e4e154f9a00f944b66e8461739a25513b55c51ca863a0c1a243371d096_cppui_modular253, + 0x13522f003a2269a89044690056226900000023000000000048_cppui_modular253, + 0x25831fc923df5277d906a02b53722384e786b17159eb7cb5516c7a9ea3e135e7_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffe7a_cppui_modular253, + 0x67c8206e484883e5f76f26f4c2addc32f2b8916144fc9178c663e5dacc8e2e8f_cppui_modular253, + 0x73eda753299d7d34e10ad7cde7382f750f54a3acdd955bfeffdcffff00000049_cppui_modular253, + 0x4e6a878a05be2a9286699d8914dd99192ae6f17e04c2df49ae2385605c1ec93e_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {3, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {5, b_v}; a *= b; std::vector<typename FieldType::value_type> c_v = { - 0x60f_cppui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}; + 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}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x2f_cppui253, - 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui253, - 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui253, - 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui253, - 0xd_cppui253, - 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui253, - 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui253, - 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui253, + 0x2f_cppui_modular253, + 0x32e8727c0b4c2f95f8ea8699ee05fa94dda79c66917bbd26f4d3eb49c6a4019f_cppui_modular253, + 0x73eda753299d7d4455fd3e62cf8cb64edfa8a3f1c5e95bfefff8ffff00000009_cppui_modular253, + 0x43a84116bc8a70b038611b99d2562cf13224f12ad78417e2ba18dcf1c80c49e0_cppui_modular253, + 0xd_cppui_modular253, + 0x410534d71e514dbe5f56eb2c3fde4764be5807d292c49ed80b4214b5395bfe60_cppui_modular253, + 0x3dd3c99a53a1521b6741500113a1500000007000000000008_cppui_modular253, + 0x3045663c6d130c8bd5d122b01309411fd956b2a20438441c45d1230d37f3b61f_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> a = {5, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x21_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui253, - 0xc250799be244269f448420036244200000015fffffffffffd_cppui253, + 0x21_cppui_modular253, + 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9fffefffffffe_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffeffffffea_cppui_modular253, + 0xc250799be244269f448420036244200000015fffffffffffd_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {3, b_v}; a *= b; std::vector<typename FieldType::value_type> c_v = { - 0x60f_cppui253, - 0x6d13b656473f6fb30ca8b1bad81e6de32533efda233d7af0267de11113c42dfe_cppui253, - 0x1ba37579e72ddd31448034c66d0c9c05d6d4440bc42f8c291614691a17caee93_cppui253, - 0x1fb9403d5b7e99fd65aa34b9a80d8651511148e949d858b6cf3aa49b03f56360_cppui253, - 0x73eda753299d7cf2a2b2d70695cded866deca2858c2d5bfeff64fffeffffff4f_cppui253, - 0x270c8c72ef84d4f40592859d11b20417e6b44d040a8b017193798d7b8e32ca03_cppui253, - 0x7b8d2c73340a34c0d54fc1c4bd76e36750a43c95233e2d8de3a2088a4328cb_cppui253, - 0x6e359aacded395e1572c7d6650b9819ac85df73a6f4e6fe6f4797da6e6adf91_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffed6_cppui253, - 0x1ca7c957ddc94dd855917093ee9b65b711219a0b02e57ac9e416dcb1258452c4_cppui253, - 0x584a31d9426f9ed6c1659f7e3dbe52a8c61d5a63dd02cfd5e7a796e4e835109a_cppui253, - 0x52cd53da62d32e3299594e036edf1ebc27b1a1c2c6d4ac71dec724e0c55944ec_cppui253, - 0x559087010173d3ea7ee5d1017d73d10000009affffffffff4e_cppui253, - 0x371342853ead697d558b0c6c7aa042f9022d77750f0ac0d26485b4c03884b499_cppui253, - 0x73721a26b66974539fb88c09a3bb4a78a3390559c9a71dd174605df675bcd662_cppui253, - 0x6e7160e3c6fbf795fb196134578308430a76778e089ecbd6e0229ea7c8467781_cppui253}; + 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}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x37_cppui253, - 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui253, - 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui253, - 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui253, - 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui253, - 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui253, - 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui253, - 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui253}; + 0x37_cppui_modular253, + 0x6C17ABF513DFFC886A7F49F970801792C825CFDD829870DC60E8DA51F53633_cppui_modular253, + 0x73EDA753299D7D3ED0CB3E52336E8625A78AA3D929CB5BFEFFEEFFFEFFFFFFFD_cppui_modular253, + 0x53B09574717196328488C7990499B10ABA0C038C321BF5B1C0D1C5A4E10C7330_cppui_modular253, + 0x73EDA753299D7D483339D80809A1D80553BDA402FFFE5BFEFFFFFFFEFFFFFFEE_cppui_modular253, + 0x73818FA734899D485AE48BE74C1F3B0838E37E245E69C38E23991724AE0AC9C4_cppui_modular253, + 0x9626E99B5D63351DFAC330029D63300000010FFFFFFFFFFFC_cppui_modular253, + 0x203D11DEB82BE718FE9BDD45C91A43E021C3A08591F4664D3F343A5A1EF38CC7_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {7, a_v}; std::vector<typename FieldType::value_type> b_v = { - 0x17_cppui253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui253, 0x11_cppui253, - 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui253}; + 0x17_cppui_modular253, 0x1a7f5666b62090e72c4090007620900000002fffffffffffe_cppui_modular253, 0x11_cppui_modular253, + 0x73eda753299d7d468b44719ca798c9928fb4a3fb9df55bfefffcfffeffffffff_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> b = {2, b_v}; a *= b; std::vector<typename FieldType::value_type> c_v = { - 0x4f1_cppui253, - 0x18423f38a6347025203d1306ea24214fcbc2e3f5e167ba11285a7f2183727698_cppui253, - 0x1d4820215af065c49347299eb6dd938076c46a3db4d4f73250a46c4f2e2edaeb_cppui253, - 0x6142914f3b8f8c83dbae4715ed94fd03f84c4534f9cb1e4188a8db267f2f219b_cppui253, - 0xc250799be244269f44842003624420000001600000000003b_cppui253, - 0x4212e41081d18a85121f61c630783936244c4bde81b37f0f58d05901952e58ef_cppui253, - 0x148cedc402ae498492c4d90bffb69418494de2e305b671656a88171cc5def860_cppui253, - 0x5cdb267102977e382df877ad594da96bb37b7a71a5392773dfe1c33e2188afba_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffebe_cppui253, - 0x5ba3e41ad92b63df524868386e6ed2bf7aed342f687f8158c8c87cd5b1343b8_cppui253, - 0x56a58731cead171bd7e046caa88cbb178ac537f6a0f564ccae9f93afd1d12474_cppui253, - 0x12bf0a92313848004fcce9b9a8167b86b9595983df5f4987568536a4601e5450_cppui253, - 0x73eda753299d7d3c0e323e49e55f6e110b7ba3ccdbbc5bfeffe9ffff0000003c_cppui253, - 0x13de45c85404cdde0cd67ace68479511641ba792a6772ac8f4fca00e8c4beb9a_cppui253, - 0x5f60b98f26ef342b6887669ab422cd5a5ca3c2eea47bea999633e8e23a2106ff_cppui253, - 0x16fe8c53e3dba6560be2697c242189564a3e2834817d28c13e3c2af4ff29d935_cppui253}; + 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}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x13_cppui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}; + 0x13_cppui_modular253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {5, a_v}; //{13, 0, 1}; std::vector<typename FieldType::value_type> b_v = { - 0xe_cppui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, - 0xe_cppui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, + 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {2, b_v}; a /= b; std::vector<typename FieldType::value_type> q_v = { - 0x1_cppui253, - 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui253, - 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui253, - 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui253, - 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui253, - 0x8d51ccce760304d0ec030002760300000001000000000000_cppui253, - 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui253}; + 0x1_cppui_modular253, + 0x1333b22e5ce11044babc5affca86bf658e74903694b04fd86037fe81ae99502e_cppui_modular253, + 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff00000001_cppui_modular253, + 0x345766f603fa66e78c0625cd70d77ce2b38b21c28713b7007228fd3397743f7a_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000000_cppui_modular253, + 0x60b9f524ccbc6d03787d7d083f1b189fc54913cc6b4e0c269fc8017d5166afd3_cppui_modular253, + 0x8d51ccce760304d0ec030002760300000001000000000000_cppui_modular253, + 0x3f96405d25a31660a733b23a98ca5b22a032824078eaa4fe8dd702cb688bc087_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> 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<typename FieldType::value_type> a_v = { - 0x13_cppui253, - 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui253, - 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui253, - 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui253, - 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui253, - 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui253, - 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui253, - 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui253}; + 0x13_cppui_modular253, + 0x515afe1189d5ef4dbc50a127ce5e634034a28d0005e1fafd70aeef634654d2e0_cppui_modular253, + 0x73eda753299d7d4193643e5a817d9e3a4399a3e577da5bfefff3ffff00000006_cppui_modular253, + 0x519843b006c2b71461725846c0416002ece7f29b47582f326bdcdd22024de904_cppui_modular253, + 0x73eda753299d7d483339d80809a1d80553bda402fffe5bfefffffffefffffff8_cppui_modular253, + 0x2292a9419fc78dfa76e936e03b4374c51f1b1702fa1c61018f51109bb9ab2d2b_cppui_modular253, + 0x69fd599ad882439cb1024001d88240000000c000000000005_cppui_modular253, + 0x225563a322dac633d1c77fc14960780266d5b167b8a62ccc942322dcfdb21707_cppui_modular253}; polynomial_dfs_view<typename FieldType::value_type> a = {5, a_v}; //{13, 0, 1}; std::vector<typename FieldType::value_type> b_v = { - 0xe_cppui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, - 0xe_cppui253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui253, - 0xc_cppui253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui253, + 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, + 0xe_cppui_modular253, 0x8d51ccce760304d0ec03000276030000000100000000000d_cppui_modular253, + 0xc_cppui_modular253, 0x73eda753299d7d47a5e80b39939ed33467baa40089fb5bfefffeffff0000000e_cppui_modular253, }; polynomial_dfs_view<typename FieldType::value_type> b = {2, b_v}; a %= b; - std::vector<typename FieldType::value_type> r_v = {0x5_cppui253, 0x5_cppui253, 0x5_cppui253, 0x5_cppui253, - 0x5_cppui253, 0x5_cppui253, 0x5_cppui253, 0x5_cppui253}; + std::vector<typename FieldType::value_type> 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}; polynomial_dfs_view<typename FieldType::value_type> r_ans = {0, r_v}; //{5}; BOOST_CHECK_EQUAL(r_ans.size(), a.size()); @@ -656,4 +656,4 @@ BOOST_AUTO_TEST_CASE(polynomial_dfs_view_modulus) { BOOST_CHECK_EQUAL(r_ans.degree(), a.degree()); } -BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file +BOOST_AUTO_TEST_SUITE_END() diff --git a/test/polynomial_view.cpp b/test/polynomial_view.cpp index f60abb6..330ec6e 100644 --- a/test/polynomial_view.cpp +++ b/test/polynomial_view.cpp @@ -46,7 +46,7 @@ BOOST_AUTO_TEST_SUITE(polynomial_constructor_test_suite) BOOST_AUTO_TEST_CASE(polynomial_constructor) { - std::vector<typename FieldType::value_type> a_v = {0, 0, 0, 0, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {0u, 0u, 0u, 0u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); for (std::size_t i = 0; i < a_v.size(); i++) { @@ -59,15 +59,15 @@ BOOST_AUTO_TEST_SUITE_END() BOOST_AUTO_TEST_SUITE(polynomial_addition_test_suite) BOOST_AUTO_TEST_CASE(polynomial_addition_equal) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a += b; - std::vector<typename FieldType::value_type> a_ans = {10, 6, 15, 39, 13, 8, 12, 10}; + std::vector<typename FieldType::value_type> a_ans = {10u, 6u, 15u, 39u, 13u, 8u, 12u, 10u}; for (std::size_t i = 0; i < a_ans.size(); ++i) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -76,15 +76,15 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_equal) { BOOST_AUTO_TEST_CASE(polynomial_addition_long_a) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a += b; - std::vector<typename FieldType::value_type> a_ans = {10, 6, 15, 39, 13, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_ans = {10u, 6u, 15u, 39u, 13u, 7u, 7u, 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -93,15 +93,15 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_long_a) { BOOST_AUTO_TEST_CASE(polynomial_addition_long_b) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a += b; - std::vector<typename FieldType::value_type> a_ans = {10, 6, 15, 39, 13, 1, 5, 8}; + std::vector<typename FieldType::value_type> a_ans = {10u, 6u, 15u, 39u, 13u, 1u, 5u, 8u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -110,15 +110,15 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_long_b) { BOOST_AUTO_TEST_CASE(polynomial_addition_zero_a) { - std::vector<typename FieldType::value_type> a_v = {0, 0, 0}; - std::vector<typename FieldType::value_type> b_v = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_v = {0u, 0u, 0u}; + std::vector<typename FieldType::value_type> b_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a += b; - std::vector<typename FieldType::value_type> a_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -127,15 +127,15 @@ BOOST_AUTO_TEST_CASE(polynomial_addition_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_addition_zero_b) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {0, 0, 0}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {0u, 0u, 0u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a += b; - std::vector<typename FieldType::value_type> a_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -148,15 +148,16 @@ BOOST_AUTO_TEST_SUITE(polynomial_subtraction_test_suite) BOOST_AUTO_TEST_CASE(polynomial_subtraction_equal) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a -= b; - std::vector<typename FieldType::value_type> a_ans = {-8, 0, -7, 11, -1, 6, 2, -6}; + std::vector<typename FieldType::value_type> a_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, 6u, 2u, FieldType::modulus - 6u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -165,15 +166,16 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_equal) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_a) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a -= b; - std::vector<typename FieldType::value_type> a_ans = {-8, 0, -7, 11, -1, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, 7u, 7u, 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -182,15 +184,17 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_a) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_b) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6}; - std::vector<typename FieldType::value_type> b_v = {9, 3, 11, 14, 7, 1, 5, 8}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u}; + std::vector<typename FieldType::value_type> b_v = {9u, 3u, 11u, 14u, 7u, 1u, 5u, 8u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a -= b; - std::vector<typename FieldType::value_type> a_ans = {-8, 0, -7, 11, -1, -1, -5, -8}; + std::vector<typename FieldType::value_type> a_ans = { + FieldType::modulus - 8u, 0u, FieldType::modulus - 7u, 11u, FieldType::modulus - 1u, + FieldType::modulus - 1u, FieldType::modulus - 5u, FieldType::modulus - 8u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -199,15 +203,18 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_long_b) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_a) { - std::vector<typename FieldType::value_type> a_v = {0, 0, 0}; - std::vector<typename FieldType::value_type> b_v = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_v = {0u, 0u, 0u}; + std::vector<typename FieldType::value_type> b_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a -= b; - std::vector<typename FieldType::value_type> a_ans = {-1, -3, -4, -25, -6, -7, -7, -2}; + std::vector<typename FieldType::value_type> a_ans = { + FieldType::modulus - 1u, FieldType::modulus - 3u, FieldType::modulus - 4u, + FieldType::modulus - 25u, FieldType::modulus - 6u, FieldType::modulus - 7u, FieldType::modulus - 7u, + FieldType::modulus - 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -216,15 +223,15 @@ BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_subtraction_zero_b) { - std::vector<typename FieldType::value_type> a_v = {1, 3, 4, 25, 6, 7, 7, 2}; - std::vector<typename FieldType::value_type> b_v = {0, 0, 0}; + std::vector<typename FieldType::value_type> a_v = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; + std::vector<typename FieldType::value_type> b_v = {0u, 0u, 0u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a -= b; - std::vector<typename FieldType::value_type> a_ans = {1, 3, 4, 25, 6, 7, 7, 2}; + std::vector<typename FieldType::value_type> a_ans = {1u, 3u, 4u, 25u, 6u, 7u, 7u, 2u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -237,15 +244,15 @@ BOOST_AUTO_TEST_SUITE(polynomial_multiplication_test_suite) BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_a) { - std::vector<typename FieldType::value_type> a_v = {5, 0, 0, 13, 0, 1}; - std::vector<typename FieldType::value_type> b_v = {13, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b_v = {13u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a *= b; - std::vector<typename FieldType::value_type> a_ans = {65, 0, 5, 169, 0, 26, 0, 1}; + std::vector<typename FieldType::value_type> a_ans = {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -254,15 +261,15 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_a) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_b) { - std::vector<typename FieldType::value_type> a_v = {13, 0, 1}; - std::vector<typename FieldType::value_type> b_v = {5, 0, 0, 13, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b_v = {5u, 0u, 0u, 13u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a *= b; - std::vector<typename FieldType::value_type> a_ans = {65, 0, 5, 169, 0, 26, 0, 1}; + std::vector<typename FieldType::value_type> a_ans = {65u, 0u, 5u, 169u, 0u, 26u, 0u, 1u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -271,15 +278,15 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_long_b) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_a) { - std::vector<typename FieldType::value_type> a_v = {0}; - std::vector<typename FieldType::value_type> b_v = {5, 0, 0, 13, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {0u}; + std::vector<typename FieldType::value_type> b_v = {5u, 0u, 0u, 13u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a *= b; - std::vector<typename FieldType::value_type> a_ans = {0}; + std::vector<typename FieldType::value_type> a_ans = {0u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -288,15 +295,15 @@ BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_a) { BOOST_AUTO_TEST_CASE(polynomial_multiplication_zero_b) { - std::vector<typename FieldType::value_type> a_v = {5, 0, 0, 13, 0, 1}; - std::vector<typename FieldType::value_type> b_v = {0}; + std::vector<typename FieldType::value_type> a_v = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b_v = {0u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); a *= b; - std::vector<typename FieldType::value_type> a_ans = {0}; + std::vector<typename FieldType::value_type> a_ans = {0u}; for (std::size_t i = 0; i < a_ans.size(); i++) { BOOST_CHECK_EQUAL(a_ans[i].data, a[i].data); @@ -309,13 +316,13 @@ BOOST_AUTO_TEST_SUITE(polynomial_division_test_suite) BOOST_AUTO_TEST_CASE(polynomial_div) { - std::vector<typename FieldType::value_type> a_v = {5, 0, 0, 13, 0, 1}; - std::vector<typename FieldType::value_type> b_v = {13, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b_v = {13u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); - std::vector<typename FieldType::value_type> q_ans = {0, 0, 0, 1}; + std::vector<typename FieldType::value_type> q_ans = {0u, 0u, 0u, 1u}; a /= b; @@ -326,13 +333,13 @@ BOOST_AUTO_TEST_CASE(polynomial_div) { BOOST_AUTO_TEST_CASE(polynomial_mod) { - std::vector<typename FieldType::value_type> a_v = {5, 0, 0, 13, 0, 1}; - std::vector<typename FieldType::value_type> b_v = {13, 0, 1}; + std::vector<typename FieldType::value_type> a_v = {5u, 0u, 0u, 13u, 0u, 1u}; + std::vector<typename FieldType::value_type> b_v = {13u, 0u, 1u}; polynomial_view<typename FieldType::value_type> a(a_v); polynomial_view<typename FieldType::value_type> b(b_v); - std::vector<typename FieldType::value_type> r_ans = {5}; + std::vector<typename FieldType::value_type> r_ans = {5u}; a %= b; @@ -341,4 +348,4 @@ BOOST_AUTO_TEST_CASE(polynomial_mod) { } } -BOOST_AUTO_TEST_SUITE_END() \ No newline at end of file +BOOST_AUTO_TEST_SUITE_END()