Getting started
nalgebra relies on the official Rust package manager
Cargo for dependency resolution and compilation. Therefore,
making nalgebra ready to be used by your project is simply a matter of
adding a new dependency to your Cargo.toml
file.
Until nalgebra reaches 1.0, it is strongly recommended to always use its
latest version, though you might encounter breaking changes from time to time.
Once your Cargo.toml
file is set up, the corresponding crate must be imported
by your project with the usual extern crate
directive. We recommend using the
na
abbreviation for referencing the crate throughout your application.
#
Cargo exampleHere is a complete example of Cargo.toml
file:
#
Usage and cargo featuresnalgebra is a monolithic crate with all its functionalities exported at its
root. Data types, traits, and functions that do not take mutable inputs are
directly accessible behind the nalgebra::
path (or na::
if you use the
recommended alias). However, methods that perform in-place modifications
(normalization, appending a translation in-place, etc.) are not accessible as
free-functions. Instead, see the details of each data structure and the traits
they implement.
Finally, many optional features can be enabled if needed:
Feature name | Effect |
---|---|
abomonation-serialize | Makes it possible to serialize using abomonation |
arbitrary | Makes it possible the use of quickcheck by adding implementations of their Arbitrary trait. |
io | For parsing matrices from files using the matrix market format. |
libm | For allowing the use of the libm crate to make features based on special math functions work on #[no-std] targets. |
libm-force | For forcing the use of the libm crate in order to make sure the implementations of all special math functions will be the same of all the platforms. |
serde-serialize | Makes it possible the use of serde by adding implementations of the Serialize and Deserialize traits. |
sparse | To make the na::sparse module available for sparse matrix computations. |