[][src]Crate ultraviolet

ultraviolet

This is a crate to do basic, computer-graphics-related, linear algebra, but fast, by taking full advantage of SIMD. To do this, it uses an "SoA" (Structure of Arrays) architecture such that each Wec (wide-vec) actually contains the data for 4 Vecs and will do any operation on all 4 of the vector 'lanes' at the same time. Doing this is potentially much (factor of 10) faster than an "AoS" (Array of Structs) layout, as all current Rust linear algebra libraries do. However, algorithms must be carefully architected to take full advantage of this, and doing so can be easier said than done, especially if your algorithm involves significant branching.

This crate is currently being dogfooded in my ray tracer rayn, and it does what I need it to do. If it's missing something you need it to do, bug me on the GitHub issue tracker and/or Rust community discord server (I'm Fusha there) and I'll try to add it for you :)

Re-exports

pub use wide;

Structs

Mat3
Vec2
Vec3
Wat3
Wec2
Wec3
f32x4

Traits

Lerp