mirror of
https://github.com/saymrwulf/pasta_curves-source.git
synced 2026-09-05 20:10:32 +00:00
Precompute deltaomega vector.
This commit is contained in:
parent
36d37002fe
commit
6b9ea1dbeb
3 changed files with 3 additions and 28 deletions
|
|
@ -29,6 +29,7 @@ use domain::EvaluationDomain;
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
pub struct SRS<C: CurveAffine> {
|
pub struct SRS<C: CurveAffine> {
|
||||||
domain: EvaluationDomain<C::Scalar>,
|
domain: EvaluationDomain<C::Scalar>,
|
||||||
|
deltaomega: Vec<Vec<C::Scalar>>,
|
||||||
fixed_commitments: Vec<C>,
|
fixed_commitments: Vec<C>,
|
||||||
fixed_polys: Vec<Vec<C::Scalar>>,
|
fixed_polys: Vec<Vec<C::Scalar>>,
|
||||||
fixed_cosets: Vec<Vec<C::Scalar>>,
|
fixed_cosets: Vec<Vec<C::Scalar>>,
|
||||||
|
|
|
||||||
|
|
@ -126,33 +126,6 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
// Sample x_1 challenge
|
// Sample x_1 challenge
|
||||||
let x_1: C::Scalar = get_challenge_scalar(Challenge(transcript.squeeze().get_lower_128()));
|
let x_1: C::Scalar = get_challenge_scalar(Challenge(transcript.squeeze().get_lower_128()));
|
||||||
|
|
||||||
// TODO: maybe put this in SRS?
|
|
||||||
// Compute [omega^0, omega^1, ..., omega^{params.n - 1}]
|
|
||||||
let mut omega_powers = Vec::with_capacity(params.n as usize);
|
|
||||||
{
|
|
||||||
let mut cur = C::Scalar::one();
|
|
||||||
for _ in 0..params.n {
|
|
||||||
omega_powers.push(cur);
|
|
||||||
cur *= &srs.domain.get_omega();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute [omega_powers * \delta^0, omega_powers * \delta^1, ..., omega_powers * \delta^m]
|
|
||||||
let mut deltaomega = Vec::with_capacity(largest_permutation_length);
|
|
||||||
{
|
|
||||||
let mut cur = C::Scalar::one();
|
|
||||||
for _ in 0..largest_permutation_length {
|
|
||||||
let mut omega_powers = omega_powers.clone();
|
|
||||||
for o in &mut omega_powers {
|
|
||||||
*o *= &cur;
|
|
||||||
}
|
|
||||||
|
|
||||||
deltaomega.push(omega_powers);
|
|
||||||
|
|
||||||
cur *= &C::Scalar::DELTA;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Compute permutation product polynomial commitment
|
// Compute permutation product polynomial commitment
|
||||||
let mut permutation_product_commitments = vec![];
|
let mut permutation_product_commitments = vec![];
|
||||||
let mut permutation_product_blinds = vec![];
|
let mut permutation_product_blinds = vec![];
|
||||||
|
|
@ -194,7 +167,7 @@ impl<C: CurveAffine> Proof<C> {
|
||||||
for ((wire, modified_advice), deltaomega) in wires
|
for ((wire, modified_advice), deltaomega) in wires
|
||||||
.iter()
|
.iter()
|
||||||
.zip(modified_advice.iter_mut())
|
.zip(modified_advice.iter_mut())
|
||||||
.zip(deltaomega.iter())
|
.zip(srs.deltaomega.iter())
|
||||||
{
|
{
|
||||||
// For each row i, we compute
|
// For each row i, we compute
|
||||||
// p_j(\omega^i) + \delta^j \omega^i \beta + \gamma
|
// p_j(\omega^i) + \delta^j \omega^i \beta + \gamma
|
||||||
|
|
|
||||||
|
|
@ -208,6 +208,7 @@ impl<C: CurveAffine> SRS<C> {
|
||||||
|
|
||||||
Ok(SRS {
|
Ok(SRS {
|
||||||
domain,
|
domain,
|
||||||
|
deltaomega,
|
||||||
fixed_commitments,
|
fixed_commitments,
|
||||||
fixed_polys,
|
fixed_polys,
|
||||||
fixed_cosets,
|
fixed_cosets,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue