[package]
name = "flowmatch"
version = "0.1.4"
edition = "2021"
rust-version = "1.80"
license = "MIT OR Apache-2.0"
authors = ["Arc <attobop@gmail.com>"]
description = "Flow matching primitives (ndarray-first; backend-agnostic) with semidiscrete FM and RFM experiments."
repository = "https://github.com/arclabs561/flowmatch"
homepage = "https://github.com/arclabs561/flowmatch"
documentation = "https://docs.rs/flowmatch"
keywords = ["flow-matching", "diffusion", "ot", "generative-modeling"]
categories = ["science", "mathematics"]
[features]
default = []
sheaf-evals = ["dep:sheaf"]
riemannian = ["dep:skel"]
burn = [
"dep:burn-core",
"dep:burn-autodiff",
"dep:burn-ndarray",
"dep:burn-nn",
"dep:burn-optim",
]
[dependencies]
thiserror = "2.0"
ndarray = "0.16"
rand = "0.9"
rand_chacha = "0.9"
rand_distr = "0.5"
logp = "0.1.4"
wass = "0.1.4"
skel = { version = "0.1", optional = true }
sheaf = { version = "0.1.4", default-features = false, features = ["cluster", "community", "knn-graph", "metrics", "wass"], optional = true }
burn-core = { version = "0.20.0", default-features = false, features = ["std"], optional = true }
burn-autodiff = { version = "0.20.0", default-features = false, features = ["std"], optional = true }
burn-ndarray = { version = "0.20.0", default-features = true, optional = true }
burn-nn = { version = "0.20.0", default-features = false, features = ["std"], optional = true }
burn-optim = { version = "0.20.0", default-features = false, features = ["std"], optional = true }
[dev-dependencies]
proptest = "1.5"
criterion = { version = "0.5", features = ["html_reports"] }
petgraph = "0.6"
hyperball = "0.1"
rkhs = "0.1"
[[example]]
name = "ode_comparison"
path = "examples/ode_comparison.rs"
[[example]]
name = "rfm_usgs_earthquakes_cluster_mass"
path = "examples/rfm_usgs_earthquakes_cluster_mass.rs"
required-features = ["sheaf-evals"]
[[example]]
name = "rfm_usgs_knn_leiden"
path = "examples/rfm_usgs_knn_leiden.rs"
required-features = ["sheaf-evals"]
[[example]]
name = "rfm_usgs_full_pipeline_report"
path = "examples/rfm_usgs_full_pipeline_report.rs"
required-features = ["sheaf-evals"]
[[example]]
name = "riemannian_fm_poincare"
path = "examples/riemannian_fm_poincare.rs"
required-features = ["riemannian"]
[[example]]
name = "mmd_flow_eval"
path = "examples/mmd_flow_eval.rs"
[[bench]]
name = "realdata_torsions"
harness = false
[[bench]]
name = "pairing"
harness = false
[[bench]]
name = "realdata_usgs"
harness = false
required-features = ["sheaf-evals"]
[[test]]
name = "rfm_usgs_cluster_mass_e2e"
path = "tests/rfm_usgs_cluster_mass_e2e.rs"
required-features = ["sheaf-evals"]
[[test]]
name = "rfm_usgs_leiden_exact_knn_e2e"
path = "tests/rfm_usgs_leiden_exact_knn_e2e.rs"
required-features = ["sheaf-evals"]