determinant method

double determinant()

Returns the determinant of this matrix.

Implementation

double determinant() {
  final det2_01_01 =
      _m4storage[0] * _m4storage[5] - _m4storage[1] * _m4storage[4];
  final det2_01_02 =
      _m4storage[0] * _m4storage[6] - _m4storage[2] * _m4storage[4];
  final det2_01_03 =
      _m4storage[0] * _m4storage[7] - _m4storage[3] * _m4storage[4];
  final det2_01_12 =
      _m4storage[1] * _m4storage[6] - _m4storage[2] * _m4storage[5];
  final det2_01_13 =
      _m4storage[1] * _m4storage[7] - _m4storage[3] * _m4storage[5];
  final det2_01_23 =
      _m4storage[2] * _m4storage[7] - _m4storage[3] * _m4storage[6];
  final det3_201_012 = _m4storage[8] * det2_01_12 -
      _m4storage[9] * det2_01_02 +
      _m4storage[10] * det2_01_01;
  final det3_201_013 = _m4storage[8] * det2_01_13 -
      _m4storage[9] * det2_01_03 +
      _m4storage[11] * det2_01_01;
  final det3_201_023 = _m4storage[8] * det2_01_23 -
      _m4storage[10] * det2_01_03 +
      _m4storage[11] * det2_01_02;
  final det3_201_123 = _m4storage[9] * det2_01_23 -
      _m4storage[10] * det2_01_13 +
      _m4storage[11] * det2_01_12;
  return -det3_201_123 * _m4storage[12] +
      det3_201_023 * _m4storage[13] -
      det3_201_013 * _m4storage[14] +
      det3_201_012 * _m4storage[15];
}