From 7126bb95840ff6755892daa1622c2402cfa07e86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20Ne=C4=8Dada?= Date: Mon, 11 Mar 2019 19:29:46 +0000 Subject: [PATCH] Test quaternion rotations. Former-commit-id: 0faf558ea640fa9dc100280cfc677e9795a0c413 --- tests/quaternion_O3.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 tests/quaternion_O3.c diff --git a/tests/quaternion_O3.c b/tests/quaternion_O3.c new file mode 100644 index 0000000..7b880b3 --- /dev/null +++ b/tests/quaternion_O3.c @@ -0,0 +1,25 @@ +#include +#include + +int main() { + cart3_t v = {1, 2, 3}; + qpms_quat4d_t q4[4] = { + {1, 0, 0, 0}, + {0, 1, 0, 0}, + {0, 0, 1, 0}, + {0, 0, 0, 1}, + }; + printf("original: (%g, %g, %g)\n", v.x, v.y, v.z); + for(int i = 0; i < 4; ++i) { + for (int det = -1; det < 2; det += 2) { + const qpms_quat4d_t qr = q4[i]; + const qpms_quat_t qc = qpms_quat_2c_from_4d(qr); + const qpms_irot3_t r = {qc, det}; + const cart3_t w = qpms_irot3_apply_cart3(r, v); + printf("[%+g %+g %+g %+g] -> [%+g%+gj %+g%+g] *%+d: ==> (%g, %g, %g)\n", + qr.c1, qr.ci, qr.cj, qr.ck, creal(qc.a), cimag(qc.a), creal(qc.b), cimag(qc.b), + det, w.x, w.y, w.z); + } + } + return 0; +}