/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /* */ /* This file is part of the HiGHS linear optimization suite */ /* */ /* Written and engineered 2008-2022 at the University of Edinburgh */ /* */ /* Available as open-source under the MIT License */ /* */ /* Authors: Julian Hall, Ivet Galabova, Leona Gottwald and Michael */ /* Feldmeier */ /* */ /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /**@file lp_data/HighsRanging.h * @brief */ #ifndef LP_DATA_HIGHS_RANGING_H_ #define LP_DATA_HIGHS_RANGING_H_ #include #include "lp_data/HighsLpSolverObject.h" struct HighsRangingRecord { std::vector value_; std::vector objective_; std::vector in_var_; std::vector ou_var_; }; struct HighsRanging { bool valid = false; HighsRangingRecord col_cost_up; HighsRangingRecord col_cost_dn; HighsRangingRecord col_bound_up; HighsRangingRecord col_bound_dn; HighsRangingRecord row_bound_up; HighsRangingRecord row_bound_dn; void invalidate(); void clear(); }; HighsStatus getRangingData(HighsRanging& ranging, HighsLpSolverObject& solver_object); void writeRangingFile(FILE* file, const HighsLp& lp, const double objective_function_value, const HighsBasis& basis, const HighsSolution& solution, const HighsRanging& ranging, const HighsInt style); #endif