14#ifndef OR_TOOLS_GLOP_VARIABLES_INFO_H_
15#define OR_TOOLS_GLOP_VARIABLES_INFO_H_
75 const DenseRow& variable_lower_bounds,
76 const DenseRow& variable_upper_bounds,
146 return upper_bounds_[
col] - lower_bounds_[
col];
183 void ResetStatusInfo();
189 void SetRelevance(ColIndex
col,
bool relevance);
192 void UpdateStatusForNewType(ColIndex
col);
235 EntryIndex num_entries_in_relevant_columns_;
238 bool boxed_variables_are_relevant_ =
true;
242 bool in_dual_phase_one_ =
false;
ColIndex num_cols() const
void TransformToDualPhaseIProblem(Fractional dual_feasibility_tolerance, DenseRow::ConstView reduced_costs)
const DenseBitRow & GetCanDecreaseBitRow() const
const DenseBitRow & GetCanIncreaseBitRow() const
const VariableStatusRow & GetStatusRow() const
VariablesInfo & operator=(const VariablesInfo &)=delete
ColIndex GetNumberOfColumns() const
const DenseRow & GetVariableLowerBounds() const
Returns the variable bounds.
const VariableTypeRow & GetTypeRow() const
EntryIndex GetNumEntriesInRelevantColumns() const
const DenseRow & GetVariableUpperBounds() const
void MakeBoxedVariableRelevant(bool value)
const DenseBitRow & GetNotBasicBitRow() const
Fractional GetBoundDifference(ColIndex col) const
Returns the distance between the upper and lower bound of the given column.
const DenseBitRow & GetIsRelevantBitRow() const
int ChangeUnusedBasicVariablesToFree(const RowToColMapping &basis)
void UpdateToBasicStatus(ColIndex col)
VariablesInfo(const VariablesInfo &)=delete
This type is neither copyable nor movable.
const DenseBitRow & GetNonBasicBoxedVariables() const
void UpdateToNonBasicStatus(ColIndex col, VariableStatus status)
void EndDualPhaseI(Fractional dual_feasibility_tolerance, DenseRow::ConstView reduced_costs)
bool LoadBoundsAndReturnTrueIfUnchanged(const DenseRow &new_lower_bounds, const DenseRow &new_upper_bounds)
void InitializeFromBasisState(ColIndex first_slack, ColIndex num_new_cols, const BasisState &state)
void InitializeToDefaultStatus()
const DenseBitRow & GetIsBasicBitRow() const
int SnapFreeVariablesToBound(Fractional distance, const DenseRow &starting_values)
VariablesInfo(const CompactSparseMatrix &matrix)
Takes references to the linear program data we need.
VariableType
Different types of variables.
In SWIG mode, we don't want anything besides these top-level includes.
bool IsEmpty() const
Returns true if this state is empty.
VariableStatusRow statuses