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

Classes

struct  LpSolution
class  LpModel
 Sparse LP in the natural form, with per-variable bounds. More...

Enumerations

enum class  LpStatus { Optimal , Infeasible , Unbounded , IterationLimit }
 Outcome of a solve. More...
enum class  LpSense { LE , EQ , GE }
 Row relation. More...

Functions

bool highs_available ()
 True when a sparse backend is compiled in.
template<class T>
LpSolution< T > lp_solve (const LpModel< T > &model, std::size_t dense_max_cols=512)
 Solve, choosing the backend by arithmetic and size.
const char * lp_status_name (LpStatus s)
template<class T>
simplex_tolerance ()
template<class T>
LpSolution< T > simplex_solve (const LpModel< T > &model, std::size_t max_iterations=0)
 Solve the model.

Enumeration Type Documentation

◆ LpSense

enum class line::lp::LpSense
strong

Row relation.

Enumerator
LE 
EQ 
GE 

Definition at line 103 of file simplex.h.

◆ LpStatus

enum class line::lp::LpStatus
strong

Outcome of a solve.

Enumerator
Optimal 

an optimal vertex was reached

Infeasible 

phase 1 ended with residual artificial mass

Unbounded 

an improving column has no blocking row

IterationLimit 

the iteration cap was hit (cannot happen under Bland's rule with exact arithmetic; a guard for inexact T)

Definition at line 76 of file simplex.h.

Function Documentation

◆ highs_available()

bool line::lp::highs_available ( )
inline

True when a sparse backend is compiled in.

Definition at line 51 of file lp_highs.h.

References highs_available().

Referenced by highs_available().

◆ lp_solve()

template<class T>
LpSolution< T > line::lp::lp_solve ( const LpModel< T > & model,
std::size_t dense_max_cols = 512 )

Solve, choosing the backend by arithmetic and size.

Rational and every extended-precision T always take the exact dense path, at compile time, because that is where this tree's exactness guarantees live. A double model goes to HiGHS only once it is wider than dense_max_cols, so small models keep bit-for-bit the answers their goldens were taken with and the two backends stay comparable on exactly the instances the tests use.

Definition at line 176 of file lp_highs.h.

References lp_solve(), and simplex_solve().

Referenced by lp_solve(), line::mapqn::mapqn_qr_bounds_bas(), line::mapqn::mapqn_qr_bounds_rsrd(), line::npfqn::npfqn_bnd_bgt(), line::npfqn::npfqn_bnd_bpt(), line::mapqn::qrf_feasible_start_lp(), and line::mapqn::solve_qrf_nlp_lp().

◆ lp_status_name()

◆ simplex_solve()

◆ simplex_tolerance()

template<class T>
T line::lp::simplex_tolerance ( )
inline

Definition at line 258 of file simplex.h.

References simplex_tolerance().

Referenced by simplex_solve(), and simplex_tolerance().