1
0
mirror of https://github.com/zenorogue/hyperrogue.git synced 2024-10-18 06:30:41 +00:00
This commit is contained in:
Zeno Rogue 2024-10-05 10:03:13 +02:00
parent 0f6493b912
commit 7d0194d7f6

View File

@ -1108,7 +1108,7 @@ void inverse_error(const transmatrix& T) {
/** inverse of a 3x3 matrix */
EX transmatrix inverse3(const transmatrix& T) {
ld d = det(T);
ld d = det3(T);
transmatrix T2;
if(d == 0) {
inverse_error(T);
@ -1121,6 +1121,22 @@ EX transmatrix inverse3(const transmatrix& T) {
return T2;
}
/** inverse of a 2x2 matrix */
EX transmatrix inverse2(const transmatrix& T) {
ld d = det2(T);
if(d == 0) {
inverse_error(T);
return Id;
}
transmatrix T2 = Id;
T2[0][0] = T[1][1] / d;
T2[1][1] = T[0][0] / d;
T2[0][1] = -T[0][1] / d;
T2[1][0] = -T[1][0] / d;
return T2;
}
/** \brief inverse of a general matrix */
EX transmatrix inverse(const transmatrix& T) {
if(MDIM == 3)