diffsl 0.11.5

A compiler for a domain-specific language for ordinary differential equations (ODE).
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[package]
edition = "2021"
name = "diffsl"
version = "0.11.5"
authors = ["Martin Robinson <martinjrobins@gmail.com>"]
build = "build.rs"
exclude = ["Enzyme/enzyme/benchmarks"]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A compiler for a domain-specific language for ordinary differential equations (ODE)."
readme = false
license = "MIT"
repository = "https://github.com/martinjrobins/diffsl"

[package.metadata.docs.rs]
features = ["llvm15-0"]

[features]
cranelift = [
    "dep:cranelift",
    "dep:cranelift-module",
    "dep:cranelift-object",
    "dep:cranelift-jit",
    "dep:cranelift-native",
]
default = ["external_dynamic"]
enzyme = [
    "bindgen",
    "cmake",
]
external = []
external_dynamic = []
external_f32 = ["external"]
external_f64 = ["external"]
llvm = []
llvm15-0 = [
    "inkwell-150",
    "llvm-sys-150",
    "llvm",
    "enzyme",
]
llvm16-0 = [
    "inkwell-160",
    "llvm-sys-160",
    "llvm",
    "enzyme",
]
llvm17-0 = [
    "inkwell-170",
    "llvm-sys-170",
    "llvm",
    "enzyme",
]
llvm18-1 = [
    "inkwell-181",
    "llvm-sys-181",
    "llvm",
    "enzyme",
]
llvm19-1 = [
    "inkwell-191",
    "llvm-sys-191",
    "llvm",
    "enzyme",
]
llvm20-1 = [
    "inkwell-201",
    "llvm-sys-201",
    "llvm",
    "enzyme",
]
llvm21-1 = [
    "inkwell-211",
    "llvm-sys-211",
    "llvm",
    "enzyme",
]
rayon = ["dep:rayon"]
test_compile = []

[lib]
name = "diffsl"
path = "src/lib.rs"

[[test]]
name = "external_dynamic_f32"
path = "tests/external_dynamic_f32.rs"

[[test]]
name = "external_dynamic_f64"
path = "tests/external_dynamic_f64.rs"

[[test]]
name = "external_dynamic_missing_symbol"
path = "tests/external_dynamic_missing_symbol.rs"

[[test]]
name = "external_f32"
path = "tests/external_f32.rs"

[[test]]
name = "external_f64"
path = "tests/external_f64.rs"

[[test]]
name = "pybamm_dfn"
path = "tests/pybamm_dfn.rs"

[[test]]
name = "roundtrips"
path = "tests/roundtrips.rs"

[[bench]]
name = "evaluation"
path = "benches/evaluation.rs"
harness = false

[[bench]]
name = "pybamm_dfn"
path = "benches/pybamm_dfn.rs"
harness = false

[dependencies.aliasable]
version = "0.1.3"

[dependencies.anyhow]
version = "1.0"

[dependencies.approx]
version = "0.5"

[dependencies.cranelift]
version = "0.125"
optional = true

[dependencies.cranelift-jit]
version = "0.125"
optional = true

[dependencies.cranelift-module]
version = "0.125"
optional = true

[dependencies.cranelift-native]
version = "0.125"
optional = true

[dependencies.cranelift-object]
version = "0.125"
optional = true

[dependencies.inkwell-150]
version = "0.7.1"
features = ["llvm15-0"]
optional = true
package = "inkwell"

[dependencies.inkwell-160]
version = "0.7.1"
features = ["llvm16-0"]
optional = true
package = "inkwell"

[dependencies.inkwell-170]
version = "0.7.1"
features = ["llvm17-0"]
optional = true
package = "inkwell"

[dependencies.inkwell-181]
version = "0.7.1"
features = ["llvm18-1"]
optional = true
package = "inkwell"

[dependencies.inkwell-191]
version = "0.7.1"
features = ["llvm19-1"]
optional = true
package = "inkwell"

[dependencies.inkwell-201]
version = "0.7.1"
features = ["llvm20-1"]
optional = true
package = "inkwell"

[dependencies.inkwell-211]
version = "0.7.1"
features = ["llvm21-1"]
optional = true
package = "inkwell"

[dependencies.inkwell_internals]
version = "0.11.0"
optional = true

[dependencies.itertools]
version = "0.14.0"

[dependencies.lazy_static]
version = "1.5.0"

[dependencies.libc]
version = "0.2"

[dependencies.llvm-sys-150]
version = "150.2.1"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-160]
version = "160.2.1"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-170]
version = "170.4.0"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-181]
version = "181.3.0"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-191]
version = "191.1.0"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-201]
version = "201.0.0"
optional = true
package = "llvm-sys"

[dependencies.llvm-sys-211]
version = "211.0.0"
optional = true
package = "llvm-sys"

[dependencies.log]
version = "0.4.29"

[dependencies.ndarray]
version = "=0.17"

[dependencies.num-traits]
version = "0.2"

[dependencies.object]
version = "0.37"

[dependencies.pest]
version = "2.8"

[dependencies.pest_derive]
version = "2.8"

[dependencies.rayon]
version = "1.10.0"
optional = true

[dependencies.serde]
version = "1.0"

[dependencies.target-lexicon]
version = "0.13"

[dependencies.uid]
version = "0.1.8"

[dev-dependencies.paste]
version = "1.0.15"

[build-dependencies.bindgen]
version = "0.72"
optional = true

[build-dependencies.cmake]
version = "0.1.54"
optional = true

[target.'cfg(not(target_arch = "wasm32"))'.dependencies.mmap-rs]
version = "0.7"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.colog]
version = "1.4.0"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.divan]
version = "0.1.21"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.env_logger]
version = "0.11.8"

[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies.faer]
version = "0.24.0"

[target."cfg(windows)".dependencies.windows-sys]
version = "0.61"
features = [
    "Win32_Foundation",
    "Win32_System_LibraryLoader",
]