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

[dependencies]
nalgebra = "0.17"

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 sse2 or not.

if_sse3

Use this to make it simpler to handle the branch between using sse3 or not.

if_sse41

Use this to make it simpler to handle the branch between using sse4.1 or not.

if_sse42

Use this to make it simpler to handle the branch between using sse4.2 or not.

if_ssse3

Use this to make it simpler to handle the branch between using ssse3 or not.