Function mod_exp::mod_exp[][src]

pub fn mod_exp<T>(base: T, exponent: T, modulus: T) -> T where
    T: Num + PartialOrd + Shr<T, Output = T> + Copy + Bounded

Performs the exponentiation

All parameters are generic, provided they implement the following traits:

  • Num
  • PartialOrd
  • Shr<T, Output=T>
  • Copy
  • Bounded

You can find the Num and Bounded traits in the num crate.

Examples

use mod_exp::mod_exp;

assert_eq!(mod_exp(5, 3, 13), 8);

Panics

The function does an assert! to verify that the data type of base is large enough that the result won't overflow during the computation