# 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 = "2024"
name = "arael"
version = "0.6.3"
authors = ["Indrek Mandre <indrek@mare.ee>"]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Nonlinear optimization framework with compile-time symbolic differentiation"
readme = "README.md"
keywords = [
    "optimization",
    "nonlinear",
    "least-squares",
    "symbolic-math",
    "slam",
]
categories = [
    "science::robotics",
    "mathematics",
    "algorithms",
]
license = "MIT"
repository = "https://github.com/harakas/arael"

[package.metadata.docs.rs]
rustdoc-args = [
    "--html-in-header",
    "docs-header.html",
]

[features]
cholmod = ["eigen"]
eigen = ["dep:cc"]
lapack = ["dep:lapack-sys"]

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

[[example]]
name = "bench_band"
path = "examples/bench_band.rs"

[[example]]
name = "bench_investigate"
path = "examples/bench_investigate.rs"

[[example]]
name = "bench_sparse"
path = "examples/bench_sparse.rs"

[[example]]
name = "calc_demo"
path = "examples/calc_demo.rs"

[[example]]
name = "jacobian_demo"
path = "examples/jacobian_demo.rs"

[[example]]
name = "linear_demo"
path = "examples/linear_demo.rs"

[[example]]
name = "loc_demo"
path = "examples/loc_demo.rs"

[[example]]
name = "loc_global_demo"
path = "examples/loc_global_demo.rs"

[[example]]
name = "model_demo"
path = "examples/model_demo.rs"

[[example]]
name = "refs_demo"
path = "examples/refs_demo.rs"

[[example]]
name = "runtime_fit_demo"
path = "examples/runtime_fit_demo.rs"

[[example]]
name = "single_root_demo"
path = "examples/single_root_demo.rs"

[[example]]
name = "slam2d_simple_demo"
path = "examples/slam2d_simple_demo.rs"

[[example]]
name = "slam_demo"
path = "examples/slam_demo.rs"

[[example]]
name = "sym_demo"
path = "examples/sym_demo.rs"

[[example]]
name = "user_function_demo"
path = "examples/user_function_demo.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.arael-macros]
version = "0.6.3"

[dependencies.arael-sym]
version = "0.6.3"

[dependencies.faer]
version = "0.24"
features = [
    "std",
    "sparse-linalg",
]
default-features = false

[dependencies.inventory]
version = "0.3"

[dependencies.lapack-sys]
version = "0.15"
optional = true

[dependencies.nalgebra]
version = "0.33"

[dependencies.num]
version = "0.4"

[dependencies.rand]
version = "0.9"

[dependencies.rand_distr]
version = "0.5"

[dependencies.serde]
version = "1"
features = ["derive"]

[dev-dependencies.criterion]
version = "0.5"

[dev-dependencies.dirs]
version = "5"

[dev-dependencies.image]
version = "0.25"

[dev-dependencies.rustyline]
version = "15"

[dev-dependencies.trybuild]
version = "1"

[build-dependencies.cc]
version = "1"
optional = true

[target.'cfg(target_arch = "wasm32")'.dependencies.getrandom]
version = "0.3"
features = ["wasm_js"]

[target.'cfg(target_arch = "wasm32")'.dependencies.web-time]
version = "1"
