The following isn't meant to be exhaustive. It usually depends on the structure of the matrix because that impacts the way you choose it. In general there are sparse variants for many of the general matrix decompositions you see LU, QR, SVD and what not. There are also sparse Kyrlov methods such as the shifted Block Lanczos method. If it isn't symmetric then there is the Arnoldi algorithm which they use in GMRES (there is a sparse variant). There are a bunch of tricks they do use like
- Preconditioning
- Restarting
- Shifting (in terms of eigenvalue methods).
- The Hessenberg reduction which cuts the computations in half for Krylov methods.
- Randomization has become very popular in the last 20 years.
- Convergence speed up methods like Nesterov's method.
Usually the reasoning for choosing one over the other is a combination of the size of the matrix, the conditioning and any relevant structure. MATLAB has a detailed explanation of how the backslash operator works which you can see below. If you look on a website like the NETLIB it has the actual code for most of LAPACK (https://www.netlib.org/).
