Trait snarkvm_wasm::SquareRootField[][src]

pub trait SquareRootField: Field {
    fn legendre(&self) -> LegendreSymbol;
#[must_use] fn sqrt(&self) -> Option<Self>;
fn sqrt_in_place(&mut self) -> Option<&mut Self>; }
Expand description

The interface for a field that supports an efficient square-root operation.

Required methods

fn legendre(&self) -> LegendreSymbol[src]

Returns the Legendre symbol.

#[must_use]
fn sqrt(&self) -> Option<Self>
[src]

Returns the square root of self, if it exists.

fn sqrt_in_place(&mut self) -> Option<&mut Self>[src]

Sets self to be the square root of self, if it exists.

Implementors

impl<'a, P> SquareRootField for Fp2<P> where
    P: Fp2Parameters,
    <P as Fp2Parameters>::Fp: SquareRootField
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp2<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp2<P>>[src]

impl<P> SquareRootField for Fp3<P> where
    P: Fp3Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

Returns the Legendre symbol.

pub fn sqrt(&self) -> Option<Fp3<P>>[src]

Returns the square root of self, if it exists.

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp3<P>>[src]

Sets self to be the square root of self, if it exists.

impl<P> SquareRootField for Fp256<P> where
    P: Fp256Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp256<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp256<P>>[src]

impl<P> SquareRootField for Fp320<P> where
    P: Fp320Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp320<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp320<P>>[src]

impl<P> SquareRootField for Fp384<P> where
    P: Fp384Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp384<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp384<P>>[src]

impl<P> SquareRootField for Fp768<P> where
    P: Fp768Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp768<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp768<P>>[src]

impl<P> SquareRootField for Fp832<P> where
    P: Fp832Parameters
[src]

pub fn legendre(&self) -> LegendreSymbol[src]

pub fn sqrt(&self) -> Option<Fp832<P>>[src]

pub fn sqrt_in_place(&mut self) -> Option<&mut Fp832<P>>[src]