Изменение функций нормализации, переименование make функий в set values, добавление внутренних restrict функций, гарантирующих оптимизальное выполнение открытых функций, независимо от компилятора
This commit is contained in:
parent
e6ac9023ec
commit
6945c69ef2
20 changed files with 324 additions and 337 deletions
|
|
@ -40,7 +40,7 @@ BGC_FP32_Affine3* _create_bgc_affine3_random_list(int affine_amount)
|
|||
BGC_FP32_Position3 position;
|
||||
|
||||
for (int i = 0; i < affine_amount; i++) {
|
||||
bgc_fp32_turn3_set_raw_values(
|
||||
bgc_fp32_turn3_set_values(
|
||||
&position.turn,
|
||||
get_random_value_fp32(),
|
||||
get_random_value_fp32(),
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ structure_fp32_t* make_structures(const unsigned int amount)
|
|||
const float multiplier = 2.0f / RAND_MAX;
|
||||
|
||||
for (unsigned int i = 0; i < amount; i++) {
|
||||
bgc_fp32_turn3_set_raw_values(
|
||||
bgc_fp32_turn3_set_values(
|
||||
&list[i].versor1,
|
||||
rand() * multiplier - 1.0f,
|
||||
rand() * multiplier - 1.0f,
|
||||
|
|
@ -37,7 +37,7 @@ structure_fp32_t* make_structures(const unsigned int amount)
|
|||
rand() * multiplier - 1.0f
|
||||
);
|
||||
|
||||
bgc_fp32_turn3_set_raw_values(
|
||||
bgc_fp32_turn3_set_values(
|
||||
&list[i].versor2,
|
||||
rand() * multiplier - 1.0f,
|
||||
rand() * multiplier - 1.0f,
|
||||
|
|
@ -127,9 +127,9 @@ int main()
|
|||
int main() {
|
||||
BGC_FP32_Complex complex, exponent, result;
|
||||
|
||||
bgc_fp32_complex_make(0, 1, &complex);
|
||||
bgc_fp32_complex_set_values(0, 1, &complex);
|
||||
|
||||
bgc_fp32_complex_make(4, 0, &exponent);
|
||||
bgc_fp32_complex_set_values(4, 0, &exponent);
|
||||
|
||||
bgc_fp32_complex_get_exponation(&complex, exponent.real, exponent.imaginary, &result);
|
||||
|
||||
|
|
@ -157,11 +157,11 @@ void test_pair_difference_fp32()
|
|||
BGC_FP32_Turn3 turn;
|
||||
|
||||
// No turn
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -169,11 +169,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// Turn around (1, 1, 0) axis on 180 degrees
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 1.0f, 0.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -181,11 +181,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// 180 degree turn
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, -1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, -1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -193,11 +193,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// 90 degree turn around x3 axis
|
||||
bgc_fp32_vector3_make(&initial_main, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 3.1f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 3.1f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, 10.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch,-1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, 10.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch,-1.0f, 0.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -205,11 +205,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// Unorthogonal pairs turn at 90 degrees around x3 axis
|
||||
bgc_fp32_vector3_make(&initial_main, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, -2.0f, 3.1f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, -2.0f, 3.1f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, 10.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, -1.0f, 5.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, 10.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, -1.0f, 5.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -217,10 +217,10 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// Zero vectors
|
||||
bgc_fp32_vector3_make(&initial_main, 0.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 0.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
int code;
|
||||
|
||||
|
|
@ -235,10 +235,10 @@ void test_pair_difference_fp32()
|
|||
}
|
||||
|
||||
// Parallel vectors
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 2.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
code = bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -251,11 +251,11 @@ void test_pair_difference_fp32()
|
|||
}
|
||||
|
||||
// Small angle turn (about 1 degree):
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 0.999848f, 0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, -0.017452f, 0.999848f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.999848f, 0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, -0.017452f, 0.999848f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn , &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -263,11 +263,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// About 179 degrees turn
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, -0.999848f, -0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.017452f, -0.999848f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, -0.999848f, -0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.017452f, -0.999848f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -275,11 +275,11 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// 120 degrees around (-1, -1, 1)
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 1.0f, 0.0f);
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 0.0f, -1.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 0.0f, -1.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -288,10 +288,10 @@ void test_pair_difference_fp32()
|
|||
|
||||
|
||||
// About 1 degree turn difference between initial_main and initial_branch directions
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.999848f, 0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, -1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.999848f, 0.017452f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, 1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, -1.0f, 0.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -299,35 +299,35 @@ void test_pair_difference_fp32()
|
|||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
// About 0.01 degree turn difference between initial_main and initial_branch directions
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 1.0f, 0.000001f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_main, 0.0f, -1.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&final_branch, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 1.0f, 0.000001f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_main, 0.0f, -1.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 1.0f, 0.0f, 0.0f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
printf("\nAbout 0.01 degree turn difference between initial_main and initial_branch directions:\n");
|
||||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 0.999999f, 0.00014142f); // почти (0,1,0), но крошечный z
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.0f, 0.0f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 0.999999f, 0.00014142f); // почти (0,1,0), но крошечный z
|
||||
|
||||
bgc_fp32_vector3_make(&final_main, -0.999999f, 0.0f, 0.00014142f);
|
||||
bgc_fp32_vector3_make(&final_branch, 0.0f, 0.999999f, -0.00014142f);
|
||||
bgc_fp32_vector3_set_values(&final_main, -0.999999f, 0.0f, 0.00014142f);
|
||||
bgc_fp32_vector3_set_values(&final_branch, 0.0f, 0.999999f, -0.00014142f);
|
||||
|
||||
bgc_fp32_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
printf("\nNear 180° with tiny branch deviation:\n");
|
||||
print_quaternion_fp32(&turn._versor);
|
||||
|
||||
bgc_fp32_vector3_make(&initial_main, 1.0f, 0.2f, 0.1f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.1f, 1.0f, 0.3f); // почти (0,1,0), но крошечный z
|
||||
bgc_fp32_vector3_set_values(&initial_main, 1.0f, 0.2f, 0.1f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.1f, 1.0f, 0.3f); // почти (0,1,0), но крошечный z
|
||||
|
||||
BGC_FP32_Turn3 known;
|
||||
|
||||
bgc_fp32_turn3_set_rotation(&known, 0.0f, 0.0f, 1.0f, 90.0f, BGC_ANGLE_UNIT_DEGREES);
|
||||
|
||||
bgc_fp32_vector3_make(&initial_main, -0.999999f, 0.0f, 0.00014142f);
|
||||
bgc_fp32_vector3_make(&initial_branch, 0.0f, 0.999999f, -0.00014142f);
|
||||
bgc_fp32_vector3_set_values(&initial_main, -0.999999f, 0.0f, 0.00014142f);
|
||||
bgc_fp32_vector3_set_values(&initial_branch, 0.0f, 0.999999f, -0.00014142f);
|
||||
|
||||
bgc_fp32_turn3_vector(&final_main, &known, &initial_main);
|
||||
bgc_fp32_turn3_vector(&final_branch, &known, &initial_branch);
|
||||
|
|
@ -348,10 +348,10 @@ void test_pair_difference_fp64()
|
|||
BGC_FP64_Turn3 turn;
|
||||
|
||||
// No turn
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -359,10 +359,10 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// Turn around (1, 1, 0) axis on 180 degrees
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 1.0, 0.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -370,11 +370,11 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// 180 degree turn
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&initial_branch, -1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, -1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -382,11 +382,11 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// 90 degree turn around x3 axis
|
||||
bgc_fp64_vector3_make(&initial_main, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 3.1, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 3.1, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, 10.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, -1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, 10.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, -1.0, 0.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -394,11 +394,11 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// Unorthogonal pairs turn at 90 degrees around x3 axis
|
||||
bgc_fp64_vector3_make(&initial_main, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, -2.0, 3.1, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, -2.0, 3.1, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, 10.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, -1.0, 5.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, 10.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, -1.0, 5.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -406,10 +406,10 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// Zero vectors
|
||||
bgc_fp64_vector3_make(&initial_main, 0.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 0.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
int code;
|
||||
|
||||
|
|
@ -424,10 +424,10 @@ void test_pair_difference_fp64()
|
|||
}
|
||||
|
||||
// Parallel vectors
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 2.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
code = bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -440,11 +440,11 @@ void test_pair_difference_fp64()
|
|||
}
|
||||
|
||||
// Small angle turn (about 1 degree):
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&final_main, 0.999848, 0.017452, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, -0.017452, 0.999848, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.999848, 0.017452, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, -0.017452, 0.999848, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -452,11 +452,11 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// About 179 degrees turn
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&final_main, -0.999848, -0.017452, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.017452, -0.999848, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, -0.999848, -0.017452, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.017452, -0.999848, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -464,11 +464,11 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// 120 degrees around (-1, -1, 1)
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.0, 1.0, 0.0);
|
||||
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 0.0, 0.0, -1.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 0.0, 0.0, -1.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -477,10 +477,10 @@ void test_pair_difference_fp64()
|
|||
|
||||
|
||||
// About 1 degree turn difference between initial_main and initial_branch directions
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 0.999848, 0.017452, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, -1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 0.999848, 0.017452, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, 1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, -1.0, 0.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
@ -488,10 +488,10 @@ void test_pair_difference_fp64()
|
|||
print_quaternion_fp64(&turn._versor);
|
||||
|
||||
// About 0.001 degree turn difference between initial_main and initial_branch directions
|
||||
bgc_fp64_vector3_make(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_make(&initial_branch, 1.0, 0.000001, 0.0);
|
||||
bgc_fp64_vector3_make(&final_main, 0.0, -1.0, 0.0);
|
||||
bgc_fp64_vector3_make(&final_branch, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_main, 1.0, 0.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&initial_branch, 1.0, 0.000001, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_main, 0.0, -1.0, 0.0);
|
||||
bgc_fp64_vector3_set_values(&final_branch, 1.0, 0.0, 0.0);
|
||||
|
||||
bgc_fp64_turn3_find_pair_difference(&turn, &initial_main, &initial_branch, &final_main, &final_branch);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue