problemreductions/rules/
mod.rs1pub mod cost;
4pub mod registry;
5pub use cost::{CustomCost, Minimize, MinimizeLexicographic, MinimizeMax, MinimizeSteps, MinimizeWeighted, PathCostFn};
6pub use registry::{ReductionEntry, ReductionOverhead};
7
8mod circuit_spinglass;
9mod graph;
10mod traits;
11mod factoring_circuit;
12mod independentset_setpacking;
13mod matching_setpacking;
14mod sat_coloring;
15mod sat_dominatingset;
16mod sat_independentset;
17mod sat_ksat;
18mod spinglass_maxcut;
19mod spinglass_qubo;
20mod vertexcovering_independentset;
21mod vertexcovering_setcovering;
22
23#[cfg(feature = "ilp")]
24mod clique_ilp;
25#[cfg(feature = "ilp")]
26mod dominatingset_ilp;
27#[cfg(feature = "ilp")]
28mod independentset_ilp;
29#[cfg(feature = "ilp")]
30mod matching_ilp;
31#[cfg(feature = "ilp")]
32mod setcovering_ilp;
33#[cfg(feature = "ilp")]
34mod setpacking_ilp;
35#[cfg(feature = "ilp")]
36mod vertexcovering_ilp;
37
38pub use graph::{EdgeJson, NodeJson, ReductionEdge, ReductionGraph, ReductionGraphJson, ReductionPath};
39pub use traits::{ReduceTo, ReductionResult};
40pub use independentset_setpacking::{ReductionISToSP, ReductionSPToIS};
41pub use matching_setpacking::ReductionMatchingToSP;
42pub use sat_coloring::ReductionSATToColoring;
43pub use sat_dominatingset::ReductionSATToDS;
44pub use sat_independentset::{BoolVar, ReductionSATToIS};
45pub use spinglass_maxcut::{ReductionMaxCutToSG, ReductionSGToMaxCut};
46pub use spinglass_qubo::{ReductionQUBOToSG, ReductionSGToQUBO};
47pub use vertexcovering_independentset::{ReductionISToVC, ReductionVCToIS};
48pub use vertexcovering_setcovering::ReductionVCToSC;
49pub use sat_ksat::{ReductionKSATToSAT, ReductionSATToKSAT};
50pub use factoring_circuit::ReductionFactoringToCircuit;
51pub use circuit_spinglass::{
52 LogicGadget, ReductionCircuitToSG,
53 and_gadget, or_gadget, not_gadget, xor_gadget, set0_gadget, set1_gadget,
54};
55
56#[cfg(feature = "ilp")]
57pub use clique_ilp::ReductionCliqueToILP;
58#[cfg(feature = "ilp")]
59pub use dominatingset_ilp::ReductionDSToILP;
60#[cfg(feature = "ilp")]
61pub use independentset_ilp::ReductionISToILP;
62#[cfg(feature = "ilp")]
63pub use matching_ilp::ReductionMatchingToILP;
64#[cfg(feature = "ilp")]
65pub use setcovering_ilp::ReductionSCToILP;
66#[cfg(feature = "ilp")]
67pub use setpacking_ilp::ReductionSPToILP;
68#[cfg(feature = "ilp")]
69pub use vertexcovering_ilp::ReductionVCToILP;