public void InverseTest()
{
double[][] value =
{
new double[] { 2, -1, 0 },
new double[] { -1, 2, -1 },
new double[] { 0, -1, 2 }
};
double[][] expected =
{
new double[] { 0.7500, 0.5000, 0.2500},
new double[] { 0.5000, 1.0000, 0.5000},
new double[] { 0.2500, 0.5000, 0.7500},
};
var target = new JaggedQrDecomposition(value);
double[][] actual = target.Inverse();
Assert.IsTrue(Matrix.IsEqual(expected, actual, 1e-10));
Assert.IsTrue(Matrix.IsEqual(value, target.Reverse(), 1e-4));
target = new JaggedQrDecomposition(value.Transpose(), true);
actual = target.Inverse();
Assert.IsTrue(Matrix.IsEqual(expected, actual, 1e-10));
Assert.IsTrue(Matrix.IsEqual(value.Transpose(), target.Reverse(), 1e-4));
}