1mod bvec2;
2mod bvec3;
3mod bvec4;
4
5#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
6mod coresimd;
7
8#[cfg(all(
9 target_arch = "aarch64",
10 not(any(feature = "core-simd", feature = "scalar-math"))
11))]
12mod neon;
13
14#[cfg(all(
15 target_feature = "sse2",
16 not(any(feature = "core-simd", feature = "scalar-math"))
17))]
18mod sse2;
19
20#[cfg(all(
21 target_feature = "simd128",
22 not(any(feature = "core-simd", feature = "scalar-math"))
23))]
24mod wasm32;
25
26#[cfg(any(
27 not(any(
28 feature = "core-simd",
29 target_arch = "aarch64",
30 target_feature = "sse2",
31 target_feature = "simd128"
32 )),
33 feature = "scalar-math"
34))]
35mod scalar;
36
37pub use bvec2::{bvec2, BVec2};
38pub use bvec3::{bvec3, BVec3};
39pub use bvec4::{bvec4, BVec4};
40
41#[cfg(all(
42 target_arch = "aarch64",
43 not(any(feature = "core-simd", feature = "scalar-math"))
44))]
45pub use neon::bvec3a::{bvec3a, BVec3A};
46#[cfg(all(
47 target_arch = "aarch64",
48 not(any(feature = "core-simd", feature = "scalar-math"))
49))]
50pub use neon::bvec4a::{bvec4a, BVec4A};
51
52#[cfg(all(
53 target_feature = "sse2",
54 not(any(feature = "core-simd", feature = "scalar-math"))
55))]
56pub use sse2::bvec3a::{bvec3a, BVec3A};
57#[cfg(all(
58 target_feature = "sse2",
59 not(any(feature = "core-simd", feature = "scalar-math"))
60))]
61pub use sse2::bvec4a::{bvec4a, BVec4A};
62
63#[cfg(all(
64 target_feature = "simd128",
65 not(any(feature = "core-simd", feature = "scalar-math"))
66))]
67pub use wasm32::bvec3a::{bvec3a, BVec3A};
68#[cfg(all(
69 target_feature = "simd128",
70 not(any(feature = "core-simd", feature = "scalar-math"))
71))]
72pub use wasm32::bvec4a::{bvec4a, BVec4A};
73
74#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
75pub use coresimd::bvec3a::{bvec3a, BVec3A};
76#[cfg(all(feature = "core-simd", not(feature = "scalar-math")))]
77pub use coresimd::bvec4a::{bvec4a, BVec4A};
78
79#[cfg(any(
80 not(any(
81 feature = "core-simd",
82 target_arch = "aarch64",
83 target_feature = "sse2",
84 target_feature = "simd128"
85 )),
86 feature = "scalar-math"
87))]
88pub use scalar::bvec3a::{bvec3a, BVec3A};
89
90#[cfg(any(
91 not(any(
92 feature = "core-simd",
93 target_arch = "aarch64",
94 target_feature = "sse2",
95 target_feature = "simd128"
96 )),
97 feature = "scalar-math"
98))]
99pub use scalar::bvec4a::{bvec4a, BVec4A};
100
101mod const_test_bvec2 {
102 const_assert_eq!(1, core::mem::align_of::<super::BVec2>());
103 const_assert_eq!(2, core::mem::size_of::<super::BVec2>());
104}
105
106mod const_test_bvec3 {
107 const_assert_eq!(1, core::mem::align_of::<super::BVec3>());
108 const_assert_eq!(3, core::mem::size_of::<super::BVec3>());
109}
110
111mod const_test_bvec4 {
112 const_assert_eq!(1, core::mem::align_of::<super::BVec4>());
113 const_assert_eq!(4, core::mem::size_of::<super::BVec4>());
114}
115
116#[cfg(not(feature = "scalar-math"))]
117mod const_test_bvec3a {
118 const_assert_eq!(16, core::mem::align_of::<super::BVec3A>());
119 const_assert_eq!(16, core::mem::size_of::<super::BVec3A>());
120}
121
122#[cfg(not(feature = "scalar-math"))]
123mod const_test_bvec4a {
124 const_assert_eq!(16, core::mem::align_of::<super::BVec4A>());
125 const_assert_eq!(16, core::mem::size_of::<super::BVec4A>());
126}