PrecomputeInverter

Trait PrecomputeInverter 

Source
pub trait PrecomputeInverter {
    type Inverter: Inverter<Output = Self::Output> + Sized;
    type Output;

    // Required method
    fn precompute_inverter(&self) -> Self::Inverter;
}
Expand description

Obtain a precomputed inverter for efficiently computing modular inversions for a given modulus.

Required Associated Types§

Source

type Inverter: Inverter<Output = Self::Output> + Sized

Inverter type for integers of this size.

Source

type Output

Output produced by the inverter.

Required Methods§

Source

fn precompute_inverter(&self) -> Self::Inverter

Obtain a precomputed inverter for &self as the modulus, using Self::one() as an adjusting parameter.

Returns None if self is even.

Implementors§

Source§

impl PrecomputeInverter for Odd<U64>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U128>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U192>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U256>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U320>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U384>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U448>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U512>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U576>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U640>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U704>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U768>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U832>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U896>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U960>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U1024>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U1280>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U1536>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U1792>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U2048>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U3072>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U3584>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U4096>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U4224>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U4352>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U6144>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U8192>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U16384>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl PrecomputeInverter for Odd<U32768>

Precompute a Bernstein-Yang inverter using self as the modulus.

Source§

type Inverter = SafeGcdInverter<{ nlimbs!($bits) }, { safegcd_nlimbs!($bits as usize) }>

Source§

type Output = Uint<{ nlimbs!($bits) }>

Source§

impl<const LIMBS: usize> PrecomputeInverter for MontyParams<LIMBS>
where Odd<Uint<LIMBS>>: PrecomputeInverter<Output = Uint<LIMBS>> + PrecomputeInverterWithAdjuster<Uint<LIMBS>>,