public void InverseTest()
{
float[][] value = // not positive-definite
{
new float[] { 6, -1, 2, 6 },
new float[] { -1, 3, -3, -2 },
new float[] { 2, -3, 2, 0 },
new float[] { 6, -2, 0, 0 },
};
var chol = new JaggedCholeskyDecompositionF(value, robust: true);
float[][] L = chol.LeftTriangularFactor;
float[][] expected =
{
new float[] { 0.400f, 1.200f, 1.400f, -0.500f },
new float[] { 1.200f, 3.600f, 4.200f, -2.000f },
new float[] { 1.400f, 4.200f, 5.400f, -2.500f },
new float[] { -0.500f, -2.000f, -2.500f, 1.000f },
};
float[][] actual = chol.Inverse();
Assert.IsTrue(Matrix.IsEqual(expected, actual, 1e-4f));
}