crates.io docs.rs tests

DirectXMath for Rust

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

Implementation status

| 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].

SIMD intrinsics

| 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].

Example: enable all x86/64 intrinsics

RUSTFLAGS="-C target-feature=+sse3,+sse4.1,+avx,+fma,+avx2" cargo build

License