nox 0.4.0

Tensor library that compiles to XLA (like JAX, but for Rust).
[package]
name = "nox"
version.workspace = true
edition = "2021"
description = "Tensor library that compiles to XLA (like JAX, but for Rust)."
license = "MIT OR Apache-2.0"
repository = "https://github.com/elodin-sys/elodin"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["jax", "noxpr", "xla"]
jax = ["pyo3", "numpy", "noxpr"]
cuda = ["shared"]
noxpr = ["xla"]
xla = ["dep:xla", "lapack-src"]
shared = []

[dependencies]
nalgebra = "0.33"
ndarray = "0.16"
num-traits = "0.2.15"
simba = "0.8.1"
boxcar = "0.2"
paste = "1.0.14"
thiserror = "1.0"
smallvec.version = "1.11.2"
smallvec.features = ["const_generics", "union"]
itertools = "0.12.0"
seq-macro = "0.3.5"
fn-traits = "0.1.2"
faer = "0.19.1"
bytemuck.version = "1.14"
dyn-stack = "0.10.0"
stackalloc = "1.2.1"


# noxla - a wrapper around raw xla
xla = { optional = true, workspace = true }

# jax
pyo3.version = "0.21.0"
pyo3.optional = true
numpy.version = "0.21.0"
numpy.optional = true

# debug
indent_write = "2.2.0"
approx = "0.5"

[target.'cfg(not(target_os = "macos"))'.dependencies]
lapack-src = { version = "0.10", features = ["openblas"], optional = true }
openblas-src.version = "0.10"
openblas-src.features = ["system"]
openblas-src.optional = true
[target.'cfg(target_os = "macos")'.dependencies]
lapack-src = { version = "0.10", features = ["accelerate"], optional = true }