LINE Solver (C++)
Templated C++ port of the LINE queueing solver
Loading...
Searching...
No Matches
line::sens Namespace Reference

Classes

struct  SensOptions
 The name-value contract of getSensitivityTable. More...
struct  SensRow
 One (station, class) row of the table. More...
struct  SensTable
 What the table carries, plus the branch that produced it. More...

Functions

template<class T>
SensTable< T > solver_sensitivity_table (qn::NetworkStruct< T > &sn, const SensOptions &opt, bool exact_available, const std::function< mva::MvaSolution< T >()> &solve)
 Build the sensitivity table of sn under solve.

Function Documentation

◆ solver_sensitivity_table()

template<class T>
SensTable< T > line::sens::solver_sensitivity_table ( qn::NetworkStruct< T > & sn,
const SensOptions & opt,
bool exact_available,
const std::function< mva::MvaSolution< T >()> & solve )

Build the sensitivity table of sn under solve.

exact_available is the reference's supportsExactSensitivity(): true for the engines that evaluate the product-form recursion this branch differentiates (MVA and NC), false for every other. Asking for exact where it is false is an error rather than a silent downgrade, exactly as in the reference, because the two branches answer to different precision.

solve is called with sn already carrying whatever perturbation this code has written, and must report the metrics of that struct.

Definition at line 160 of file solver_sens_table.h.

References line::nc::PfParams< T >::D, line::lang::dist_scale_rate(), line::pfqn::SensResult< T >::dQ, line::pfqn::SensResult< T >::dX, line::sens::SensTable< T >::has_jacobian, line::InputError::InputError(), line::sens::SensTable< T >::jacobian, line::nc::PfParams< T >::lambda, line::sens::SensTable< T >::method, line::nc::PfParams< T >::N, line::pfqn::pfqn_sens(), line::mva::MvaSolution< T >::Q, line::pfqn::SensResult< T >::QN, line::nc::PfParams< T >::queue_stations, line::mva::MvaSolution< T >::R, line::sens::SensTable< T >::rows, line::nc::sn_get_product_form_params(), line::solve(), solver_sensitivity_table(), line::mva::MvaSolution< T >::Tp, line::mva::MvaSolution< T >::U, line::UnsupportedError::UnsupportedError(), line::pfqn::SensResult< T >::XN, and line::nc::PfParams< T >::Z.

Referenced by line::ln::SolverLN< T >::get_sensitivity_table(), and solver_sensitivity_table().