barretenberg
Loading...
Searching...
No Matches
Static Public Member Functions | List of all members
proof_system::honk::pcs::gemini::GeminiProver_< Curve > Class Template Reference

Static Public Member Functions

static std::vector< Polynomialcompute_gemini_polynomials (std::span< const Fr > mle_opening_point, Polynomial &&batched_unshifted, Polynomial &&batched_to_be_shifted)
 Computes d-1 fold polynomials Fold_i, i = 1, ..., d-1.
 
static ProverOutput< Curve > compute_fold_polynomial_evaluations (std::span< const Fr > mle_opening_point, std::vector< Polynomial > &&gemini_polynomials, const Fr &r_challenge)
 Computes/aggragates d+1 Fold polynomials and their opening pairs (challenge, evaluation)
 

Member Function Documentation

◆ compute_fold_polynomial_evaluations()

template<typename Curve >
ProverOutput< Curve > proof_system::honk::pcs::gemini::GeminiProver_< Curve >::compute_fold_polynomial_evaluations ( std::span< const Fr >  mle_opening_point,
std::vector< Polynomial > &&  gemini_polynomials,
const Fr &  r_challenge 
)
static

Computes/aggragates d+1 Fold polynomials and their opening pairs (challenge, evaluation)

This function assumes that, upon input, last d-1 entries in gemini_polynomials are Fold_i. The first two entries are assumed to be, respectively, the batched unshifted and batched to-be-shifted polynomials F(X) = ∑ⱼ ρʲfⱼ(X) and G(X) = ∑ⱼ ρᵏ⁺ʲ gⱼ(X). This function completes the computation of the first two Fold polynomials as F + G/r and F - G/r. It then evaluates each of the d+1 fold polynomials at, respectively, the points r, rₗ = r^{2ˡ} for l = 0, 1, ..., d-1.

Parameters
mle_opening_pointu = (u₀,...,uₘ₋₁) is the MLE opening point
gemini_polynomialsvector of polynomials whose first two elements are F(X) = ∑ⱼ ρʲfⱼ(X) and G(X) = ∑ⱼ ρᵏ⁺ʲ gⱼ(X), and the next d-1 elements are Fold_i, i = 1, ..., d-1.
r_challengeunivariate opening challenge

◆ compute_gemini_polynomials()

template<typename Curve >
std::vector< typename barretenberg::Polynomial< typename Curve::ScalarField > > proof_system::honk::pcs::gemini::GeminiProver_< Curve >::compute_gemini_polynomials ( std::span< const Fr >  mle_opening_point,
Polynomial &&  batched_unshifted,
Polynomial &&  batched_to_be_shifted 
)
static

Computes d-1 fold polynomials Fold_i, i = 1, ..., d-1.

Parameters
mle_opening_pointmultilinear opening point 'u'
batched_unshiftedF(X) = ∑ⱼ ρʲ fⱼ(X)
batched_to_be_shiftedG(X) = ∑ⱼ ρᵏ⁺ʲ gⱼ(X)
Returns
std::vector<Polynomial>

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