Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
stdlib_bigfield< BigField > Class Template Reference
Inheritance diagram for stdlib_bigfield< BigField >:

Static Public Member Functions

static void test_add_to_lower_limb_regression ()
 
static void test_division_formula_bug ()
 
static void test_bad_mul ()
 
static std::pair< fq_native, fq_ctget_random_witness (Builder *builder, bool reduce_input=false)
 
static std::pair< fq_native, fq_ctget_random_constant (Builder *builder, bool reduce_input=false)
 
static std::pair< fq_native, fq_ctget_random_element (Builder *builder, bool reduce_input=false)
 
static std::pair< fq_native, fq_ctget_random_element (Builder *builder, InputType type, bool reduce_input=false)
 
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > get_random_witnesses (Builder *builder, size_t num, bool reduce_input=false)
 
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > get_random_constants (Builder *builder, size_t num, bool reduce_input=false)
 
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > get_random_elements (Builder *builder, InputType type, size_t num, bool reduce_input=false)
 
static void test_basic_tag_logic ()
 
static void test_constructor_from_two_elements ()
 
static void test_unsafe_construct_from_limbs ()
 
static void test_construct_from_limbs ()
 
static void test_construct_from_limbs_fails ()
 
static void test_add_two (InputType a_type, InputType b_type, InputType c_type)
 
static void test_sum (InputType a_type, bool mixed_inputs=false)
 
template<typename CircuitOpFunc , typename NativeOpFunc >
static void test_binary_operator_generic (InputType a_type, InputType b_type, CircuitOpFunc circuit_op, NativeOpFunc native_op, const char *op_name, size_t num_repetitions=10, bool need_reduced_inputs=false, bool need_reduction_after=false, bool do_tags_merge=true)
 
static void test_negate (InputType a_type)
 
static void test_sqr (InputType a_type)
 
template<typename CircuitOpFunc , typename NativeOpFunc >
static void test_assign_operator_generic (InputType a_type, InputType b_type, CircuitOpFunc circuit_op, NativeOpFunc native_op, const char *op_name, size_t num_repetitions=4, bool need_reduced_inputs=false, bool need_reduction_after=false)
 
static void test_madd (InputType a_type, InputType b_type, InputType c_type)
 
static void test_sqradd (InputType a_type, InputType b_type)
 
static void test_mult_madd (InputType left_type, InputType right_type, InputType to_add_type, bool edge_case=false)
 
static void test_dual_madd ()
 
static void test_div_without_denominator_check (InputType a_type, InputType b_type)
 
static void test_add_and_div ()
 
static void test_add_and_mul (InputType summand_type)
 
static void test_sub_and_mul (InputType subtrahend_type)
 
static void test_msub_div (InputType multiplicand_type, InputType to_sub_type, InputType divisor_type)
 
static void test_conditional_assign (InputType a_type, InputType b_type, InputType predicate_type)
 
static void test_conditional_select (InputType a_type, InputType b_type, InputType predicate_type)
 
static void test_conditional_negate (InputType a_type, InputType predicate_type)
 
static void test_group_operations ()
 
static void test_reduce ()
 
static void test_equality_operator (InputType a_type, InputType b_type)
 
static void test_assert_is_in_field_success ()
 
static void test_assert_is_in_field_fails ()
 
static void test_assert_less_than_success ()
 
static void test_assert_less_than_fails ()
 
static void test_reduce_mod_target_modulus ()
 
static void test_byte_array_constructors ()
 
static void test_to_byte_array ()
 
static void test_quotient_completeness ()
 
static void test_conditional_select_regression ()
 
static void test_division_context ()
 
static void test_inversion ()
 
static void test_assert_equal_not_equal ()
 
static void test_pow ()
 
static void test_pow_one ()
 
static void test_unsafe_assert_less_than ()
 
static void test_unsafe_assert_less_than_fails ()
 
static void test_unsafe_evaluate_multiply_add ()
 
static void test_unsafe_evaluate_multiply_add_fails ()
 
static void test_unsafe_multiple_multiply_add ()
 
static void test_unsafe_multiple_multiply_add_fails ()
 
static void test_nonnormalized_field_bug_regression ()
 
static void test_msub_div_ctx_crash_regression ()
 
static void test_internal_div_regression ()
 
static void test_internal_div_regression2 ()
 
static void test_internal_div_regression3 ()
 
static void test_assert_not_equal_regression ()
 

Private Types

using Builder = builder_t< BigField >
 
