mirror of
https://github.com/zenorogue/hyperrogue.git
synced 2025-06-30 17:02:51 +00:00
det now uses MDIM not GDIM
This commit is contained in:
parent
311ee10cf1
commit
388b4e1667
@ -893,20 +893,20 @@ EX ld det3(const transmatrix& T) {
|
|||||||
|
|
||||||
/** determinant */
|
/** determinant */
|
||||||
EX ld det(const transmatrix& T) {
|
EX ld det(const transmatrix& T) {
|
||||||
if(GDIM == 2)
|
if(MDIM == 3)
|
||||||
return det3(T);
|
return det3(T);
|
||||||
else {
|
else {
|
||||||
ld det = 1;
|
ld det = 1;
|
||||||
transmatrix M = T;
|
transmatrix M = T;
|
||||||
for(int a=0; a<MDIM; a++) {
|
for(int a=0; a<MDIM; a++) {
|
||||||
for(int b=a; b<=GDIM; b++)
|
for(int b=a; b<MDIM; b++)
|
||||||
if(M[b][a]) {
|
if(M[b][a]) {
|
||||||
if(b != a)
|
if(b != a)
|
||||||
for(int c=a; c<MDIM; c++) tie(M[b][c], M[a][c]) = make_pair(-M[a][c], M[b][c]);
|
for(int c=a; c<MDIM; c++) tie(M[b][c], M[a][c]) = make_pair(-M[a][c], M[b][c]);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if(!M[a][a]) return 0;
|
if(!M[a][a]) return 0;
|
||||||
for(int b=a+1; b<=GDIM; b++) {
|
for(int b=a+1; b<MDIM; b++) {
|
||||||
ld co = -M[b][a] / M[a][a];
|
ld co = -M[b][a] / M[a][a];
|
||||||
for(int c=a; c<MDIM; c++) M[b][c] += M[a][c] * co;
|
for(int c=a; c<MDIM; c++) M[b][c] += M[a][c] * co;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user