Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Modification of the minimum-degree algorithm by multiple elimination
ACM Transactions on Mathematical Software (TOMS)
Compressed graphs and the minimum degree algorithm
SIAM Journal on Scientific Computing
An Approximate Minimum Degree Ordering Algorithm
SIAM Journal on Matrix Analysis and Applications
Node Selection Strategies for Bottom-Up Sparse Matrix Ordering
SIAM Journal on Matrix Analysis and Applications
Performance of Greedy Ordering Heuristics for Sparse Cholesky Factorization
SIAM Journal on Matrix Analysis and Applications
Hi-index | 0.00 |
The multiple minimum degree (MMD) algorithm and its variants have enjoyed more than 20 years of research and progress in generating fill-reducing orderings for sparse, symmetric, positive definite matrices. Although conceptually simple, efficient implementations of these algorithms are deceptively complex and highly specialized. In this case study, we present an object-oriented library that implements several recent minimum degree-like algorithms. We discuss how object-oriented design forces us to decompose these algorithms in a different manner than earlier codes and demonstrate how this impacts the flexibility and efficiency of our C++ implementation. We compare the performance of our code against other implementations in C or Fortran.