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.
Using nalgebra
You will need the last stable build of the rust compiler and the official package manager: cargo.
Simply add the following to your Cargo.toml file:
[dependencies]
nalgebra = "0.10.*"
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.
Thus, you can import the whole prelude using:
use nalgebra::*;
However, the recommended 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:
Vector1,Vector2,Vector3,Vector4,Vector5,Vector6. - Vector with a user-defined static size:
VectorN(available only with thegeneric_sizesfeature). - Points with static sizes:
Point1,Point2,Point3,Point4,Point5,Point6. - Square matrices with static sizes:
Matrix1,Matrix2,Matrix3,Matrix4,Matrix5,Matrix6. - Rotation matrices:
Rotation2,Rotation3 - Quaternions:
Quaternion,Unit<Quaternion>. - Unit-sized values (unit vectors, unit quaternions, etc.):
Unit<T>, e.g.,Unit<Vector3<f32>>. - Isometries (translation ⨯ rotation):
Isometry2,Isometry3 - Similarity transformations (translation ⨯ rotation ⨯ uniform scale):
Similarity2,Similarity3. - 3D projections for computer graphics:
Persp3,PerspMatrix3,Ortho3,OrthoMatrix3. - Dynamically sized heap-allocated vector:
DVector. - Dynamically sized stack-allocated vectors with a maximum size:
DVector1toDVector6. - Dynamically sized heap-allocated (square or rectangular) matrix:
DMatrix. - Linear algebra and data analysis operators:
Covariance,Mean,qr,cholesky. - Almost one trait per functionality: useful for generic programming.