Trait FieldWitness

Source
pub trait FieldWitness
where Self: Field + Send + Sync + Into<BigInteger256> + TryFrom<BigInteger256, Error = InvalidBigInt> + Into<BigInt> + From<i64> + From<i32> + ToFieldElements<Self> + Check<Self> + FromFpFq + PrimeField + SquareRootField + FftField + SpongeParamsForField<Self> + Debug + 'static,
{ type Scalar: FieldWitness<Scalar = Self>; type Affine: AffineCurve<Projective = Self::Projective, BaseField = Self, ScalarField = Self::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug; type Projective: ProjectiveCurve<Affine = Self::Affine, BaseField = Self, ScalarField = Self::Scalar> + From<GroupProjective<Self::Parameters>> + Debug; type Parameters: SWModelParameters<BaseField = Self, ScalarField = Self::Scalar> + Clone + Debug; type Shifting: ShiftingValue<Self> + Clone + Debug; type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = Self::Scalar>; type FqSponge: Clone + FqSponge<Self::Scalar, Self::OtherCurve, Self>; const PARAMS: Params<Self>; const SIZE: BigInteger256; const NROUNDS: usize; const SRS_DEPTH: usize; }
Expand description

All the generics we need during witness generation

Required Associated Constants§

Source

const PARAMS: Params<Self>

Source

const SIZE: BigInteger256

Source

const NROUNDS: usize

Source

const SRS_DEPTH: usize

Required Associated Types§

Source

type Scalar: FieldWitness<Scalar = Self>

Source

type Affine: AffineCurve<Projective = Self::Projective, BaseField = Self, ScalarField = Self::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug

Source

type Projective: ProjectiveCurve<Affine = Self::Affine, BaseField = Self, ScalarField = Self::Scalar> + From<GroupProjective<Self::Parameters>> + Debug

Source

type Parameters: SWModelParameters<BaseField = Self, ScalarField = Self::Scalar> + Clone + Debug

Source

type Shifting: ShiftingValue<Self> + Clone + Debug

Source

type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = Self::Scalar>

Source

type FqSponge: Clone + FqSponge<Self::Scalar, Self::OtherCurve, Self>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl FieldWitness for Fp

Source§

const PARAMS: Params<Self>

Source§

const SIZE: BigInteger256 = mina_curves::pasta::fields::FpParameters::MODULUS

Source§

const NROUNDS: usize = 16usize

Source§

const SRS_DEPTH: usize = 32_768usize

Source§

type Scalar = Fp256<FqParameters>

Source§

type Parameters = PallasParameters

Source§

type Affine = GroupAffine<<Fp256<FpParameters> as FieldWitness>::Parameters>

Source§

type Projective = GroupProjective<PallasParameters>

Source§

type Shifting = ShiftedValue<Fp256<FpParameters>>

Source§

type OtherCurve = GroupAffine<<Fp256<FqParameters> as FieldWitness>::Parameters>

Source§

type FqSponge = DefaultFqSponge<VestaParameters, PlonkSpongeConstantsKimchi>

Source§

impl FieldWitness for Fq

Source§

const PARAMS: Params<Self>

Source§

const SIZE: BigInteger256 = mina_curves::pasta::fields::FqParameters::MODULUS

Source§

const NROUNDS: usize = 15usize

Source§

const SRS_DEPTH: usize = 65_536usize

Source§

type Scalar = Fp256<FpParameters>

Source§

type Parameters = VestaParameters

Source§

type Affine = GroupAffine<<Fp256<FqParameters> as FieldWitness>::Parameters>

Source§

type Projective = GroupProjective<VestaParameters>

Source§

type Shifting = ShiftedValue<Fp256<FqParameters>>

Source§

type OtherCurve = GroupAffine<<Fp256<FpParameters> as FieldWitness>::Parameters>

Source§

type FqSponge = DefaultFqSponge<PallasParameters, PlonkSpongeConstantsKimchi>

Implementors§