14#ifndef OR_TOOLS_GLOP_VARIABLE_VALUES_H_
15#define OR_TOOLS_GLOP_VARIABLE_VALUES_H_
91 bool update_basic_variables);
111 template <
typename Rows>
125 return variable_values_[
col] -
130 variable_values_[
col];
134 const GlopParameters& parameters_;
135 const CompactSparseMatrix& matrix_;
137 const VariablesInfo& variables_info_;
138 const BasisFactorization& basis_factorization_;
147 mutable StatsGroup stats_;
148 mutable ScatteredColumn scratchpad_;
151 ScatteredColumn initially_all_zero_scratchpad_;
156template <
typename Rows>
160 bool changed =
false;
161 const Fractional tolerance = parameters_.primal_feasibility_tolerance();
162 for (
const RowIndex
row : rows) {
163 const ColIndex
col = basis_[
row];
165 if (GetUpperBoundInfeasibility(
col) > tolerance) {
167 }
else if (GetLowerBoundInfeasibility(
col) > tolerance) {
170 if (new_cost != (*objective)[
col]) {
172 (*objective)[
col] = new_cost;
std::string StatString() const
VariableValues(const GlopParameters ¶meters, const CompactSparseMatrix &matrix, const RowToColMapping &basis, const VariablesInfo &variables_info, const BasisFactorization &basis_factorization)
void Set(ColIndex col, Fractional value)
void SetNonBasicVariableValueFromStatus(ColIndex col)
const DenseColumn & GetPrimalSquaredInfeasibilities() const
Fractional ComputeMaximumPrimalInfeasibility() const
Fractional ComputeSumOfPrimalInfeasibilities() const
void UpdateGivenNonBasicVariables(const std::vector< ColIndex > &cols_to_update, bool update_basic_variables)
const DenseBitColumn & GetPrimalInfeasiblePositions() const
void ResetPrimalInfeasibilityInformation()
void UpdateOnPivoting(const ScatteredColumn &direction, ColIndex entering_col, Fractional step)
const Fractional Get(ColIndex col) const
void UpdatePrimalInfeasibilityInformation(const std::vector< RowIndex > &rows)
void RecomputeBasicVariableValues()
Fractional ComputeMaximumPrimalResidual() const
bool UpdatePrimalPhaseICosts(const Rows &rows, DenseRow *objective)
const DenseRow & GetDenseRow() const
void ResetAllNonBasicVariableValues()
std::string StatString() const
const DenseRow & GetVariableLowerBounds() const
const DenseRow & GetVariableUpperBounds() const
Bitset64< RowIndex > DenseBitColumn
StrictITIVector< ColIndex, Fractional > DenseRow
StrictITIVector< RowIndex, ColIndex > RowToColMapping
StrictITIVector< RowIndex, Fractional > DenseColumn
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
#define SCOPED_TIME_STAT(stats)