ferrotherm 0.35.0

Thermodynamic computing in pure Rust: sparse energy-based models, chromatic block-Gibbs, parallel tempering, thermodynamic linear algebra, stochastic differentiable programs, a variational compiler onto device topologies, exact inference by variable elimination, planted instances with known optima, sampler certificates, and a first-class joules ledger. std-only, zero dependencies, wasm-clean, deterministic by seed.
Documentation
# 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 = "ferrotherm"
version = "0.35.0"
build = false
exclude = [
    "web/",
    "target/",
    "web-tests/",
    "zig/.zig-cache/",
    "zig/zig-out/",
    "julia/Ferrotherm/Manifest.toml",
    "docs/",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Thermodynamic computing in pure Rust: sparse energy-based models, chromatic block-Gibbs, parallel tempering, thermodynamic linear algebra, stochastic differentiable programs, a variational compiler onto device topologies, exact inference by variable elimination, planted instances with known optima, sampler certificates, and a first-class joules ledger. std-only, zero dependencies, wasm-clean, deterministic by seed."
homepage = "https://energy.physicalai-bmi.org/thermo"
documentation = "https://docs.rs/ferrotherm"
readme = "README.md"
keywords = [
    "thermodynamic",
    "ising",
    "gibbs-sampling",
    "energy-based-models",
    "probabilistic",
]
categories = [
    "science",
    "algorithms",
    "simulation",
    "wasm",
    "mathematics",
]
license = "Apache-2.0"
repository = "https://github.com/dcharlot-physicalai-bmi/ferrotherm"

[lib]
name = "ferrotherm"
crate-type = [
    "rlib",
    "cdylib",
]
path = "src/lib.rs"

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[dependencies]

[lints.clippy]
needless_range_loop = "allow"
neg_cmp_op_on_partial_ord = "allow"
too_many_arguments = "allow"

[profile.release]
opt-level = 3
lto = true