Trait FieldWitness

Source
pub trait FieldWitness
where Self: Field + Send + Sync + Into<BigInteger256> + From<BigInteger256> + Into<BigInt> + From<i64> + From<i32> + ToFieldElements<Self> + Check<Self> + FromFpFq + PrimeField + FftField + SpongeParamsForField<Self> + Debug + 'static,
{ type Scalar: FieldWitness<Scalar = Self>; type Affine: AffineRepr<Group = Self::Projective, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug; type Projective: CurveGroup<Affine = Self::Affine, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + From<Projective<Self::Parameters>> + Debug; type Parameters: SWCurveConfig<BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Clone + Debug; type Shifting: ShiftingValue<Self> + Clone + Debug; type OtherCurve: KimchiCurve<ScalarField = Self, BaseField = <Self as FieldWitness>::Scalar>; type FqSponge: Clone + FqSponge<<Self as FieldWitness>::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: AffineRepr<Group = Self::Projective, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Into<GroupAffine<Self>> + KimchiCurve + Debug

Source

type Projective: CurveGroup<Affine = Self::Affine, BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + From<Projective<Self::Parameters>> + Debug

Source

type Parameters: SWCurveConfig<BaseField = Self, ScalarField = <Self as FieldWitness>::Scalar> + Clone + Debug

Source

type Shifting: ShiftingValue<Self> + Clone + Debug

Source

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

Source

type FqSponge: Clone + FqSponge<<Self as FieldWitness>::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 = Fp<MontBackend<FrConfig, 4>, 4>

Source§

type Parameters = PallasParameters

Source§

type Affine = Affine<<Fp<MontBackend<FqConfig, 4>, 4> as FieldWitness>::Parameters>

Source§

type Projective = Projective<PallasParameters>

Source§

type Shifting = ShiftedValue<Fp<MontBackend<FqConfig, 4>, 4>>

Source§

type OtherCurve = Affine<<Fp<MontBackend<FrConfig, 4>, 4> 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 = Fp<MontBackend<FqConfig, 4>, 4>

Source§

type Parameters = VestaParameters

Source§

type Affine = Affine<<Fp<MontBackend<FrConfig, 4>, 4> as FieldWitness>::Parameters>

Source§

type Projective = Projective<VestaParameters>

Source§

type Shifting = ShiftedValue<Fp<MontBackend<FrConfig, 4>, 4>>

Source§

type OtherCurve = Affine<<Fp<MontBackend<FqConfig, 4>, 4> as FieldWitness>::Parameters>

Source§

type FqSponge = DefaultFqSponge<PallasParameters, PlonkSpongeConstantsKimchi>

Implementors§