A pure rust translation of [DirectXMath], an all inline SIMD linear algebra library for use in games and graphics apps.
✔️ = Implemented, ❌ = Not yet implemented, 🚧 = In progress
| API | Implemented | | --- | ------ | | Vector | ✔️ | | Vector 2D | ✔️ | | Vector 3D | ✔️ | | Vector 4D | ✔️ | | Quaternion | ✔️ | | Matrix | ✔️ | | Streaming Transforms | ❌ | | Color | ❌ | | Load/Store/Accessors | ✔️ † | | Plane | ✔️ | | Collision | ✔️ | | Documentation | ✔️ 🚧 †† |
† Some alternate forms of the load/store operations are not yet implemented.
†† All functions have links to the [DirectXMath documentation].
| x86 / x86-64 | ARM | No intrinsics fallback | | ------------ | --- | ---------------------- | | ✔️ | ❌ (will fallback to no-intrinsics) | ✔️ |
Intrinsics may be disabled with the no_intrinsics
feature. This is the implicit behavior
if SIMD intrinsics are not available on the target architecture.
Note that only sse
and sse2
are enabled by default for x86
and x86-64
targets.
The sse3
, sse4.1
, avx
, fma
, and avx2
intrinsics may be enabled via [CPU target features].
x86/64
intrinsicsRUSTFLAGS="-C target-feature=+sse3,+sse4.1,+avx,+fma,+avx2" cargo build