Struct snarkvm_wasm::fp6_3over2::Fp6[][src]

pub struct Fp6<P> where
    P: Fp6Parameters
{ pub c0: Fp2<<P as Fp6Parameters>::Fp2Params>, pub c1: Fp2<<P as Fp6Parameters>::Fp2Params>, pub c2: Fp2<<P as Fp6Parameters>::Fp2Params>, // some fields omitted }

An element of Fp6, represented by c0 + c1 * v + c2 * v^(2).

Fields

c0: Fp2<<P as Fp6Parameters>::Fp2Params>c1: Fp2<<P as Fp6Parameters>::Fp2Params>c2: Fp2<<P as Fp6Parameters>::Fp2Params>

Implementations

impl<P> Fp6<P> where
    P: Fp6Parameters
[src]

pub fn new(
    c0: Fp2<<P as Fp6Parameters>::Fp2Params>,
    c1: Fp2<<P as Fp6Parameters>::Fp2Params>,
    c2: Fp2<<P as Fp6Parameters>::Fp2Params>
) -> Fp6<P>
[src]

pub fn mul_by_fp(
    &mut self,
    element: &<<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp
)
[src]

pub fn mul_by_fp2(&mut self, element: &Fp2<<P as Fp6Parameters>::Fp2Params>)[src]

pub fn mul_by_1(&mut self, c1: &Fp2<<P as Fp6Parameters>::Fp2Params>)[src]

pub fn mul_by_01(
    &mut self,
    c0: &Fp2<<P as Fp6Parameters>::Fp2Params>,
    c1: &Fp2<<P as Fp6Parameters>::Fp2Params>
)
[src]

Trait Implementations

impl<'a, P> Add<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

type Output = Fp6<P>

The resulting type after applying the + operator.

impl<'a, P> AddAssign<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P, F> AllocGadget<Fp6<P>, F> for Fp6Gadget<P, F> where
    P: Fp6Parameters,
    F: PrimeField,
    <P as Fp6Parameters>::Fp2Params: Fp2Parameters,
    <<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp == F, 
[src]

impl<P> CanonicalDeserialize for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> CanonicalDeserializeWithFlags for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> CanonicalSerialize for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> CanonicalSerializeWithFlags for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Clone for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> ConstantSerializedSize for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Copy for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Debug for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Default for Fp6<P> where
    P: Fp6Parameters
[src]

impl<'de, P> Deserialize<'de> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Display for Fp6<P> where
    P: Fp6Parameters
[src]

impl<'a, P> Div<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

type Output = Fp6<P>

The resulting type after applying the / operator.

impl<'a, P> DivAssign<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Eq for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Field for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P, F> FieldGadget<Fp6<P>, F> for Fp6Gadget<P, F> where
    P: Fp6Parameters,
    F: PrimeField,
    <P as Fp6Parameters>::Fp2Params: Fp2Parameters,
    <<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp == F, 
[src]

type Variable = ((ConstraintVariable<F>, ConstraintVariable<F>), (ConstraintVariable<F>, ConstraintVariable<F>), (ConstraintVariable<F>, ConstraintVariable<F>))

pub fn mul<CS>(
    &self,
    cs: CS,
    other: &Fp6Gadget<P, F>
) -> Result<Fp6Gadget<P, F>, SynthesisError> where
    CS: ConstraintSystem<F>, 
[src]

Use the Toom-Cook-3x method to compute multiplication.

pub fn square<CS>(&self, cs: CS) -> Result<Fp6Gadget<P, F>, SynthesisError> where
    CS: ConstraintSystem<F>, 
[src]

Use the Toom-Cook-3x method to compute multiplication.

pub fn mul_by_constant<CS>(
    &self,
    cs: CS,
    other: &Fp6<P>
) -> Result<Fp6Gadget<P, F>, SynthesisError> where
    CS: ConstraintSystem<F>, 
[src]

Use the Toom-Cook-3x method to compute multiplication.

impl<'a, P> From<&'a [bool]> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> From<u128> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> From<u16> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> From<u32> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> From<u64> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> From<u8> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> FromBytes for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Hash for Fp6<P> where
    P: Fp6Parameters
[src]

impl<'a, P> Mul<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

type Output = Fp6<P>

The resulting type after applying the * operator.

impl<'a, P> MulAssign<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Neg for Fp6<P> where
    P: Fp6Parameters
[src]

type Output = Fp6<P>

The resulting type after applying the - operator.

impl<P> One for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Ord for Fp6<P> where
    P: Fp6Parameters
[src]

Fp3 elements are ordered lexicographically.

impl<P> PartialEq<Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> PartialOrd<Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Serialize for Fp6<P> where
    P: Fp6Parameters
[src]

impl<'a, P> Sub<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

type Output = Fp6<P>

The resulting type after applying the - operator.

impl<'a, P> SubAssign<&'a Fp6<P>> for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> ToBytes for Fp6<P> where
    P: Fp6Parameters
[src]

impl<P> Zero for Fp6<P> where
    P: Fp6Parameters
[src]

Auto Trait Implementations

impl<P> RefUnwindSafe for Fp6<P> where
    P: RefUnwindSafe,
    <<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp: RefUnwindSafe,
    <P as Fp6Parameters>::Fp2Params: RefUnwindSafe

impl<P> Send for Fp6<P>

impl<P> Sync for Fp6<P>

impl<P> Unpin for Fp6<P> where
    P: Unpin,
    <<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp: Unpin,
    <P as Fp6Parameters>::Fp2Params: Unpin

impl<P> UnwindSafe for Fp6<P> where
    P: UnwindSafe,
    <<P as Fp6Parameters>::Fp2Params as Fp2Parameters>::Fp: UnwindSafe,
    <P as Fp6Parameters>::Fp2Params: UnwindSafe

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> DeserializeOwned for T where
    T: for<'de> Deserialize<'de>, 
[src]

impl<Q, K> Equivalent<K> for Q where
    K: Borrow<Q> + ?Sized,
    Q: Eq + ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> Pointable for T

type Init = T

The type for initializers.

impl<T> Same<T> for T

type Output = T

Should always be Self

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> UniformRand for T where
    Standard: Distribution<T>, 
[src]

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,