Barretenberg
The ZK-SNARK library at the core of Aztec
|
#include "polynomial_arithmetic.hpp"
#include "barretenberg/common/assert.hpp"
#include "barretenberg/common/mem.hpp"
#include "barretenberg/common/slab_allocator.hpp"
#include "barretenberg/common/thread.hpp"
#include "barretenberg/numeric/bitop/get_msb.hpp"
#include "iterate_over_domain.hpp"
#include <math.h>
#include <memory.h>
#include <memory>
Go to the source code of this file.
Namespaces | |
namespace | bb |
Entry point for Barretenberg command-line interface. | |
namespace | bb::polynomial_arithmetic |
Functions | |
uint32_t | bb::polynomial_arithmetic::reverse_bits (uint32_t x, uint32_t bit_length) |
bool | bb::polynomial_arithmetic::is_power_of_two (uint64_t x) |
template<typename Fr > | |
void | bb::polynomial_arithmetic::copy_polynomial (const Fr *src, Fr *dest, size_t num_src_coefficients, size_t num_target_coefficients) |
template<typename Fr > | |
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) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::compute_multiplicative_subgroup (const size_t log2_subgroup_size, const EvaluationDomain< Fr > &src_domain, Fr *subgroup_roots) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::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 | bb::polynomial_arithmetic::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 | bb::polynomial_arithmetic::fft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::fft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::fft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::ifft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::ifft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::ifft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft (Fr *coeffs, Fr *target, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft (Fr *coeffs, const EvaluationDomain< Fr > &domain, const EvaluationDomain< Fr > &, const size_t domain_extension) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft_with_constant (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &constant) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_fft_with_generator_shift (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &constant) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::ifft_with_constant (Fr *coeffs, const EvaluationDomain< Fr > &domain, const Fr &value) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_ifft (Fr *coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > requires SupportsFFT<Fr> | |
void | bb::polynomial_arithmetic::coset_ifft (std::vector< Fr * > coeffs, const EvaluationDomain< Fr > &domain) |
template<typename Fr > | |
Fr | bb::polynomial_arithmetic::evaluate (const Fr *coeffs, const Fr &z, const size_t n) |
template<typename Fr > | |
Fr | bb::polynomial_arithmetic::evaluate (const std::vector< Fr * > coeffs, const Fr &z, const size_t large_n) |
template<typename Fr > requires SupportsFFT<Fr> | |
Fr | bb::polynomial_arithmetic::compute_kate_opening_coefficients (const Fr *src, Fr *dest, const Fr &z, const size_t n) |
fr | bb::polynomial_arithmetic::compute_barycentric_evaluation (const fr *coeffs, const size_t num_coeffs, const fr &z, const EvaluationDomain< fr > &domain) |
template<typename Fr > | |
Fr | bb::polynomial_arithmetic::compute_sum (const Fr *src, const size_t n) |
template<typename Fr > | |
void | bb::polynomial_arithmetic::compute_linear_polynomial_product (const Fr *roots, Fr *dest, const size_t n) |
template<typename Fr > | |
Fr | bb::polynomial_arithmetic::compute_linear_polynomial_product_evaluation (const Fr *roots, const Fr z, const size_t n) |
template<typename Fr > | |
void | bb::polynomial_arithmetic::compute_interpolation (const Fr *src, Fr *dest, const Fr *evaluation_points, const size_t n) |
template<typename Fr > | |
void | bb::polynomial_arithmetic::compute_efficient_interpolation (const Fr *src, Fr *dest, const Fr *evaluation_points, const size_t n) |
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 void | bb::polynomial_arithmetic::copy_polynomial< fr > (const fr *, fr *, size_t, size_t) |
template void | bb::polynomial_arithmetic::fft_inner_parallel< fr > (std::vector< fr * >, const EvaluationDomain< fr > &, const fr &, const std::vector< fr * > &) |
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 > &) |
template void | bb::polynomial_arithmetic::coset_fft< fr > (fr *, const EvaluationDomain< fr > &) |
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 > &) |
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_with_constant< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
template void | bb::polynomial_arithmetic::coset_fft_with_generator_shift< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
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 > &) |
template void | bb::polynomial_arithmetic::ifft_with_constant< fr > (fr *, const EvaluationDomain< fr > &, const fr &) |
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 > &) |
template fr | bb::polynomial_arithmetic::compute_kate_opening_coefficients< fr > (const fr *, fr *, const fr &, const size_t) |
template fr | bb::polynomial_arithmetic::compute_sum< fr > (const fr *, const size_t) |
template void | bb::polynomial_arithmetic::compute_linear_polynomial_product< fr > (const fr *, fr *, const size_t) |
template void | bb::polynomial_arithmetic::compute_interpolation< fr > (const fr *, fr *, const fr *, const size_t) |
template void | bb::polynomial_arithmetic::compute_efficient_interpolation< fr > (const fr *, 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) |
template void | bb::polynomial_arithmetic::copy_polynomial< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, size_t, size_t) |
template grumpkin::fr | bb::polynomial_arithmetic::compute_sum< grumpkin::fr > (const grumpkin::fr *, const size_t) |
template void | bb::polynomial_arithmetic::compute_linear_polynomial_product< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, const size_t) |
template void | bb::polynomial_arithmetic::compute_interpolation< grumpkin::fr > (const grumpkin::fr *, grumpkin::fr *, const grumpkin::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) |