pub type U587 = UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UInt<UTerm, B1>, B0>, B0>, B1>, B0>, B0>, B1>, B0>, B1>, B1>;
Aliased Type§
struct U587 { /* private fields */ }
Implementations
Trait Implementations
Source§impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B1>
impl<Ul, Ur> Add<UInt<Ur, B0>> for UInt<Ul, B1>
UInt<Ul, B1> + UInt<Ur, B0> = UInt<Ul + Ur, B1>
Source§impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B1>
impl<Ul, Ur> Add<UInt<Ur, B1>> for UInt<Ul, B1>
UInt<Ul, B1> + UInt<Ur, B1> = UInt<(Ul + Ur) + B1, B0>
§impl<T, N> ArrayLength<T> for UInt<N, B1>where
N: ArrayLength<T>,
impl<T, N> ArrayLength<T> for UInt<N, B1>where
N: ArrayLength<T>,
Source§impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl>
impl<Ul, Bl, Ur> BitAnd<Ur> for UInt<Ul, Bl>
Anding unsigned integers.
We use our PrivateAnd
operator and then Trim
the output.
Source§impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1>
impl<Ul, Ur> BitOr<UInt<Ur, B0>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B0> = UInt<Ul | Ur, B1>
Source§impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1>
impl<Ul, Ur> BitOr<UInt<Ur, B1>> for UInt<Ul, B1>
UInt<Ul, B1> | UInt<Ur, B1> = UInt<Ul | Ur, B1>
Source§impl<Ul, Bl, Ur> BitXor<Ur> for UInt<Ul, Bl>
impl<Ul, Bl, Ur> BitXor<Ur> for UInt<Ul, Bl>
Xoring unsigned integers.
We use our PrivateXor
operator and then Trim
the output.
Source§impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B1>
impl<Ul, Ur> Cmp<UInt<Ur, B0>> for UInt<Ul, B1>
UInt<Ul, B1>
cmp with UInt<Ur, B0>
: SoFar
is Greater
Source§impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B1>
impl<Ul, Ur> Cmp<UInt<Ur, B1>> for UInt<Ul, B1>
UInt<Ul, B1>
cmp with UInt<Ur, B1>
: SoFar
is Equal
Source§impl<Ul, Bl, Ur, Br> Div<UInt<Ur, Br>> for UInt<Ul, Bl>
impl<Ul, Bl, Ur, Br> Div<UInt<Ur, Br>> for UInt<Ul, Bl>
Source§impl<Xp, Yp> Gcd<UInt<Yp, B1>> for UInt<Xp, B1>where
UInt<Xp, B1>: Max<UInt<Yp, B1>> + Min<UInt<Yp, B1>>,
UInt<Yp, B1>: Max<UInt<Xp, B1>> + Min<UInt<Xp, B1>>,
<UInt<Xp, B1> as Max<UInt<Yp, B1>>>::Output: Sub<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>,
<<UInt<Xp, B1> as Max<UInt<Yp, B1>>>::Output as Sub<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>>::Output: Gcd<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>,
impl<Xp, Yp> Gcd<UInt<Yp, B1>> for UInt<Xp, B1>where
UInt<Xp, B1>: Max<UInt<Yp, B1>> + Min<UInt<Yp, B1>>,
UInt<Yp, B1>: Max<UInt<Xp, B1>> + Min<UInt<Xp, B1>>,
<UInt<Xp, B1> as Max<UInt<Yp, B1>>>::Output: Sub<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>,
<<UInt<Xp, B1> as Max<UInt<Yp, B1>>>::Output as Sub<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>>::Output: Gcd<<UInt<Xp, B1> as Min<UInt<Yp, B1>>>::Output>,
gcd(x, y) = gcd([max(x, y) - min(x, y)], min(x, y)) if both x and y odd
This will immediately invoke the case for x even and y odd because the difference of two odd numbers is an even number.
Source§impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B1>
impl<Ul, B, Ur> Mul<UInt<Ur, B>> for UInt<Ul, B1>
UInt<Ul, B1> * UInt<Ur, B> = UInt<(Ul * UInt<Ur, B>), B0> + UInt<Ur, B>
Source§impl<U, B> Ord for UInt<U, B>
impl<U, B> Ord for UInt<U, B>
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<Ul, Bl, Ur, Br> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl>
impl<Ul, Bl, Ur, Br> PartialDiv<UInt<Ur, Br>> for UInt<Ul, Bl>
Source§impl<U, B> PartialOrd for UInt<U, B>where
U: PartialOrd,
B: PartialOrd,
impl<U, B> PartialOrd for UInt<U, B>where
U: PartialOrd,
B: PartialOrd,
Source§impl<Ul, Bl, Ur, Br> Rem<UInt<Ur, Br>> for UInt<Ul, Bl>
impl<Ul, Bl, Ur, Br> Rem<UInt<Ur, Br>> for UInt<Ul, Bl>
Source§impl<U, B> Shl<B1> for UInt<U, B>
impl<U, B> Shl<B1> for UInt<U, B>
Shifting left a UInt
by a one bit: UInt<U, B> << B1 = UInt<UInt<U, B>, B0>
Source§impl<U, B, Ur, Br> Shl<UInt<Ur, Br>> for UInt<U, B>
impl<U, B, Ur, Br> Shl<UInt<Ur, Br>> for UInt<U, B>
Shifting left UInt
by UInt
: X << Y
= UInt(X, B0) << (Y - 1)
Source§impl<U, B> Shl<UTerm> for UInt<U, B>
impl<U, B> Shl<UTerm> for UInt<U, B>
Shifting left UInt
by UTerm
: UInt<U, B> << UTerm = UInt<U, B>
Source§impl<U, B, Ur, Br> Shr<UInt<Ur, Br>> for UInt<U, B>
impl<U, B, Ur, Br> Shr<UInt<Ur, Br>> for UInt<U, B>
Shifting right UInt
by UInt
: UInt(U, B) >> Y
= U >> (Y - 1)
Source§impl<U, B> Shr<UTerm> for UInt<U, B>
impl<U, B> Shr<UTerm> for UInt<U, B>
Shifting right UInt
by UTerm
: UInt<U, B> >> UTerm = UInt<U, B>
Source§impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl>
impl<Ul, Bl, Ur> Sub<Ur> for UInt<Ul, Bl>
Subtracting unsigned integers. We just do our PrivateSub
and then Trim
the output.