diffusionx 0.4.11

A multi-threaded crate for random number generation and stochastic process simulation.
[package]
name = "diffusionx"
authors = ["Xiangong Tang <tangxiangong@gmail.com>"]
edition = "2024"
version = "0.4.11"
description = "A multi-threaded crate for random number generation and stochastic process simulation."
license = "MIT OR Apache-2.0"
repository = "https://github.com/tangxiangong/diffusionx"
readme = "README.md"
categories = ["science", "mathematics"]
keywords = ["stochastic-process", "simulation", "Monte-Carlo"]
rust-version = "1.87"

[lib]
name = "diffusionx"
doctest = false

[package.metadata.docs.rs]
# Disable scrape-examples to avoid rustc ICE on docs.rs
cargo-args = ["-Zunstable-options", "-Zrustdoc-scrape-examples=disabled"]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[features]
default = ["visualize"]
visualize = ["dep:plotters", "dep:derive_builder", "dep:plotters-backend", "dep:either"]
# cuda = ["dep:cudarc", "dep:bytemuck", "dep:cuda-kernel"]
# metal = ["dep:metal", "dep:objc", "dep:metal-kernel"]

[dependencies]
csv = "1.4"
gauss-quad = "0.2.4"
num-complex = "0.4"
num-traits = "0.2"
rand = "0.9"
rand_distr = "0.5"
rayon = "1.11"
realfft = "3.5"
thiserror = "2"

# optional dependencies
derive_builder = { version = "0.20", optional = true }
either = { version = "1", optional = true }
plotters = { version = "0.3", optional = true }
plotters-backend = { version = "0.3", optional = true }

# # GPU acceleration dependencies
# cudarc = { version = "0.17", optional = true, features = ["std", "cuda-version-from-build-system"] }
# bytemuck = { version = "1.14", optional = true }
# metal = { version = "0.32", optional = true }
# objc = { version = "0.2", optional = true }
# cuda-kernel = { path = "./cuda-kernel", optional = true }
# metal-kernel = { path = "./metal-kernel", optional = true }

[profile.release]
lto = true
codegen-units = 1
panic = "abort"