Skip to main content

condor_grid/algorithms/
mod.rs

1//! Grid algorithm owner tree: static, prepared, any-angle, and replanning lanes.
2//!
3//! Public modules implement the contracts selected at the crate root. Private,
4//! not-ready candidates stay beside their mature family, are never re-exported, and
5//! use that family’s ordinary validation route rather than an experiment feature or
6//! harness lane.
7//!
8//! Family map:
9//!
10//! - **Online [`crate::Pathfinder`]:** A*, BFS, bidirectional BFS, Dijkstra,
11//!   cardinal JPS, RSR
12//! - **Prepared / hierarchical:** JPS+, HPA*, subgoal graph
13//! - **Any-angle lane:** Theta*, Lazy Theta*, Anya (+ private visibility-graph oracles)
14//! - **Replanning:** D* Lite surface, LPA*, Field D* interpolated surface
15//!
16//! Shared internals (not consumer entrypoints):
17//!
18//! - [`jps_cardinal`] — 4-connected jump classification and path materialization
19//! - [`any_angle_visibility_graph_kernel`] — CSR storage and Euclidean Dijkstra
20//! - [`astar_bounded`] / [`dijkstra_index_hotpath`] — crate-private hotpath helpers
21
22/// Anya exact any-angle interval search on grids.
23pub mod anya;
24/// Classical A* for 4-connected discrete grids.
25pub mod astar;
26/// Unweighted BFS baseline for unit-cost grids.
27pub mod bfs;
28/// Two-frontier unweighted BFS.
29pub mod bidirectional_bfs;
30/// D* Lite incremental grid replanner surface.
31pub mod d_star_lite;
32/// Weighted-grid Dijkstra baseline.
33pub mod dijkstra;
34/// Field D* interpolated continuous-on-grid replanner.
35pub mod field_d_star;
36/// Hierarchical pathfinding A* (HPA*) prepared builder.
37pub mod hpa_star;
38/// Shared 4-connected jump classification used by JPS family solvers.
39pub mod jps_cardinal;
40/// Preprocessed jump-point search (JPS+) prepared builder.
41pub mod jps_plus;
42/// Online cardinal jump-point search.
43pub mod jump_point_search;
44/// Lazy Theta* any-angle pathfinder.
45pub mod lazy_theta_star;
46/// Lifelong Planning A* incremental replanner.
47pub mod lifelong_planning_astar;
48/// Rectangular symmetry reduction for room/corridor grids.
49pub mod rectangular_symmetry_reduction;
50/// Subgoal-graph prepared multi-query builder.
51pub mod subgoal_graph;
52/// Theta* any-angle pathfinder with line-of-sight shortcuts.
53pub mod theta_star;
54
55// Private, not-ready candidates. They intentionally compile through the
56// ordinary owning family rather than a parallel experiment harness. Their
57// inline `#[cfg(test)]` tests run through `just test-grid-lib <filter>`;
58// `just test-fast <target>` runs only the integration aggregators.
59#[allow(
60    dead_code,
61    reason = "private candidate retained for normal-family evaluation"
62)]
63mod astar_all_optimal;
64#[allow(
65    dead_code,
66    reason = "private candidate retained for normal-family evaluation"
67)]
68mod astar_monotone_bucket;
69#[allow(
70    dead_code,
71    reason = "private candidate retained for normal-family evaluation"
72)]
73mod bidirectional_bit_parallel_wavefront;
74#[allow(
75    dead_code,
76    reason = "private candidate retained for normal-family evaluation"
77)]
78mod dfs;
79#[allow(
80    dead_code,
81    reason = "private candidate retained for normal-family evaluation"
82)]
83mod dstar_lite_damage_adaptive_portfolio;
84#[allow(
85    dead_code,
86    reason = "private candidate retained for normal-family evaluation"
87)]
88mod dstar_lite_exact_integer_core;
89#[allow(
90    dead_code,
91    reason = "private candidate retained for normal-family evaluation"
92)]
93mod field_d_star_certified_adaptive_intervals;
94#[allow(
95    dead_code,
96    reason = "private candidate retained for normal-family evaluation"
97)]
98mod field_d_star_exact_incremental_center_graph;
99#[allow(
100    dead_code,
101    reason = "private candidate retained for normal-family evaluation"
102)]
103mod field_d_star_incremental_stencil;
104#[allow(
105    dead_code,
106    reason = "private candidate retained for normal-family evaluation"
107)]
108mod fixed_goal_reverse_distance_field;
109#[allow(
110    dead_code,
111    reason = "private candidate retained for normal-family evaluation"
112)]
113mod fringe_search;
114#[allow(
115    dead_code,
116    reason = "private candidate retained for normal-family evaluation"
117)]
118mod iterative_deepening_astar;
119#[allow(
120    dead_code,
121    reason = "private candidate retained for normal-family evaluation"
122)]
123mod iterative_deepening_dfs;
124#[allow(
125    dead_code,
126    reason = "private candidate retained for normal-family evaluation"
127)]
128mod prepared_separator_portal_hierarchy;
129#[allow(
130    dead_code,
131    reason = "private candidate retained for normal-family evaluation"
132)]
133mod shortest_path_count;
134#[allow(
135    dead_code,
136    reason = "private candidate retained for normal-family evaluation"
137)]
138mod weighted_bidirectional_radix_dijkstra;
139#[allow(
140    dead_code,
141    reason = "private candidate retained for normal-family evaluation"
142)]
143mod yen_k_shortest;
144
145/// Crate-private any-angle visibility-graph oracle used by family tests.
146pub(crate) mod any_angle_visibility_graph;
147/// CSR storage and Euclidean Dijkstra kernel for any-angle visibility graphs.
148pub(crate) mod any_angle_visibility_graph_kernel;
149
150/// Crate-private expansion-bounded A* hotpath helper.
151pub(crate) mod astar_bounded;
152/// Crate-private index-hotpath Dijkstra shared by prepared builders.
153pub(crate) mod dijkstra_index_hotpath;