Struct ark_linear_sumcheck::ml_sumcheck::MLSumcheck [−][src]
Sumcheck for products of multilinear polynomial
Implementations
impl<F: Field> MLSumcheck<F>[src]
pub fn extract_sum(proof: &Proof<F>) -> F[src]
extract sum from the proof
pub fn prove(
polynomial: &ListOfProductsOfPolynomials<F>
) -> Result<Proof<F>, Error>[src]
polynomial: &ListOfProductsOfPolynomials<F>
) -> Result<Proof<F>, Error>
generate proof of the sum of polynomial over {0,1}^num_vars
The polynomial is represented by a list of products of polynomials along with its coefficient that is meant to be added together.
This data structure of the polynomial is a list of list of (coefficient, DenseMultilinearExtension).
- Number of products n =
polynomial.products.len(), - Number of multiplicands of ith product m_i =
polynomial.products[i].1.len(), - Coefficient of ith product c_i =
polynomial.products[i].0
The resulting polynomial is
$$\sum_{i=0}^{n}C_i\cdot\prod_{j=0}^{m_i}P_{ij}$$
pub fn verify(
polynomial_info: &PolynomialInfo,
claimed_sum: F,
proof: &Proof<F>
) -> Result<SubClaim<F>, Error>[src]
polynomial_info: &PolynomialInfo,
claimed_sum: F,
proof: &Proof<F>
) -> Result<SubClaim<F>, Error>
verify the claimed sum using the proof
Auto Trait Implementations
impl<F> RefUnwindSafe for MLSumcheck<F> where
F: RefUnwindSafe,
F: RefUnwindSafe,
impl<F> Send for MLSumcheck<F>
impl<F> Sync for MLSumcheck<F>
impl<F> Unpin for MLSumcheck<F> where
F: Unpin,
F: Unpin,
impl<F> UnwindSafe for MLSumcheck<F> where
F: UnwindSafe,
F: UnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized, [src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]
impl<T> From<T> for T[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,