I think there is a bug is solve method of CholeskyDecomposition. (the GetL() method works fine, though)
I tried:
double[,] a = { { 25, -5, 10 }, { -5, 17, 10 }, { 10, 10, 62 } };
Matrix m = new Matrix(a);
CholeskyDecomposition cd = new CholeskyDecomposition(m);
Matrix i = Matrix.Identity(3, 3);
Matrix inv1 = cd.Solve(i);
Matrix inv2 = m.Inverse();
The inv1 matrix is not the same as inv2, even though they should be.