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.