public void InverseTest1()
{
float[][] value = // positive-definite
{
new float[] { 2, -1, 0 },
new float[] { -1, 2, -1 },
new float[] { 0, -1, 2 }
};
var chol = new JaggedCholeskyDecompositionF(value, robust: false);
Assert.IsTrue(chol.IsPositiveDefinite);
float[][] L = chol.LeftTriangularFactor;
float[][] expected =
{
new float[] { 0.750f, 0.500f, 0.250f },
new float[] { 0.500f, 1.000f, 0.500f },
new float[] { 0.250f, 0.500f, 0.750f },
};
float[][] actual = chol.Inverse();
Assert.IsTrue(actual.IsEqual(expected, 1e-5f));
float[][] inv = chol.Solve(Jagged.Identity<float>(3));
Assert.IsTrue(inv.IsEqual(expected, 1e-5f));
}