I'm trying to invert the following positive semidefinite matrix, with zeros along its diagonal. Matrices of this sort that arise from scattered data interpolation with radial basis functions.

[ 0.000000 529.831737 1198.292909 529.831737 1.000000 10.000000 0.000000 ]

[ 529.831737 0.000000 529.831737 1198.292909 1.000000 0.000000 10.000000 ]

[ 1198.292909 529.831737 0.000000 529.831737 1.000000 -10.000000 0.000000 ]

[ 529.831737 1198.292909 529.831737 0.000000 1.000000 0.000000 -10.000000 ]

[ 1.000000 1.000000 1.000000 1.000000 0.000000 0.000000 0.000000 ]

[ 10.000000 0.000000 -10.000000 0.000000 0.000000 0.000000 0.000000 ]

[ 0.000000 10.000000 0.000000 -10.000000 0.000000 0.000000 0.000000 ]

The routines DPOTRI and DGETRI fail because the matrix has zero elements along its diagonal. However, GNU Octave successfully computes the inverts the matrix to be

[ 1.8034e-003 -1.8034e-003 1.8034e-003 -1.8034e-003 2.5000e-001 5.0000e-002 -2.2854e-018 ]

[ -1.8034e-003 1.8034e-003 -1.8034e-003 1.8034e-003 2.5000e-001 -1.4014e-017 5.0000e-002 ]

[ 1.8034e-003 -1.8034e-003 1.8034e-003 -1.8034e-003 2.5000e-001 -5.0000e-002 -1.1356e-017 ]

[ -1.8034e-003 1.8034e-003 -1.8034e-003 1.8034e-003 2.5000e-001 -1.2975e-017 -5.0000e-002 ]

[ 2.5000e-001 2.5000e-001 2.5000e-001 2.5000e-001 -5.6449e+002 1.6031e-015 -2.2001e-015 ]

[ 5.0000e-002 1.5053e-017 -5.0000e-002 1.1470e-017 -1.6031e-015 5.9915e+000 2.3211e-016 ]

[ 1.3878e-017 5.0000e-002 5.8566e-018 -5.0000e-002 1.4668e-015 -1.6985e-017 5.9915e+000 ]

I've verified that the product of both matrices is the identify matrix. Unfortunately, there is no way to integrate Octave into my standalone application. As such I'm still looking for a way to compute the inverse of the above matrix.