nalgebra
nalgebra is a low-dimensional linear algebra library written for Rust targeting:
- general-purpose linear algebra (still lacks a lot of features…).
- real time computer graphics.
- real time computer physics.
An on-line version of this documentation is available here.
Using nalgebra
All the functionality of nalgebra is grouped in one place: the root module nalgebra::. This
module re-exports everything and includes free functions for all traits methods performing
out-of-place operations.
- You can import the whole prelude using:
use nalgebra::*;
The preferred way to use nalgebra is to import types and traits explicitly, and call
free-functions using the na:: prefix:
extern crate nalgebra as na;
use ;
Features
nalgebra is meant to be a general-purpose, low-dimensional, linear algebra library, with an optimized set of tools for computer graphics and physics. Those features include:
- Vectors with predefined static sizes:
Vec1,Vec2,Vec3,Vec4,Vec5,Vec6. - Vector with a user-defined static size:
VecN(available only with thegeneric_sizesfeature). - Points with static sizes:
Pnt1,Pnt2,Pnt3,Pnt4,Pnt5,Pnt6. - Square matrices with static sizes:
Mat1,Mat2,Mat3,Mat4,Mat5,Mat6. - Rotation matrices:
Rot2,Rot3 - Quaternions:
Quat,UnitQuat. - Isometries (translation ⨯ rotation):
Iso2,Iso3 - Similarity transformations (translation ⨯ rotation ⨯ uniform scale):
Sim2,Sim3. - 3D projections for computer graphics:
Persp3,PerspMat3,Ortho3,OrthoMat3. - Dynamically sized heap-allocated vector:
DVec. - Dynamically sized stack-allocated vectors with a maximum size:
DVec1toDVec6. - Dynamically sized heap-allocated (square or rectangular) matrix:
DMat. - Linear algebra and data analysis operators:
Cov,Mean,qr,cholesky. - Almost one trait per functionality: useful for generic programming.