Crate nalgebra

source ·
Expand description

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]
// TODO: replace the * by the latest version.
nalgebra = "*"

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:

Re-exports

pub use crate::base::*;
pub use crate::geometry::*;
pub use crate::linalg::*;

Modules

[Reexported at the root of this crate.] Data structures for vector and matrix computations.
[Reexported at the root of this crate.] Data structures for points and usual transformations (rotations, isometries, etc.)
[Reexported at the root of this crate.] Factorization of real matrices.

Structs

A complex number in Cartesian form.

Traits

Trait alias for Add and AddAssign with result of type Self.
Trait alias for Div and DivAssign with result of type Self.
Trait alias for Mul and MulAssign with result of type Self.
Trait alias for Sub and SubAssign with result of type Self.
Trait shared by all complex fields and its subfields (like real numbers).
Trait implemented by fields, i.e., complex numbers and floats.
Trait shared by all reals.
Lane-wise generalization of bool for SIMD booleans.
Lane-wise generalisation of ComplexField for SIMD complex fields.
Lane-wise generalization of the standard PartialOrd for SIMD values.
Lanewise generalization of RealField for SIMD reals.
Base trait for every SIMD types.

Functions

absDeprecated
The absolute value of a.
The center of two points.
Returns a reference to the input value clamped to the interval [min, max].
Converts an object from one type to an equivalent or more general one.
Converts an object from one type to an equivalent or more general one.
Use with care! Same as try_convert but without any property checks.
Use with care! Same as try_convert but without any property checks.
The distance between two points.
The squared distance between two points.
infDeprecated
Returns the infimum of a and b.
inf_supDeprecated
Returns simultaneously the infimum and supremum of a and b.
Indicates if try_convert will succeed without actually performing the conversion.
Same as cmp::max.
Same as cmp::min.
Gets the multiplicative identity element.
Clamp value between min and max. Returns None if value is not comparable to min or max.
Compare a and b using a partial ordering relation.
Returns true iff a and b are comparable and a >= b.
Returns true iff a and b are comparable and a > b.
Returns true iff a and b are comparable and a <= b.
Returns true iff a and b are comparable and a < b.
Return the maximum of a and b if they are comparable.
Return the minimum of a and b if they are comparable.
Sorts two values in increasing order using a partial ordering.
supDeprecated
Returns the supremum of a and b.
Attempts to convert an object to a more specific one.
Attempts to convert an object to a more specific one.
Wraps val into the range [min, max] using modular arithmetics.
Gets the additive identity element.