14#ifndef ORTOOLS_GLOP_VARIABLES_INFO_H_
15#define ORTOOLS_GLOP_VARIABLES_INFO_H_
75 const DenseRow& variable_lower_bounds,
76 const DenseRow& variable_upper_bounds,
146 return upper_bounds_[col] - lower_bounds_[col];
189 void ResetStatusInfo();
195 void SetRelevance(ColIndex col,
bool relevance);
198 void UpdateStatusForNewType(ColIndex col);
241 EntryIndex num_entries_in_relevant_columns_;
244 bool boxed_variables_are_relevant_ =
true;
248 bool in_dual_phase_one_ =
false;
StrictITISpan< ColIndex, const Fractional > ConstView
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
DenseRow * MutableUpperBounds()
const VariableTypeRow & GetTypeRow() const
EntryIndex GetNumEntriesInRelevantColumns() const
const DenseRow & GetVariableUpperBounds() const
void MakeBoxedVariableRelevant(bool value)
DenseRow * MutableLowerBounds()
const DenseBitRow & GetNotBasicBitRow() const
Fractional GetBoundDifference(ColIndex col) const
const DenseBitRow & GetIsRelevantBitRow() const
int ChangeUnusedBasicVariablesToFree(const RowToColMapping &basis)
void UpdateToBasicStatus(ColIndex col)
VariablesInfo(const VariablesInfo &)=delete
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()
void InitializeFromMutatedState()
const DenseBitRow & GetIsBasicBitRow() const
int SnapFreeVariablesToBound(Fractional distance, const DenseRow &starting_values)
VariablesInfo(const CompactSparseMatrix &matrix)
StrictITIVector< RowIndex, ColIndex > RowToColMapping
Bitset64< ColIndex > DenseBitRow
StrictITIVector< ColIndex, VariableType > VariableTypeRow
StrictITIVector< ColIndex, VariableStatus > VariableStatusRow
StrictITIVector< RowIndex, Fractional > DenseColumn
StrictITIVector< ColIndex, Fractional > DenseRow
VariableStatusRow statuses