problemreductions 0.3.0

A library for reducing NP-hard problems
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 = "problemreductions"
version = "0.3.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "A library for reducing NP-hard problems"
readme = "README.md"
keywords = [
    "np-hard",
    "optimization",
    "reduction",
    "sat",
    "graph",
]
categories = [
    "algorithms",
    "science",
]
license = "MIT"
repository = "https://github.com/CodingThrust/problem-reductions"

[features]
default = ["ilp-highs"]
ilp = ["ilp-highs"]
ilp-clarabel = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/clarabel",
]
ilp-coin-cbc = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/coin_cbc",
]
ilp-highs = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/highs",
]
ilp-lpsolve = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/lpsolve",
]
ilp-microlp = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/microlp",
]
ilp-scip = [
    "ilp-solver",
    "dep:good_lp",
    "good_lp/scip",
]
ilp-solver = []

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[[bench]]
name = "solver_benchmarks"
path = "benches/solver_benchmarks.rs"
harness = false

[dependencies.bitvec]
version = "1.0"

[dependencies.good_lp]
version = "1.8"
optional = true
default-features = false

[dependencies.inventory]
version = "0.3"

[dependencies.num-traits]
version = "0.2"

[dependencies.ordered-float]
version = "5.0"

[dependencies.petgraph]
version = "0.8"
features = ["serde-1"]

[dependencies.problemreductions-macros]
version = "0.3.0"

[dependencies.rand]
version = "0.9"

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

[dependencies.serde_json]
version = "1.0"

[dependencies.thiserror]
version = "2.0"

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

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

[profile.release]
lto = true