tzyysang / Matrix

0 stars 0 forks source link

Implement Cholesky decomposition #10

Closed tzyysang closed 3 years ago

tzyysang commented 3 years ago

Implement Cholesky decomposition method in linear solver.

tzyysang commented 3 years ago

Add -bench_Chole_decomp to ctest. It generates a random SPD matrix and compares the Cholesky matrix L against Eigen's.

-- It seems our results suffer from numerical error in large matrices (n>50). Pivoting may be useful. http://www.mucm.ac.uk/Pages/Downloads/Internal%20Reports/INT2.2.1%20LB%20Pivoting%20Cholesky%20Decomposition.pdf

tzyysang commented 3 years ago

Add test -bench_Chole_decomp_pivot for Cholesky with pivoting. It generates a random large SPD matrix A, checks |A - LL^*| error and |Ax - b| error.

-- Add LinearSolver::solve_vec_chole(), the permutation is done by permutation matrices, which may be improved.