pub trait Pow<Exp> {
    type Output;

    fn powi(self, exp: Exp) -> Self::Output;
}
Expand description

A type operator that provides exponentiation by repeated squaring.

Example

use typenum::{Integer, Pow, N3, P3};

assert_eq!(<N3 as Pow<P3>>::Output::to_i32(), -27);

Required Associated Types§

The result of the exponentiation.

Required Methods§

This function isn’t used in this crate, but may be useful for others. It is implemented for primitives.

Example
use typenum::{Pow, U3};

let a = 7u32.powi(U3::new());
let b = 7u32.pow(3);
assert_eq!(a, b);

let x = 3.0.powi(U3::new());
let y = 27.0;
assert_eq!(x, y);

Implementations on Foreign Types§

Implementors§

0^0 = 1

0^N = 0

1^N = 1

0^P = 0

N^0 = 1

P^0 = 1

(-1)^N = 1 if N is even

(-1)^N = -1 if N is odd

P(Ul)^P(Ur) = P(Ul^Ur)

N(Ul)^P(Ur) = P(Ul^Ur) if Ur is even

N(Ul)^P(Ur) = N(Ul^Ur) if Ur is odd

X^N