![]() |
LINE Solver (C++)
Templated C++ port of the LINE queueing solver
|
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> | |
| T | simplex_tolerance () |
| template<class T> | |
| LpSolution< T > | simplex_solve (const LpModel< T > &model, std::size_t max_iterations=0) |
| Solve the model. | |
|
strong |
|
strong |
|
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().
| 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().
|
inline |
Definition at line 84 of file simplex.h.
References Infeasible, lp_status_name(), Optimal, and Unbounded.
Referenced by line::fj::fj_tsm_capacity(), lp_status_name(), line::mam::m3pp22_interleave_fitc(), line::mapqn::mapqn_bnd_lr(), line::mapqn::mapqn_bnd_lr_mva(), line::mapqn::mapqn_bnd_lr_pf(), line::mapqn::mapqn_bnd_qr(), line::mapqn::mapqn_qr_bounds_bas(), line::mapqn::mapqn_qr_bounds_rsrd(), line::npfqn::npfqn_bnd_bgt(), and line::npfqn::npfqn_bnd_bpt().
| LpSolution< T > line::lp::simplex_solve | ( | const LpModel< T > & | model, |
| std::size_t | max_iterations = 0 ) |
Solve the model.
See the header comment for the bound handling; the returned x is in the caller's variable space and satisfies the bounds exactly when T is exact.
Definition at line 286 of file simplex.h.
References line::lp::LpModel< T >::col_at(), line::lp::LpModel< T >::costs(), EQ, GE, Infeasible, IterationLimit, line::lp::LpSolution< T >::iterations, line::lp::LpModel< T >::lower(), line::lp::LpModel< T >::lower_is_free(), line::lp::LpModel< T >::maximize(), line::lp::LpModel< T >::num_rows(), line::lp::LpModel< T >::num_vars(), line::lp::LpSolution< T >::objective, Optimal, line::lp::LpModel< T >::rhs(), line::lp::LpModel< T >::row_begin(), line::lp::LpModel< T >::row_end(), line::lp::LpModel< T >::sense(), simplex_solve(), simplex_tolerance(), line::lp::LpSolution< T >::status, Unbounded, line::lp::LpModel< T >::upper(), line::lp::LpModel< T >::upper_is_free(), line::lp::LpModel< T >::val_at(), and line::lp::LpSolution< T >::x.
Referenced by line::fj::fj_tsm_capacity(), lp_solve(), line::mam::m3pp22_interleave_fitc(), line::mapqn::mapqn_bnd_lr(), line::mapqn::mapqn_bnd_lr_mva(), line::mapqn::mapqn_bnd_lr_pf(), line::mapqn::mapqn_bnd_qr(), line::mapqn::qrf_feasible_start(), and simplex_solve().
|
inline |
Definition at line 258 of file simplex.h.
References simplex_tolerance().
Referenced by simplex_solve(), and simplex_tolerance().