14#ifndef ORTOOLS_GLOP_DUAL_EDGE_NORMS_H_
15#define ORTOOLS_GLOP_DUAL_EDGE_NORMS_H_
103 parameters_ = parameters;
109 std::string
StatString()
const {
return stats_.StatString(); }
115 void ComputeEdgeSquaredNorms();
125 tau_density(
"tau_density", this),
126 edge_norms_accuracy(
"edge_norms_accuracy", this),
127 lower_bounded_norms(
"lower_bounded_norms", this) {}
135 GlopParameters parameters_;
136 TimeLimit* time_limit_ =
nullptr;
139 const BasisFactorization& basis_factorization_;
146 bool recompute_edge_squared_norms_;
StrictITISpan< RowIndex, const Fractional > ConstView
DenseColumn::ConstView GetEdgeSquaredNorms()
DualEdgeNorms & operator=(const DualEdgeNorms &)=delete
void ResizeOnNewRows(RowIndex new_size)
std::string StatString() const
DualEdgeNorms(const BasisFactorization &basis_factorization)
void UpdateDataOnBasisPermutation(const ColumnPermutation &col_perm)
DualEdgeNorms(const DualEdgeNorms &)=delete
bool NeedsBasisRefactorization() const
void UpdateBeforeBasisPivot(ColIndex entering_col, RowIndex leaving_row, const ScatteredColumn &direction, const ScatteredRow &unit_row_left_inverse)
void SetTimeLimit(TimeLimit *time_limit)
void SetParameters(const GlopParameters ¶meters)
bool TestPrecision(RowIndex leaving_row, const ScatteredRow &unit_row_left_inverse)
Permutation< ColIndex > ColumnPermutation
StrictITIVector< RowIndex, Fractional > DenseColumn