Vector Space Traits
A collection of traits for generic vector math in Rust. Provides VectorSpace, DotProduct, InnerSpace (with normalize, project, reject, reflect, angle, etc.), and free functions like distance and interpolate.
Designed for custom vector types (2D, 3D, Geometric Algebra, etc.). Implement once, get dozens of methods for free. Works with no_std.
Features
- Efficiency: Inline defaults, no allocations
- Useful trait methods for inner space:
magnitude(),normalize(),project(),reject(),reflect(),angle(), etc. - Flexible for multivectors: Provides
OuterProductandDotProducttraits - Free functions:
distance(),distance2(),interpolate() no_std: Full support (libmfor floats)- Heterogeneous operations:
Vector.dot(Rotor)→Rotor(GA-friendly)
Geometric Algebra Example
use ;
// Assume your GA types: Vector, Bivector, Rotor