problemreductions/rules/unitdiskmapping/
mod.rs1mod copyline;
29mod grid;
30pub mod ksg;
31pub(crate) mod pathdecomposition;
32mod traits;
33pub mod triangular;
34mod weighted;
35
36pub use ksg::{GridKind, MappingResult};
38
39use crate::rules::ReductionError;
40
41fn mapping_invalid(message: impl Into<String>) -> ReductionError {
42 ReductionError::InvalidTarget {
43 source_problem: "Graph",
44 target_problem: "UnitDiskMapping",
45 message: message.into(),
46 }
47}
48
49fn mapping_integer_overflow(operation: impl Into<String>) -> ReductionError {
50 ReductionError::IntegerOverflow {
51 source_problem: "Graph",
52 target_problem: "UnitDiskMapping",
53 operation: operation.into(),
54 }
55}
56
57fn mapping_non_finite(operation: impl Into<String>) -> ReductionError {
58 ReductionError::NonFiniteResult {
59 source_problem: "Graph",
60 target_problem: "UnitDiskMapping",
61 operation: operation.into(),
62 }
63}
64
65#[cfg(test)]
67pub(crate) use copyline::{
68 copyline_weighted_locations_triangular, create_copylines, mis_overhead_copyline, CopyLine,
69};
70#[cfg(test)]
71pub(crate) use grid::{CellState, MappingGrid};
72#[cfg(test)]
73pub(crate) use traits::{apply_gadget, unapply_gadget, Pattern};
74#[cfg(test)]
75pub(crate) use weighted::{map_weights, trace_centers};
76
77#[doc(hidden)]
79pub mod _internal {
80 pub use super::copyline::{
81 create_copylines, mis_overhead_copyline, mis_overhead_copyline_triangular, CopyLine,
82 };
83 pub use super::grid::{CellState, MappingGrid};
84}