switch to using separate VecBool8/16/32/64
[vector-math.git] / src / ieee754.rs
index 0da587de373707c95e51a364ff9fb75281450638..6f9fea7359f868e466a45ea84603a02c98a1c20a 100644 (file)
@@ -14,16 +14,16 @@ mod sealed {
 }
 
 pub trait FloatEncoding:
-    sealed::Sealed + Copy + 'static + Send + Sync + Float<u32> + Make<Context = Scalar>
+    sealed::Sealed + Copy + 'static + Send + Sync + Float + Make<Context = Scalar>
 {
     const EXPONENT_BIAS_UNSIGNED: Self::BitsType;
     const EXPONENT_BIAS_SIGNED: Self::SignedBitsType;
-    const SIGN_FIELD_WIDTH: u32;
-    const EXPONENT_FIELD_WIDTH: u32;
-    const MANTISSA_FIELD_WIDTH: u32;
-    const SIGN_FIELD_SHIFT: u32;
-    const EXPONENT_FIELD_SHIFT: u32;
-    const MANTISSA_FIELD_SHIFT: u32;
+    const SIGN_FIELD_WIDTH: Self::BitsType;
+    const EXPONENT_FIELD_WIDTH: Self::BitsType;
+    const MANTISSA_FIELD_WIDTH: Self::BitsType;
+    const SIGN_FIELD_SHIFT: Self::BitsType;
+    const EXPONENT_FIELD_SHIFT: Self::BitsType;
+    const MANTISSA_FIELD_SHIFT: Self::BitsType;
     const SIGN_FIELD_MASK: Self::BitsType;
     const EXPONENT_FIELD_MASK: Self::BitsType;
     const MANTISSA_FIELD_MASK: Self::BitsType;
@@ -45,12 +45,13 @@ macro_rules! impl_float_encoding {
             const EXPONENT_BIAS_UNSIGNED: Self::BitsType =
                 (1 << (Self::EXPONENT_FIELD_WIDTH - 1)) - 1;
             const EXPONENT_BIAS_SIGNED: Self::SignedBitsType = Self::EXPONENT_BIAS_UNSIGNED as _;
-            const SIGN_FIELD_WIDTH: u32 = 1;
-            const EXPONENT_FIELD_WIDTH: u32 = $exponent_field_width;
-            const MANTISSA_FIELD_WIDTH: u32 = $mantissa_field_width;
-            const SIGN_FIELD_SHIFT: u32 = Self::EXPONENT_FIELD_SHIFT + Self::EXPONENT_FIELD_WIDTH;
-            const EXPONENT_FIELD_SHIFT: u32 = Self::MANTISSA_FIELD_WIDTH;
-            const MANTISSA_FIELD_SHIFT: u32 = 0;
+            const SIGN_FIELD_WIDTH: Self::BitsType = 1;
+            const EXPONENT_FIELD_WIDTH: Self::BitsType = $exponent_field_width;
+            const MANTISSA_FIELD_WIDTH: Self::BitsType = $mantissa_field_width;
+            const SIGN_FIELD_SHIFT: Self::BitsType =
+                Self::EXPONENT_FIELD_SHIFT + Self::EXPONENT_FIELD_WIDTH;
+            const EXPONENT_FIELD_SHIFT: Self::BitsType = Self::MANTISSA_FIELD_WIDTH;
+            const MANTISSA_FIELD_SHIFT: Self::BitsType = 0;
             const SIGN_FIELD_MASK: Self::BitsType = 1 << Self::SIGN_FIELD_SHIFT;
             const EXPONENT_FIELD_MASK: Self::BitsType =
                 ((1 << Self::EXPONENT_FIELD_WIDTH) - 1) << Self::EXPONENT_FIELD_SHIFT;