Struct ark_ec::scalar_mul::wnaf::WnafContext
source · 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: usize
Implementations§
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: Group>(&self, base: G) -> Vec<G>
sourcepub fn mul<G: Group>(&self, g: G, scalar: &G::ScalarField) -> G
pub fn mul<G: Group>(&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: Group>(
&self,
base_table: &[G],
scalar: &G::ScalarField
) -> Option<G>
pub fn mul_with_table<G: Group>( &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.