- type Bool: Bool + Make<Self, Prim = bool> + Select<Self::Bool>;
- type U8: UInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = u8>
- + ConvertTo<Self::I8>
- + Into<Self::U16>
- + Into<Self::I16>
- + Into<Self::F16>
- + Into<Self::U32>
- + Into<Self::I32>
- + Into<Self::F32>
- + Into<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type U16: UInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = u16>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + Into<Self::U32>
- + Into<Self::I32>
- + Into<Self::F32>
- + Into<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type U32: UInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = u32>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::I32>
- + ConvertTo<Self::F32>
- + Into<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type U64: UInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = u64>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::I32>
- + ConvertTo<Self::F32>
- + ConvertTo<Self::I64>
- + ConvertTo<Self::F64>;
- type I8: SInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = i8>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::U16>
- + Into<Self::I16>
- + Into<Self::F16>
- + ConvertTo<Self::U32>
- + Into<Self::I32>
- + Into<Self::F32>
- + ConvertTo<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type I16: SInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = i16>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + Into<Self::I32>
- + Into<Self::F32>
- + ConvertTo<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type I32: SInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = i32>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::F32>
- + ConvertTo<Self::U64>
- + Into<Self::I64>
- + Into<Self::F64>;
- type I64: SInt<Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = i64>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::I32>
- + ConvertTo<Self::F32>
- + ConvertTo<Self::U64>
- + ConvertTo<Self::F64>;
- type F16: Float<Self::U32, BitsType = Self::U16>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = F16>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::I32>
- + Into<Self::F32>
- + ConvertTo<Self::U64>
- + ConvertTo<Self::I64>
- + Into<Self::F64>;
- type F32: Float<Self::U32, BitsType = Self::U32>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = f32>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::I32>
- + ConvertTo<Self::U64>
- + ConvertTo<Self::I64>
- + Into<Self::F64>;
- type F64: Float<Self::U32, BitsType = Self::U64>
- + Compare<Bool = Self::Bool>
- + Make<Self, Prim = f64>
- + ConvertTo<Self::U8>
- + ConvertTo<Self::I8>
- + ConvertTo<Self::U16>
- + ConvertTo<Self::I16>
- + ConvertTo<Self::F16>
- + ConvertTo<Self::U32>
- + ConvertTo<Self::I32>
- + ConvertTo<Self::F32>
- + ConvertTo<Self::U64>
- + ConvertTo<Self::I64>;
- // Vector types
- type VecBool: From<Self::Bool> + Bool + Make<Self, Prim = bool> + Select<Self::VecBool>;
- type VecU8: From<Self::U8>
- + UInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = u8>;
- type VecI8: From<Self::I8>
- + SInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = i8>;
- type VecU16: From<Self::U16>
- + UInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = u16>;
- type VecI16: From<Self::I16>
- + SInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = i16>;
- type VecF16: From<Self::F16> + Float + Compare<Bool = Self::VecBool> + Make<Self, Prim = F16>;
- type VecU32: From<Self::U32>
- + UInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = u32>;
- type VecI32: From<Self::I32>
- + SInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = i32>;
- type VecF32: From<Self::F32> + Float + Compare<Bool = Self::VecBool> + Make<Self, Prim = f32>;
- type VecU64: From<Self::U64>
- + UInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = u64>;
- type VecI64: From<Self::I64>
- + SInt<Self::VecU32>
- + Compare<Bool = Self::VecBool>
- + Make<Self, Prim = i64>;
- type VecF64: From<Self::F64> + Float + Compare<Bool = Self::VecBool> + Make<Self, Prim = f64>;