PrivatePow

Trait PrivatePow 

Source
pub trait PrivatePow<Y, N> {
    type Output;

    // Required method
    fn private_pow(self, _: Y, _: N) -> Self::Output;
}

Required Associated Types§

Required Methods§

Source

fn private_pow(self, _: Y, _: N) -> Self::Output

Implementors§

Source§

impl<Y: Unsigned, U: Unsigned, B: Bit, X> PrivatePow<Y, UInt<UInt<U, B>, B0>> for X
where X: Mul + Unsigned, Square<X>: PrivatePow<Y, UInt<U, B>>,

N is even

Source§

type Output = <<X as Mul>::Output as PrivatePow<Y, UInt<U, B>>>::Output

Source§

impl<Y: Unsigned, U: Unsigned, B: Bit, X> PrivatePow<Y, UInt<UInt<U, B>, B1>> for X
where X: Mul + Mul<Y> + Unsigned, Square<X>: PrivatePow<Prod<X, Y>, UInt<U, B>>,

N is odd

Source§

type Output = <<X as Mul>::Output as PrivatePow<<X as Mul<Y>>::Output, UInt<U, B>>>::Output

Source§

impl<Y: Unsigned, X> PrivatePow<Y, UInt<UTerm, B1>> for X
where X: Mul<Y> + Unsigned,

Source§

type Output = <X as Mul<Y>>::Output

Source§

impl<Y: Unsigned, X: Unsigned> PrivatePow<Y, UTerm> for X