[package] name = "nalgebra" version = "0.32.3" authors = [ "Sébastien Crozet " ] 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 = "Apache-2.0" 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", "num-traits/std", "num-complex/std", "num-rational/std", "approx/std", "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" ] # 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" ] convert-glam025 = [ "glam025" ] convert-glam027 = [ "glam027" ] convert-glam028 = [ "glam028" ] # 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 } glam025 = { package = "glam", version = "0.25", optional = true } glam027 = { package = "glam", version = "0.27", optional = true } glam028 = { package = "glam", version = "0.28", 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"]