using fr_ct = typename bb::stdlib::bn254< Builder >::ScalarField
 
using fq_native = bb::field< params_t< BigField > >
 
using fq_ct = BigField
 
using witness_ct = stdlib::witness_t< Builder >
 
using bool_ct = stdlib::bool_t< Builder >
 
using byte_array_ct = stdlib::byte_array< Builder >
 

Detailed Description

template<typename BigField>
class stdlib_bigfield< BigField >

Definition at line 56 of file bigfield.test.cpp.

Member Typedef Documentation

◆ bool_ct

template<typename BigField >
using stdlib_bigfield< BigField >::bool_ct = stdlib::bool_t<Builder>
private

Definition at line 63 of file bigfield.test.cpp.

◆ Builder

template<typename BigField >
using stdlib_bigfield< BigField >::Builder = builder_t<BigField>
private

Definition at line 58 of file bigfield.test.cpp.

◆ byte_array_ct

template<typename BigField >
using stdlib_bigfield< BigField >::byte_array_ct = stdlib::byte_array<Builder>
private

Definition at line 64 of file bigfield.test.cpp.

◆ fq_ct

template<typename BigField >
using stdlib_bigfield< BigField >::fq_ct = BigField
private

Definition at line 61 of file bigfield.test.cpp.

◆ fq_native

template<typename BigField >
using stdlib_bigfield< BigField >::fq_native = bb::field<params_t<BigField> >
private

Definition at line 60 of file bigfield.test.cpp.

◆ fr_ct

template<typename BigField >
using stdlib_bigfield< BigField >::fr_ct = typename bb::stdlib::bn254<Builder>::ScalarField
private

Definition at line 59 of file bigfield.test.cpp.

◆ witness_ct

template<typename BigField >
using stdlib_bigfield< BigField >::witness_ct = stdlib::witness_t<Builder>
private

Definition at line 62 of file bigfield.test.cpp.

Member Function Documentation

◆ get_random_constant()

template<typename BigField >
static std::pair< fq_native, fq_ct > stdlib_bigfield< BigField >::get_random_constant ( Builder builder,
bool  reduce_input = false 
)
inlinestatic

Definition at line 139 of file bigfield.test.cpp.

◆ get_random_constants()

template<typename BigField >
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > stdlib_bigfield< BigField >::get_random_constants ( Builder builder,
size_t  num,
bool  reduce_input = false 
)
inlinestatic

Definition at line 178 of file bigfield.test.cpp.

◆ get_random_element() [1/2]

template<typename BigField >
static std::pair< fq_native, fq_ct > stdlib_bigfield< BigField >::get_random_element ( Builder builder,
bool  reduce_input = false 
)
inlinestatic

Definition at line 150 of file bigfield.test.cpp.

◆ get_random_element() [2/2]

template<typename BigField >
static std::pair< fq_native, fq_ct > stdlib_bigfield< BigField >::get_random_element ( Builder builder,
InputType  type,
bool  reduce_input = false 
)
inlinestatic

Definition at line 156 of file bigfield.test.cpp.

◆ get_random_elements()

template<typename BigField >
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > stdlib_bigfield< BigField >::get_random_elements ( Builder builder,
InputType  type,
size_t  num,
bool  reduce_input = false 
)
inlinestatic

Definition at line 192 of file bigfield.test.cpp.

◆ get_random_witness()

template<typename BigField >
static std::pair< fq_native, fq_ct > stdlib_bigfield< BigField >::get_random_witness ( Builder builder,
bool  reduce_input = false 
)
inlinestatic

Definition at line 124 of file bigfield.test.cpp.

◆ get_random_witnesses()

template<typename BigField >
static std::pair< std::vector< fq_native >, std::vector< fq_ct > > stdlib_bigfield< BigField >::get_random_witnesses ( Builder builder,
size_t  num,
bool  reduce_input = false 
)
inlinestatic

Definition at line 164 of file bigfield.test.cpp.

◆ test_add_and_div()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_add_and_div ( )
inlinestatic

Definition at line 868 of file bigfield.test.cpp.

◆ test_add_and_mul()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_add_and_mul ( InputType  summand_type)
inlinestatic

Definition at line 903 of file bigfield.test.cpp.

◆ test_add_to_lower_limb_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_add_to_lower_limb_regression ( )
inlinestatic

Definition at line 67 of file bigfield.test.cpp.

◆ test_add_two()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_add_two ( InputType  a_type,
InputType  b_type,
InputType  c_type 
)
inlinestatic

Definition at line 349 of file bigfield.test.cpp.

◆ test_assert_equal_not_equal()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_equal_not_equal ( )
inlinestatic

Definition at line 1567 of file bigfield.test.cpp.

◆ test_assert_is_in_field_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_is_in_field_fails ( )
inlinestatic

Definition at line 1291 of file bigfield.test.cpp.

◆ test_assert_is_in_field_success()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_is_in_field_success ( )
inlinestatic

Definition at line 1248 of file bigfield.test.cpp.

◆ test_assert_less_than_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_less_than_fails ( )
inlinestatic

Definition at line 1352 of file bigfield.test.cpp.

◆ test_assert_less_than_success()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_less_than_success ( )
inlinestatic

Definition at line 1325 of file bigfield.test.cpp.

◆ test_assert_not_equal_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_assert_not_equal_regression ( )
inlinestatic

Definition at line 2061 of file bigfield.test.cpp.

◆ test_assign_operator_generic()

template<typename BigField >
template<typename CircuitOpFunc , typename NativeOpFunc >
static void stdlib_bigfield< BigField >::test_assign_operator_generic ( InputType  a_type,
InputType  b_type,
CircuitOpFunc  circuit_op,
NativeOpFunc  native_op,
const char *  op_name,
size_t  num_repetitions = 4,
bool  need_reduced_inputs = false,
bool  need_reduction_after = false 
)
inlinestatic

Definition at line 561 of file bigfield.test.cpp.

◆ test_bad_mul()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_bad_mul ( )
inlinestatic

Definition at line 111 of file bigfield.test.cpp.

◆ test_basic_tag_logic()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_basic_tag_logic ( )
inlinestatic

Definition at line 207 of file bigfield.test.cpp.

◆ test_binary_operator_generic()

template<typename BigField >
template<typename CircuitOpFunc , typename NativeOpFunc >
static void stdlib_bigfield< BigField >::test_binary_operator_generic ( InputType  a_type,
InputType  b_type,
CircuitOpFunc  circuit_op,
NativeOpFunc  native_op,
const char *  op_name,
size_t  num_repetitions = 10,
bool  need_reduced_inputs = false,
bool  need_reduction_after = false,
bool  do_tags_merge = true 
)
inlinestatic

Definition at line 454 of file bigfield.test.cpp.

◆ test_byte_array_constructors()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_byte_array_constructors ( )
inlinestatic

Definition at line 1437 of file bigfield.test.cpp.

◆ test_conditional_assign()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_conditional_assign ( InputType  a_type,
InputType  b_type,
InputType  predicate_type 
)
inlinestatic

Definition at line 1011 of file bigfield.test.cpp.

◆ test_conditional_negate()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_conditional_negate ( InputType  a_type,
InputType  predicate_type 
)
inlinestatic

Definition at line 1099 of file bigfield.test.cpp.

◆ test_conditional_select()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_conditional_select ( InputType  a_type,
InputType  b_type,
InputType  predicate_type 
)
inlinestatic

Definition at line 1055 of file bigfield.test.cpp.

◆ test_conditional_select_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_conditional_select_regression ( )
inlinestatic

Definition at line 1534 of file bigfield.test.cpp.

◆ test_construct_from_limbs()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_construct_from_limbs ( )
inlinestatic

Definition at line 289 of file bigfield.test.cpp.

◆ test_construct_from_limbs_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_construct_from_limbs_fails ( )
inlinestatic

Definition at line 320 of file bigfield.test.cpp.

◆ test_constructor_from_two_elements()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_constructor_from_two_elements ( )
inlinestatic

Definition at line 231 of file bigfield.test.cpp.

◆ test_div_without_denominator_check()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_div_without_denominator_check ( InputType  a_type,
InputType  b_type 
)
inlinestatic

Definition at line 827 of file bigfield.test.cpp.

◆ test_division_context()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_division_context ( )
inlinestatic

Definition at line 1545 of file bigfield.test.cpp.

◆ test_division_formula_bug()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_division_formula_bug ( )
inlinestatic

Definition at line 99 of file bigfield.test.cpp.

◆ test_dual_madd()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_dual_madd ( )
inlinestatic

Definition at line 780 of file bigfield.test.cpp.

◆ test_equality_operator()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_equality_operator ( InputType  a_type,
InputType  b_type 
)
inlinestatic

Definition at line 1225 of file bigfield.test.cpp.

