21 January 2020 08:16:05 AM
QUATERNIONS_TEST
C version
Test the QUATERNIONS library.
Q8_CONJUGATE_TEST
Q8_CONJUGATE conjugates a quaternion;
q1 = q8_normal_01 ( seed ): 1.67904 -0.472769 -0.56606 -0.231124
q2 = q8_conjugate ( q1 ): 1.67904 0.472769 0.56606 0.231124
q1 = q8_normal_01 ( seed ): 1.21293 0.535037 1.26938 1.04954
q2 = q8_conjugate ( q1 ): 1.21293 -0.535037 -1.26938 -1.04954
q1 = q8_normal_01 ( seed ): -1.66609 -1.86523 -2.24246 0.735809
q2 = q8_conjugate ( q1 ): -1.66609 1.86523 2.24246 -0.735809
q1 = q8_normal_01 ( seed ): 0.0396749 -1.35074 0.673068 0.00777484
q2 = q8_conjugate ( q1 ): 0.0396749 1.35074 -0.673068 -0.00777484
q1 = q8_normal_01 ( seed ): -0.275127 0.37494 2.164 0.1856
q2 = q8_conjugate ( q1 ): -0.275127 -0.37494 -2.164 -0.1856
Q8_EXPONENTIATE_TEST
Q8_EXPONENTIATE exponentiates a quaternion
q1 = q8_normal_01 ( seed ): 1.67904 -0.472769 -0.56606 -0.231124
q2 = q8_exponentiate ( q1 ): 3.83751 -2.28936 -2.74112 -1.11921
q1 = q8_normal_01 ( seed ): 1.21293 0.535037 1.26938 1.04954
q2 = q8_exponentiate ( q1 ): -0.539174 1.02566 2.43339 2.01196
q1 = q8_normal_01 ( seed ): -1.66609 -1.86523 -2.24246 0.735809
q2 = q8_exponentiate ( q1 ): -0.187306 -0.0155873 -0.0187398 0.00614899
q1 = q8_normal_01 ( seed ): 0.0396749 -1.35074 0.673068 0.00777484
q2 = q8_exponentiate ( q1 ): 0.0640889 -0.92948 0.463157 0.00535009
q1 = q8_normal_01 ( seed ): -0.275127 0.37494 2.164 0.1856
q2 = q8_exponentiate ( q1 ): -0.44945 0.104144 0.601077 0.0515525
Q8_INVERSE_TEST
Q8_INVERSE inverts a quaternion
q1 = q8_normal_01 ( seed ): 1.67904 -0.472769 -0.56606 -0.231124
q2 = q8_inverse ( q1 ): 0.491446 0.138377 0.165683 0.0676488
q3 = q8_multiply ( q1, q2 ): 1 6.93889e-18 1.38778e-17 -2.77556e-17
q1 = q8_normal_01 ( seed ): 1.21293 0.535037 1.26938 1.04954
q2 = q8_inverse ( q1 ): 0.271329 -0.119686 -0.283956 -0.234779
q3 = q8_multiply ( q1, q2 ): 1 0 0 -5.55112e-17
q1 = q8_normal_01 ( seed ): -1.66609 -1.86523 -2.24246 0.735809
q2 = q8_inverse ( q1 ): -0.140896 0.157736 0.189638 -0.062225
q3 = q8_multiply ( q1, q2 ): 1 5.55112e-17 8.32667e-17 2.77556e-17
q1 = q8_normal_01 ( seed ): 0.0396749 -1.35074 0.673068 0.00777484
q2 = q8_inverse ( q1 ): 0.0174078 0.592651 -0.295316 -0.0034113
q3 = q8_multiply ( q1, q2 ): 1 3.03577e-18 8.67362e-19 -8.08002e-17
q1 = q8_normal_01 ( seed ): -0.275127 0.37494 2.164 0.1856
q2 = q8_inverse ( q1 ): -0.0557656 -0.0759967 -0.438622 -0.0376193
q3 = q8_multiply ( q1, q2 ): 1 1.38778e-17 0 -3.81639e-17
Q8_MULTIPLY_TEST
Q8_MULTIPLY multiplies two quaternions
q1 = q8_normal_01 ( seed ) : 1.67904 -0.472769 -0.56606 -0.231124
q2 = q8_normal_01 ( seed ) : 1.21293 0.535037 1.26938 1.04954
q3 = q8_multiply ( q1, q2 ): 3.25063 0.024192 1.81728 1.18463
q1 = q8_normal_01 ( seed ) : -1.66609 -1.86523 -2.24246 0.735809
q2 = q8_normal_01 ( seed ) : 0.0396749 -1.35074 0.673068 0.00777484
q3 = q8_multiply ( q1, q2 ): -1.08192 1.66376 -2.18974 -4.26816
q1 = q8_normal_01 ( seed ) : -0.275127 0.37494 2.164 0.1856
q2 = q8_normal_01 ( seed ) : 0.297785 -0.463758 2.04454 0.096577
q3 = q8_multiply ( q1, q2 ): -4.35036 0.0687718 -0.040383 1.79885
q1 = q8_normal_01 ( seed ) : 1.39882 -0.857394 -1.24299 1.67452
q2 = q8_normal_01 ( seed ) : -0.0670837 0.620783 -0.794396 -0.324163
q3 = q8_multiply ( q1, q2 ): -0.00618894 2.65904 -0.266256 0.886957
q1 = q8_normal_01 ( seed ) : -0.523768 0.156483 -0.350567 -0.247757
q2 = q8_normal_01 ( seed ) : 0.1317 -1.82076 0.53738 1.24857
q3 = q8_multiply ( q1, q2 ): 0.713666 0.669696 -0.0719066 -1.2408
Q8_MULTIPLY2_TEST
Q8_MULTIPLY2 multiplies two quaternions using a matrix
q1 = q8_normal_01 ( seed ) : 1.67904 -0.472769 -0.56606 -0.231124
q2 = q8_normal_01 ( seed ) : 1.21293 0.535037 1.26938 1.04954
q3 = q8_multiply2 ( q1, q2 ): 3.25063 0.024192 1.81728 1.18463
q1 = q8_normal_01 ( seed ) : -1.66609 -1.86523 -2.24246 0.735809
q2 = q8_normal_01 ( seed ) : 0.0396749 -1.35074 0.673068 0.00777484
q3 = q8_multiply2 ( q1, q2 ): -1.08192 1.66376 -2.18974 -4.26816
q1 = q8_normal_01 ( seed ) : -0.275127 0.37494 2.164 0.1856
q2 = q8_normal_01 ( seed ) : 0.297785 -0.463758 2.04454 0.096577
q3 = q8_multiply2 ( q1, q2 ): -4.35036 0.0687718 -0.040383 1.79885
q1 = q8_normal_01 ( seed ) : 1.39882 -0.857394 -1.24299 1.67452
q2 = q8_normal_01 ( seed ) : -0.0670837 0.620783 -0.794396 -0.324163
q3 = q8_multiply2 ( q1, q2 ): -0.00618894 2.65904 -0.266256 0.886957
q1 = q8_normal_01 ( seed ) : -0.523768 0.156483 -0.350567 -0.247757
q2 = q8_normal_01 ( seed ) : 0.1317 -1.82076 0.53738 1.24857
q3 = q8_multiply2 ( q1, q2 ): 0.713666 0.669696 -0.0719066 -1.2408
Q8_NORM_TEST
Q8_NORM computes the norm of a quaternion.
q = q8_normal_01(seed): 1.67904 -0.472769 -0.56606 -0.231124
q8_norm(q) = 1.84839
q = q8_normal_01(seed): 1.21293 0.535037 1.26938 1.04954
q8_norm(q) = 2.11432
q = q8_normal_01(seed): -1.66609 -1.86523 -2.24246 0.735809
q8_norm(q) = 3.43875
q = q8_normal_01(seed): 0.0396749 -1.35074 0.673068 0.00777484
q8_norm(q) = 1.50968
q = q8_normal_01(seed): -0.275127 0.37494 2.164 0.1856
q8_norm(q) = 2.22118
Q8_NORMAL_01_TEST
Q8_NORMAL_01 computes a normally distributed quaternion.
Sample #1 1.67904 -0.472769 -0.56606 -0.231124
Sample #2 1.21293 0.535037 1.26938 1.04954
Sample #3 -1.66609 -1.86523 -2.24246 0.735809
Sample #4 0.0396749 -1.35074 0.673068 0.00777484
Sample #5 -0.275127 0.37494 2.164 0.1856
Q8_TRANSPOSE_PRINT_TEST
Q8_TRANSPOSE_PRINT prints a quaternion 'transposed',
that is, writing it as a row vector.
The quaternion: 1.67904 -0.472769 -0.56606 -0.231124
R8_ACOS_TEST
R8_ACOS computes the arc-cosine of an angle.
C R8_ACOS(C) ACOS(C)
-1.16667 3.14159
-1 3.14159 3.14159
-0.833333 2.55591 2.55591
-0.666667 2.30052 2.30052
-0.5 2.0944 2.0944
-0.333333 1.91063 1.91063
-0.166667 1.73824 1.73824
0 1.5708 1.5708
0.166667 1.40335 1.40335
0.333333 1.23096 1.23096
0.5 1.0472 1.0472
0.666667 0.841069 0.841069
0.833333 0.585686 0.585686
1 0 0
1.16667 0
R8MAT_PRINT_TEST
R8MAT_PRINT prints an R8MAT.
The matrix:
Col: 0 1 2 3
Row
0: 11 12 13 14
1: 21 22 23 24
2: 31 32 33 34
3: 41 42 43 44
4: 51 52 53 54
5: 61 62 63 64
R8MAT_PRINT_SOME_TEST
R8MAT_PRINT_SOME prints some of an R8MAT.
Rows 2:4, Cols 1:2:
Col: 0 1
Row
1: 21 22
2: 31 32
3: 41 42
R8VEC_PRINT_TEST
R8VEC_PRINT prints an R8VEC.
The R8VEC:
0: 123.456
1: 5e-06
2: -1e+06
3: 3.14159
R8VEC_UNIFORM_01_NEW_TEST
R8VEC_UNIFORM_01_NEW returns a random R8VEC
with entries in a given range [ 0.0, 1.0 ]
Input SEED =