Computes an Approximate Minimum Degree (AMD) reordering of an input matrix.
More...
#include <ginkgo/core/reorder/amd.hpp>
|
|
class | enable_parameters_type< parameters_type, Amd< IndexType > > |
| |
template<typename IndexType = int32>
class gko::experimental::reorder::Amd< IndexType >
Computes an Approximate Minimum Degree (AMD) reordering of an input matrix.
The implementation reuses the AMD routine from the SuiteSparse suite (Tim Davis et al.) — Ginkgo wraps it in a LinOpFactory that produces a gko::matrix::Permutation. The system matrix must therefore be a structurally-symmetric CSR matrix.
- References
- Amestoy, P. R., Davis, T. A., Duff, I. S. Algorithm 837: AMD, an Approximate Minimum Degree Ordering Algorithm. ACM Transactions on Mathematical Software, 30 (3), 381–388, 2004. https://doi.org/10.1145/1024074.1024081
- Template Parameters
-
| IndexType | the type used to store sparsity pattern indices of the system matrix |
◆ generate()
template<typename IndexType = int32>
- Parameters
-
| system_matrix | the source matrix to compute the reordering for. |
- Note
- This function overrides the default LinOpFactory::generate to return a Permutation instead of a generic LinOp, which would need to be cast to Permutation again to access its indices. It is only necessary because smart pointers aren't covariant.
◆ get_parameters()
template<typename IndexType = int32>
Returns the parameters used to construct the factory.
- Returns
- the parameters used to construct the factory.
The documentation for this class was generated from the following file: