Sparse Matrix Algorithms