Crate nalgebra[−][src]
nalgebra
nalgebra is a 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.18"
Most useful functionalities of nalgebra are grouped in the root module nalgebra::.
However, the recommended way to use nalgebra is to import types and traits
explicitly, and call free-functions using the na:: prefix:
#[macro_use] extern crate approx; // For the macro relative_eq! extern crate nalgebra as na; use na::{Vector3, Rotation3}; fn main() { let axis = Vector3::x_axis(); let angle = 1.57; let b = Rotation3::from_axis_angle(&axis, angle); relative_eq!(b.axis().unwrap(), axis); relative_eq!(b.angle(), angle); }
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:
- A single parametrizable type Matrixfor vectors, (square or rectangular) matrices, and slices with dimensions known either at compile-time (using type-level integers) or at runtime.
- Matrices and vectors with compile-time sizes are statically allocated while dynamic ones are allocated on the heap.
- Convenient aliases for low-dimensional matrices and vectors: Vector1toVector6andMatrix1x1toMatrix6x6, including rectangular matrices likeMatrix2x5.
- Points sizes known at compile time, and convenience aliases: Point1toPoint6.
- Translation (seen as a transformation that composes by multiplication): Translation2,Translation3.
- Rotation matrices: Rotation2,Rotation3.
- Quaternions: Quaternion,UnitQuaternion(for 3D rotation).
- Unit complex numbers can be used for 2D rotation: UnitComplex.
- Algebraic entities with a norm equal to one: Unit<T>, e.g.,Unit<Vector3<f32>>.
- Isometries (translation ⨯ rotation): Isometry2,Isometry3
- Similarity transformations (translation ⨯ rotation ⨯ uniform scale): Similarity2,Similarity3.
- Affine transformations stored as a homogeneous matrix: Affine2,Affine3.
- Projective (i.e. invertible) transformations stored as a homogeneous matrix: Projective2,Projective3.
- General transformations that does not have to be invertible, stored as a homogeneous matrix:
Transform2,Transform3.
- 3D projections for computer graphics: Perspective3,Orthographic3.
- Matrix factorizations: Cholesky,QR,LU,FullPivLU,SVD,Schur,Hessenberg,SymmetricEigen.
- Insertion and removal of rows of columns of a matrix.
Re-exports
| pub use crate::base::*; | 
| pub use crate::geometry::*; | 
| pub use crate::linalg::*; | 
| pub use base as core; | 
Modules
| base | [Reexported at the root of this crate.] Data structures for vector and matrix computations. | 
| geometry | [Reexported at the root of this crate.] Data structures for points and usual transformations (rotations, isometries, etc.) | 
| linalg | [Reexported at the root of this crate.] Factorization of real matrices. | 
Structs
| Complex | A complex number in Cartesian form. | 
Traits
| ClosedAdd | Trait alias for  | 
| ClosedDiv | Trait alias for  | 
| ClosedMul | Trait alias for  | 
| ClosedSub | Trait alias for  | 
| ComplexField | Trait shared by all complex fields and its subfields (like real numbers). | 
| Field | Trait implemented by fields, i.e., complex numbers and floats. | 
| RealField | Trait shared by all reals. | 
| SimdBool | Lane-wise generalization of  | 
| SimdComplexField | Lane-wise generalisation of  | 
| SimdPartialOrd | Lane-wise generalization of the standard  | 
| SimdRealField | Lanewise generalization of  | 
Functions
| abs | Deprecated The absolute value of  | 
| center | The center of two points. | 
| clamp | Returns a reference to the input value clamped to the interval  | 
| convert | Converts an object from one type to an equivalent or more general one. | 
| convert_ref | Converts an object from one type to an equivalent or more general one. | 
| convert_ref_unchecked | Use with care! Same as  | 
| convert_unchecked | Use with care! Same as  | 
| distance | The distance between two points. | 
| distance_squared | The squared distance between two points. | 
| inf | Deprecated Returns the infimum of  | 
| inf_sup | Deprecated Returns simultaneously the infimum and supremum of  | 
| is_convertible | Indicates if  | 
| max | Same as  | 
| min | Same as  | 
| one | Gets the multiplicative identity element. | 
| partial_clamp | Clamp  | 
| partial_cmp | Compare  | 
| partial_ge | Returns  | 
| partial_gt | Returns  | 
| partial_le | Returns  | 
| partial_lt | Returns  | 
| partial_max | Return the maximum of  | 
| partial_min | Return the minimum of  | 
| partial_sort2 | Sorts two values in increasing order using a partial ordering. | 
| sup | Deprecated Returns the supremum of  | 
| try_convert | Attempts to convert an object to a more specific one. | 
| try_convert_ref | Attempts to convert an object to a more specific one. | 
| wrap | Wraps  | 
| zero | Gets the additive identity element. |