binius_core::piop

Function commit

Source
pub fn commit<F, FEncode, P, M, MTScheme, MTProver>(
    fri_params: &FRIParams<F, FEncode>,
    merkle_prover: &MTProver,
    multilins: &[M],
) -> Result<CommitOutput<P, MTScheme::Digest, MTProver::Committed>, Error>
where F: BinaryField + ExtensionField<FEncode>, FEncode: BinaryField, P: PackedField<Scalar = F> + PackedExtension<FEncode>, M: MultilinearPoly<P>, MTScheme: MerkleTreeScheme<F>, MTProver: MerkleTreeProver<F, Scheme = MTScheme>,
Expand description

Commits a batch of multilinear polynomials.

The multilinears this function accepts as arguments may be defined over subfields of F. In this case, we commit to these multilinears by instead committing to their “packed” multilinears. These are the multilinear extensions of their packed coefficients over subcubes of the size of the extension degree.

§Arguments

  • fri_params - the FRI parameters for the commitment opening protocol
  • merkle_prover - the Merkle tree prover used in FRI
  • multilins - a batch of multilinear polynomials to commit. The multilinears provided may be defined over subfields of F. They must be in ascending order by the number of variables in the packed multilinear (ie. number of variables minus log extension degree).