Struct groupy::Wnaf[][src]

pub struct Wnaf<W, B, S> { /* fields omitted */ }
Expand description

A “w-ary non-adjacent form” exponentiation context.

Implementations

impl<G: CurveProjective> Wnaf<(), Vec<G>, Vec<i64>>[src]

pub fn new() -> Self[src]

Construct a new wNAF context without allocating.

pub fn base(
    &mut self,
    base: G,
    num_scalars: usize
) -> Wnaf<usize, &[G], &mut Vec<i64>>
[src]

Given a base and a number of scalars, compute a window table and return a Wnaf object that can perform exponentiations with .scalar(..).

pub fn scalar(
    &mut self,
    scalar: <<G as CurveProjective>::Scalar as PrimeField>::Repr
) -> Wnaf<usize, &mut Vec<G>, &[i64]>
[src]

Given a scalar, compute its wNAF representation and return a Wnaf object that can perform exponentiations with .base(..).

impl<'a, G: CurveProjective> Wnaf<usize, &'a [G], &'a mut Vec<i64>>[src]

pub fn shared(&self) -> Wnaf<usize, &'a [G], Vec<i64>>[src]

Constructs new space for the scalar representation while borrowing the computed window table, for sending the window table across threads.

impl<'a, G: CurveProjective> Wnaf<usize, &'a mut Vec<G>, &'a [i64]>[src]

pub fn shared(&self) -> Wnaf<usize, Vec<G>, &'a [i64]>[src]

Constructs new space for the window table while borrowing the computed scalar representation, for sending the scalar representation across threads.

impl<B, S: AsRef<[i64]>> Wnaf<usize, B, S>[src]

pub fn base<G: CurveProjective>(&mut self, base: G) -> G where
    B: AsMut<Vec<G>>, 
[src]

Performs exponentiation given a base.

impl<B, S: AsMut<Vec<i64>>> Wnaf<usize, B, S>[src]

pub fn scalar<G: CurveProjective>(
    &mut self,
    scalar: <<G as CurveProjective>::Scalar as PrimeField>::Repr
) -> G where
    B: AsRef<[G]>, 
[src]

Performs exponentiation given a scalar.

Trait Implementations

impl<W: Debug, B: Debug, S: Debug> Debug for Wnaf<W, B, S>[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

Auto Trait Implementations

impl<W, B, S> RefUnwindSafe for Wnaf<W, B, S> where
    B: RefUnwindSafe,
    S: RefUnwindSafe,
    W: RefUnwindSafe

impl<W, B, S> Send for Wnaf<W, B, S> where
    B: Send,
    S: Send,
    W: Send

impl<W, B, S> Sync for Wnaf<W, B, S> where
    B: Sync,
    S: Sync,
    W: Sync

impl<W, B, S> Unpin for Wnaf<W, B, S> where
    B: Unpin,
    S: Unpin,
    W: Unpin

impl<W, B, S> UnwindSafe for Wnaf<W, B, S> where
    B: UnwindSafe,
    S: UnwindSafe,
    W: UnwindSafe

Blanket Implementations

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

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

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

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

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

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

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

pub fn from(t: T) -> T[src]

Performs the conversion.

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

pub fn into(self) -> U[src]

Performs the conversion.

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.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

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.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.

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

pub fn vzip(self) -> V