14 #ifndef OR_TOOLS_GLOP_LU_FACTORIZATION_H_
15 #define OR_TOOLS_GLOP_LU_FACTORIZATION_H_
18 #include "ortools/glop/parameters.pb.h"
55 ABSL_MUST_USE_RESULT
Status
67 inverse_col_perm_.
clear();
196 return stats_.StatString() + markowitz_.
StatString();
212 return inverse_col_perm_;
220 basis_num_entries(
"basis_num_entries", this),
221 lu_fill_in(
"lu_fill_in", this) {}
227 void LeftSolveScratchpad()
const;
230 template <
typename Column>
231 void RightSolveLInternal(
const Column&
b, ScatteredColumn* x)
const;
234 void ComputeTransposeUpper();
237 void ComputeTransposeLower()
const;
241 bool CheckFactorization(
const CompactSparseMatrixView& matrix,
249 bool is_identity_factorization_;
252 TriangularMatrix lower_;
253 TriangularMatrix upper_;
254 TriangularMatrix transpose_upper_;
258 mutable TriangularMatrix transpose_lower_;
272 mutable SparseColumn column_of_upper_;
278 mutable std::vector<RowIndex> non_zero_rows_;
281 mutable Stats stats_;
284 GlopParameters parameters_;
287 Markowitz markowitz_;
Fractional ComputeInverseOneNorm() const
void LeftSolveUWithNonZeros(ScatteredRow *y) const
const SparseColumn & GetColumnOfU(ColIndex col) const
Fractional ComputeInverseInfinityNorm() const
void RightSolveLForColumnView(const ColumnView &b, ScatteredColumn *x) const
void RightSolveLWithPermutedInput(const DenseColumn &a, ScatteredColumn *x) const
double GetFillInPercentage(const CompactSparseMatrixView &matrix) const
Fractional RightSolveSquaredNorm(const ColumnView &a) const
const ColumnPermutation & GetColumnPermutation() const
void RightSolveUWithNonZeros(ScatteredColumn *x) const
const RowPermutation & row_perm() const
void LeftSolve(DenseRow *y) const
bool LeftSolveLWithNonZeros(ScatteredRow *y, ScatteredColumn *result_before_permutation) const
void RightSolve(DenseColumn *x) const
const ColumnPermutation & inverse_col_perm() const
ColIndex LeftSolveUForUnitRow(ColIndex col, ScatteredRow *y) const
Fractional DualEdgeSquaredNorm(RowIndex row) const
void RightSolveLForScatteredColumn(const ScatteredColumn &b, ScatteredColumn *x) const
void RightSolveLWithNonZeros(ScatteredColumn *x) const
Fractional ComputeDeterminant() const
Fractional ComputeInfinityNormConditionNumber(const CompactSparseMatrixView &matrix) const
void ComputeLowerTimesUpper(SparseMatrix *product) const
ABSL_MUST_USE_RESULT Status ComputeFactorization(const CompactSparseMatrixView &compact_matrix)
void SetColumnPermutationToIdentity()
EntryIndex NumberOfEntries() const
Fractional ComputeInverseInfinityNormUpperBound() const
bool IsIdentityFactorization()
void SetParameters(const GlopParameters ¶meters)
Fractional ComputeOneNormConditionNumber(const CompactSparseMatrixView &matrix) const
std::string StatString() const
void SetParameters(const GlopParameters ¶meters)
std::string StatString() const
void PopulateFromProduct(const SparseMatrix &a, const SparseMatrix &b)
void CopyToSparseMatrix(SparseMatrix *output) const
Permutation< ColIndex > ColumnPermutation
StrictITIVector< RowIndex, Fractional > DenseColumn
Permutation< RowIndex > RowPermutation
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...