 |
OR-Tools
8.1
|
Go to the documentation of this file.
14 #ifndef OR_TOOLS_GLOP_LU_FACTORIZATION_H_
15 #define OR_TOOLS_GLOP_LU_FACTORIZATION_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_;
294 #endif // OR_TOOLS_GLOP_LU_FACTORIZATION_H_
void SetColumnPermutationToIdentity()
Fractional ComputeInfinityNormConditionNumber(const CompactSparseMatrixView &matrix) const
Fractional RightSolveSquaredNorm(const ColumnView &a) const
void RightSolveLForColumnView(const ColumnView &b, ScatteredColumn *x) const
void RightSolveLForScatteredColumn(const ScatteredColumn &b, ScatteredColumn *x) const
The vehicle routing library lets one model and solve generic vehicle routing problems ranging from th...
void PopulateFromProduct(const SparseMatrix &a, const SparseMatrix &b)
Fractional ComputeOneNormConditionNumber(const CompactSparseMatrixView &matrix) const
void LeftSolveUWithNonZeros(ScatteredRow *y) const
const ColumnPermutation & inverse_col_perm() const
void SetParameters(const GlopParameters ¶meters)
bool LeftSolveLWithNonZeros(ScatteredRow *y, ScatteredColumn *result_before_permutation) const
void LeftSolve(DenseRow *y) const
EntryIndex NumberOfEntries() const
void RightSolveLWithNonZeros(ScatteredColumn *x) const
bool IsIdentityFactorization()
void RightSolve(DenseColumn *x) const
const ColumnPermutation & GetColumnPermutation() const
void RightSolveUWithNonZeros(ScatteredColumn *x) const
Permutation< RowIndex > RowPermutation
Fractional DualEdgeSquaredNorm(RowIndex row) const
std::string StatString() const
Permutation< ColIndex > ColumnPermutation
Fractional ComputeInverseInfinityNormUpperBound() const
void SetParameters(const GlopParameters ¶meters)
ABSL_MUST_USE_RESULT Status ComputeFactorization(const CompactSparseMatrixView &compact_matrix)
const SparseColumn & GetColumnOfU(ColIndex col) const
StrictITIVector< RowIndex, Fractional > DenseColumn
double GetFillInPercentage(const CompactSparseMatrixView &matrix) const
void CopyToSparseMatrix(SparseMatrix *output) const
Fractional ComputeDeterminant() const
void ComputeLowerTimesUpper(SparseMatrix *product) const
Fractional ComputeInverseOneNorm() const
void RightSolveLWithPermutedInput(const DenseColumn &a, ScatteredColumn *x) const
Fractional ComputeInverseInfinityNorm() const
ColIndex LeftSolveUForUnitRow(ColIndex col, ScatteredRow *y) const
std::string StatString() const
const RowPermutation & row_perm() const