Trait typenum::type_operators::Pow [−][src]
A type operator that provides exponentiation by repeated squaring.
Example
use typenum::{Pow, N3, P3, Integer}; assert_eq!(<N3 as Pow<P3>>::Output::to_i32(), -27);
Associated Types
type Output
The result of the exponentiation.
Required Methods
fn powi(self, exp: Exp) -> Self::Output
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);
Implementors
impl<X: Unsigned, N: Unsigned> Pow<N> for X where
X: PrivatePow<U1, N>, type Output = PrivatePowOut<X, U1, N>;impl Pow<Z0> for Z0 type Output = P1;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for Z0 type Output = Z0;
impl<U: Unsigned + NonZero> Pow<NInt<U>> for Z0 type Output = Z0;
impl<U: Unsigned + NonZero> Pow<NInt<U>> for P1 type Output = P1;
impl<U: Unsigned> Pow<NInt<UInt<U, B0>>> for N1 type Output = P1;
impl<U: Unsigned> Pow<NInt<UInt<U, B1>>> for N1 type Output = N1;
impl<U: Unsigned + NonZero> Pow<Z0> for PInt<U> type Output = P1;
impl<U: Unsigned + NonZero> Pow<Z0> for NInt<U> type Output = P1;
impl<Ul: Unsigned + NonZero, Ur: Unsigned + NonZero> Pow<PInt<Ur>> for PInt<Ul> where
Ul: Pow<Ur>,
<Ul as Pow<Ur>>::Output: Unsigned + NonZero, type Output = PInt<<Ul as Pow<Ur>>::Output>;impl<Ul: Unsigned + NonZero, Ur: Unsigned> Pow<PInt<UInt<Ur, B0>>> for NInt<Ul> where
Ul: Pow<UInt<Ur, B0>>,
<Ul as Pow<UInt<Ur, B0>>>::Output: Unsigned + NonZero, type Output = PInt<<Ul as Pow<UInt<Ur, B0>>>::Output>;impl<Ul: Unsigned + NonZero, Ur: Unsigned> Pow<PInt<UInt<Ur, B1>>> for NInt<Ul> where
Ul: Pow<UInt<Ur, B1>>,
<Ul as Pow<UInt<Ur, B1>>>::Output: Unsigned + NonZero, type Output = NInt<<Ul as Pow<UInt<Ur, B1>>>::Output>;impl Pow<UTerm> for f32 type Output = f32;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for f32 type Output = f32;
impl Pow<Z0> for f32 type Output = f32;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for f32 type Output = f32;
impl Pow<UTerm> for f64 type Output = f64;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for f64 type Output = f64;
impl Pow<Z0> for f64 type Output = f64;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for f64 type Output = f64;
impl Pow<UTerm> for u8 type Output = u8;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for u8 type Output = u8;
impl Pow<Z0> for u8 type Output = u8;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for u8 type Output = u8;
impl Pow<UTerm> for u16 type Output = u16;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for u16 type Output = u16;
impl Pow<Z0> for u16 type Output = u16;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for u16 type Output = u16;
impl Pow<UTerm> for u32 type Output = u32;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for u32 type Output = u32;
impl Pow<Z0> for u32 type Output = u32;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for u32 type Output = u32;
impl Pow<UTerm> for u64 type Output = u64;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for u64 type Output = u64;
impl Pow<Z0> for u64 type Output = u64;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for u64 type Output = u64;
impl Pow<UTerm> for usize type Output = usize;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for usize type Output = usize;
impl Pow<Z0> for usize type Output = usize;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for usize type Output = usize;
impl Pow<UTerm> for i8 type Output = i8;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for i8 type Output = i8;
impl Pow<Z0> for i8 type Output = i8;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for i8 type Output = i8;
impl Pow<UTerm> for i16 type Output = i16;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for i16 type Output = i16;
impl Pow<Z0> for i16 type Output = i16;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for i16 type Output = i16;
impl Pow<UTerm> for i32 type Output = i32;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for i32 type Output = i32;
impl Pow<Z0> for i32 type Output = i32;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for i32 type Output = i32;
impl Pow<UTerm> for i64 type Output = i64;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for i64 type Output = i64;
impl Pow<Z0> for i64 type Output = i64;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for i64 type Output = i64;
impl Pow<UTerm> for isize type Output = isize;
impl<U: Unsigned, B: Bit> Pow<UInt<U, B>> for isize type Output = isize;
impl Pow<Z0> for isize type Output = isize;
impl<U: Unsigned + NonZero> Pow<PInt<U>> for isize type Output = isize;