[−][src]Crate hektor
hektor
: A math lib for hekkin vectors.
This crate is core only, so it should work basically anywhere. Various types
are provided that all attempt to use explicit sse
SIMD as much as possible
so that we don't have to just trust in the auto-vectorizer (because it's not
that smart). Fallbacks are provided when sse
isn't available.
SIMD Policy
All CPU feature selection happens at compile time. Note that by default on
i686
and x86_64
you'll only have the sse2
feature enabled. If you want
to have the additional features you'll need to enable them via the
RUSTFLAGS
setting. You can configure RUSTFLAGS
via your cargo config
file so that you
don't forget to set it during a build.
I might support neon
some day, but I'm focusing on the sse
stuff first.
This Isn't A Generic Linear Algebra Crate
It's just for computer graphics sorts of things. Dimensions cap out at 4 and there's no generics to be found.
Re-exports
pub use ivec2::*; |
pub use ivec3::*; |
pub use ivec4::*; |
pub use mat2::*; |
pub use mat2x3::*; |
pub use mat2x4::*; |
pub use mat3::*; |
pub use mat3x2::*; |
pub use mat3x4::*; |
pub use mat4::*; |
pub use mat4x2::*; |
pub use mat4x3::*; |
pub use quat::*; |
pub use vec2::*; |
pub use vec3::*; |
pub use vec4::*; |
Modules
ivec2 | |
ivec3 | |
ivec4 | |
mat2 | |
mat3 | |
mat4 | Module for 4x4 Matrices. |
mat2x3 | |
mat2x4 | |
mat3x2 | |
mat3x4 | |
mat4x2 | |
mat4x3 | |
quat | |
vec2 | |
vec3 | |
vec4 | Module for 4D Vectors. |
Macros
if_sse2 | Use this to make it simpler to handle the branch between using |
if_sse3 | Use this to make it simpler to handle the branch between using |
if_sse41 | Use this to make it simpler to handle the branch between using |
if_sse42 | Use this to make it simpler to handle the branch between using |
if_ssse3 | Use this to make it simpler to handle the branch between using |