use crate::{Vector2,Vector3,Matrix3}; type Planar64=fixed_wide::types::I32F32; type Planar64Wide1=fixed_wide::types::I64F64; //type Planar64Wide2=fixed_wide::types::I128F128; type Planar64Wide3=fixed_wide::types::I256F256; #[test] fn wide_vec3(){ let v=Vector3::from_value(Planar64::from(3)); let v1=v.wide_mul_1_1(v); let v2=v1.wide_mul_2_2(v1); let v3=v2.wide_mul_4_4(v2); assert_eq!(v3,Vector3::from_value(Planar64Wide3::from(3i128.pow(8)))); } #[test] fn wide_vec3_dot(){ let v=Vector3::from_value(Planar64::from(3)); let v1=v.wide_mul_1_1(v); let v2=v1.wide_mul_2_2(v1); let v3=v2.wide_dot_4_4(v2); assert_eq!(v3,Planar64Wide3::from(3i128.pow(8)*3)); } #[test] fn wide_vec3_length_squared(){ let v=Vector3::from_value(Planar64::from(3)); let v1=v.wide_mul_1_1(v); let v2=v1.wide_mul_2_2(v1); let v3=v2.wide_length_squared(); assert_eq!(v3,Planar64Wide3::from(3i128.pow(8)*3)); } #[test] fn wide_matrix_dot(){ let m=Matrix3::>::from_value_2d(Planar64::from(3)); //normal matrix product todo!() //let m_dot=m.wide_dot_1_1(m); //assert_eq!(m_dot,Matrix3::>::from_value_2d(Planar64Wide1::from(3i128.pow(2)))); }