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 protocolmerkle_prover
- the Merkle tree prover used in FRImultilins
- a batch of multilinear polynomials to commit. The multilinears provided may be defined over subfields ofF
. They must be in ascending order by the number of variables in the packed multilinear (ie. number of variables minus log extension degree).