[package] name = "nalgebra" version = "0.33.2" 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", "num-complex/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"] convert-glam029 = ["glam029"] # 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.2", 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.9", 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 } glam029 = { package = "glam", version = "0.29", 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.13" # For macro testing trybuild = "1.0.90" cool_asserts = "2.0.3" [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"]