Добавление квалификатора const, который запрещает изменение указателя

This commit is contained in:
Andrey Pokidov 2026-03-23 18:55:33 +07:00
parent 51fafe50c8
commit 610756ffed
14 changed files with 1019 additions and 1039 deletions

View file

@ -1,103 +1,103 @@
#include "./dual-quaternion.h"
extern inline void bgc_fp32_dual_quaternion_reset(BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_reset(BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_reset(BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_reset(BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_copy(BGC_FP32_DualQuaternion* destination, const BGC_FP32_DualQuaternion* source);
extern inline void bgc_fp64_dual_quaternion_copy(BGC_FP64_DualQuaternion* destination, const BGC_FP64_DualQuaternion* source);
extern inline void bgc_fp32_dual_quaternion_copy(BGC_FP32_DualQuaternion* const destination, const BGC_FP32_DualQuaternion* const source);
extern inline void bgc_fp64_dual_quaternion_copy(BGC_FP64_DualQuaternion* const destination, const BGC_FP64_DualQuaternion* const source);
extern inline void bgc_fp32_dual_quaternion_swap(BGC_FP32_DualQuaternion* first, BGC_FP32_DualQuaternion* second);
extern inline void bgc_fp64_dual_quaternion_swap(BGC_FP64_DualQuaternion* first, BGC_FP64_DualQuaternion* second);
extern inline void bgc_fp32_dual_quaternion_swap(BGC_FP32_DualQuaternion* const first, BGC_FP32_DualQuaternion* const second);
extern inline void bgc_fp64_dual_quaternion_swap(BGC_FP64_DualQuaternion* const first, BGC_FP64_DualQuaternion* const second);
extern inline void bgc_fp32_dual_quaternion_convert_to_fp64(BGC_FP64_DualQuaternion* destination, const BGC_FP32_DualQuaternion* source);
extern inline void bgc_fp64_dual_quaternion_convert_to_fp32(BGC_FP32_DualQuaternion* destination, const BGC_FP64_DualQuaternion* source);
extern inline void bgc_fp32_dual_quaternion_convert_to_fp64(BGC_FP64_DualQuaternion* const destination, const BGC_FP32_DualQuaternion* const source);
extern inline void bgc_fp64_dual_quaternion_convert_to_fp32(BGC_FP32_DualQuaternion* const destination, const BGC_FP64_DualQuaternion* const source);
extern inline void bgc_fp32_dual_quaternion_revert(BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_revert(BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_revert(BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_revert(BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_get_reverse(BGC_FP32_DualQuaternion* reverse, const BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_get_reverse(BGC_FP64_DualQuaternion* reverse, const BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_get_reverse(BGC_FP32_DualQuaternion* const reverse, const BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_get_reverse(BGC_FP64_DualQuaternion* const reverse, const BGC_FP64_DualQuaternion* const quaternion);
extern inline int bgc_fp32_dual_quaternion_invert(BGC_FP32_DualQuaternion* quaternion);
extern inline int bgc_fp64_dual_quaternion_invert(BGC_FP64_DualQuaternion* quaternion);
extern inline int bgc_fp32_dual_quaternion_invert(BGC_FP32_DualQuaternion* const quaternion);
extern inline int bgc_fp64_dual_quaternion_invert(BGC_FP64_DualQuaternion* const quaternion);
extern inline int bgc_fp32_dual_quaternion_get_inverse(BGC_FP32_DualQuaternion* inverse, const BGC_FP32_DualQuaternion* quaternion);
extern inline int bgc_fp64_dual_quaternion_get_inverse(BGC_FP64_DualQuaternion* inverse, const BGC_FP64_DualQuaternion* quaternion);
extern inline int bgc_fp32_dual_quaternion_get_inverse(BGC_FP32_DualQuaternion* const inverse, const BGC_FP32_DualQuaternion* const quaternion);
extern inline int bgc_fp64_dual_quaternion_get_inverse(BGC_FP64_DualQuaternion* const inverse, const BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_component_conjugate(BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_component_conjugate(BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_component_conjugate(BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_component_conjugate(BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_get_component_conjugate(BGC_FP32_DualQuaternion* conjugate, const BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_get_component_conjugate(BGC_FP64_DualQuaternion* conjugate, const BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_get_component_conjugate(BGC_FP32_DualQuaternion* const conjugate, const BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_get_component_conjugate(BGC_FP64_DualQuaternion* const conjugate, const BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_dual_conjugate(BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_dual_conjugate(BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_dual_conjugate(BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_dual_conjugate(BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_get_dual_conjugate(BGC_FP32_DualQuaternion* conjugate, const BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_get_dual_conjugate(BGC_FP64_DualQuaternion* conjugate, const BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_get_dual_conjugate(BGC_FP32_DualQuaternion* const conjugate, const BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_get_dual_conjugate(BGC_FP64_DualQuaternion* const conjugate, const BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_fully_conjugate(BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_fully_conjugate(BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_fully_conjugate(BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_fully_conjugate(BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_get_fully_conjugate(BGC_FP32_DualQuaternion* conjugate, const BGC_FP32_DualQuaternion* quaternion);
extern inline void bgc_fp64_dual_quaternion_get_fully_conjugate(BGC_FP64_DualQuaternion* conjugate, const BGC_FP64_DualQuaternion* quaternion);
extern inline void bgc_fp32_dual_quaternion_get_fully_conjugate(BGC_FP32_DualQuaternion* const conjugate, const BGC_FP32_DualQuaternion* const quaternion);
extern inline void bgc_fp64_dual_quaternion_get_fully_conjugate(BGC_FP64_DualQuaternion* const conjugate, const BGC_FP64_DualQuaternion* const quaternion);
extern inline int bgc_fp32_dual_quaternion_normalize(BGC_FP32_DualQuaternion* quaternion);
extern inline int bgc_fp64_dual_quaternion_normalize(BGC_FP64_DualQuaternion* quaternion);
extern inline int bgc_fp32_dual_quaternion_normalize(BGC_FP32_DualQuaternion* const quaternion);
extern inline int bgc_fp64_dual_quaternion_normalize(BGC_FP64_DualQuaternion* const quaternion);
extern inline int bgc_fp32_dual_quaternion_get_normalized(BGC_FP32_DualQuaternion* normalized, const BGC_FP32_DualQuaternion* quaternion);
extern inline int bgc_fp64_dual_quaternion_get_normalized(BGC_FP64_DualQuaternion* normalized, const BGC_FP64_DualQuaternion* quaternion);
extern inline int bgc_fp32_dual_quaternion_get_normalized(BGC_FP32_DualQuaternion* const normalized, const BGC_FP32_DualQuaternion* const quaternion);
extern inline int bgc_fp64_dual_quaternion_get_normalized(BGC_FP64_DualQuaternion* const normalized, const BGC_FP64_DualQuaternion* const quaternion);
extern inline void bgc_fp32_dual_quaternion_add(BGC_FP32_DualQuaternion* sum, const BGC_FP32_DualQuaternion* first, const BGC_FP32_DualQuaternion* second);
extern inline void bgc_fp64_dual_quaternion_add(BGC_FP64_DualQuaternion* sum, const BGC_FP64_DualQuaternion* first, const BGC_FP64_DualQuaternion* second);
extern inline void bgc_fp32_dual_quaternion_add(BGC_FP32_DualQuaternion* const sum, const BGC_FP32_DualQuaternion* const first, const BGC_FP32_DualQuaternion* const second);
extern inline void bgc_fp64_dual_quaternion_add(BGC_FP64_DualQuaternion* const sum, const BGC_FP64_DualQuaternion* const first, const BGC_FP64_DualQuaternion* const second);
extern inline void bgc_fp32_dual_quaternion_add_scaled(BGC_FP32_DualQuaternion* sum, const BGC_FP32_DualQuaternion* base_quaternion, const BGC_FP32_DualQuaternion* scalable_quaternion, const float scale);
extern inline void bgc_fp64_dual_quaternion_add_scaled(BGC_FP64_DualQuaternion* sum, const BGC_FP64_DualQuaternion* base_quaternion, const BGC_FP64_DualQuaternion* scalable_quaternion, const double scale);
extern inline void bgc_fp32_dual_quaternion_add_scaled(BGC_FP32_DualQuaternion* const sum, const BGC_FP32_DualQuaternion* const base_quaternion, const BGC_FP32_DualQuaternion* const scalable_quaternion, const float scale);
extern inline void bgc_fp64_dual_quaternion_add_scaled(BGC_FP64_DualQuaternion* const sum, const BGC_FP64_DualQuaternion* const base_quaternion, const BGC_FP64_DualQuaternion* const scalable_quaternion, const double scale);
extern inline void bgc_fp32_dual_quaternion_subtract(BGC_FP32_DualQuaternion* difference, const BGC_FP32_DualQuaternion* minuend, const BGC_FP32_DualQuaternion* subtrahend);
extern inline void bgc_fp64_dual_quaternion_subtract(BGC_FP64_DualQuaternion* difference, const BGC_FP64_DualQuaternion* minuend, const BGC_FP64_DualQuaternion* subtrahend);
extern inline void bgc_fp32_dual_quaternion_subtract(BGC_FP32_DualQuaternion* const difference, const BGC_FP32_DualQuaternion* const minuend, const BGC_FP32_DualQuaternion* const subtrahend);
extern inline void bgc_fp64_dual_quaternion_subtract(BGC_FP64_DualQuaternion* const difference, const BGC_FP64_DualQuaternion* const minuend, const BGC_FP64_DualQuaternion* const subtrahend);
extern inline void bgc_fp32_dual_quaternion_subtract_scaled(BGC_FP32_DualQuaternion* difference, const BGC_FP32_DualQuaternion* base_quaternion, const BGC_FP32_DualQuaternion* scalable_quaternion, const float scale);
extern inline void bgc_fp64_dual_quaternion_subtract_scaled(BGC_FP64_DualQuaternion* difference, const BGC_FP64_DualQuaternion* base_quaternion, const BGC_FP64_DualQuaternion* scalable_quaternion, const double scale);
extern inline void bgc_fp32_dual_quaternion_subtract_scaled(BGC_FP32_DualQuaternion* const difference, const BGC_FP32_DualQuaternion* const base_quaternion, const BGC_FP32_DualQuaternion* const scalable_quaternion, const float scale);
extern inline void bgc_fp64_dual_quaternion_subtract_scaled(BGC_FP64_DualQuaternion* const difference, const BGC_FP64_DualQuaternion* const base_quaternion, const BGC_FP64_DualQuaternion* const scalable_quaternion, const double scale);
extern inline void bgc_fp32_dual_quaternion_multiply_by_real_number(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* multiplicand, const float multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_real_number(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* multiplicand, const double multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_real_number(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const multiplicand, const float multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_real_number(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const multiplicand, const double multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_dual_number(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* multiplicand, const BGC_FP32_DualNumber* multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_dual_number(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* multiplicand, const BGC_FP64_DualNumber* multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_dual_number(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const multiplicand, const BGC_FP32_DualNumber* const multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_dual_number(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const multiplicand, const BGC_FP64_DualNumber* const multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_conjugate_dual_number(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* multiplicand, const BGC_FP32_DualNumber* multiplier_to_conjugate);
extern inline void bgc_fp64_dual_quaternion_multiply_by_conjugate_dual_number(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* multiplicand, const BGC_FP64_DualNumber* multiplier_to_conjugate);
extern inline void bgc_fp32_dual_quaternion_multiply_by_conjugate_dual_number(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const multiplicand, const BGC_FP32_DualNumber* const multiplier_to_conjugate);
extern inline void bgc_fp64_dual_quaternion_multiply_by_conjugate_dual_number(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const multiplicand, const BGC_FP64_DualNumber* const multiplier_to_conjugate);
extern inline void bgc_fp32_dual_quaternion_multiply_by_quaternion(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* multiplicand, const BGC_FP32_Quaternion* multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_quaternion(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* multiplicand, const BGC_FP64_Quaternion* multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_quaternion(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const multiplicand, const BGC_FP32_Quaternion* const multiplier);
extern inline void bgc_fp64_dual_quaternion_multiply_by_quaternion(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const multiplicand, const BGC_FP64_Quaternion* const multiplier);
extern inline void bgc_fp32_dual_quaternion_multiply_by_conjugate_quaternion(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* multiplicand, const BGC_FP32_Quaternion* multiplier_to_conjugate);
extern inline void bgc_fp64_dual_quaternion_multiply_by_conjugate_quaternion(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* multiplicand, const BGC_FP64_Quaternion* multiplier_to_conjugate);
extern inline void bgc_fp32_dual_quaternion_multiply_by_conjugate_quaternion(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const multiplicand, const BGC_FP32_Quaternion* const multiplier_to_conjugate);
extern inline void bgc_fp64_dual_quaternion_multiply_by_conjugate_quaternion(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const multiplicand, const BGC_FP64_Quaternion* const multiplier_to_conjugate);
extern inline void bgc_fp32_dual_quaternion_multiply_by_dual_quaternion(BGC_FP32_DualQuaternion* product, const BGC_FP32_DualQuaternion* left, const BGC_FP32_DualQuaternion* right);
extern inline void bgc_fp64_dual_quaternion_multiply_by_dual_quaternion(BGC_FP64_DualQuaternion* product, const BGC_FP64_DualQuaternion* left, const BGC_FP64_DualQuaternion* right);
extern inline void bgc_fp32_dual_quaternion_multiply_by_dual_quaternion(BGC_FP32_DualQuaternion* const product, const BGC_FP32_DualQuaternion* const left, const BGC_FP32_DualQuaternion* const right);
extern inline void bgc_fp64_dual_quaternion_multiply_by_dual_quaternion(BGC_FP64_DualQuaternion* const product, const BGC_FP64_DualQuaternion* const left, const BGC_FP64_DualQuaternion* const right);
extern inline int bgc_fp32_dual_quaternion_divide_by_real_number(BGC_FP32_DualQuaternion* quotient, const BGC_FP32_DualQuaternion* divident, const float divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_real_number(BGC_FP64_DualQuaternion* quotient, const BGC_FP64_DualQuaternion* divident, const double divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_real_number(BGC_FP32_DualQuaternion* const quotient, const BGC_FP32_DualQuaternion* const divident, const float divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_real_number(BGC_FP64_DualQuaternion* const quotient, const BGC_FP64_DualQuaternion* const divident, const double divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_dual_number(BGC_FP32_DualQuaternion* quotient, const BGC_FP32_DualQuaternion* dividend, const BGC_FP32_DualNumber* divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_dual_number(BGC_FP64_DualQuaternion* quotient, const BGC_FP64_DualQuaternion* dividend, const BGC_FP64_DualNumber* divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_dual_number(BGC_FP32_DualQuaternion* const quotient, const BGC_FP32_DualQuaternion* const dividend, const BGC_FP32_DualNumber* const divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_dual_number(BGC_FP64_DualQuaternion* const quotient, const BGC_FP64_DualQuaternion* const dividend, const BGC_FP64_DualNumber* const divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_conjugate_dual_number(BGC_FP32_DualQuaternion* quotient, const BGC_FP32_DualQuaternion* dividend, const BGC_FP32_DualNumber* divisor_to_conjugate);
extern inline int bgc_fp64_dual_quaternion_divide_by_conjugate_dual_number(BGC_FP64_DualQuaternion* quotient, const BGC_FP64_DualQuaternion* dividend, const BGC_FP64_DualNumber* divisor_to_conjugate);
extern inline int bgc_fp32_dual_quaternion_divide_by_conjugate_dual_number(BGC_FP32_DualQuaternion* const quotient, const BGC_FP32_DualQuaternion* const dividend, const BGC_FP32_DualNumber* const divisor_to_conjugate);
extern inline int bgc_fp64_dual_quaternion_divide_by_conjugate_dual_number(BGC_FP64_DualQuaternion* const quotient, const BGC_FP64_DualQuaternion* const dividend, const BGC_FP64_DualNumber* const divisor_to_conjugate);
extern inline int bgc_fp32_dual_quaternion_divide_by_quaternion(BGC_FP32_DualQuaternion* quotient, const BGC_FP32_DualQuaternion* dividend, const BGC_FP32_Quaternion* divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_quaternion(BGC_FP64_DualQuaternion* quotient, const BGC_FP64_DualQuaternion* dividend, const BGC_FP64_Quaternion* divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_quaternion(BGC_FP32_DualQuaternion* const quotient, const BGC_FP32_DualQuaternion* const dividend, const BGC_FP32_Quaternion* const divisor);
extern inline int bgc_fp64_dual_quaternion_divide_by_quaternion(BGC_FP64_DualQuaternion* const quotient, const BGC_FP64_DualQuaternion* const dividend, const BGC_FP64_Quaternion* const divisor);
extern inline int bgc_fp32_dual_quaternion_divide_by_conjugate_quaternion(BGC_FP32_DualQuaternion* quotient, const BGC_FP32_DualQuaternion* dividend, const BGC_FP32_Quaternion* divisor_to_conjugate);
extern inline int bgc_fp64_dual_quaternion_divide_by_conjugate_quaternion(BGC_FP64_DualQuaternion* quotient, const BGC_FP64_DualQuaternion* dividend, const BGC_FP64_Quaternion* divisor_to_conjugate);
extern inline int bgc_fp32_dual_quaternion_divide_by_conjugate_quaternion(BGC_FP32_DualQuaternion* const quotient, const BGC_FP32_DualQuaternion* const dividend, const BGC_FP32_Quaternion* const divisor_to_conjugate);
extern inline int bgc_fp64_dual_quaternion_divide_by_conjugate_quaternion(BGC_FP64_DualQuaternion* const quotient, const BGC_FP64_DualQuaternion* const dividend, const BGC_FP64_Quaternion* const divisor_to_conjugate);
extern inline void bgc_fp32_dual_quaternion_get_mean2(BGC_FP32_DualQuaternion* mean, const BGC_FP32_DualQuaternion* quaternion1, const BGC_FP32_DualQuaternion* quaternion2);
extern inline void bgc_fp64_dual_quaternion_get_mean2(BGC_FP64_DualQuaternion* mean, const BGC_FP64_DualQuaternion* quaternion1, const BGC_FP64_DualQuaternion* quaternion2);
extern inline void bgc_fp32_dual_quaternion_get_mean2(BGC_FP32_DualQuaternion* const mean, const BGC_FP32_DualQuaternion* const quaternion1, const BGC_FP32_DualQuaternion* const quaternion2);
extern inline void bgc_fp64_dual_quaternion_get_mean2(BGC_FP64_DualQuaternion* const mean, const BGC_FP64_DualQuaternion* const quaternion1, const BGC_FP64_DualQuaternion* const quaternion2);
extern inline void bgc_fp32_dual_quaternion_get_mean3(BGC_FP32_DualQuaternion* mean, const BGC_FP32_DualQuaternion* quaternion1, const BGC_FP32_DualQuaternion* quaternion2, const BGC_FP32_DualQuaternion* quaternion3);
extern inline void bgc_fp64_dual_quaternion_get_mean3(BGC_FP64_DualQuaternion* mean, const BGC_FP64_DualQuaternion* quaternion1, const BGC_FP64_DualQuaternion* quaternion2, const BGC_FP64_DualQuaternion* quaternion3);
extern inline void bgc_fp32_dual_quaternion_get_mean3(BGC_FP32_DualQuaternion* const mean, const BGC_FP32_DualQuaternion* const quaternion1, const BGC_FP32_DualQuaternion* const quaternion2, const BGC_FP32_DualQuaternion* const quaternion3);
extern inline void bgc_fp64_dual_quaternion_get_mean3(BGC_FP64_DualQuaternion* const mean, const BGC_FP64_DualQuaternion* const quaternion1, const BGC_FP64_DualQuaternion* const quaternion2, const BGC_FP64_DualQuaternion* const quaternion3);
extern inline void bgc_fp32_dual_quaternion_interpolate(BGC_FP32_DualQuaternion* interpolation, const BGC_FP32_DualQuaternion* first, const BGC_FP32_DualQuaternion* second, const float phase);
extern inline void bgc_fp64_dual_quaternion_interpolate(BGC_FP64_DualQuaternion* interpolation, const BGC_FP64_DualQuaternion* first, const BGC_FP64_DualQuaternion* second, const double phase);
extern inline void bgc_fp32_dual_quaternion_interpolate(BGC_FP32_DualQuaternion* const interpolation, const BGC_FP32_DualQuaternion* const first, const BGC_FP32_DualQuaternion* const second, const float phase);
extern inline void bgc_fp64_dual_quaternion_interpolate(BGC_FP64_DualQuaternion* const interpolation, const BGC_FP64_DualQuaternion* const first, const BGC_FP64_DualQuaternion* const second, const double phase);