snark_verifier/pcs/ipa/
accumulator.rs

1use crate::{loader::Loader, util::arithmetic::CurveAffine};
2
3/// Inner product argument accumulator.
4#[derive(Clone, Debug)]
5pub struct IpaAccumulator<C, L>
6where
7    C: CurveAffine,
8    L: Loader<C>,
9{
10    /// $\xi$.
11    pub xi: Vec<L::LoadedScalar>,
12    /// $U$.
13    pub u: L::LoadedEcPoint,
14}
15
16impl<C, L> IpaAccumulator<C, L>
17where
18    C: CurveAffine,
19    L: Loader<C>,
20{
21    /// Initialize a [`IpaAccumulator`].
22    pub fn new(xi: Vec<L::LoadedScalar>, u: L::LoadedEcPoint) -> Self {
23        Self { xi, u }
24    }
25}