From 901def0eba6515272856393f819af323637a9bb5 Mon Sep 17 00:00:00 2001 From: JAJHall Date: Sun, 5 Jan 2025 16:53:34 +0000 Subject: [PATCH 1/2] Updated FEATURES.md and comments in Highs.h relating to forming rays --- FEATURES.md | 7 +++++++ src/Highs.h | 18 ++++++++++-------- 2 files changed, 17 insertions(+), 8 deletions(-) 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); From 3fa558e2e1c1b888ba7810772690e964343d1bdf Mon Sep 17 00:00:00 2001 From: JAJHall Date: Sun, 5 Jan 2025 18:09:01 +0000 Subject: [PATCH 2/2] Added methods to get primal/dual ray and dual unboundedness direction to highspy --- FEATURES.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/FEATURES.md b/FEATURES.md index 278eaf18e4..e3c62da2c9 100644 --- a/FEATURES.md +++ b/FEATURES.md @@ -8,3 +8,6 @@ If there is a valid basis when Highs::run() is called, presolve isn't skipped un Added basis solve methods to highspy +Added methods to get primal/dual ray and dual unboundedness direction to highspy + +