# 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"
rust-version = "1.81"
name = "fdars-core"
version = "0.13.0"
authors = ["Simon Muller"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Functional Data Analysis algorithms in Rust"
homepage = "https://github.com/sipemu/fdars"
documentation = "https://docs.rs/fdars-core"
readme = "README.md"
keywords = [
    "functional-data",
    "statistics",
    "fda",
    "depth",
    "clustering",
]
categories = [
    "science",
    "mathematics",
]
license = "MIT"
repository = "https://github.com/sipemu/fdars"

[features]
default = ["parallel"]
js = ["getrandom/js"]
linalg = [
    "faer",
    "anofox-regression",
]
parallel = ["rayon"]
serde = [
    "dep:serde",
    "dep:serde_json",
]

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

[[example]]
name = "basis_representation"
path = "examples/04_basis_representation/main.rs"

[[example]]
name = "berkeley_growth"
path = "examples/28_berkeley_growth/main.rs"

[[example]]
name = "classification"
path = "examples/23_classification/main.rs"

[[example]]
name = "clustering"
path = "examples/07_clustering/main.rs"

[[example]]
name = "complete_pipeline"
path = "examples/14_complete_pipeline/main.rs"

[[example]]
name = "depth_measures"
path = "examples/05_depth_measures/main.rs"

[[example]]
name = "detrending"
path = "examples/11_detrending/main.rs"

[[example]]
name = "distances_and_metrics"
path = "examples/06_distances_and_metrics/main.rs"

[[example]]
name = "elastic_alignment"
path = "examples/16_elastic_alignment/main.rs"

[[example]]
name = "elastic_analysis"
path = "examples/26_elastic_analysis/main.rs"

[[example]]
name = "equivalence_test"
path = "examples/17_equivalence_test/main.rs"

[[example]]
name = "explainability"
path = "examples/25_explainability/main.rs"

[[example]]
name = "function_on_scalar"
path = "examples/21_function_on_scalar/main.rs"

[[example]]
name = "functional_operations"
path = "examples/02_functional_operations/main.rs"

[[example]]
name = "gmm_clustering"
path = "examples/22_gmm_clustering/main.rs"

[[example]]
name = "irregular_data"
path = "examples/13_irregular_data/main.rs"

[[example]]
name = "landmark_registration"
path = "examples/18_landmark_registration/main.rs"

[[example]]
name = "mixed_effects"
path = "examples/24_mixed_effects/main.rs"

[[example]]
name = "outlier_detection"
path = "examples/09_outlier_detection/main.rs"

[[example]]
name = "regression"
path = "examples/08_regression/main.rs"

[[example]]
name = "scalar_on_function"
path = "examples/20_scalar_on_function/main.rs"

[[example]]
name = "seasonal_analysis"
path = "examples/10_seasonal_analysis/main.rs"

[[example]]
name = "simulation"
path = "examples/01_simulation/main.rs"

[[example]]
name = "smoothing"
path = "examples/03_smoothing/main.rs"

[[example]]
name = "spm"
path = "examples/27_spm/main.rs"

[[example]]
name = "streaming_depth"
path = "examples/12_streaming_depth/main.rs"

[[example]]
name = "tolerance_bands"
path = "examples/15_tolerance_bands/main.rs"

[[example]]
name = "tsrvf"
path = "examples/19_tsrvf/main.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies.anofox-regression]
version = "0.4"
optional = true

[dependencies.faer]
version = "0.23"
optional = true

[dependencies.getrandom]
version = "0.2"
optional = true

[dependencies.nalgebra]
version = "0.33"

[dependencies.num-complex]
version = "0.4"

[dependencies.rand]
version = "0.8"

[dependencies.rand_distr]
version = "0.4"

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

[dependencies.rustfft]
version = "6.2"

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

[dependencies.serde_json]
version = "1"
optional = true

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

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

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

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