[package] name = "nalgebra" version = "0.31.0" 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 = "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" ] # 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", "rkyv_wrappers", "num-complex/rkyv" ] rkyv-serialize = [ "rkyv-serialize-no-std", "rkyv/std", "rkyv/validation", "bytecheck", "num-complex/bytecheck" ] # 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 = [] [dependencies] nalgebra-macros = { version = "0.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.7", 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", default-features = false, optional = true } rkyv_wrappers = { git = "https://github.com/rkyv/rkyv_contrib", optional = true } bytecheck = { version = "~0.6.1", 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 } cust_core = { version = "0.1", optional = true } [dev-dependencies] serde_json = "1.0" rand_xorshift = "0.3" rand_isaac = "0.3" criterion = { version = "0.3", features = ["html_reports"] } # 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 certain features when building docs for docs.rs features = [ "proptest-support", "compare", "macros", "rand" ] [patch.crates-io] num-complex = { git = "https://github.com/zyansheep/num-complex" }