}
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;
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;