[package]
edition = "2021"
rust-version = "1.80"
name = "flowmatch"
version = "0.1.4"
authors = ["Arc <attobop@gmail.com>"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Flow matching primitives (ndarray-first; backend-agnostic) with semidiscrete FM and RFM experiments."
homepage = "https://github.com/arclabs561/flowmatch"
documentation = "https://docs.rs/flowmatch"
readme = "README.md"
keywords = [
"flow-matching",
"diffusion",
"ot",
"generative-modeling",
]
categories = [
"science",
"mathematics",
]
license = "MIT OR Apache-2.0"
repository = "https://github.com/arclabs561/flowmatch"
[features]
burn = [
"dep:burn-core",
"dep:burn-autodiff",
"dep:burn-ndarray",
"dep:burn-nn",
"dep:burn-optim",
]
default = []
riemannian = ["dep:skel"]
sheaf-evals = ["dep:sheaf"]
[lib]
name = "flowmatch"
path = "src/lib.rs"
[[example]]
name = "burn_rfm_minibatch_ot_linear"
path = "examples/burn_rfm_minibatch_ot_linear.rs"
[[example]]
name = "burn_sd_fm_semidiscrete_linear"
path = "examples/burn_sd_fm_semidiscrete_linear.rs"
[[example]]
name = "discrete_ctmc_path_evolution"
path = "examples/discrete_ctmc_path_evolution.rs"
[[example]]
name = "mmd_flow_eval"
path = "examples/mmd_flow_eval.rs"
[[example]]
name = "ode_comparison"
path = "examples/ode_comparison.rs"
[[example]]
name = "profile_breakdown_torsions"
path = "examples/profile_breakdown_torsions.rs"
[[example]]
name = "profile_breakdown_usgs"
path = "examples/profile_breakdown_usgs.rs"
[[example]]
name = "rfm_conditional_2d"
path = "examples/rfm_conditional_2d.rs"
[[example]]
name = "rfm_minibatch_ot_linear"
path = "examples/rfm_minibatch_ot_linear.rs"
[[example]]
name = "rfm_minibatch_outlier_partial"
path = "examples/rfm_minibatch_outlier_partial.rs"
[[example]]
name = "rfm_poincare_geodesic_ode"
path = "examples/rfm_poincare_geodesic_ode.rs"
[[example]]
name = "rfm_protein_torsions_1bpi"
path = "examples/rfm_protein_torsions_1bpi.rs"
[[example]]
name = "rfm_textish_tokens"
path = "examples/rfm_textish_tokens.rs"
[[example]]
name = "rfm_torsions_nfe_curve"
path = "examples/rfm_torsions_nfe_curve.rs"
[[example]]
name = "rfm_two_moons"
path = "examples/rfm_two_moons.rs"
[[example]]
name = "rfm_usgs_earthquakes_cluster_mass"
path = "examples/rfm_usgs_earthquakes_cluster_mass.rs"
required-features = ["sheaf-evals"]
[[example]]
name = "rfm_usgs_earthquakes_sphere"
path = "examples/rfm_usgs_earthquakes_sphere.rs"
[[example]]
name = "rfm_usgs_full_pipeline_report"
path = "examples/rfm_usgs_full_pipeline_report.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_nfe_curve"
path = "examples/rfm_usgs_nfe_curve.rs"
[[example]]
name = "rfm_usgs_solver_nfe_tradeoff"
path = "examples/rfm_usgs_solver_nfe_tradeoff.rs"
[[example]]
name = "riemannian_fm_poincare"
path = "examples/riemannian_fm_poincare.rs"
required-features = ["riemannian"]
[[example]]
name = "sd_fm_semidiscrete_linear"
path = "examples/sd_fm_semidiscrete_linear.rs"
[[test]]
name = "nfe_convergence_usgs"
path = "tests/nfe_convergence_usgs.rs"
[[test]]
name = "rfm_minibatch_ot_e2e"
path = "tests/rfm_minibatch_ot_e2e.rs"
[[test]]
name = "rfm_textish_tokens_ot_e2e"
path = "tests/rfm_textish_tokens_ot_e2e.rs"
[[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"]
[[test]]
name = "sd_fm_assignment_strategy_e2e"
path = "tests/sd_fm_assignment_strategy_e2e.rs"
[[test]]
name = "sd_fm_codebook_weights_e2e"
path = "tests/sd_fm_codebook_weights_e2e.rs"
[[test]]
name = "sd_fm_semidiscrete_e2e"
path = "tests/sd_fm_semidiscrete_e2e.rs"
[[test]]
name = "sd_fm_textish_tokens_e2e"
path = "tests/sd_fm_textish_tokens_e2e.rs"
[[test]]
name = "trajectory_straightness_usgs"
path = "tests/trajectory_straightness_usgs.rs"
[[bench]]
name = "pairing"
path = "benches/pairing.rs"
harness = false
[[bench]]
name = "realdata_torsions"
path = "benches/realdata_torsions.rs"
harness = false
[[bench]]
name = "realdata_usgs"
path = "benches/realdata_usgs.rs"
harness = false
required-features = ["sheaf-evals"]
[dependencies.burn-autodiff]
version = "0.20.0"
features = ["std"]
optional = true
default-features = false
[dependencies.burn-core]
version = "0.20.0"
features = ["std"]
optional = true
default-features = false
[dependencies.burn-ndarray]
version = "0.20.0"
optional = true
default-features = true
[dependencies.burn-nn]
version = "0.20.0"
features = ["std"]
optional = true
default-features = false
[dependencies.burn-optim]
version = "0.20.0"
features = ["std"]
optional = true
default-features = false
[dependencies.logp]
version = "0.1.4"
[dependencies.ndarray]
version = "0.16"
[dependencies.rand]
version = "0.9"
[dependencies.rand_chacha]
version = "0.9"
[dependencies.rand_distr]
version = "0.5"
[dependencies.sheaf]
version = "0.1.4"
features = [
"cluster",
"community",
"knn-graph",
"metrics",
"wass",
]
optional = true
default-features = false
[dependencies.skel]
version = "0.1"
optional = true
[dependencies.thiserror]
version = "2.0"
[dependencies.wass]
version = "0.1.4"
[dev-dependencies.criterion]
version = "0.5"
features = ["html_reports"]
[dev-dependencies.hyperball]
version = "0.1"
[dev-dependencies.petgraph]
version = "0.6"
[dev-dependencies.proptest]
version = "1.5"
[dev-dependencies.rkhs]
version = "0.1"