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); }