nalgebra 0.32.3

General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices.
Documentation
[package]

name    = "nalgebra"

version = "0.32.3"

authors = [ "Sébastien Crozet <developer@crozet.re>" ]



description = "General-purpose linear algebra library with transformations and statically-sized or dynamically-sized matrices."

documentation = "https://www.nalgebra.org/docs"

homepage = "https://nalgebra.org"

repository = "https://github.com/dimforge/nalgebra"

readme = "README.md"

categories = [ "science", "mathematics", "wasm", "no-std" ]

keywords = [ "linear", "algebra", "matrix", "vector", "math" ]

license = "BSD-3-Clause"

edition = "2018"

exclude = ["/ci/*", "/.travis.yml", "/Makefile"]



[badges]

maintenance = { status = "actively-developed" }



[lib]

name = "nalgebra"

path = "src/lib.rs"



[features]

default = [ "std", "macros" ]

std     = [ "matrixmultiply", "simba/std" ]

sparse  = [ ]

debug   = [ "approx/num-complex", "rand" ]

alloc   = [ ]

io      = [ "pest", "pest_derive" ]

compare = [ "matrixcompare-core" ]

libm    = [ "simba/libm" ]

libm-force = [ "simba/libm_force" ]

macros = [ "nalgebra-macros" ]

cuda   = [ "cust_core", "simba/cuda" ]





# Conversion

convert-mint = [ "mint" ]

convert-bytemuck = [ "bytemuck" ]

convert-glam014 = [ "glam014" ]

convert-glam015 = [ "glam015" ]

convert-glam016 = [ "glam016" ]

convert-glam017 = [ "glam017" ]

convert-glam018 = [ "glam018" ]

convert-glam019 = [ "glam019" ]

convert-glam020 = [ "glam020" ]

convert-glam021 = [ "glam021" ]

convert-glam022 = [ "glam022" ]

convert-glam023 = [ "glam023" ]

convert-glam024 = [ "glam024" ]



# Serialization

## To use serde in a #[no-std] environment, enable the

## `serde-serialize-no-std` feature instead of `serde-serialize`.

## Serialization of dynamically-sized matrices/vectors require

## `serde-serialize`.

serde-serialize-no-std = [ "serde", "num-complex/serde" ]

serde-serialize        = [ "serde-serialize-no-std", "serde/std" ]

rkyv-serialize-no-std  = [ "rkyv/size_32" ]

rkyv-serialize         = [ "rkyv-serialize-no-std", "rkyv/std", "rkyv/validation" ]



# Randomness

## To use rand in a #[no-std] environment, enable the

## `rand-no-std` feature instead of `rand`.

rand-no-std = [ "rand-package" ]

rand        = [ "rand-no-std", "rand-package/std", "rand-package/std_rng", "rand_distr" ]



# Tests

arbitrary        = [ "quickcheck" ]

proptest-support = [ "proptest" ]

slow-tests       = []

rkyv-safe-deser  = [ "rkyv-serialize", "rkyv/validation" ]



[dependencies]

nalgebra-macros = { version = "0.2.1", path = "nalgebra-macros", optional = true }

typenum        = "1.12"

rand-package   = { package = "rand", version = "0.8", optional = true, default-features = false }

num-traits     = { version = "0.2", default-features = false }

num-complex    = { version = "0.4", default-features = false }

num-rational   = { version = "0.4", default-features = false }

approx         = { version = "0.5", default-features = false }

simba          = { version = "0.8", default-features = false }

alga           = { version = "0.9", default-features = false, optional = true }

rand_distr     = { version = "0.4", default-features = false, optional = true }

matrixmultiply = { version = "0.3", optional = true }

serde          = { version = "1.0", default-features = false, features = [ "derive" ], optional = true }

rkyv           = { version = "0.7.41", default-features = false, optional = true }

mint           = { version = "0.5", optional = true }

quickcheck     = { version = "1", optional = true }

pest           = { version = "2", optional = true }

pest_derive    = { version = "2", optional = true }

bytemuck       = { version = "1.5", optional = true }

matrixcompare-core = { version = "0.1", optional = true }

proptest       = { version = "1", optional = true, default-features = false, features = ["std"] }

glam014        = { package = "glam", version = "0.14", optional = true }

glam015        = { package = "glam", version = "0.15", optional = true }

glam016        = { package = "glam", version = "0.16", optional = true }

glam017        = { package = "glam", version = "0.17", optional = true }

glam018        = { package = "glam", version = "0.18", optional = true }

glam019        = { package = "glam", version = "0.19", optional = true }

glam020        = { package = "glam", version = "0.20", optional = true }

glam021        = { package = "glam", version = "0.21", optional = true }

glam022        = { package = "glam", version = "0.22", optional = true }

glam023        = { package = "glam", version = "0.23", optional = true }

glam024        = { package = "glam", version = "0.24", optional = true }

cust_core      = { version = "0.1", optional = true }

rayon          = { version = "1.6", optional = true }



[dev-dependencies]

serde_json = "1.0"

rand_xorshift = "0.3"

rand_isaac = "0.3"

criterion = { version = "0.4", features = ["html_reports"] }

nalgebra = { path = ".", features = ["debug", "compare", "rand", "macros"]}



# For matrix comparison macro

matrixcompare = "0.3.0"

itertools = "0.10"



[workspace]

members = [ "nalgebra-lapack", "nalgebra-glm", "nalgebra-sparse", "nalgebra-macros" ]

resolver = "2"



[[example]]

name = "matrixcompare"

required-features = ["compare"]



[[bench]]

name = "nalgebra_bench"

harness = false

path = "benches/lib.rs"

required-features = ["rand"]



#[profile.bench]

#opt-level = 0

#lto = false



[profile.bench]

lto = true



[package.metadata.docs.rs]

# Enable all the features when building the docs on docs.rs

all-features = true

# define the configuration attribute `docsrs`

rustdoc-args = ["--cfg", "docsrs"]