Skip to main content

ModSquare

Trait ModSquare 

Source
pub trait ModSquare<M = Self> {
    type Output;

    // Required method
    fn mod_square(self, m: M) -> Self::Output;
}
Expand description

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

Required Associated Types§

Required Methods§

Source

fn mod_square(self, m: M) -> Self::Output

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl ModSquare for u8

Source§

fn mod_square(self, m: u8) -> u8

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = u8

Source§

impl ModSquare for u16

Source§

fn mod_square(self, m: u16) -> u16

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = u16

Source§

impl ModSquare for u32

Source§

fn mod_square(self, m: u32) -> u32

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = u32

Source§

impl ModSquare for u64

Source§

fn mod_square(self, m: u64) -> u64

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = u64

Source§

impl ModSquare for u128

Source§

fn mod_square(self, m: u128) -> u128

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = u128

Source§

impl ModSquare for usize

Source§

fn mod_square(self, m: usize) -> usize

Squares a number modulo another number $m$. The input must be already reduced modulo $m$.

$f(x, m) = y$, where $x, y < m$ and $x^2 \equiv y \mod m$.

§Worst-case complexity

Constant time and additional memory.

§Panics

Panics if self is greater than or equal to m.

§Examples

See here.

Source§

type Output = usize

Implementors§