[][src]Struct bellman_ce::pairing::Wnaf

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

A "w-ary non-adjacent form" exponentiation context.

Methods

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

pub fn new() -> Wnaf<(), Vec<G>, Vec<i64>>[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> Wnaf<usize, &'a [G], &'a mut Vec<i64>> where
    G: CurveProjective
[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> Wnaf<usize, &'a mut Vec<G>, &'a [i64]> where
    G: CurveProjective
[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> Wnaf<usize, B, S> where
    S: AsRef<[i64]>, 
[src]

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

Performs exponentiation given a base.

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

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

Performs exponentiation given a scalar.

Trait Implementations

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

Auto Trait Implementations

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

Blanket Implementations

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

impl<T> From for T[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

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

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

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

The type returned in the event of a conversion error.