18template <
typename Flavor>
22 const auto domain_size,
26 Field numerator = Field(1);
27 Field denominator = Field(1);
51 Field numerator_acc = gamma + (beta * Field(domain_size + offset));
52 Field denominator_acc = gamma - beta * Field(1 + offset);
54 for (
const auto& x_i : public_inputs) {
55 numerator *= (numerator_acc + x_i);
56 denominator *= (denominator_acc + x_i);
58 numerator_acc += beta;
59 denominator_acc -= beta;
61 return numerator / denominator;
79template <
typename Field>
82 Field gamma_by_one_plus_beta = gamma * (Field(1) + beta);
83 return gamma_by_one_plus_beta.pow(domain_size);
Defines particular circuit builder types expected to be used for circuit construction in stdlib and c...
Definition: claim.hpp:6
Field compute_lookup_grand_product_delta(const Field &beta, const Field &gamma, const auto domain_size)
Compute lookup grand product delta.
Definition: grand_product_delta.hpp:80
Flavor::FF compute_public_input_delta(std::span< const typename Flavor::FF > public_inputs, const typename Flavor::FF &beta, const typename Flavor::FF &gamma, const auto domain_size, size_t offset=0)
Compute the correction term for the permutation argument.
Definition: grand_product_delta.hpp:19