Overview of ultraviolet
mainultraviolet is a high-performance linear and geometric algebra library for computer graphics and games. It focuses on two main pillars:
- Productivity: The library avoids generics and complex Rust type-system hacks. This results in faster compilation times, straightforward interfaces, and clear, concise error messages.
- Runtime Performance: It provides two distinct types for most mathematical structures:
- Standard types: Use usual scalar
f32values. - 'Wide' types: Use SIMD
f32x4vectors. These follow an SoA (Structure of Arrays) architecture, where a single wide type (e.g.,Vec3x8) contains the data for multiple associated types (e.g., 8Vec3s) and performs operations on all SIMD lanes simultaneously. This can be significantly faster (up to 10x) than standard AoS layouts for specific workloads.
- Standard types: Use usual scalar