14#ifndef OR_TOOLS_GLOP_DUAL_EDGE_NORMS_H_
15#define OR_TOOLS_GLOP_DUAL_EDGE_NORMS_H_
20#include "ortools/glop/parameters.pb.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_;
Statistic on the distribution of a sequence of doubles.
Statistic on the distribution of a sequence of integers.
Statistic on the distribution of a sequence of ratios, displayed as %.
Base class to print a nice summary of a group of statistics.
DenseColumn::ConstView GetEdgeSquaredNorms()
DualEdgeNorms & operator=(const DualEdgeNorms &)=delete
void ResizeOnNewRows(RowIndex new_size)
std::string StatString() const
Stats related functions.
DualEdgeNorms(const BasisFactorization &basis_factorization)
Takes references to the linear program data we need.
void UpdateDataOnBasisPermutation(const ColumnPermutation &col_perm)
Updates the norms if the columns of the basis where permuted.
DualEdgeNorms(const DualEdgeNorms &)=delete
This type is neither copyable nor movable.
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)
Sets the algorithm parameters.
bool TestPrecision(RowIndex leaving_row, const ScatteredRow &unit_row_left_inverse)
StrictITISpan< RowIndex, const Fractional > ConstView
Permutation< ColIndex > ColumnPermutation
StrictITIVector< RowIndex, Fractional > DenseColumn
Column-vector types. Column-vector types are indexed by a row index.
In SWIG mode, we don't want anything besides these top-level includes.