|
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 | 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_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) |
| 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_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 | 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 | 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 | coset_ifft< fr > (fr *, const EvaluationDomain< fr > &) |
| template void | coset_ifft< fr > (std::vector< fr * >, const EvaluationDomain< fr > &) |
| 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_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 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_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 570 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 657 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_linear_polynomial_product | ( | const Fr * | roots, |
| Fr * | dest, | ||
| const size_t | n | ||
| ) |
Definition at line 624 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 647 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 79 of file polynomial_arithmetic.cpp.
Definition at line 614 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::coset_fft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 384 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 417 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_fft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 392 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_fft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 400 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_ifft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 478 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::coset_ifft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 486 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 502 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 529 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 109 of file polynomial_arithmetic.hpp.
| void bb::polynomial_arithmetic::fft | ( | Fr * | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 325 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::fft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 332 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::fft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 339 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 230 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 102 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 346 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::ifft | ( | Fr * | coeffs, |
| Fr * | target, | ||
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 356 of file polynomial_arithmetic.cpp.
| void bb::polynomial_arithmetic::ifft | ( | std::vector< Fr * > | coeffs, |
| const EvaluationDomain< Fr > & | domain | ||
| ) |
Definition at line 366 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 > & | |||
| ) |
|
inline |
Definition at line 43 of file polynomial_arithmetic.cpp.
|
inline |
Definition at line 34 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 49 of file polynomial_arithmetic.cpp.