argmin-math 0.1.1-rc.1

argmin math abstractions
Documentation
[package]
name = "argmin-math"
version = "0.1.1-rc.1"
authors = ["Stefan Kroboth <stefan.kroboth@gmail.com>"]
edition = "2021"
license = "MIT OR Apache-2.0"
description = "argmin math abstractions"
documentation = "https://docs.rs/argmin-math/"
homepage = "http://argmin-rs.org"
repository = "https://github.com/argmin-rs/argmin"
readme = "README.md"
keywords = ["optimization", "math", "science"]
categories = ["science"]
exclude = []

[dependencies]
# nalgebra
nalgebra_0_31 = { package = "nalgebra", version = "0.31", optional = true }
nalgebra_0_30 = { package = "nalgebra", version = "0.30", optional = true }
nalgebra_0_29 = { package = "nalgebra", version = "0.29", optional = true }

# ndarray
## v0.15
ndarray_0_15 = { package = "ndarray", version = "0.15", optional = true }
ndarray-linalg_0_14 = { package = "ndarray-linalg", version = "0.14", optional = true }
## v0.14
ndarray_0_14 = { package = "ndarray", version = "0.14", optional = true }
ndarray-linalg_0_13 = { package = "ndarray-linalg", version = "0.13", optional = true }
## v0.13
ndarray_0_13 = { package = "ndarray", version = "0.13", optional = true }
ndarray-linalg_0_12 = { package = "ndarray-linalg", version = "0.12", optional = true }

# general
num-complex_0_4 = { package = "num-complex", version = "0.4", optional = true, default-features = false, features = ["std"] }
num-complex_0_3 = { package = "num-complex", version = "0.3", optional = true, default-features = false, features = ["std"] }
num-complex_0_2 = { package = "num-complex", version = "0.2", optional = true, default-features = false, features = ["std"] }
num-traits = { version = "0.2" }
num-integer = { version = "0.1" }
rand = { version = "0.8.3" }
anyhow = { version = "1.0" }
thiserror = { version = "1.0" }

cfg-if = "1"

[dev-dependencies]
paste = "1"

[features]
default = ["primitives", "vec"]
latest_all = ["primitives", "vec", "nalgebra_latest-serde", "ndarray_latest-serde"]

# primitives
primitives = ["num-complex_0_4"]

# vec
vec = ["primitives", "num-complex_0_4"]

# nalgebra
nalgebra_all = ["primitives"]
nalgebra_latest = ["nalgebra_v0_31"]
nalgebra_latest-serde = ["nalgebra_v0_31-serde"]
nalgebra_v0_31 = ["nalgebra_0_31", "num-complex_0_4", "nalgebra_all"]
nalgebra_v0_31-serde = ["nalgebra_v0_31", "nalgebra_0_31/serde-serialize"]
nalgebra_v0_30 = ["nalgebra_0_30", "num-complex_0_4", "nalgebra_all"]
nalgebra_v0_30-serde = ["nalgebra_v0_30", "nalgebra_0_30/serde-serialize"]
nalgebra_v0_29 = ["nalgebra_0_29", "num-complex_0_4", "nalgebra_all"]
nalgebra_v0_29-serde = ["nalgebra_v0_29", "nalgebra_0_29/serde-serialize"]

# ndarray
ndarray_all = ["primitives"]
ndarray_latest = ["ndarray_v0_15"]

## With `ndarray-linalg`
ndarray_latest-serde = ["ndarray_v0_15-serde"]
ndarray_v0_15 = ["ndarray_0_15", "ndarray-linalg_0_14", "num-complex_0_4", "ndarray_all"]
ndarray_v0_15-serde = ["ndarray_v0_15", "ndarray_0_15/serde-1"]
ndarray_v0_14 = ["ndarray_0_14", "ndarray-linalg_0_13", "num-complex_0_3", "ndarray_all"]
ndarray_v0_14-serde = ["ndarray_v0_14", "ndarray_0_14/serde-1"]
ndarray_v0_13 = ["ndarray_0_13", "ndarray-linalg_0_12", "num-complex_0_2", "ndarray_all"]
ndarray_v0_13-serde = ["ndarray_v0_13", "ndarray_0_13/serde-1"]

## Without `ndarray-linalg`
ndarray_latest-nolinalg = ["ndarray_v0_15-nolinalg"]
ndarray_latest-nolinalg-serde = ["ndarray_v0_15-nolinalg-serde"]
ndarray_v0_15-nolinalg = ["ndarray_0_15", "num-complex_0_4", "ndarray_all"]
ndarray_v0_15-nolinalg-serde = ["ndarray_v0_15-nolinalg", "ndarray_0_15/serde-1"]
ndarray_v0_14-nolinalg = ["ndarray_0_14", "num-complex_0_3", "ndarray_all"]
ndarray_v0_14-nolinalg-serde = ["ndarray_v0_14-nolinalg", "ndarray_0_14/serde-1"]
ndarray_v0_13-nolinalg = ["ndarray_0_13", "num-complex_0_2", "ndarray_all"]
ndarray_v0_13-nolinalg-serde = ["ndarray_v0_13-nolinalg", "ndarray_0_13/serde-1"]

# For development and running the tests a backend for `ndarray-linalg` must be chosen. Normally
# one would add those as dev dependencies (the features would then be unified with the regular
# dependencies). However, linking somehow fails when the non-dev `ndarra-linalg` dependency is
# missing (which is the case for the `*-nolinalg*` features of the ndarray backend). To fix that,
# the `_dev_linalg_*` features were introduced. When testing and developing with one of the
# ndarray features with linalg support on, the appropriate `_dev_linalg_*` feature must be turned
# on as well. Note that the version number in `_dev_linalg_*` is always one below the `ndarray`
# version. For instance, for ndarray 0.15, one would use the `_dev_linalg_0_14` feature.
_dev_linalg_latest = ["_dev_linalg_0_14"]
_dev_linalg_0_14 = ["ndarray-linalg_0_14/netlib-static"]
_dev_linalg_0_13 = ["ndarray-linalg_0_13/netlib-static"]
_dev_linalg_0_12 = ["ndarray-linalg_0_12/netlib"]

[badges]
maintenance = { status = "actively-developed" }

[package.metadata.docs.rs]
targets = ["x86_64-unknown-linux-gnu"]
features = ["primitives", "vec", "ndarray_latest-serde", "nalgebra_latest-serde"]