1mod affine2;
2mod affine3a;
3mod float;
4mod mat3;
5pub(crate) mod math;
6mod vec2;
7mod vec3;
8
9#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
10mod 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))]
20mod scalar;
21
22#[cfg(all(
23 target_feature = "sse2",
24 not(any(feature = "core-simd", feature = "scalar-math"))
25))]
26mod sse2;
27
28#[cfg(all(
29 target_feature = "simd128",
30 not(any(feature = "core-simd", feature = "scalar-math"))
31))]
32mod 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))]
42use scalar::*;
43
44#[cfg(all(
45 target_feature = "sse2",
46 not(any(feature = "core-simd", feature = "scalar-math"))
47))]
48use sse2::*;
49
50#[cfg(all(
51 target_feature = "simd128",
52 not(any(feature = "core-simd", feature = "scalar-math"))
53))]
54use wasm32::*;
55
56#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
57use coresimd::*;
58
59pub use affine2::Affine2;
60pub use affine3a::Affine3A;
61pub use mat2::{mat2, Mat2};
62pub use mat3::{mat3, Mat3};
63pub use mat3a::{mat3a, Mat3A};
64pub use mat4::{mat4, Mat4};
65pub use quat::{quat, Quat};
66pub use vec2::{vec2, Vec2};
67pub use vec3::{vec3, Vec3};
68pub use vec3a::{vec3a, Vec3A};
69pub use vec4::{vec4, Vec4};
70
71#[cfg(not(target_arch = "spirv"))]
72mod 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}