Skip to main content

NPrimeMethod

Enum NPrimeMethod 

Source
pub enum NPrimeMethod {
    TrialSearch,
    ExtendedEuclidean,
    HenselsLifting,
    Newton,
}
Expand description

Methods for computing N’ in Montgomery parameter computation

Variants§

§

TrialSearch

Trial search - O(R) complexity, simple but slow for large R. Only works when R fits in the type (R > N, smallest power of 2).

§

ExtendedEuclidean

Extended Euclidean Algorithm - O(log R) complexity. Only works when R fits in the type (R > N, smallest power of 2).

§

HenselsLifting

Hensel’s lifting - O(log R) complexity, optimized for R = 2^k. Only works when R fits in the type (R > N, smallest power of 2).

§

Newton

Newton’s method - O(log W) complexity, works with R = 2^W (full type width). Uses wrapping arithmetic so R never needs to be represented explicitly. This is the method used internally by the wide-REDC path; other methods are accepted for API compatibility but all use Newton internally.

Trait Implementations§

Source§

impl Clone for NPrimeMethod

Source§

fn clone(&self) -> NPrimeMethod

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for NPrimeMethod

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for NPrimeMethod

Source§

fn default() -> NPrimeMethod

Returns the “default value” for a type. Read more
Source§

impl PartialEq for NPrimeMethod

Source§

fn eq(&self, other: &NPrimeMethod) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl Copy for NPrimeMethod

Source§

impl Eq for NPrimeMethod

Source§

impl StructuralPartialEq for NPrimeMethod

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

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

Performs the conversion.