#include "./dual-vector3.h" extern inline void bgc_fp32_dual_vector3_reset(BGC_FP32_DualVector3* const vector); extern inline void bgc_fp64_dual_vector3_reset(BGC_FP64_DualVector3* const vector); extern inline void bgc_fp32_dual_vector3_copy(BGC_FP32_DualVector3* const destination, const BGC_FP32_DualVector3* const source); extern inline void bgc_fp64_dual_vector3_copy(BGC_FP64_DualVector3* const destination, const BGC_FP64_DualVector3* const source); extern inline void bgc_fp32_dual_vector3_swap(BGC_FP32_DualVector3* const first, BGC_FP32_DualVector3* const second); extern inline void bgc_fp64_dual_vector3_swap(BGC_FP64_DualVector3* const first, BGC_FP64_DualVector3* const second); extern inline void bgc_fp32_dual_vector3_convert_to_fp64(BGC_FP64_DualVector3* const destination, const BGC_FP32_DualVector3* const source); extern inline void bgc_fp64_dual_vector3_convert_to_fp32(BGC_FP32_DualVector3* const destination, const BGC_FP64_DualVector3* const source); extern inline void bgc_fp32_dual_vector3_revert(BGC_FP32_DualVector3* const vector); extern inline void bgc_fp64_dual_vector3_revert(BGC_FP64_DualVector3* const vector); extern inline void bgc_fp32_dual_vector3_get_reverse(BGC_FP32_DualVector3* const reverse, const BGC_FP32_DualVector3* const vector); extern inline void bgc_fp64_dual_vector3_get_reverse(BGC_FP64_DualVector3* const reverse, const BGC_FP64_DualVector3* const vector); extern inline void bgc_fp32_dual_vector3_add(BGC_FP32_DualVector3* const sum, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second); extern inline void bgc_fp64_dual_vector3_add(BGC_FP64_DualVector3* const sum, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second); extern inline void bgc_fp32_dual_vector3_add_scaled(BGC_FP32_DualVector3* const sum, const BGC_FP32_DualVector3* const base_vector, const BGC_FP32_DualVector3* const scalable_vector, const float scale); extern inline void bgc_fp64_dual_vector3_add_scaled(BGC_FP64_DualVector3* const sum, const BGC_FP64_DualVector3* const base_vector, const BGC_FP64_DualVector3* const scalable_vector, const double scale); extern inline void bgc_fp32_dual_vector3_subtract(BGC_FP32_DualVector3* const difference, const BGC_FP32_DualVector3* const minuend, const BGC_FP32_DualVector3* const subtrahend); extern inline void bgc_fp64_dual_vector3_subtract(BGC_FP64_DualVector3* const difference, const BGC_FP64_DualVector3* const minuend, const BGC_FP64_DualVector3* const subtrahend); extern inline void bgc_fp32_dual_vector3_subtract_scaled(BGC_FP32_DualVector3* const difference, const BGC_FP32_DualVector3* const base_vector, const BGC_FP32_DualVector3* const scalable_vector, const float scale); extern inline void bgc_fp64_dual_vector3_subtract_scaled(BGC_FP64_DualVector3* const difference, const BGC_FP64_DualVector3* const base_vector, const BGC_FP64_DualVector3* const scalable_vector, const double scale); extern inline void bgc_fp32_dual_vector3_multiply_by_real(BGC_FP32_DualVector3* const product, const BGC_FP32_DualVector3* const multiplicand, const float multiplier); extern inline void bgc_fp64_dual_vector3_multiply_by_real(BGC_FP64_DualVector3* const product, const BGC_FP64_DualVector3* const multiplicand, const double multiplier); extern inline void bgc_fp32_dual_vector3_multiply_by_dual(BGC_FP32_DualVector3* const product, const BGC_FP32_DualVector3* const multiplicand, const BGC_FP32_DualNumber* const multiplier); extern inline void bgc_fp64_dual_vector3_multiply_by_dual(BGC_FP64_DualVector3* const product, const BGC_FP64_DualVector3* const multiplicand, const BGC_FP64_DualNumber* const multiplier); extern inline void bgc_fp32_dual_vector3_multiply_by_conjugate(BGC_FP32_DualVector3* const product, const BGC_FP32_DualVector3* const multiplicand, const BGC_FP32_DualNumber* const multiplier_to_conjugate); extern inline void bgc_fp64_dual_vector3_multiply_by_conjugate(BGC_FP64_DualVector3* const product, const BGC_FP64_DualVector3* const multiplicand, const BGC_FP64_DualNumber* const multiplier_to_conjugate); extern inline int bgc_fp32_dual_vector3_divide_by_real(BGC_FP32_DualVector3* const quotient, const BGC_FP32_DualVector3* const dividend, const float divisor); extern inline int bgc_fp64_dual_vector3_divide_by_real(BGC_FP64_DualVector3* const quotient, const BGC_FP64_DualVector3* const dividend, const double divisor); extern inline int bgc_fp32_dual_vector3_divide_by_dual(BGC_FP32_DualVector3* const quotient, const BGC_FP32_DualVector3* const dividend, const BGC_FP32_DualNumber* const divisor); extern inline int bgc_fp64_dual_vector3_divide_by_dual(BGC_FP64_DualVector3* const quotient, const BGC_FP64_DualVector3* const dividend, const BGC_FP64_DualNumber* const divisor); extern inline int bgc_fp32_dual_vector3_divide_by_conjugate(BGC_FP32_DualVector3* const quotient, const BGC_FP32_DualVector3* const dividend, const BGC_FP32_DualNumber* const divisor_to_conjugate); extern inline int bgc_fp64_dual_vector3_divide_by_conjugate(BGC_FP64_DualVector3* const quotient, const BGC_FP64_DualVector3* const dividend, const BGC_FP64_DualNumber* const divisor_to_conjugate); extern inline void bgc_fp32_dual_vector3_get_mean2(BGC_FP32_DualVector3* const mean, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second); extern inline void bgc_fp64_dual_vector3_get_mean2(BGC_FP64_DualVector3* const mean, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second); extern inline void bgc_fp32_dual_vector3_get_mean3(BGC_FP32_DualVector3* const mean, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second, const BGC_FP32_DualVector3* const third); extern inline void bgc_fp64_dual_vector3_get_mean3(BGC_FP64_DualVector3* const mean, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second, const BGC_FP64_DualVector3* const third); extern inline void bgc_fp32_dual_vector3_interpolate(BGC_FP32_DualVector3* const interpolation, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second, const float phase); extern inline void bgc_fp64_dual_vector3_interpolate(BGC_FP64_DualVector3* const interpolation, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second, const double phase); extern inline void bgc_fp32_dual_vector3_get_dot_product(BGC_FP32_DualNumber* const product, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second); extern inline void bgc_fp64_dual_vector3_get_dot_product(BGC_FP64_DualNumber* const product, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second); extern inline void bgc_fp32_dual_vector3_get_cross_product(BGC_FP32_DualVector3* const product, const BGC_FP32_DualVector3* const first, const BGC_FP32_DualVector3* const second); extern inline void bgc_fp64_dual_vector3_get_cross_product(BGC_FP64_DualVector3* const product, const BGC_FP64_DualVector3* const first, const BGC_FP64_DualVector3* const second);