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"
112 void ComputeEdgeSquaredNorms();
122 tau_density(
"tau_density", this),
123 edge_norms_accuracy(
"edge_norms_accuracy", this),
124 lower_bounded_norms(
"lower_bounded_norms", this) {}
132 GlopParameters parameters_;
135 const BasisFactorization& basis_factorization_;
142 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.
std::string StatString() const
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 SetParameters(const GlopParameters ¶meters)
Sets the algorithm parameters.
bool TestPrecision(RowIndex leaving_row, const ScatteredRow &unit_row_left_inverse)
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.