mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-04-27 21:23:19 +00:00
inverse2
This commit is contained in:
parent
0f6493b912
commit
7d0194d7f6
@ -1108,7 +1108,7 @@ void inverse_error(const transmatrix& T) {
|
|||||||
|
|
||||||
/** inverse of a 3x3 matrix */
|
/** inverse of a 3x3 matrix */
|
||||||
EX transmatrix inverse3(const transmatrix& T) {
|
EX transmatrix inverse3(const transmatrix& T) {
|
||||||
ld d = det(T);
|
ld d = det3(T);
|
||||||
transmatrix T2;
|
transmatrix T2;
|
||||||
if(d == 0) {
|
if(d == 0) {
|
||||||
inverse_error(T);
|
inverse_error(T);
|
||||||
@ -1121,6 +1121,22 @@ EX transmatrix inverse3(const transmatrix& T) {
|
|||||||
return T2;
|
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 */
|
/** \brief inverse of a general matrix */
|
||||||
EX transmatrix inverse(const transmatrix& T) {
|
EX transmatrix inverse(const transmatrix& T) {
|
||||||
if(MDIM == 3)
|
if(MDIM == 3)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user