14 #ifndef OR_TOOLS_GLOP_UPDATE_ROW_H_
15 #define OR_TOOLS_GLOP_UPDATE_ROW_H_
22 #include "ortools/glop/parameters.pb.h"
71 return update_row_computed_for_ == leaving_row;
83 return coefficient_[
col];
95 std::string
StatString()
const {
return stats_.StatString(); }
103 const std::string& algorithm);
117 void ComputeUpdatesRowWise();
118 void ComputeUpdatesRowWiseHypersparse();
119 void ComputeUpdatesColumnWise();
120 void ComputeUpdatesForSingleRow(ColIndex row_as_col);
134 std::vector<ColIndex> unit_row_left_inverse_filtered_non_zeros_;
143 bool compute_update_row_;
151 unit_row_left_inverse_density(
"unit_row_left_inverse_density", this),
152 unit_row_left_inverse_accuracy(
"unit_row_left_inverse_accuracy",
154 update_row_density(
"update_row_density", this) {}
162 int64_t num_operations_;
165 GlopParameters parameters_;
const ScatteredRow & GetUnitRowLeftInverse() const
const ScatteredRow & ComputeAndGetUnitRowLeftInverse(RowIndex leaving_row)
const DenseRow & GetCoefficients() const
void ComputeUpdateRowForBenchmark(const DenseRow &lhs, const std::string &algorithm)
void ComputeUnitRowLeftInverse(RowIndex leaving_row)
UpdateRow(const CompactSparseMatrix &matrix, const CompactSparseMatrix &transposed_matrix, const VariablesInfo &variables_info, const RowToColMapping &basis, const BasisFactorization &basis_factorization)
const bool IsComputedFor(RowIndex leaving_row) const
void ComputeFullUpdateRow(RowIndex leaving_row, DenseRow *output) const
const Fractional GetCoefficient(ColIndex col) const
void ComputeUpdateRow(RowIndex leaving_row)
void SetParameters(const GlopParameters ¶meters)
double DeterministicTime() const
const ColIndexVector & GetNonZeroPositions() const
std::string StatString() const
std::vector< ColIndex > ColIndexVector
constexpr RowIndex kInvalidRow(-1)
static double DeterministicTimeForFpOperations(int64_t n)
Collection of objects used to extend the Constraint Solver library.