Добавление новых функций, возвращение функций subtract_scaled

This commit is contained in:
Andrey Pokidov 2026-02-15 23:41:01 +07:00
parent 727961ad98
commit 1075624d05
26 changed files with 836 additions and 292 deletions

View file

@ -238,22 +238,40 @@ inline void bgc_fp64_quaternion_subtract(BGC_FP64_Quaternion* difference, const
difference->x3 = minuend->x3 - subtrahend->x3;
}
// ============= Multiply By Number ============= //
// ============== Subtract Scaled =============== //
inline void bgc_fp32_quaternion_multiply_by_real(BGC_FP32_Quaternion* product, const BGC_FP32_Quaternion* multiplicand, const float multipier)
inline void bgc_fp32_quaternion_subtract_scaled(BGC_FP32_Quaternion* difference, const BGC_FP32_Quaternion* basic_quaternion, const BGC_FP32_Quaternion* scalable_quaternion, const float scale)
{
product->s0 = multiplicand->s0 * multipier;
product->x1 = multiplicand->x1 * multipier;
product->x2 = multiplicand->x2 * multipier;
product->x3 = multiplicand->x3 * multipier;
difference->s0 = basic_quaternion->s0 - scalable_quaternion->s0 * scale;
difference->x1 = basic_quaternion->x1 - scalable_quaternion->x1 * scale;
difference->x2 = basic_quaternion->x2 - scalable_quaternion->x2 * scale;
difference->x3 = basic_quaternion->x3 - scalable_quaternion->x3 * scale;
}
inline void bgc_fp64_quaternion_multiply_by_real(BGC_FP64_Quaternion* product, const BGC_FP64_Quaternion* multiplicand, const double multipier)
inline void bgc_fp64_quaternion_subtract_scaled(BGC_FP64_Quaternion* difference, const BGC_FP64_Quaternion* basic_quaternion, const BGC_FP64_Quaternion* scalable_quaternion, const double scale)
{
product->s0 = multiplicand->s0 * multipier;
product->x1 = multiplicand->x1 * multipier;
product->x2 = multiplicand->x2 * multipier;
product->x3 = multiplicand->x3 * multipier;
difference->s0 = basic_quaternion->s0 - scalable_quaternion->s0 * scale;
difference->x1 = basic_quaternion->x1 - scalable_quaternion->x1 * scale;
difference->x2 = basic_quaternion->x2 - scalable_quaternion->x2 * scale;
difference->x3 = basic_quaternion->x3 - scalable_quaternion->x3 * scale;
}
// ============= Multiply By Number ============= //
inline void bgc_fp32_quaternion_multiply_by_real(BGC_FP32_Quaternion* product, const BGC_FP32_Quaternion* multiplicand, const float multiplier)
{
product->s0 = multiplicand->s0 * multiplier;
product->x1 = multiplicand->x1 * multiplier;
product->x2 = multiplicand->x2 * multiplier;
product->x3 = multiplicand->x3 * multiplier;
}
inline void bgc_fp64_quaternion_multiply_by_real(BGC_FP64_Quaternion* product, const BGC_FP64_Quaternion* multiplicand, const double multiplier)
{
product->s0 = multiplicand->s0 * multiplier;
product->x1 = multiplicand->x1 * multiplier;
product->x2 = multiplicand->x2 * multiplier;
product->x3 = multiplicand->x3 * multiplier;
}
// =========== Multiply By Quaternion =========== //