LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
map_env_stages.h File Reference

The stage solvers map_env_approx injects, one per runner that can be a caller. More...

Include dependency graph for map_env_stages.h:

Go to the source code of this file.

Namespaces

namespace  line
 Conservation laws of a layered queueing network, enumerated from its structure.
namespace  line::solvers

Functions

env::EnvStageAvgFn< double > line::solvers::mva_stage_fn (const mva::MvaOptions &opt)
 MVA stages, bound to the caller's own MvaOptions.
env::EnvStageAvgFn< double > line::solvers::nc_stage_fn (const nc::NcSolverOptions &opt)
 NC stages, bound to the caller's own NcSolverOptions.
env::EnvStageAvgFn< double > line::solvers::fluid_stage_fn (const fluid::FluidOptions &opt)
 Fluid stages, bound to the caller's own FluidOptions.

Detailed Description

The stage solvers map_env_approx injects, one per runner that can be a caller.

WHAT THEY ARE. The C++ spelling of feval(class(self), stageModel, self.options) in mapEnvApprox.m: the environment image is solved with the solver that was asked for, at the settings it was asked for. Binding the caller's own options into the callable is the whole point – a hard-coded backend silently discards the method, the tolerances and the iteration caps the user set, which is the defect the injection exists to close.

WHY A SHARED HEADER RATHER THAN THREE LAMBDAS PER CALLER. Two translation units enter the fallback, solver_facade.cpp (avg_table) and line_cli.cpp (run_avg_engine plus the per-solver -a avg arms), and they must agree on what a stage solve reports or the same model answers differently through the facade and through the CLI. That is the divergence the Knobs struct exists to prevent one layer up, and it applies here for the same reason.

They are double-only because the driver is: map_env_approx and SolverEnvLimit::init both refuse T != double, so a multiprecision caller keeps the plain refusal rather than falling back.

Definition in file map_env_stages.h.