public float GetDeterminant() { // ref http://en.wikipedia.org/wiki/Determinant // note that in PDF, I13 and I23 are always 0 and I33 is always 1 // so this could be simplified/faster return vals[I11] * vals[I22] * vals[I33] + vals[I12] * vals[I23] * vals[I31] + vals[I13] * vals[I21] * vals[I32] - vals[I11] * vals[I23] * vals[I32] - vals[I12] * vals[I21] * vals[I33] - vals[I13] * vals[I22] * vals[I31]; }
virtual public void TestDeterminant() { Matrix m = new Matrix(2, 3, 4, 5, 6, 7); Assert.AreEqual(-2f, m.GetDeterminant(), .001f); }