Options that define which ordering algorithm to use.
- iOS 11.0+
- macOS 10.13+
- Mac Catalyst 13.0+Beta
- tvOS 11.0+
- watchOS 4.0+
The column and row ordering used when eliminating variables in a sparse factorization has a significant influence on the size of the resulting factors and the amount of work required to calculate them. Minimizing the size or work required is an NP-complete problem, so only heuristics are implemented in this library.
Approximate Minimum Degree (AMD) based orderings tend to be fast and provide good quality for small matrices. Conversely, nested dissection-based orderings (such as METIS) are normally considerably slower to compute, but provide better quality orderings for larger problems, and expose more parallelism during the factorization. Use AMD unless the problem is very large (millions of rows and columns), or you will perform many repeated factorizations. If you are uncertain, try both and see which gives better performance for your usage.
AMD and METIS provide good orderings for symmetric matrices. They can be used for QR factorizations, but this involves forming AᵀA explicitly, which is expensive. Column AMD (COLAMD), on the other hand, finds an ordering for AᵀA while only working with A. For this reason, COLAMD cannot be used for symmetric factorizations.