|
Barretenberg
The ZK-SNARK library at the core of Aztec
|
Classes | |
| struct | LagrangeEvaluations |
Concepts | |
| concept | SupportsFFT |
Typedefs | |
| using | lagrange_evaluations = LagrangeEvaluations< fr > |
Functions | |
| uint32_t | reverse_bits (uint32_t x, uint32_t bit_length) |
| bool | is_power_of_two (uint64_t x) |
| template<typename Fr > | |
| void | copy_polynomial (const Fr *src, Fr *dest, size_t num_src_coefficients, size_t num_target_coefficients) |
| template<typename Fr > | |
| void | scale_by_generator (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain, const Fr &generator_start, const Fr &generator_shift, const size_t generator_size) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | compute_multiplicative_subgroup (const size_t log2_subgroup_size, const EvaluationDomain< Fr > &src_domain, Fr *subgroup_roots) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | fft_inner_parallel (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain, const Fr &, const std::vector< Fr * > &root_table) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | fft_inner_parallel (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain, const Fr &, const std::vector< Fr * > &root_table) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | fft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | fft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | fft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | ifft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | ifft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | ifft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft (Fr *coeffs, const EvaluationDomain< Fr > &domain, const EvaluationDomain< Fr > &, const size_t domain_extension) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft_with_constant (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &constant) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_fft_with_generator_shift (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &constant) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | ifft_with_constant (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &value) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_ifft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| void | coset_ifft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
| template<typename Fr > | |
| Fr | evaluate (const Fr *coeffs, const Fr &z, const size_t n) |
| template<typename Fr > | |
| Fr | evaluate (const std::vector< Fr * > coeffs, const Fr &z, const size_t large_n) |
| template<typename Fr > requires SupportsFFT<Fr> | |
| Fr | compute_kate_opening_coefficients (const Fr *src, Fr *dest, const Fr &z, const size_t n) |
| fr | compute_barycentric_evaluation (const fr *coeffs, const size_t num_coeffs, const fr &z, const EvaluationDomain< fr > &domain) |
| template<typename Fr > | |
| Fr | compute_sum (const Fr *src, const size_t n) |
| template<typename Fr > | |
| void | compute_linear_polynomial_product (const Fr *roots, Fr *dest, const size_t n) |
| template<typename Fr > | |
| Fr | compute_linear_polynomial_product_evaluation (const Fr *roots, const Fr z, const size_t n) |
| template<typename Fr > | |
| void | compute_interpolation (const Fr *src, Fr *dest, const Fr *evaluation_points, const size_t n) |
| template<typename Fr > | |
| void | compute_efficient_interpolation (const Fr *src, Fr *dest, const Fr *evaluation_points, const size_t n) |
| template fr | evaluate< fr > (const fr *, const fr &, const size_t) |
| template fr | evaluate< fr > (const std::vector< fr * >, const fr &, const size_t) |
| template void | copy_polynomial< fr > (const fr *, fr *, size_t, size_t) |
| template void | fft_inner_parallel< fr > (std::vector< fr * >, const EvaluationDomain< fr > &, const fr &, const std::vector< fr * > &) |
| template void | fft< fr > (fr *, const EvaluationDomain< fr > &) |
| template void | fft< fr > (fr *, fr *, const EvaluationDomain< fr > &) |
| template void | fft< fr > (std::vector< fr * >, const EvaluationDomain< fr > &) |
| template void | coset_fft< fr > (fr *, const EvaluationDomain< fr > &) |
| template void | coset_fft< fr > (fr *, fr *, const EvaluationDomain< fr > &) |
| template void | coset_fft< fr > (std::vector< fr * >, const EvaluationDomain< fr > &) |
| template void | coset_fft< fr > (fr *, const EvaluationDomain< fr > &, const EvaluationDomain< fr > &, const size_t) |
| template void | coset_fft_with_constant< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
| template void | coset_fft_with_generator_shift< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
| template void | ifft< fr > (fr *, const EvaluationDomain< fr > &) |
| template void | ifft< fr > (fr *, fr *, const EvaluationDomain< fr > &) |
| template void | ifft< fr > (std::vector< fr * >, const EvaluationDomain< fr > &) |
| template void | ifft_with_constant< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
| template void | coset_ifft< fr > (fr *, const EvaluationDomain< fr > &) |
| template void | coset_ifft< fr > (std::vector< fr * >, const EvaluationDomain< fr > &) |
| template fr | compute_kate_opening_coefficients< fr > (const fr *, fr *, const fr &, const size_t) |
| template fr | compute_sum< fr > (const fr *, const size_t) |
| template void | compute_linear_polynomial_product< fr > (const fr *, fr *, const size_t) |
| template void | compute_interpolation< fr > (const fr *, fr *, const fr *, const size_t) |
| template void | compute_efficient_interpolation< fr > (const fr *, fr *, const fr *, const size_t) |
| template grumpkin::fr | evaluate< grumpkin::fr > (const grumpkin::fr *, const grumpkin::fr &, const size_t) |
| template grumpkin::fr | evaluate< grumpkin::fr > (const std::vector< grumpkin::fr * >, const grumpkin::fr &, const size_t) |
| template void | copy_polynomial< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, size_t, size_t) |
| template grumpkin::fr | compute_sum< grumpkin::fr > (const grumpkin::fr *, const size_t) |
| template void | compute_linear_polynomial_product< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, const size_t) |
| template void | compute_interpolation< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, const grumpkin::fr *, const size_t) |
| template void | compute_efficient_interpolation< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, const grumpkin::fr *, const size_t) |
| template<typename Fr > | |
| Fr | evaluate (std::span< const Fr > coeffs, const Fr &z, const size_t n) |
| template<typename Fr > | |
| Fr | evaluate (std::span< const Fr > coeffs, const Fr &z) |
| fr | compute_barycentric_evaluation (const fr *coeffs, unsigned long num_coeffs, const fr &z, const EvaluationDomain< fr > &domain) |
| template<typename Fr > | |
| void | factor_roots (std::span< Fr > polynomial, const Fr &root) |
| Divides p(X) by (X-r) in-place. | |
| using bb::polynomial_arithmetic::lagrange_evaluations = typedef LagrangeEvaluations<fr> |
Definition at line 21 of file polynomial_arithmetic.hpp.
| fr bb::polynomial_arithmetic::compute_barycentric_evaluation | ( | const fr * | coeffs, |
| const size_t | num_coeffs, | ||
| const fr & | z, | ||
| const EvaluationDomain< fr > & | domain | ||
| ) |
Definition at line 642 of file polynomial_arithmetic.cpp.
| fr bb::polynomial_arithmetic::compute_barycentric_evaluation | ( | const fr * | coeffs, |
| unsigned long | num_coeffs, | ||
| const fr & | z, | ||
| const EvaluationDomain< fr > & | domain | ||
| ) |
| void bb::polynomial_arithmetic::compute_efficient_interpolation | ( | const Fr * | src, |
| Fr * | dest, | ||
| const Fr * | evaluation_points, | ||
| const size_t | n | ||
| ) |
Definition at line 775 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::compute_efficient_interpolation< fr > | ( | const fr * | , |
| fr * | , | ||
| const fr * | , | ||
| const size_t | |||
| ) |
| template void bb::polynomial_arithmetic::compute_efficient_interpolation< grumpkin::fr > | ( | const grumpkin::fr * | , |
| grumpkin::fr * | , | ||
| const grumpkin::fr * | , | ||
| const size_t | |||
| ) |
| void bb::polynomial_arithmetic::compute_interpolation | ( | const Fr * | src, |
| Fr * | dest, | ||
| const Fr * | evaluation_points, | ||
| const size_t | n | ||
| ) |
Definition at line 728 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::compute_interpolation< fr > | ( | const fr * | , |
| fr * | , | ||
| const fr * | , | ||
| const size_t | |||
| ) |
| template void bb::polynomial_arithmetic::compute_interpolation< grumpkin::fr > | ( | const grumpkin::fr * | , |
| grumpkin::fr * | , | ||
| const grumpkin::fr * | , | ||
| const size_t | |||
| ) |
| Fr bb::polynomial_arithmetic::compute_kate_opening_coefficients | ( | const Fr * | src, |
| Fr * | dest, | ||
| const Fr & | z, | ||
| const size_t | n | ||
| ) |
Definition at line 607 of file polynomial_arithmetic.cpp.
| template fr bb::polynomial_arithmetic::compute_kate_opening_coefficients< fr > | ( | const fr * | , |
| fr * | , | ||
| const fr & | , | ||
| const size_t | |||
| ) |
| void bb::polynomial_arithmetic::compute_linear_polynomial_product | ( | const Fr * | roots, |
| Fr * | dest, | ||
| const size_t | n | ||
| ) |
Definition at line 696 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::compute_linear_polynomial_product< fr > | ( | const fr * | , |
| fr * | , | ||
| const size_t | |||
| ) |
| template void bb::polynomial_arithmetic::compute_linear_polynomial_product< grumpkin::fr > | ( | const grumpkin::fr * | , |
| grumpkin::fr * | , | ||
| const size_t | |||
| ) |
| Fr bb::polynomial_arithmetic::compute_linear_polynomial_product_evaluation | ( | const Fr * | roots, |
| const Fr | z, | ||
| const size_t | n | ||
| ) |
Definition at line 719 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::compute_multiplicative_subgroup | ( | const size_t | log2_subgroup_size, |
| const EvaluationDomain< Fr > & | src_domain, | ||
| Fr * | subgroup_roots | ||
| ) |
Compute multiplicative subgroup (g.X)^n.
Compute the subgroup for X in roots of unity of (2^log2_subgroup_size)*n. X^n will loop through roots of unity (2^log2_subgroup_size).
| log2_subgroup_size | Log_2 of the subgroup size. |
| src_domain | The domain of size n. |
| subgroup_roots | Pointer to the array for saving subgroup members. |
Definition at line 98 of file polynomial_arithmetic.cpp.
Definition at line 686 of file polynomial_arithmetic.cpp.
| template fr bb::polynomial_arithmetic::compute_sum< fr > | ( | const fr * | , |
| const size_t | |||
| ) |
| template grumpkin::fr bb::polynomial_arithmetic::compute_sum< grumpkin::fr > | ( | const grumpkin::fr * | , |
| const size_t | |||
| ) |
| void bb::polynomial_arithmetic::copy_polynomial | ( | const Fr * | src, |
| Fr * | dest, | ||
| size_t | num_src_coefficients, | ||
| size_t | num_target_coefficients | ||
| ) |
Definition at line 56 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::copy_polynomial< fr > | ( | const fr * | , |
| fr * | , | ||
| size_t | , | ||
| size_t | |||
| ) |
| template void bb::polynomial_arithmetic::copy_polynomial< grumpkin::fr > | ( | const grumpkin::fr * | , |
| grumpkin::fr * | , | ||
| size_t | , | ||
| size_t | |||
| ) |
| void bb::polynomial_arithmetic::coset_fft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 403 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_fft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain, | ||
| const EvaluationDomain< Fr > & | , | ||
| const size_t | domain_extension | ||
| ) |
Definition at line 436 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_fft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 411 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_fft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 419 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::coset_fft< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::coset_fft< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | , | ||
| const EvaluationDomain< fr > & | , | ||
| const size_t | |||
| ) |
| template void bb::polynomial_arithmetic::coset_fft< fr > | ( | fr * | , |
| fr * | , | ||
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::coset_fft< fr > | ( | std::vector< fr * > | , |
| const EvaluationDomain< fr > & | |||
| ) |
| void bb::polynomial_arithmetic::coset_fft_with_constant | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | constant | ||
| ) |
Definition at line 497 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::coset_fft_with_constant< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | , | ||
| const fr & | |||
| ) |
| void bb::polynomial_arithmetic::coset_fft_with_generator_shift | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | constant | ||
| ) |
Definition at line 506 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::coset_fft_with_generator_shift< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | , | ||
| const fr & | |||
| ) |
| void bb::polynomial_arithmetic::coset_ifft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 525 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_ifft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 533 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::coset_ifft< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::coset_ifft< fr > | ( | std::vector< fr * > | , |
| const EvaluationDomain< fr > & | |||
| ) |
| Fr bb::polynomial_arithmetic::evaluate | ( | const Fr * | coeffs, |
| const Fr & | z, | ||
| const size_t | n | ||
| ) |
Definition at line 549 of file polynomial_arithmetic.cpp.
| Fr bb::polynomial_arithmetic::evaluate | ( | const std::vector< Fr * > | coeffs, |
| const Fr & | z, | ||
| const size_t | large_n | ||
| ) |
Definition at line 575 of file polynomial_arithmetic.cpp.
| Fr bb::polynomial_arithmetic::evaluate | ( | std::span< const Fr > | coeffs, |
| const Fr & | z | ||
| ) |
Definition at line 29 of file polynomial_arithmetic.hpp.
| Fr bb::polynomial_arithmetic::evaluate | ( | std::span< const Fr > | coeffs, |
| const Fr & | z, | ||
| const size_t | n | ||
| ) |
Definition at line 24 of file polynomial_arithmetic.hpp.
| template fr bb::polynomial_arithmetic::evaluate< fr > | ( | const fr * | , |
| const fr & | , | ||
| const size_t | |||
| ) |
| template fr bb::polynomial_arithmetic::evaluate< fr > | ( | const std::vector< fr * > | , |
| const fr & | , | ||
| const size_t | |||
| ) |
| template grumpkin::fr bb::polynomial_arithmetic::evaluate< grumpkin::fr > | ( | const grumpkin::fr * | , |
| const grumpkin::fr & | , | ||
| const size_t | |||
| ) |
| template grumpkin::fr bb::polynomial_arithmetic::evaluate< grumpkin::fr > | ( | const std::vector< grumpkin::fr * > | , |
| const grumpkin::fr & | , | ||
| const size_t | |||
| ) |
| void bb::polynomial_arithmetic::factor_roots | ( | std::span< Fr > | polynomial, |
| const Fr & | root | ||
| ) |
Divides p(X) by (X-r) in-place.
Definition at line 130 of file polynomial_arithmetic.hpp.
| void bb::polynomial_arithmetic::fft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 344 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::fft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 351 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::fft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 358 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::fft< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::fft< fr > | ( | fr * | , |
| fr * | , | ||
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::fft< fr > | ( | std::vector< fr * > | , |
| const EvaluationDomain< fr > & | |||
| ) |
| void bb::polynomial_arithmetic::fft_inner_parallel | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | , | ||
| const std::vector< Fr * > & | root_table | ||
| ) |
Definition at line 249 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::fft_inner_parallel | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | , | ||
| const std::vector< Fr * > & | root_table | ||
| ) |
Definition at line 121 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::fft_inner_parallel< fr > | ( | std::vector< fr * > | , |
| const EvaluationDomain< fr > & | , | ||
| const fr & | , | ||
| const std::vector< fr * > & | |||
| ) |
| void bb::polynomial_arithmetic::ifft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 365 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::ifft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 375 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::ifft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 385 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::ifft< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::ifft< fr > | ( | fr * | , |
| fr * | , | ||
| const EvaluationDomain< fr > & | |||
| ) |
| template void bb::polynomial_arithmetic::ifft< fr > | ( | std::vector< fr * > | , |
| const EvaluationDomain< fr > & | |||
| ) |
| void bb::polynomial_arithmetic::ifft_with_constant | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | value | ||
| ) |
Definition at line 514 of file polynomial_arithmetic.cpp.
| template void bb::polynomial_arithmetic::ifft_with_constant< fr > | ( | fr * | , |
| const EvaluationDomain< fr > & | , | ||
| const fr & | |||
| ) |
|
inline |
Definition at line 50 of file polynomial_arithmetic.cpp.
|
inline |
Definition at line 41 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::scale_by_generator | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain, | ||
| const Fr & | generator_start, | ||
| const Fr & | generator_shift, | ||
| const size_t | generator_size | ||
| ) |
Definition at line 68 of file polynomial_arithmetic.cpp.