scaleAdjoint method
Converts into Adjugate matrix and scales by scale
Implementation
void scaleAdjoint(double scale) {
// Adapted from code by Richard Carling.
final double a1 = _m4storage[0];
final double b1 = _m4storage[4];
final double c1 = _m4storage[8];
final double d1 = _m4storage[12];
final double a2 = _m4storage[1];
final double b2 = _m4storage[5];
final double c2 = _m4storage[9];
final double d2 = _m4storage[13];
final double a3 = _m4storage[2];
final double b3 = _m4storage[6];
final double c3 = _m4storage[10];
final double d3 = _m4storage[14];
final double a4 = _m4storage[3];
final double b4 = _m4storage[7];
final double c4 = _m4storage[11];
final double d4 = _m4storage[15];
_m4storage[0] = (b2 * (c3 * d4 - c4 * d3) -
c2 * (b3 * d4 - b4 * d3) +
d2 * (b3 * c4 - b4 * c3)) *
scale;
_m4storage[1] = -(a2 * (c3 * d4 - c4 * d3) -
c2 * (a3 * d4 - a4 * d3) +
d2 * (a3 * c4 - a4 * c3)) *
scale;
_m4storage[2] = (a2 * (b3 * d4 - b4 * d3) -
b2 * (a3 * d4 - a4 * d3) +
d2 * (a3 * b4 - a4 * b3)) *
scale;
_m4storage[3] = -(a2 * (b3 * c4 - b4 * c3) -
b2 * (a3 * c4 - a4 * c3) +
c2 * (a3 * b4 - a4 * b3)) *
scale;
_m4storage[4] = -(b1 * (c3 * d4 - c4 * d3) -
c1 * (b3 * d4 - b4 * d3) +
d1 * (b3 * c4 - b4 * c3)) *
scale;
_m4storage[5] = (a1 * (c3 * d4 - c4 * d3) -
c1 * (a3 * d4 - a4 * d3) +
d1 * (a3 * c4 - a4 * c3)) *
scale;
_m4storage[6] = -(a1 * (b3 * d4 - b4 * d3) -
b1 * (a3 * d4 - a4 * d3) +
d1 * (a3 * b4 - a4 * b3)) *
scale;
_m4storage[7] = (a1 * (b3 * c4 - b4 * c3) -
b1 * (a3 * c4 - a4 * c3) +
c1 * (a3 * b4 - a4 * b3)) *
scale;
_m4storage[8] = (b1 * (c2 * d4 - c4 * d2) -
c1 * (b2 * d4 - b4 * d2) +
d1 * (b2 * c4 - b4 * c2)) *
scale;
_m4storage[9] = -(a1 * (c2 * d4 - c4 * d2) -
c1 * (a2 * d4 - a4 * d2) +
d1 * (a2 * c4 - a4 * c2)) *
scale;
_m4storage[10] = (a1 * (b2 * d4 - b4 * d2) -
b1 * (a2 * d4 - a4 * d2) +
d1 * (a2 * b4 - a4 * b2)) *
scale;
_m4storage[11] = -(a1 * (b2 * c4 - b4 * c2) -
b1 * (a2 * c4 - a4 * c2) +
c1 * (a2 * b4 - a4 * b2)) *
scale;
_m4storage[12] = -(b1 * (c2 * d3 - c3 * d2) -
c1 * (b2 * d3 - b3 * d2) +
d1 * (b2 * c3 - b3 * c2)) *
scale;
_m4storage[13] = (a1 * (c2 * d3 - c3 * d2) -
c1 * (a2 * d3 - a3 * d2) +
d1 * (a2 * c3 - a3 * c2)) *
scale;
_m4storage[14] = -(a1 * (b2 * d3 - b3 * d2) -
b1 * (a2 * d3 - a3 * d2) +
d1 * (a2 * b3 - a3 * b2)) *
scale;
_m4storage[15] = (a1 * (b2 * c3 - b3 * c2) -
b1 * (a2 * c3 - a3 * c2) +
c1 * (a2 * b3 - a3 * b2)) *
scale;
}