Join us on Discord Status Status License (3-Clause BSD)

Become a Patron!

Linear algebra library

… for the Rust programming language.

Quick reference  
global view of all the types, functions, and methods.
Vectors and matrices  
The fundamental building blocks of any linear algebra library. Includes both heap-allocated and stack-allocated objects parametrized by their dimensions using type-level integers.
Decompositions, linear solvers, and Lapack  
Compute decompositions, eigenvalues, and solutions to linear systems. Benefit from efficient implementations calling Lapack bindings from the nalgebra-lapack crate.
Points and transformations  
Types wrapping matrices and vectors to represent geometric entities like point and the most common transformations like rotations, isometries, and similarities.
Orthographic and perspective projections that agree with computer-graphics conventions.
Recipes for Computer Graphics  
How to translate/rotate a Matrix4. How to build a Model-View-Projection matrix. How to get shader-compliant object representations, etc.
A simplified API for computer graphics  
Use the nalgebra-glm crate for a simpler, straight-to-the-point, graphics programming-oriented functions operating on nalgebra types. This is inspired by the great C++ GLM library.
Performance tricks  
Types that may help you achieve better perfomances.
Wasm and Embedded programming  
Use and compile nalgebra for browser applications or targets that do not support the Rust standard library.
Generic programming  
Use or implement traits to write your own algorithms that may be generic wrt. the vector space and its dimension, the transformation types, etc.