36 const RowIndex transposed_slack =
ColToRowIndex(slack_variable);
41 for (
const auto& entry : sparse_row) {
42 if (transposed_slack == entry.index())
continue;
44 (*values)[
RowToColIndex(entry.index())] * entry.coefficient();
46 (*values)[slack_variable] = -activation;
62 scaler->
Init(&lp->matrix_);
66 &lp->objective_coefficients_);
68 &lp->variable_upper_bounds_);
70 &lp->variable_lower_bounds_);
73 lp->transpose_matrix_is_consistent_ =
false;
87 bound_scaling_factor_ = 1.0;
88 objective_scaling_factor_ = 1.0;
150 const ColIndex num_rows = left_inverse->
values.
size();
151 for (ColIndex
col(0);
col < num_rows; ++
col) {
171 const RowIndex num_rows = right_inverse->
values.
size();
172 for (RowIndex
row(0);
row < num_rows; ++
row) {
ColIndex RowToColIndex(RowIndex row)
Fractional ColUnscalingFactor(ColIndex col) const
GlopParameters_ScalingAlgorithm
const SparseMatrix & GetTransposeSparseMatrix() const
Fractional ScaleDualValue(RowIndex row, Fractional value) const
RowIndex num_constraints() const
Fractional UnscaleDualValue(RowIndex row, Fractional value) const
const ColIndex kInvalidCol(-1)
void Scale(LinearProgram *lp, SparseMatrixScaler *scaler)
void UnscaleColumnRightSolve(const RowToColMapping &basis, ColIndex col, ScatteredColumn *right_inverse) const
void ComputeSlackVariablesValues(const LinearProgram &linear_program, DenseRow *values)
const DenseColumn & constraint_upper_bounds() const
Fractional RowUnscalingFactor(RowIndex row) const
const DenseColumn & constraint_lower_bounds() const
Fractional VariableScalingFactor(ColIndex col) const
Fractional UnscaleVariableValue(ColIndex col, Fractional value) const
Fractional ScaleVariableValue(ColIndex col, Fractional value) const
StrictITIVector< Index, Fractional > values
ColIndex GetFirstSlackVariable() const
RowIndex ColToRowIndex(ColIndex col)
void UnscaleUnitRowLeftSolve(ColIndex basis_col, ScatteredRow *left_inverse) const
ColIndex GetSlackVariable(RowIndex row) const
Fractional ColScalingFactor(ColIndex col) const
ColIndex num_variables() const
::operations_research::glop::GlopParameters_CostScalingAlgorithm cost_scaling() const
Fractional UnscaleConstraintActivity(RowIndex row, Fractional value) const
void ScaleRowVector(bool up, DenseRow *row_vector) const
#define DCHECK(condition)
#define DCHECK_EQ(val1, val2)
void Init(SparseMatrix *matrix)
Collection of objects used to extend the Constraint Solver library.
Fractional UnscaleReducedCost(ColIndex col, Fractional value) const
void Scale(GlopParameters::ScalingAlgorithm method)
Fractional ScaleConstraintActivity(RowIndex row, Fractional value) const
Fractional ScaleReducedCost(ColIndex col, Fractional value) const
::operations_research::glop::GlopParameters_ScalingAlgorithm scaling_method() const
Fractional ScaleObjective(GlopParameters::CostScalingAlgorithm method)
std::vector< Index > non_zeros
void Scale(LinearProgram *lp, SparseMatrixScaler *scaler, GlopParameters::ScalingAlgorithm scaling_method)
void Scale(LinearProgram *lp)
void ScaleColumnVector(bool up, DenseColumn *column_vector) const