diff --git a/FEATURES.md b/FEATURES.md index ac5aaf0368..278eaf18e4 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -1,3 +1,10 @@ ## Build changes ## Code changes + +Any LP offset is communicated to the IPM solver, and used in logging and primal/dual objective calculations. + +If there is a valid basis when Highs::run() is called, presolve isn't skipped unless the solver option is "simplex" or "choose" (when simplex will always be chosen if there is an advanced basis). + +Added basis solve methods to highspy + diff --git a/src/Highs.h b/src/Highs.h index 6759529bd4..52ff96d929 100644 --- a/src/Highs.h +++ b/src/Highs.h @@ -510,29 +510,31 @@ class Highs { } /** - * @brief Indicate whether a dual unbounded ray exists, and gets - * it if it does and dual_ray is not nullptr + * @brief Indicate whether a dual unbounded ray exists, and (at the + * expense of solving an LP) gets it if it does not and + * dual_ray_value is not nullptr */ HighsStatus getDualRay(bool& has_dual_ray, double* dual_ray_value = nullptr); /** - * @brief Indicate whether a dual unbounded ray exists, and gets - * it if it does + * @brief Indicate whether a dual unbounded ray exists, and gets it + * if it does */ HighsStatus getDualRaySparse(bool& has_dual_ray, HVector& row_ep_buffer); /** * @brief Indicate whether a dual unboundedness direction exists, - * and gets it if it does and dual_unboundedness_direction is not - * nullptr + * and (at the expense of solving an LP) gets it if + * dual_unboundedness_direction is not nullptr */ HighsStatus getDualUnboundednessDirection( bool& has_dual_unboundedness_direction, double* dual_unboundedness_direction_value = nullptr); /** - * @brief Indicate whether a primal unbounded ray exists, and gets - * it if it does and primal_ray is not nullptr + * @brief Indicate whether a primal unbounded ray exists, and (at + * the expense of solving an LP) gets it if primal_ray is not + * nullptr */ HighsStatus getPrimalRay(bool& has_primal_ray, double* primal_ray_value = nullptr);