Refactors generics to support multiple fields and polynomial commitment schemes.
JoltField
New field trait in jolt-core/src/poly/field.rs. Will allow us to wrap types of fields and make sure they implement Jolt specific functionality. We can support ark_ff::PrimeField, ff::PrimeField, binius_field::TowerField all in one place.
CommitmentScheme
The other big change is that we've added a CommitmentScheme trait in jolt-core/src/poly/commitment/commitment_scheme.rs. This is passed around as a static generic everywhere it's needed. Also allows us to remove the CommitmentScheme specific ark_ff::CurveGroup generic and apply that to only Curve based commitment schemes.
Refactors generics to support multiple fields and polynomial commitment schemes.
JoltField
New field trait in
jolt-core/src/poly/field.rs
. Will allow us to wrap types of fields and make sure they implement Jolt specific functionality. We can supportark_ff::PrimeField
,ff::PrimeField
,binius_field::TowerField
all in one place.CommitmentScheme
The other big change is that we've added a
CommitmentScheme
trait injolt-core/src/poly/commitment/commitment_scheme.rs
. This is passed around as a static generic everywhere it's needed. Also allows us to remove theCommitmentScheme
specificark_ff::CurveGroup
generic and apply that to only Curve based commitment schemes.