Reference¶
One page per component: its contract (what is required, what is optional and
who uses it), its API, and the design choices behind it. The
tutorial introduces the same components by example.
The generated API reference
lists every public class, function and concept, generated by MrDocs from
the /// comments of the headers.
This section is also a PDF, built with the site.
| Page | Header(s) | Namespace |
|---|---|---|
| Problem model | — | your code |
| SolutionManager | helpers/solution_manager.hpp |
easylocal |
| Cost | cost.hpp, helpers/recipes.hpp |
easylocal::cost, easylocal |
| NeighborhoodExplorer | helpers/neighborhood_explorer.hpp, helpers/neighborhood_union.hpp |
easylocal |
| Runners | runners.hpp, runners/*.hpp |
easylocal, easylocal::runners |
| Solvers | solvers.hpp, solvers/*.hpp |
easylocal::solvers, easylocal::initialization |
| Configuration | config/*.hpp, adapters/toml.hpp |
easylocal::config |
| Testing | testing.hpp |
easylocal::testing |
| Apps and tools | app/*.hpp, adapters/tui.hpp, adapters/rest.hpp |
easylocal, easylocal::tui, easylocal::rest |
Topic guides: tracing, logging, REST, dependency policy.
Header layout¶
easylocal/
easylocal.hpp Core umbrella (all but adapters/, app/cli.hpp, app/tuning.hpp
and the component checks of testing.hpp, whose report and
options types come with check(app))
utils/ generator, limit, termination_reason, solution hashing,
logging; internal utilities
config/ typed parameters, parameter sets, CLI/file frontends
trace/ semantic search events, tracer protocol, recorders
cost/ cost models, cost expressions, semantics, costs as text
helpers/ SolutionManager, NeighborhoodExplorer, neighborhood_union, recipes
runners/ Runner, search_run, run_control, search algorithms
solvers/ solvers
testing/ component contract checks
app/ App and BoundApp, check(app), Session, I/O hooks,
RunParameters, cli::run and irace tuning
adapters/ optional components: toml.hpp, tui/, rest/
A directory includes only directories listed above it (utils/, config/ and
trace/ share the lowest layer; testing/ sits beside runners/); the
architecture test enforces it. detail/ subdirectories are implementation
headers. Catalogs of interchangeable implementations have a namespace
(runners, solvers, cost, trace, config, testing); the vocabulary
used everywhere (Runner, make_runner, solution_manager, component,
neighborhood, delta, app, ...) is in easylocal.