# 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 = "scirs2-special"
version = "0.4.0"
authors = ["COOLJAPAN OU (Team KitaSan)"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Special functions module for SciRS2 (scirs2-special)"
readme = "README.md"
keywords = [
    "special-functions",
    "gamma",
    "scientific",
    "scipy",
    "numerical",
]
categories = [
    "science",
    "mathematics",
    "algorithms",
]
license = "Apache-2.0"
repository = "https://github.com/cool-japan/scirs"

[package.metadata.docs.rs]
all-features = true
rustdoc-args = [
    "--cfg",
    "docsrs",
]

[features]
default = ["python-interop"]
fast-compile = []
gpu = ["scirs2-core/gpu"]
high-precision = ["rug"]
interactive = []
lazy = ["futures"]
parallel = ["scirs2-core/parallel"]
plotting = ["plotters"]
python-interop = ["regex"]
simd = ["scirs2-core/simd"]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "bessel_bench"
path = "benches/bessel_bench.rs"

[[bench]]
name = "comprehensive_bench"
path = "benches/comprehensive_bench.rs"

[[bench]]
name = "performance_regression"
path = "benches/performance_regression.rs"

[[bench]]
name = "special_bench"
path = "benches/special_bench.rs"

[dependencies.approx]
version = "0.5.1"

[dependencies.futures]
version = "0.3.32"
optional = true

[dependencies.lazy_static]
version = "1.5"

[dependencies.log]
version = "0.4"

[dependencies.plotters]
version = "0.3.7"
optional = true

[dependencies.regex]
version = "1.12.3"
optional = true

[dependencies.rug]
version = "1.29.0"
features = [
    "integer",
    "float",
    "rational",
    "complex",
]
optional = true
default-features = false

[dependencies.scirs2-core]
version = "0.4.0"
features = [
    "validation",
    "simd",
    "array",
    "random",
]
default-features = false

[dependencies.serde]
version = "1.0"
features = [
    "derive",
    "derive",
]

[dependencies.statrs]
version = "0.18.0"

[dependencies.thiserror]
version = "2.0.18"

[dev-dependencies.chrono]
version = "0.4.44"

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

[dev-dependencies.quickcheck]
version = "1.1"

[dev-dependencies.quickcheck_macros]
version = "1.2"

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

[dev-dependencies.tokio]
version = "1.50.0"
features = [
    "full",
    "full",
]

[lints.clippy]
expect_used = "allow"
unwrap_used = "warn"

[lints.rust]
dead_code = "allow"
mismatched_lifetime_syntaxes = "allow"
unknown_lints = "allow"
unpredictable_function_pointer_comparisons = "allow"
unused_imports = "allow"
unused_mut = "allow"
unused_variables = "allow"
