17#ifndef ORTOOLS_LP_DATA_LP_DATA_UTILS_H_
18#define ORTOOLS_LP_DATA_LP_DATA_UTILS_H_
50 absl::Span<const double> col_factors);
94 return objective_scaling_factor_;
98 Fractional RowUnscalingFactor(RowIndex row)
const {
99 return matrix_is_scaled_ ? row_unscaling_factors_[row] : 1.0;
101 Fractional ColUnscalingFactor(ColIndex col)
const {
102 return matrix_is_scaled_ ? col_unscaling_factors_[col] : 1.0;
105 bool matrix_is_scaled_ =
false;
GlopParameters_ScalingAlgorithm ScalingAlgorithm
Fractional ObjectiveScalingFactor() const
void UnscaleUnitRowLeftSolve(ColIndex basis_col, ScatteredRow *left_inverse) const
void AverageCostScaling(DenseRow *objective)
void ConfigureFromFactors(absl::Span< const double > row_factors, absl::Span< const double > col_factors)
Fractional VariableScalingFactorWithSlack(ColIndex col) const
Fractional ScaleVariableValue(ColIndex col, Fractional value) const
Fractional UnscaleDualValue(RowIndex row, Fractional value) const
void ContainOneBoundScaling(DenseRow *upper_bounds, DenseRow *lower_bounds)
Fractional UnscaleConstraintActivity(RowIndex row, Fractional value) const
Fractional UnscaleLeftSolveValue(RowIndex row, Fractional value) const
Fractional ScaleDualValue(RowIndex row, Fractional value) const
Fractional BoundsScalingFactor() const
void Scale(LinearProgram *lp)
Fractional ScaleConstraintActivity(RowIndex row, Fractional value) const
Fractional UnscaleReducedCost(ColIndex col, Fractional value) const
Fractional VariableScalingFactor(ColIndex col) const
Fractional UnscaleVariableValue(ColIndex col, Fractional value) const
Fractional ScaleReducedCost(ColIndex col, Fractional value) const
void UnscaleColumnRightSolve(const RowToColMapping &basis, ColIndex col, ScatteredColumn *right_inverse) const
StrictITIVector< RowIndex, ColIndex > RowToColMapping
void Scale(LinearProgram *lp, SparseMatrixScaler *scaler)
StrictITIVector< RowIndex, Fractional > DenseColumn
StrictITIVector< ColIndex, Fractional > DenseRow