I am calculating the inverse of a square matrix using different libraries via Cholesky factorization. However my results are not as I was expecting. I am not an expert in maths, but I was expecting to get a closer result.
I am using MLK, magma and CULA libraries to calculate the inverse of a matrix in CPU and GPUs.
After doing the calculation those libraries I've noticed the results always differ in one element. Say I want to calculate the inverse of A= [0.237306,0.000458;0.000458,0.238497]
:
A[0] = 0.237306
A[1] = 0.000458
A[2] = 0.000458
A[3] = 0.238497
The result I obtain is:
inv(A)[0] = 4.213983
inv(A)[1] = -0.008092
inv(A)[2] = 0.000458
inv(A)[3] = 4.192946
However, the correct result should be
4.2139841 -0.0080924
-0.0080924 4.1929404
As you can see, inv(A)[3]
is different, although the rest of them are fine. Is that how Cholesky Inversion should work? Is this a correct/approximate result or am I doing something wrong here?