◆ test_group_operations()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_group_operations ( )
inlinestatic

Definition at line 1146 of file bigfield.test.cpp.

◆ test_internal_div_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_internal_div_regression ( )
inlinestatic

Definition at line 1973 of file bigfield.test.cpp.

◆ test_internal_div_regression2()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_internal_div_regression2 ( )
inlinestatic

Definition at line 1992 of file bigfield.test.cpp.

◆ test_internal_div_regression3()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_internal_div_regression3 ( )
inlinestatic

Definition at line 2011 of file bigfield.test.cpp.

◆ test_inversion()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_inversion ( )
inlinestatic

Definition at line 1554 of file bigfield.test.cpp.

◆ test_madd()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_madd ( InputType  a_type,
InputType  b_type,
InputType  c_type 
)
inlinestatic

Definition at line 632 of file bigfield.test.cpp.

◆ test_msub_div()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_msub_div ( InputType  multiplicand_type,
InputType  to_sub_type,
InputType  divisor_type 
)
inlinestatic

Definition at line 972 of file bigfield.test.cpp.

◆ test_msub_div_ctx_crash_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_msub_div_ctx_crash_regression ( )
inlinestatic

Definition at line 1963 of file bigfield.test.cpp.

◆ test_mult_madd()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_mult_madd ( InputType  left_type,
InputType  right_type,
InputType  to_add_type,
bool  edge_case = false 
)
inlinestatic

Definition at line 710 of file bigfield.test.cpp.

◆ test_negate()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_negate ( InputType  a_type)
inlinestatic

Definition at line 530 of file bigfield.test.cpp.

◆ test_nonnormalized_field_bug_regression()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_nonnormalized_field_bug_regression ( )
inlinestatic

Definition at line 1949 of file bigfield.test.cpp.

◆ test_pow()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_pow ( )
inlinestatic

Definition at line 1595 of file bigfield.test.cpp.

◆ test_pow_one()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_pow_one ( )
inlinestatic

Definition at line 1625 of file bigfield.test.cpp.

◆ test_quotient_completeness()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_quotient_completeness ( )
inlinestatic

Definition at line 1493 of file bigfield.test.cpp.

◆ test_reduce()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_reduce ( )
inlinestatic

Definition at line 1196 of file bigfield.test.cpp.

◆ test_reduce_mod_target_modulus()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_reduce_mod_target_modulus ( )
inlinestatic

Definition at line 1396 of file bigfield.test.cpp.

◆ test_sqr()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_sqr ( InputType  a_type)
inlinestatic

Definition at line 545 of file bigfield.test.cpp.

◆ test_sqradd()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_sqradd ( InputType  a_type,
InputType  b_type 
)
inlinestatic

Definition at line 673 of file bigfield.test.cpp.

◆ test_sub_and_mul()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_sub_and_mul ( InputType  subtrahend_type)
inlinestatic

Definition at line 937 of file bigfield.test.cpp.

◆ test_sum()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_sum ( InputType  a_type,
bool  mixed_inputs = false 
)
inlinestatic

Definition at line 391 of file bigfield.test.cpp.

◆ test_to_byte_array()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_to_byte_array ( )
inlinestatic

Definition at line 1472 of file bigfield.test.cpp.

◆ test_unsafe_assert_less_than()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_assert_less_than ( )
inlinestatic

Definition at line 1648 of file bigfield.test.cpp.

◆ test_unsafe_assert_less_than_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_assert_less_than_fails ( )
inlinestatic

Definition at line 1695 of file bigfield.test.cpp.

◆ test_unsafe_construct_from_limbs()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_construct_from_limbs ( )
inlinestatic

Definition at line 257 of file bigfield.test.cpp.

◆ test_unsafe_evaluate_multiply_add()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_evaluate_multiply_add ( )
inlinestatic

Definition at line 1750 of file bigfield.test.cpp.

◆ test_unsafe_evaluate_multiply_add_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_evaluate_multiply_add_fails ( )
inlinestatic

Definition at line 1808 of file bigfield.test.cpp.

◆ test_unsafe_multiple_multiply_add()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_multiple_multiply_add ( )
inlinestatic

Definition at line 1837 of file bigfield.test.cpp.

◆ test_unsafe_multiple_multiply_add_fails()

template<typename BigField >
static void stdlib_bigfield< BigField >::test_unsafe_multiple_multiply_add_fails ( )
inlinestatic

Definition at line 1906 of file bigfield.test.cpp.


The documentation for this class was generated from the following file: