Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
bb::ShiftedEqPolynomial< Curve, log_num_monomials > Class Template Reference

#include <shifted_eq_polynomial.hpp>

Public Types

using FF = typename Curve::ScalarField
 
using Polynomial = bb::Polynomial< FF >
 

Static Public Member Functions

static void add_scaled (Polynomial &result, const Polynomial &eq, const FF &scaling_factor)
 
static FF evaluate_from_eq (const Polynomial &eq, const Polynomial &witness)
 
static FF evaluate_folded (std::span< const FF > point, std::span< const FF > ipa_round_challenges_inv)
 
static FF evaluate_eq_folded (std::span< const FF > point, std::span< const FF > ipa_round_challenges_inv)
 Fold the unshifted eq tensor eq(point, .) against the IPA s-vector.
 

Static Public Attributes

static constexpr size_t poly_length = 1UL << log_num_monomials
 

Static Private Member Functions

static FF fold_factor (std::span< const FF > ipa_round_challenges_inv, const size_t coordinate_idx)
 
static FF evaluate_eq_factor (const FF &coordinate, const FF &fold)
 
static void compute_prefix_suffix_products (std::span< const FF > point, std::span< const FF > ipa_round_challenges_inv, std::array< FF, log_num_monomials > &lower_prefix_products, std::array< FF, log_num_monomials > &upper_suffix_products)
 

Detailed Description

template<typename Curve, size_t log_num_monomials>
class bb::ShiftedEqPolynomial< Curve, log_num_monomials >

Definition at line 21 of file shifted_eq_polynomial.hpp.

Member Typedef Documentation

◆ FF

template<typename Curve , size_t log_num_monomials>
using bb::ShiftedEqPolynomial< Curve, log_num_monomials >::FF = typename Curve::ScalarField

Definition at line 23 of file shifted_eq_polynomial.hpp.

◆ Polynomial

template<typename Curve , size_t log_num_monomials>
using bb::ShiftedEqPolynomial< Curve, log_num_monomials >::Polynomial = bb::Polynomial<FF>

Definition at line 24 of file shifted_eq_polynomial.hpp.

Member Function Documentation

◆ add_scaled()

template<typename Curve , size_t log_num_monomials>
static void bb::ShiftedEqPolynomial< Curve, log_num_monomials >::add_scaled ( Polynomial result,
const Polynomial eq,
const FF scaling_factor 
)
inlinestatic

Definition at line 28 of file shifted_eq_polynomial.hpp.

◆ compute_prefix_suffix_products()

template<typename Curve , size_t log_num_monomials>
static void bb::ShiftedEqPolynomial< Curve, log_num_monomials >::compute_prefix_suffix_products ( std::span< const FF point,
std::span< const FF ipa_round_challenges_inv,
std::array< FF, log_num_monomials > &  lower_prefix_products,
std::array< FF, log_num_monomials > &  upper_suffix_products 
)
inlinestaticprivate

Definition at line 115 of file shifted_eq_polynomial.hpp.

◆ evaluate_eq_factor()

template<typename Curve , size_t log_num_monomials>
static FF bb::ShiftedEqPolynomial< Curve, log_num_monomials >::evaluate_eq_factor ( const FF coordinate,
const FF fold 
)
inlinestaticprivate

Definition at line 110 of file shifted_eq_polynomial.hpp.

◆ evaluate_eq_folded()

template<typename Curve , size_t log_num_monomials>
static FF bb::ShiftedEqPolynomial< Curve, log_num_monomials >::evaluate_eq_folded ( std::span< const FF point,
std::span< const FF ipa_round_challenges_inv 
)
inlinestatic

Fold the unshifted eq tensor eq(point, .) against the IPA s-vector.

Companion of evaluate_folded: the TripleIPA batches the eq claim and the shifted-eq claim into one opening, so the verifier needs both b_0 contractions. This is the plain product prod_i ((1 - point_i) + point_i * s_i), reusing the same evaluate_eq_factor/fold_factor primitives as the shifted fold.

Definition at line 91 of file shifted_eq_polynomial.hpp.

◆ evaluate_folded()

template<typename Curve , size_t log_num_monomials>
static FF bb::ShiftedEqPolynomial< Curve, log_num_monomials >::evaluate_folded ( std::span< const FF point,
std::span< const FF ipa_round_challenges_inv 
)
inlinestatic

Definition at line 58 of file shifted_eq_polynomial.hpp.

◆ evaluate_from_eq()

template<typename Curve , size_t log_num_monomials>
static FF bb::ShiftedEqPolynomial< Curve, log_num_monomials >::evaluate_from_eq ( const Polynomial eq,
const Polynomial witness 
)
inlinestatic

Definition at line 39 of file shifted_eq_polynomial.hpp.

◆ fold_factor()

template<typename Curve , size_t log_num_monomials>
static FF bb::ShiftedEqPolynomial< Curve, log_num_monomials >::fold_factor ( std::span< const FF ipa_round_challenges_inv,
const size_t  coordinate_idx 
)
inlinestaticprivate

Definition at line 104 of file shifted_eq_polynomial.hpp.

Member Data Documentation

◆ poly_length

template<typename Curve , size_t log_num_monomials>
constexpr size_t bb::ShiftedEqPolynomial< Curve, log_num_monomials >::poly_length = 1UL << log_num_monomials
staticconstexpr

Definition at line 26 of file shifted_eq_polynomial.hpp.


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