1 mod affine2; 2 mod affine3a; 3 mod float; 4 mod mat3; 5 pub(crate) mod math; 6 mod vec2; 7 mod vec3; 8 9 #[cfg(all(feature = "core-simd", not(feature = "scalar-math")))] 10 mod coresimd; 11 12 #[cfg(any( 13 not(any( 14 feature = "core-simd", 15 target_feature = "sse2", 16 target_feature = "simd128" 17 )), 18 feature = "scalar-math" 19 ))] 20 mod scalar; 21 22 #[cfg(all( 23 target_feature = "sse2", 24 not(any(feature = "core-simd", feature = "scalar-math")) 25 ))] 26 mod sse2; 27 28 #[cfg(all( 29 target_feature = "simd128", 30 not(any(feature = "core-simd", feature = "scalar-math")) 31 ))] 32 mod wasm32; 33 34 #[cfg(any( 35 not(any( 36 feature = "core-simd", 37 target_feature = "sse2", 38 target_feature = "simd128" 39 )), 40 feature = "scalar-math" 41 ))] 42 use scalar::*; 43 44 #[cfg(all( 45 target_feature = "sse2", 46 not(any(feature = "core-simd", feature = "scalar-math")) 47 ))] 48 use sse2::*; 49 50 #[cfg(all( 51 target_feature = "simd128", 52 not(any(feature = "core-simd", feature = "scalar-math")) 53 ))] 54 use wasm32::*; 55 56 #[cfg(all(feature = "core-simd", not(feature = "scalar-math")))] 57 use coresimd::*; 58 59 pub use affine2::Affine2; 60 pub use affine3a::Affine3A; 61 pub use mat2::{mat2, Mat2}; 62 pub use mat3::{mat3, Mat3}; 63 pub use mat3a::{mat3a, Mat3A}; 64 pub use mat4::{mat4, Mat4}; 65 pub use quat::{quat, Quat}; 66 pub use vec2::{vec2, Vec2}; 67 pub use vec3::{vec3, Vec3}; 68 pub use vec3a::{vec3a, Vec3A}; 69 pub use vec4::{vec4, Vec4}; 70 71 #[cfg(not(target_arch = "spirv"))] 72 mod test { 73 use super::*; 74 75 #[cfg(all(not(feature = "cuda"), feature = "scalar-math"))] 76 mod const_test_affine2 { 77 const_assert_eq!( 78 core::mem::align_of::<super::Vec2>(), 79 core::mem::align_of::<super::Affine2>() 80 ); 81 const_assert_eq!(24, core::mem::size_of::<super::Affine2>()); 82 } 83 84 #[cfg(not(feature = "scalar-math"))] 85 mod const_test_affine2 { 86 const_assert_eq!(16, core::mem::align_of::<super::Affine2>()); 87 const_assert_eq!(32, core::mem::size_of::<super::Affine2>()); 88 } 89 90 mod const_test_mat2 { 91 #[cfg(feature = "scalar-math")] 92 const_assert_eq!( 93 core::mem::align_of::<super::Vec2>(), 94 core::mem::align_of::<super::Mat2>() 95 ); 96 #[cfg(not(any(feature = "scalar-math", target_arch = "spirv")))] 97 const_assert_eq!(16, core::mem::align_of::<super::Mat2>()); 98 const_assert_eq!(16, core::mem::size_of::<super::Mat2>()); 99 } 100 101 mod const_test_mat3 { 102 const_assert_eq!( 103 core::mem::align_of::<f32>(), 104 core::mem::align_of::<super::Mat3>() 105 ); 106 const_assert_eq!(36, core::mem::size_of::<super::Mat3>()); 107 } 108 109 mod const_test_mat3a { 110 const_assert_eq!(16, core::mem::align_of::<super::Mat3A>()); 111 const_assert_eq!(48, core::mem::size_of::<super::Mat3A>()); 112 } 113 114 mod const_test_mat4 { 115 const_assert_eq!( 116 core::mem::align_of::<super::Vec4>(), 117 core::mem::align_of::<super::Mat4>() 118 ); 119 const_assert_eq!(64, core::mem::size_of::<super::Mat4>()); 120 } 121 122 mod const_test_quat { 123 #[cfg(feature = "scalar-math")] 124 const_assert_eq!( 125 core::mem::align_of::<f32>(), 126 core::mem::align_of::<super::Quat>() 127 ); 128 #[cfg(not(any(feature = "scalar-math", target_arch = "spirv")))] 129 const_assert_eq!(16, core::mem::align_of::<super::Quat>()); 130 const_assert_eq!(16, core::mem::size_of::<super::Quat>()); 131 } 132 133 mod const_test_vec2 { 134 #[cfg(not(feature = "cuda"))] 135 const_assert_eq!( 136 core::mem::align_of::<f32>(), 137 core::mem::align_of::<super::Vec2>() 138 ); 139 #[cfg(feature = "cuda")] 140 const_assert_eq!(8, core::mem::align_of::<super::Vec2>()); 141 const_assert_eq!(8, core::mem::size_of::<super::Vec2>()); 142 } 143 144 mod const_test_vec3 { 145 const_assert_eq!( 146 core::mem::align_of::<f32>(), 147 core::mem::align_of::<super::Vec3>() 148 ); 149 const_assert_eq!(12, core::mem::size_of::<super::Vec3>()); 150 } 151 152 mod const_test_vec3a { 153 const_assert_eq!(16, core::mem::align_of::<super::Vec3A>()); 154 const_assert_eq!(16, core::mem::size_of::<super::Vec3A>()); 155 } 156 157 mod const_test_vec4 { 158 #[cfg(all(feature = "scalar-math", not(feature = "cuda")))] 159 const_assert_eq!( 160 core::mem::align_of::<f32>(), 161 core::mem::align_of::<super::Vec4>() 162 ); 163 #[cfg(not(feature = "scalar-math"))] 164 const_assert_eq!(16, core::mem::align_of::<super::Vec4>()); 165 const_assert_eq!(16, core::mem::size_of::<super::Vec4>()); 166 } 167 } 168