80 element_type m00 = m(0, 0), m01 = m(0, 1), m02 = m(0, 2), m03 = m(0, 3);
81 element_type m10 = m(1, 0), m11 = m(1, 1), m12 = m(1, 2), m13 = m(1, 3);
82 element_type m20 = m(2, 0), m21 = m(2, 1), m22 = m(2, 2), m23 = m(2, 3);
83 element_type m30 = m(3, 0), m31 = m(3, 1), m32 = m(3, 2), m33 = m(3, 3);
97 element_type inv_det = 1.0f / (t00 * m00 + t10 * m01 + t20 * m02 + t30 * m03);
104 element_type d01 = -(v5 * m01 - v4 * m02 + v3 * m03) * inv_det;
105 element_type d11 = (v5 * m00 - v2 * m02 + v1 * m03) * inv_det;
106 element_type d21 = -(v4 * m00 - v2 * m01 + v0 * m03) * inv_det;
107 element_type d31 = (v3 * m00 - v1 * m01 + v0 * m02) * inv_det;
109 v0 = m10 * m31 - m11 * m30;
110 v1 = m10 * m32 - m12 * m30;
111 v2 = m10 * m33 - m13 * m30;
112 v3 = m11 * m32 - m12 * m31;
113 v4 = m11 * m33 - m13 * m31;
114 v5 = m12 * m33 - m13 * m32;
116 element_type d02 = (v5 * m01 - v4 * m02 + v3 * m03) * inv_det;
117 element_type d12 = -(v5 * m00 - v2 * m02 + v1 * m03) * inv_det;
118 element_type d22 = (v4 * m00 - v2 * m01 + v0 * m03) * inv_det;
119 element_type d32 = -(v3 * m00 - v1 * m01 + v0 * m02) * inv_det;
121 v0 = m21 * m10 - m20 * m11;
122 v1 = m22 * m10 - m20 * m12;
123 v2 = m23 * m10 - m20 * m13;
124 v3 = m22 * m11 - m21 * m12;
125 v4 = m23 * m11 - m21 * m13;
126 v5 = m23 * m12 - m22 * m13;
128 element_type d03 = -(v5 * m01 - v4 * m02 + v3 * m03) * inv_det;
129 element_type d13 = (v5 * m00 - v2 * m02 + v1 * m03) * inv_det;
130 element_type d23 = -(v4 * m00 - v2 * m01 + v0 * m03) * inv_det;
131 element_type d33 = (v3 * m00 - v1 * m01 + v0 * m02) * inv_det;
133 return {d00, d01, d02, d03, d10, d11, d12, d13, d20, d21, d22, d23, d30, d31, d32, d33};
157 r(0, 0) = m1(0, 0) * m2(0, 0) + m1(0, 1) * m2(1, 0) + m1(0, 2) * m2(2, 0) + m1(0, 3) * m2(3, 0);
158 r(0, 1) = m1(0, 0) * m2(0, 1) + m1(0, 1) * m2(1, 1) + m1(0, 2) * m2(2, 1) + m1(0, 3) * m2(3, 1);
159 r(0, 2) = m1(0, 0) * m2(0, 2) + m1(0, 1) * m2(1, 2) + m1(0, 2) * m2(2, 2) + m1(0, 3) * m2(3, 2);
160 r(0, 3) = m1(0, 0) * m2(0, 3) + m1(0, 1) * m2(1, 3) + m1(0, 2) * m2(2, 3) + m1(0, 3) * m2(3, 3);
162 r(1, 0) = m1(1, 0) * m2(0, 0) + m1(1, 1) * m2(1, 0) + m1(1, 2) * m2(2, 0) + m1(1, 3) * m2(3, 0);
163 r(1, 1) = m1(1, 0) * m2(0, 1) + m1(1, 1) * m2(1, 1) + m1(1, 2) * m2(2, 1) + m1(1, 3) * m2(3, 1);
164 r(1, 2) = m1(1, 0) * m2(0, 2) + m1(1, 1) * m2(1, 2) + m1(1, 2) * m2(2, 2) + m1(1, 3) * m2(3, 2);
165 r(1, 3) = m1(1, 0) * m2(0, 3) + m1(1, 1) * m2(1, 3) + m1(1, 2) * m2(2, 3) + m1(1, 3) * m2(3, 3);
167 r(2, 0) = m1(2, 0) * m2(0, 0) + m1(2, 1) * m2(1, 0) + m1(2, 2) * m2(2, 0) + m1(2, 3) * m2(3, 0);
168 r(2, 1) = m1(2, 0) * m2(0, 1) + m1(2, 1) * m2(1, 1) + m1(2, 2) * m2(2, 1) + m1(2, 3) * m2(3, 1);
169 r(2, 2) = m1(2, 0) * m2(0, 2) + m1(2, 1) * m2(1, 2) + m1(2, 2) * m2(2, 2) + m1(2, 3) * m2(3, 2);
170 r(2, 3) = m1(2, 0) * m2(0, 3) + m1(2, 1) * m2(1, 3) + m1(2, 2) * m2(2, 3) + m1(2, 3) * m2(3, 3);
172 r(3, 0) = m1(3, 0) * m2(0, 0) + m1(3, 1) * m2(1, 0) + m1(3, 2) * m2(2, 0) + m1(3, 3) * m2(3, 0);
173 r(3, 1) = m1(3, 0) * m2(0, 1) + m1(3, 1) * m2(1, 1) + m1(3, 2) * m2(2, 1) + m1(3, 3) * m2(3, 1);
174 r(3, 2) = m1(3, 0) * m2(0, 2) + m1(3, 1) * m2(1, 2) + m1(3, 2) * m2(2, 2) + m1(3, 3) * m2(3, 2);
175 r(3, 3) = m1(3, 0) * m2(0, 3) + m1(3, 1) * m2(1, 3) + m1(3, 2) * m2(2, 3) + m1(3, 3) * m2(3, 3);