Skip to content

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.