Добавление квалификатора const, который запрещает изменение указателя
This commit is contained in:
parent
51fafe50c8
commit
610756ffed
14 changed files with 1019 additions and 1039 deletions
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
// =================== Reset ==================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_reset(BGC_FP32_DualNumber* number)
|
||||
inline void bgc_fp32_dual_number_reset(BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
number->real_part = 0.0f;
|
||||
number->dual_part = 0.0f;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_reset(BGC_FP64_DualNumber* number)
|
||||
inline void bgc_fp64_dual_number_reset(BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
number->real_part = 0.0;
|
||||
number->dual_part = 0.0;
|
||||
|
|
@ -22,13 +22,13 @@ inline void bgc_fp64_dual_number_reset(BGC_FP64_DualNumber* number)
|
|||
|
||||
// ==================== Make ==================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_make(BGC_FP32_DualNumber* number, const float real_part, const float dual_part)
|
||||
inline void bgc_fp32_dual_number_make(BGC_FP32_DualNumber* const number, const float real_part, const float dual_part)
|
||||
{
|
||||
number->real_part = real_part;
|
||||
number->dual_part = dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_make(BGC_FP64_DualNumber* number, const double real_part, const double dual_part)
|
||||
inline void bgc_fp64_dual_number_make(BGC_FP64_DualNumber* const number, const double real_part, const double dual_part)
|
||||
{
|
||||
number->real_part = real_part;
|
||||
number->dual_part = dual_part;
|
||||
|
|
@ -36,13 +36,13 @@ inline void bgc_fp64_dual_number_make(BGC_FP64_DualNumber* number, const double
|
|||
|
||||
// ==================== Copy ==================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_copy(BGC_FP32_DualNumber* destination, const BGC_FP32_DualNumber* source)
|
||||
inline void bgc_fp32_dual_number_copy(BGC_FP32_DualNumber* const destination, const BGC_FP32_DualNumber* const source)
|
||||
{
|
||||
destination->real_part = source->real_part;
|
||||
destination->dual_part = source->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_copy(BGC_FP64_DualNumber* destination, const BGC_FP64_DualNumber* source)
|
||||
inline void bgc_fp64_dual_number_copy(BGC_FP64_DualNumber* const destination, const BGC_FP64_DualNumber* const source)
|
||||
{
|
||||
destination->real_part = source->real_part;
|
||||
destination->dual_part = source->dual_part;
|
||||
|
|
@ -50,13 +50,13 @@ inline void bgc_fp64_dual_number_copy(BGC_FP64_DualNumber* destination, const BG
|
|||
|
||||
// ==================== Swap ==================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_swap(BGC_FP32_DualNumber* first, BGC_FP32_DualNumber* second)
|
||||
inline void bgc_fp32_dual_number_swap(BGC_FP32_DualNumber* const first, BGC_FP32_DualNumber* const second)
|
||||
{
|
||||
first->real_part = second->real_part;
|
||||
first->dual_part = second->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_swap(BGC_FP64_DualNumber* first, BGC_FP64_DualNumber* second)
|
||||
inline void bgc_fp64_dual_number_swap(BGC_FP64_DualNumber* const first, BGC_FP64_DualNumber* const second)
|
||||
{
|
||||
first->real_part = second->real_part;
|
||||
first->dual_part = second->dual_part;
|
||||
|
|
@ -64,39 +64,39 @@ inline void bgc_fp64_dual_number_swap(BGC_FP64_DualNumber* first, BGC_FP64_DualN
|
|||
|
||||
// ================== Modulus =================== //
|
||||
|
||||
inline double bgc_fp32_dual_number_get_modulus(const BGC_FP32_DualNumber* number)
|
||||
inline double bgc_fp32_dual_number_get_modulus(const BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
return fabsf(number->real_part);
|
||||
}
|
||||
|
||||
inline double bgc_fp64_dual_number_get_modulus(const BGC_FP64_DualNumber* number)
|
||||
inline double bgc_fp64_dual_number_get_modulus(const BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
return fabs(number->real_part);
|
||||
}
|
||||
|
||||
// ================== Convert =================== //
|
||||
|
||||
inline void bgc_fp64_dual_number_convert_to_fp32(BGC_FP32_DualNumber* first, BGC_FP64_DualNumber* second)
|
||||
inline void bgc_fp64_dual_number_convert_to_fp32(BGC_FP32_DualNumber* const destination, const BGC_FP64_DualNumber* const source)
|
||||
{
|
||||
first->real_part = (float) second->real_part;
|
||||
first->dual_part = (float) second->dual_part;
|
||||
destination->real_part = (float) source->real_part;
|
||||
destination->dual_part = (float) source->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp32_dual_number_convert_to_fp64(BGC_FP64_DualNumber* first, BGC_FP32_DualNumber* second)
|
||||
inline void bgc_fp32_dual_number_convert_to_fp64(BGC_FP64_DualNumber* const destination, const BGC_FP32_DualNumber* const source)
|
||||
{
|
||||
first->real_part = second->real_part;
|
||||
first->dual_part = second->dual_part;
|
||||
destination->real_part = source->real_part;
|
||||
destination->dual_part = source->dual_part;
|
||||
}
|
||||
|
||||
// =================== Revert =================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_revert(BGC_FP32_DualNumber* number)
|
||||
inline void bgc_fp32_dual_number_revert(BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
number->real_part = -number->real_part;
|
||||
number->dual_part = -number->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_revert(BGC_FP64_DualNumber* number)
|
||||
inline void bgc_fp64_dual_number_revert(BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
number->real_part = -number->real_part;
|
||||
number->dual_part = -number->dual_part;
|
||||
|
|
@ -104,13 +104,13 @@ inline void bgc_fp64_dual_number_revert(BGC_FP64_DualNumber* number)
|
|||
|
||||
// ================ Get Reverse ================= //
|
||||
|
||||
inline void bgc_fp32_dual_number_get_reverse(BGC_FP32_DualNumber* reverse, const BGC_FP32_DualNumber* number)
|
||||
inline void bgc_fp32_dual_number_get_reverse(BGC_FP32_DualNumber* const reverse, const BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
reverse->real_part = -number->real_part;
|
||||
reverse->dual_part = -number->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_get_reverse(BGC_FP64_DualNumber* reverse, const BGC_FP64_DualNumber* number)
|
||||
inline void bgc_fp64_dual_number_get_reverse(BGC_FP64_DualNumber* const reverse, const BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
reverse->real_part = -number->real_part;
|
||||
reverse->dual_part = -number->dual_part;
|
||||
|
|
@ -118,7 +118,7 @@ inline void bgc_fp64_dual_number_get_reverse(BGC_FP64_DualNumber* reverse, const
|
|||
|
||||
// =================== Invert =================== //
|
||||
|
||||
inline int bgc_fp32_dual_number_invert(BGC_FP32_DualNumber* number)
|
||||
inline int bgc_fp32_dual_number_invert(BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
if (bgc_fp32_is_zero(number->real_part) || isnan(number->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -132,7 +132,7 @@ inline int bgc_fp32_dual_number_invert(BGC_FP32_DualNumber* number)
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp64_dual_number_invert(BGC_FP64_DualNumber* number)
|
||||
inline int bgc_fp64_dual_number_invert(BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
if (bgc_fp64_is_zero(number->real_part) || isnan(number->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -148,7 +148,7 @@ inline int bgc_fp64_dual_number_invert(BGC_FP64_DualNumber* number)
|
|||
|
||||
// ================ Get Inverse ================= //
|
||||
|
||||
inline int bgc_fp32_dual_number_get_inverse(BGC_FP32_DualNumber* inverse, const BGC_FP32_DualNumber* number)
|
||||
inline int bgc_fp32_dual_number_get_inverse(BGC_FP32_DualNumber* const inverse, const BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
if (bgc_fp32_is_zero(number->real_part) || isnan(number->real_part)) {
|
||||
inverse->real_part = 0.0f;
|
||||
|
|
@ -164,7 +164,7 @@ inline int bgc_fp32_dual_number_get_inverse(BGC_FP32_DualNumber* inverse, const
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp64_dual_number_get_inverse(BGC_FP64_DualNumber* inverse, const BGC_FP64_DualNumber* number)
|
||||
inline int bgc_fp64_dual_number_get_inverse(BGC_FP64_DualNumber* const inverse, const BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
if (bgc_fp64_is_zero(number->real_part) || isnan(number->real_part)) {
|
||||
inverse->real_part = 0.0;
|
||||
|
|
@ -182,25 +182,25 @@ inline int bgc_fp64_dual_number_get_inverse(BGC_FP64_DualNumber* inverse, const
|
|||
|
||||
// ================= Conjugate ================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_conjugate(BGC_FP32_DualNumber* number)
|
||||
inline void bgc_fp32_dual_number_conjugate(BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
number->dual_part = -number->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_conjugate(BGC_FP64_DualNumber* number)
|
||||
inline void bgc_fp64_dual_number_conjugate(BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
number->dual_part = -number->dual_part;
|
||||
}
|
||||
|
||||
// =============== Get Conjugate ================ //
|
||||
|
||||
inline void bgc_fp32_dual_number_get_conjugate(BGC_FP32_DualNumber* conjugate, const BGC_FP32_DualNumber* number)
|
||||
inline void bgc_fp32_dual_number_get_conjugate(BGC_FP32_DualNumber* const conjugate, const BGC_FP32_DualNumber* const number)
|
||||
{
|
||||
conjugate->real_part = number->real_part;
|
||||
conjugate->dual_part = -number->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_get_conjugate(BGC_FP64_DualNumber* conjugate, const BGC_FP64_DualNumber* number)
|
||||
inline void bgc_fp64_dual_number_get_conjugate(BGC_FP64_DualNumber* const conjugate, const BGC_FP64_DualNumber* const number)
|
||||
{
|
||||
conjugate->real_part = number->real_part;
|
||||
conjugate->dual_part = -number->dual_part;
|
||||
|
|
@ -208,13 +208,13 @@ inline void bgc_fp64_dual_number_get_conjugate(BGC_FP64_DualNumber* conjugate, c
|
|||
|
||||
// ==================== Add ===================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_add(BGC_FP32_DualNumber* sum, const BGC_FP32_DualNumber* first, const BGC_FP32_DualNumber* second)
|
||||
inline void bgc_fp32_dual_number_add(BGC_FP32_DualNumber* const sum, const BGC_FP32_DualNumber* const first, const BGC_FP32_DualNumber* const second)
|
||||
{
|
||||
sum->real_part = first->real_part + second->real_part;
|
||||
sum->dual_part = first->dual_part + second->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_add(BGC_FP64_DualNumber* sum, const BGC_FP64_DualNumber* first, const BGC_FP64_DualNumber* second)
|
||||
inline void bgc_fp64_dual_number_add(BGC_FP64_DualNumber* const sum, const BGC_FP64_DualNumber* const first, const BGC_FP64_DualNumber* const second)
|
||||
{
|
||||
sum->real_part = first->real_part + second->real_part;
|
||||
sum->dual_part = first->dual_part + second->dual_part;
|
||||
|
|
@ -222,13 +222,13 @@ inline void bgc_fp64_dual_number_add(BGC_FP64_DualNumber* sum, const BGC_FP64_Du
|
|||
|
||||
// ================= Add Scaled ================= //
|
||||
|
||||
inline void bgc_fp32_dual_number_add_scaled(BGC_FP32_DualNumber* sum, const BGC_FP32_DualNumber* base_number, const BGC_FP32_DualNumber* scalable_number, const float scale)
|
||||
inline void bgc_fp32_dual_number_add_scaled(BGC_FP32_DualNumber* const sum, const BGC_FP32_DualNumber* const base_number, const BGC_FP32_DualNumber* const scalable_number, const float scale)
|
||||
{
|
||||
sum->real_part = base_number->real_part + scalable_number->real_part * scale;
|
||||
sum->dual_part = base_number->dual_part + scalable_number->dual_part * scale;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_add_scaled(BGC_FP64_DualNumber* sum, const BGC_FP64_DualNumber* base_number, const BGC_FP64_DualNumber* scalable_number, const double scale)
|
||||
inline void bgc_fp64_dual_number_add_scaled(BGC_FP64_DualNumber* const sum, const BGC_FP64_DualNumber* const base_number, const BGC_FP64_DualNumber* const scalable_number, const double scale)
|
||||
{
|
||||
sum->real_part = base_number->real_part + scalable_number->real_part * scale;
|
||||
sum->dual_part = base_number->dual_part + scalable_number->dual_part * scale;
|
||||
|
|
@ -236,13 +236,13 @@ inline void bgc_fp64_dual_number_add_scaled(BGC_FP64_DualNumber* sum, const BGC_
|
|||
|
||||
// ================== Subtract ================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_subtract(BGC_FP32_DualNumber* difference, const BGC_FP32_DualNumber* minuend, const BGC_FP32_DualNumber* subtrahend)
|
||||
inline void bgc_fp32_dual_number_subtract(BGC_FP32_DualNumber* const difference, const BGC_FP32_DualNumber* const minuend, const BGC_FP32_DualNumber* const subtrahend)
|
||||
{
|
||||
difference->real_part = minuend->real_part - subtrahend->real_part;
|
||||
difference->dual_part = minuend->dual_part - subtrahend->dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_subtract(BGC_FP64_DualNumber* difference, const BGC_FP64_DualNumber* minuend, const BGC_FP64_DualNumber* subtrahend)
|
||||
inline void bgc_fp64_dual_number_subtract(BGC_FP64_DualNumber* const difference, const BGC_FP64_DualNumber* const minuend, const BGC_FP64_DualNumber* const subtrahend)
|
||||
{
|
||||
difference->real_part = minuend->real_part - subtrahend->real_part;
|
||||
difference->dual_part = minuend->dual_part - subtrahend->dual_part;
|
||||
|
|
@ -250,13 +250,13 @@ inline void bgc_fp64_dual_number_subtract(BGC_FP64_DualNumber* difference, const
|
|||
|
||||
// ============== Subtract Scaled =============== //
|
||||
|
||||
inline void bgc_fp32_dual_number_subtract_scaled(BGC_FP32_DualNumber* difference, const BGC_FP32_DualNumber* base_number, const BGC_FP32_DualNumber* scalable_number, const float scale)
|
||||
inline void bgc_fp32_dual_number_subtract_scaled(BGC_FP32_DualNumber* const difference, const BGC_FP32_DualNumber* const base_number, const BGC_FP32_DualNumber* const scalable_number, const float scale)
|
||||
{
|
||||
difference->real_part = base_number->real_part - scalable_number->real_part * scale;
|
||||
difference->dual_part = base_number->dual_part - scalable_number->dual_part * scale;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_subtract_scaled(BGC_FP64_DualNumber* difference, const BGC_FP64_DualNumber* base_number, const BGC_FP64_DualNumber* scalable_number, const double scale)
|
||||
inline void bgc_fp64_dual_number_subtract_scaled(BGC_FP64_DualNumber* const difference, const BGC_FP64_DualNumber* const base_number, const BGC_FP64_DualNumber* const scalable_number, const double scale)
|
||||
{
|
||||
difference->real_part = base_number->real_part - scalable_number->real_part * scale;
|
||||
difference->dual_part = base_number->dual_part - scalable_number->dual_part * scale;
|
||||
|
|
@ -264,19 +264,19 @@ inline void bgc_fp64_dual_number_subtract_scaled(BGC_FP64_DualNumber* difference
|
|||
|
||||
// ================== Multiply ================== //
|
||||
|
||||
inline void bgc_fp32_dual_number_multiply_by_real(BGC_FP32_DualNumber* product, const BGC_FP32_DualNumber* multiplicand, const float multiplier)
|
||||
inline void bgc_fp32_dual_number_multiply_by_real(BGC_FP32_DualNumber* const product, const BGC_FP32_DualNumber* const multiplicand, const float multiplier)
|
||||
{
|
||||
product->real_part = multiplicand->real_part * multiplier;
|
||||
product->dual_part = multiplicand->dual_part * multiplier;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_multiply_by_real(BGC_FP64_DualNumber* product, const BGC_FP64_DualNumber* multiplicand, const double multiplier)
|
||||
inline void bgc_fp64_dual_number_multiply_by_real(BGC_FP64_DualNumber* const product, const BGC_FP64_DualNumber* const multiplicand, const double multiplier)
|
||||
{
|
||||
product->real_part = multiplicand->real_part * multiplier;
|
||||
product->dual_part = multiplicand->dual_part * multiplier;
|
||||
}
|
||||
|
||||
inline void bgc_fp32_dual_number_multiply_by_dual(BGC_FP32_DualNumber* product, const BGC_FP32_DualNumber* multiplicand, const BGC_FP32_DualNumber* multiplier)
|
||||
inline void bgc_fp32_dual_number_multiply_by_dual(BGC_FP32_DualNumber* const product, const BGC_FP32_DualNumber* const multiplicand, const BGC_FP32_DualNumber* const multiplier)
|
||||
{
|
||||
const float real_part = multiplicand->real_part * multiplier->real_part;
|
||||
const float dual_part = multiplicand->dual_part * multiplier->real_part + multiplicand->real_part * multiplier->dual_part;
|
||||
|
|
@ -285,7 +285,7 @@ inline void bgc_fp32_dual_number_multiply_by_dual(BGC_FP32_DualNumber* product,
|
|||
product->dual_part = dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_multiply_by_dual(BGC_FP64_DualNumber* product, const BGC_FP64_DualNumber* multiplicand, const BGC_FP64_DualNumber* multiplier)
|
||||
inline void bgc_fp64_dual_number_multiply_by_dual(BGC_FP64_DualNumber* const product, const BGC_FP64_DualNumber* const multiplicand, const BGC_FP64_DualNumber* const multiplier)
|
||||
{
|
||||
const double real_part = multiplicand->real_part * multiplier->real_part;
|
||||
const double dual_part = multiplicand->dual_part * multiplier->real_part + multiplicand->real_part * multiplier->dual_part;
|
||||
|
|
@ -294,7 +294,7 @@ inline void bgc_fp64_dual_number_multiply_by_dual(BGC_FP64_DualNumber* product,
|
|||
product->dual_part = dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp32_dual_number_multiply_by_conjugate(BGC_FP32_DualNumber* product, const BGC_FP32_DualNumber* multiplicand, const BGC_FP32_DualNumber* multiplier_to_conjugate)
|
||||
inline void bgc_fp32_dual_number_multiply_by_conjugate(BGC_FP32_DualNumber* const product, const BGC_FP32_DualNumber* const multiplicand, const BGC_FP32_DualNumber* const multiplier_to_conjugate)
|
||||
{
|
||||
const float real_part = multiplicand->real_part * multiplier_to_conjugate->real_part;
|
||||
const float dual_part = multiplicand->dual_part * multiplier_to_conjugate->real_part - multiplicand->real_part * multiplier_to_conjugate->dual_part;
|
||||
|
|
@ -303,7 +303,7 @@ inline void bgc_fp32_dual_number_multiply_by_conjugate(BGC_FP32_DualNumber* prod
|
|||
product->dual_part = dual_part;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_multiply_by_conjugate(BGC_FP64_DualNumber* product, const BGC_FP64_DualNumber* multiplicand, const BGC_FP64_DualNumber* multiplier_to_conjugate)
|
||||
inline void bgc_fp64_dual_number_multiply_by_conjugate(BGC_FP64_DualNumber* const product, const BGC_FP64_DualNumber* const multiplicand, const BGC_FP64_DualNumber* const multiplier_to_conjugate)
|
||||
{
|
||||
const double real_part = multiplicand->real_part * multiplier_to_conjugate->real_part;
|
||||
const double dual_part = multiplicand->dual_part * multiplier_to_conjugate->real_part - multiplicand->real_part * multiplier_to_conjugate->dual_part;
|
||||
|
|
@ -313,7 +313,7 @@ inline void bgc_fp64_dual_number_multiply_by_conjugate(BGC_FP64_DualNumber* prod
|
|||
}
|
||||
// =================== Divide =================== //
|
||||
|
||||
inline int bgc_fp32_dual_number_divide_by_real(BGC_FP32_DualNumber* quotient, const BGC_FP32_DualNumber* dividend, const float divisor)
|
||||
inline int bgc_fp32_dual_number_divide_by_real(BGC_FP32_DualNumber* const quotient, const BGC_FP32_DualNumber* const dividend, const float divisor)
|
||||
{
|
||||
if (bgc_fp32_is_zero(divisor) || isnan(divisor)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -323,7 +323,7 @@ inline int bgc_fp32_dual_number_divide_by_real(BGC_FP32_DualNumber* quotient, co
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp64_dual_number_divide_by_real(BGC_FP64_DualNumber* quotient, const BGC_FP64_DualNumber* dividend, const double divisor)
|
||||
inline int bgc_fp64_dual_number_divide_by_real(BGC_FP64_DualNumber* const quotient, const BGC_FP64_DualNumber* const dividend, const double divisor)
|
||||
{
|
||||
if (bgc_fp64_is_zero(divisor) || isnan(divisor)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -333,7 +333,7 @@ inline int bgc_fp64_dual_number_divide_by_real(BGC_FP64_DualNumber* quotient, co
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp32_dual_number_divide_by_dual(BGC_FP32_DualNumber* quotient, const BGC_FP32_DualNumber* dividend, const BGC_FP32_DualNumber* divisor)
|
||||
inline int bgc_fp32_dual_number_divide_by_dual(BGC_FP32_DualNumber* const quotient, const BGC_FP32_DualNumber* const dividend, const BGC_FP32_DualNumber* const divisor)
|
||||
{
|
||||
if (bgc_fp32_is_zero(divisor->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -350,7 +350,7 @@ inline int bgc_fp32_dual_number_divide_by_dual(BGC_FP32_DualNumber* quotient, co
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp64_dual_number_divide_by_dual(BGC_FP64_DualNumber* quotient, const BGC_FP64_DualNumber* dividend, const BGC_FP64_DualNumber* divisor)
|
||||
inline int bgc_fp64_dual_number_divide_by_dual(BGC_FP64_DualNumber* const quotient, const BGC_FP64_DualNumber* const dividend, const BGC_FP64_DualNumber* const divisor)
|
||||
{
|
||||
if (bgc_fp64_is_zero(divisor->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -367,7 +367,7 @@ inline int bgc_fp64_dual_number_divide_by_dual(BGC_FP64_DualNumber* quotient, co
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp32_dual_number_divide_by_conjugate(BGC_FP32_DualNumber* quotient, const BGC_FP32_DualNumber* dividend, const BGC_FP32_DualNumber* divisor_to_conjugate)
|
||||
inline int bgc_fp32_dual_number_divide_by_conjugate(BGC_FP32_DualNumber* const quotient, const BGC_FP32_DualNumber* const dividend, const BGC_FP32_DualNumber* const divisor_to_conjugate)
|
||||
{
|
||||
if (bgc_fp32_is_zero(divisor_to_conjugate->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -384,7 +384,7 @@ inline int bgc_fp32_dual_number_divide_by_conjugate(BGC_FP32_DualNumber* quotien
|
|||
return BGC_SUCCESS;
|
||||
}
|
||||
|
||||
inline int bgc_fp64_dual_number_divide_by_conjugate(BGC_FP64_DualNumber* quotient, const BGC_FP64_DualNumber* dividend, const BGC_FP64_DualNumber* divisor_to_conjugate)
|
||||
inline int bgc_fp64_dual_number_divide_by_conjugate(BGC_FP64_DualNumber* const quotient, const BGC_FP64_DualNumber* const dividend, const BGC_FP64_DualNumber* const divisor_to_conjugate)
|
||||
{
|
||||
if (bgc_fp64_is_zero(divisor_to_conjugate->real_part)) {
|
||||
return BGC_FAILURE;
|
||||
|
|
@ -403,13 +403,13 @@ inline int bgc_fp64_dual_number_divide_by_conjugate(BGC_FP64_DualNumber* quotien
|
|||
|
||||
// ================ Mean of Two ================= //
|
||||
|
||||
inline void bgc_fp32_dual_number_get_mean2(BGC_FP32_DualNumber* mean, const BGC_FP32_DualNumber* first, const BGC_FP32_DualNumber* second)
|
||||
inline void bgc_fp32_dual_number_get_mean2(BGC_FP32_DualNumber* const mean, const BGC_FP32_DualNumber* const first, const BGC_FP32_DualNumber* const second)
|
||||
{
|
||||
mean->real_part = (first->real_part + second->real_part) * 0.5f;
|
||||
mean->dual_part = (first->dual_part + second->dual_part) * 0.5f;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_get_mean2(BGC_FP64_DualNumber* mean, const BGC_FP64_DualNumber* first, const BGC_FP64_DualNumber* second)
|
||||
inline void bgc_fp64_dual_number_get_mean2(BGC_FP64_DualNumber* const mean, const BGC_FP64_DualNumber* const first, const BGC_FP64_DualNumber* const second)
|
||||
{
|
||||
mean->real_part = (first->real_part + second->real_part) * 0.5;
|
||||
mean->dual_part = (first->dual_part + second->dual_part) * 0.5;
|
||||
|
|
@ -417,13 +417,13 @@ inline void bgc_fp64_dual_number_get_mean2(BGC_FP64_DualNumber* mean, const BGC_
|
|||
|
||||
// =============== Mean of Three ================ //
|
||||
|
||||
inline void bgc_fp32_dual_number_get_mean3(BGC_FP32_DualNumber* mean, const BGC_FP32_DualNumber* first, const BGC_FP32_DualNumber* second, const BGC_FP32_DualNumber* third)
|
||||
inline void bgc_fp32_dual_number_get_mean3(BGC_FP32_DualNumber* const mean, const BGC_FP32_DualNumber* const first, const BGC_FP32_DualNumber* const second, const BGC_FP32_DualNumber* const third)
|
||||
{
|
||||
mean->real_part = (first->real_part + second->real_part + third->real_part) * BGC_FP32_ONE_THIRD;
|
||||
mean->dual_part = (first->dual_part + second->dual_part + third->dual_part) * BGC_FP32_ONE_THIRD;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_get_mean3(BGC_FP64_DualNumber* mean, const BGC_FP64_DualNumber* first, const BGC_FP64_DualNumber* second, const BGC_FP64_DualNumber* third)
|
||||
inline void bgc_fp64_dual_number_get_mean3(BGC_FP64_DualNumber* const mean, const BGC_FP64_DualNumber* const first, const BGC_FP64_DualNumber* const second, const BGC_FP64_DualNumber* const third)
|
||||
{
|
||||
mean->real_part = (first->real_part + second->real_part + third->real_part) * BGC_FP64_ONE_THIRD;
|
||||
mean->dual_part = (first->dual_part + second->dual_part + third->dual_part) * BGC_FP64_ONE_THIRD;
|
||||
|
|
@ -431,7 +431,7 @@ inline void bgc_fp64_dual_number_get_mean3(BGC_FP64_DualNumber* mean, const BGC_
|
|||
|
||||
// ============ Linear Interpolation ============ //
|
||||
|
||||
inline void bgc_fp32_dual_number_interpolate(BGC_FP32_DualNumber* interpolation, const BGC_FP32_DualNumber* first, const BGC_FP32_DualNumber* second, const float phase)
|
||||
inline void bgc_fp32_dual_number_interpolate(BGC_FP32_DualNumber* const interpolation, const BGC_FP32_DualNumber* const first, const BGC_FP32_DualNumber* const second, const float phase)
|
||||
{
|
||||
const float counter_phase = 1.0f - phase;
|
||||
|
||||
|
|
@ -439,7 +439,7 @@ inline void bgc_fp32_dual_number_interpolate(BGC_FP32_DualNumber* interpolation,
|
|||
interpolation->dual_part = first->dual_part * counter_phase + second->dual_part * phase;
|
||||
}
|
||||
|
||||
inline void bgc_fp64_dual_number_interpolate(BGC_FP64_DualNumber* interpolation, const BGC_FP64_DualNumber* first, const BGC_FP64_DualNumber* second, const double phase)
|
||||
inline void bgc_fp64_dual_number_interpolate(BGC_FP64_DualNumber* const interpolation, const BGC_FP64_DualNumber* const first, const BGC_FP64_DualNumber* const second, const double phase)
|
||||
{
|
||||
const double counter_phase = 1.0 - phase;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue