pub struct WnafContext {
pub window_size: usize,
}Expand description
A helper type that contains all the context required for computing a window NAF multiplication of a group element by a scalar.
Fields§
§window_size: usizeImplementations§
Source§impl WnafContext
impl WnafContext
Sourcepub fn new(window_size: usize) -> Self
pub fn new(window_size: usize) -> Self
Constructs a new context for a window of size window_size.
§Panics
This function will panic if not 2 <= window_size < 64
pub fn table<G: PrimeGroup>(&self, base: G) -> Vec<G>
Sourcepub fn mul<G: PrimeGroup>(&self, g: G, scalar: &G::ScalarField) -> G
pub fn mul<G: PrimeGroup>(&self, g: G, scalar: &G::ScalarField) -> G
Computes scalar multiplication of a group element g by scalar.
This method uses the wNAF algorithm to perform the scalar
multiplication; first, it uses Self::table to calculate an
appropriate table of multiples of g, and then uses the wNAF
algorithm to compute the scalar multiple.
Sourcepub fn mul_with_table<G: PrimeGroup>(
&self,
base_table: &[G],
scalar: &G::ScalarField,
) -> Option<G>
pub fn mul_with_table<G: PrimeGroup>( &self, base_table: &[G], scalar: &G::ScalarField, ) -> Option<G>
Computes scalar multiplication of a group element by scalar.
base_table holds precomputed multiples of the group element; it can be
generated using Self::table. scalar is an element of
G::ScalarField.
Returns None if the table is too small.
Auto Trait Implementations§
impl Freeze for WnafContext
impl RefUnwindSafe for WnafContext
impl Send for WnafContext
impl Sync for WnafContext
impl Unpin for WnafContext
impl UnwindSafe for WnafContext
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more