random_spin3 is now a separate function

This commit is contained in:
Zeno Rogue 2020-12-23 23:42:09 +01:00
parent 782859f93b
commit 96f84c77ca
1 changed files with 8 additions and 6 deletions

View File

@ -550,14 +550,16 @@ EX transmatrix cspin(int a, int b, ld alpha) {
/** rotate by alpha degrees in the XY plane */
EX transmatrix spin(ld alpha) { return cspin(0, 1, alpha); }
EX transmatrix random_spin3() {
ld alpha2 = asin(randd() * 2 - 1);
ld alpha = randd() * 2 * M_PI;
ld alpha3 = randd() * 2 * M_PI;
return cspin(0, 1, alpha) * cspin(0, 2, alpha2) * cspin(1, 2, alpha3);
}
EX transmatrix random_spin() {
if(WDIM == 2) return spin(randd() * 2 * M_PI);
else {
ld alpha2 = asin(randd() * 2 - 1);
ld alpha = randd() * 2 * M_PI;
ld alpha3 = randd() * 2 * M_PI;
return cspin(0, 1, alpha) * cspin(0, 2, alpha2) * cspin(1, 2, alpha3);
}
else return random_spin3();
}
EX transmatrix eupush(ld x, ld y) {