Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start > Class Template Reference

#include <barycentric.hpp>

Static Public Member Functions

static constexpr std::array< Fr, big_domain_sizeconstruct_big_domain ()
 
static constexpr std::array< Fr, domain_sizeconstruct_lagrange_denominators (const auto &big_domain)
 
static constexpr std::array< Fr, domain_size *num_evals > batch_invert (const std::array< Fr, domain_size *num_evals > &coeffs)
 
static constexpr std::array< Fr, domain_size *num_evals > construct_denominator_inverses (const auto &big_domain, const auto &lagrange_denominators)
 
static constexpr std::array< Fr, num_evals > construct_full_numerator_values (const auto &big_domain)
 

Static Public Attributes

static constexpr size_t domain_size = domain_end - domain_start
 
static constexpr size_t big_domain_size = std::max(domain_size, num_evals)
 
static constexpr auto big_domain = construct_big_domain()
 
static constexpr auto lagrange_denominators = construct_lagrange_denominators(big_domain)
 
static constexpr auto precomputed_denominator_inverses
 
static constexpr auto full_numerator_values = construct_full_numerator_values(big_domain)
 

Detailed Description

template<class Fr, size_t domain_end, size_t num_evals, size_t domain_start = 0>
class bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >
Todo:
: TODO(https://github.com/AztecProtocol/barretenberg/issues/713) Optimize with lookup tables?
Template Parameters
domain_end,domain_startspecify the given evaluation domain {domain_start,..., domain_end - 1}
num_evalsthe number of evaluations that are computable with specific barycentric extension formula

Definition at line 34 of file barycentric.hpp.

Member Function Documentation

◆ batch_invert()

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
static constexpr std::array< Fr, domain_size *num_evals > bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::batch_invert ( const std::array< Fr, domain_size *num_evals > &  coeffs)
inlinestaticconstexpr

Definition at line 68 of file barycentric.hpp.

◆ construct_big_domain()

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
static constexpr std::array< Fr, big_domain_size > bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::construct_big_domain ( )
inlinestaticconstexpr

Static constexpr methods for computing arrays of precomputable data used for barycentric extension and evaluation

Definition at line 44 of file barycentric.hpp.

◆ construct_denominator_inverses()

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
static constexpr std::array< Fr, domain_size *num_evals > bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::construct_denominator_inverses ( const auto &  big_domain,
const auto &  lagrange_denominators 
)
inlinestaticconstexpr

Definition at line 99 of file barycentric.hpp.

◆ construct_full_numerator_values()

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
static constexpr std::array< Fr, num_evals > bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::construct_full_numerator_values ( const auto &  big_domain)
inlinestaticconstexpr

Definition at line 117 of file barycentric.hpp.

◆ construct_lagrange_denominators()

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
static constexpr std::array< Fr, domain_size > bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::construct_lagrange_denominators ( const auto &  big_domain)
inlinestaticconstexpr

Definition at line 54 of file barycentric.hpp.

Member Data Documentation

◆ big_domain

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr auto bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::big_domain = construct_big_domain()
staticconstexpr

Definition at line 130 of file barycentric.hpp.

◆ big_domain_size

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr size_t bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::big_domain_size = std::max(domain_size, num_evals)
staticconstexpr

Definition at line 37 of file barycentric.hpp.

◆ domain_size

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr size_t bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::domain_size = domain_end - domain_start
staticconstexpr

Definition at line 36 of file barycentric.hpp.

◆ full_numerator_values

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr auto bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::full_numerator_values = construct_full_numerator_values(big_domain)
staticconstexpr

Definition at line 134 of file barycentric.hpp.

◆ lagrange_denominators

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr auto bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::lagrange_denominators = construct_lagrange_denominators(big_domain)
staticconstexpr

Definition at line 131 of file barycentric.hpp.

◆ precomputed_denominator_inverses

template<class Fr , size_t domain_end, size_t num_evals, size_t domain_start = 0>
constexpr auto bb::BarycentricDataCompileTime< Fr, domain_end, num_evals, domain_start >::precomputed_denominator_inverses
staticconstexpr
Initial value:
=
static constexpr auto lagrange_denominators
static constexpr auto big_domain
static constexpr std::array< Fr, domain_size *num_evals > construct_denominator_inverses(const auto &big_domain, const auto &lagrange_denominators)

Definition at line 132 of file barycentric.hpp.


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