Добавление новых функций, возвращение функций subtract_scaled
This commit is contained in:
parent
727961ad98
commit
1075624d05
26 changed files with 836 additions and 292 deletions
|
|
@ -24,7 +24,7 @@
|
||||||
<ClInclude Include="angle.h" />
|
<ClInclude Include="angle.h" />
|
||||||
<ClInclude Include="basic-geometry.h" />
|
<ClInclude Include="basic-geometry.h" />
|
||||||
<ClInclude Include="complex.h" />
|
<ClInclude Include="complex.h" />
|
||||||
<ClInclude Include="dual-scalar.h" />
|
<ClInclude Include="dual-number.h" />
|
||||||
<ClInclude Include="dual-quaternion.h" />
|
<ClInclude Include="dual-quaternion.h" />
|
||||||
<ClInclude Include="dual-vector3.h" />
|
<ClInclude Include="dual-vector3.h" />
|
||||||
<ClInclude Include="matrix2x2.h" />
|
<ClInclude Include="matrix2x2.h" />
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<ClCompile Include="affine3.c" />
|
<ClCompile Include="affine3.c" />
|
||||||
<ClCompile Include="angle.c" />
|
<ClCompile Include="angle.c" />
|
||||||
<ClInclude Include="complex.c" />
|
<ClInclude Include="complex.c" />
|
||||||
<ClCompile Include="dual-scalar.c" />
|
<ClCompile Include="dual-number.c" />
|
||||||
<ClCompile Include="dual-quaternion.c" />
|
<ClCompile Include="dual-quaternion.c" />
|
||||||
<ClCompile Include="dual-vector3.c" />
|
<ClCompile Include="dual-vector3.c" />
|
||||||
<ClCompile Include="position2.c" />
|
<ClCompile Include="position2.c" />
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@
|
||||||
<ClInclude Include="turn3.h">
|
<ClInclude Include="turn3.h">
|
||||||
<Filter>Файлы заголовков</Filter>
|
<Filter>Файлы заголовков</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="dual-scalar.h">
|
<ClInclude Include="dual-number.h">
|
||||||
<Filter>Файлы заголовков</Filter>
|
<Filter>Файлы заголовков</Filter>
|
||||||
</ClInclude>
|
</ClInclude>
|
||||||
<ClInclude Include="slerp3.h">
|
<ClInclude Include="slerp3.h">
|
||||||
|
|
@ -137,7 +137,7 @@
|
||||||
<ClCompile Include="turn3.c">
|
<ClCompile Include="turn3.c">
|
||||||
<Filter>Исходные файлы</Filter>
|
<Filter>Исходные файлы</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="dual-scalar.c">
|
<ClCompile Include="dual-number.c">
|
||||||
<Filter>Исходные файлы</Filter>
|
<Filter>Исходные файлы</Filter>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
<ClCompile Include="slerp3.c">
|
<ClCompile Include="slerp3.c">
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,9 @@ extern inline void bgc_fp64_complex_add_scaled(BGC_FP64_Complex* sum, const BGC_
|
||||||
extern inline void bgc_fp32_complex_subtract(BGC_FP32_Complex* difference, const BGC_FP32_Complex* minuend, const BGC_FP32_Complex* subtrahend);
|
extern inline void bgc_fp32_complex_subtract(BGC_FP32_Complex* difference, const BGC_FP32_Complex* minuend, const BGC_FP32_Complex* subtrahend);
|
||||||
extern inline void bgc_fp64_complex_subtract(BGC_FP64_Complex* difference, const BGC_FP64_Complex* minuend, const BGC_FP64_Complex* subtrahend);
|
extern inline void bgc_fp64_complex_subtract(BGC_FP64_Complex* difference, const BGC_FP64_Complex* minuend, const BGC_FP64_Complex* subtrahend);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_complex_subtract_scaled(BGC_FP32_Complex* difference, const BGC_FP32_Complex* basic_number, const BGC_FP32_Complex* scalable_number, const float scale);
|
||||||
|
extern inline void bgc_fp64_complex_subtract_scaled(BGC_FP64_Complex* difference, const BGC_FP64_Complex* basic_number, const BGC_FP64_Complex* scalable_number, const double scale);
|
||||||
|
|
||||||
extern inline void bgc_fp32_complex_multiply_by_real(BGC_FP32_Complex* product, const BGC_FP32_Complex* multiplicand, const float multiplier);
|
extern inline void bgc_fp32_complex_multiply_by_real(BGC_FP32_Complex* product, const BGC_FP32_Complex* multiplicand, const float multiplier);
|
||||||
extern inline void bgc_fp64_complex_multiply_by_real(BGC_FP64_Complex* product, const BGC_FP64_Complex* multiplicand, const double multiplier);
|
extern inline void bgc_fp64_complex_multiply_by_real(BGC_FP64_Complex* product, const BGC_FP64_Complex* multiplicand, const double multiplier);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -337,7 +337,7 @@ inline void bgc_fp64_complex_add(BGC_FP64_Complex* sum, const BGC_FP64_Complex*
|
||||||
sum->imaginary = number1->imaginary + number2->imaginary;
|
sum->imaginary = number1->imaginary + number2->imaginary;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ================= Add scaled ================= //
|
// ================= Add Scaled ================= //
|
||||||
|
|
||||||
inline void bgc_fp32_complex_add_scaled(BGC_FP32_Complex* sum, const BGC_FP32_Complex* basic_number, const BGC_FP32_Complex* scalable_number, const float scale)
|
inline void bgc_fp32_complex_add_scaled(BGC_FP32_Complex* sum, const BGC_FP32_Complex* basic_number, const BGC_FP32_Complex* scalable_number, const float scale)
|
||||||
{
|
{
|
||||||
|
|
@ -365,6 +365,20 @@ inline void bgc_fp64_complex_subtract(BGC_FP64_Complex* difference, const BGC_FP
|
||||||
difference->imaginary = minuend->imaginary - subtrahend->imaginary;
|
difference->imaginary = minuend->imaginary - subtrahend->imaginary;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ============== Subtract Scaled =============== //
|
||||||
|
|
||||||
|
inline void bgc_fp32_complex_subtract_scaled(BGC_FP32_Complex* difference, const BGC_FP32_Complex* basic_number, const BGC_FP32_Complex* scalable_number, const float scale)
|
||||||
|
{
|
||||||
|
difference->real = basic_number->real - scalable_number->real * scale;
|
||||||
|
difference->imaginary = basic_number->imaginary - scalable_number->imaginary * scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
inline void bgc_fp64_complex_subtract_scaled(BGC_FP64_Complex* difference, const BGC_FP64_Complex* basic_number, const BGC_FP64_Complex* scalable_number, const double scale)
|
||||||
|
{
|
||||||
|
difference->real = basic_number->real - scalable_number->real * scale;
|
||||||
|
difference->imaginary = basic_number->imaginary - scalable_number->imaginary * scale;
|
||||||
|
}
|
||||||
|
|
||||||
// ========== Multiply By Real Number =========== //
|
// ========== Multiply By Real Number =========== //
|
||||||
|
|
||||||
inline void bgc_fp32_complex_multiply_by_real(BGC_FP32_Complex* product, const BGC_FP32_Complex* multiplicand, const float multiplier)
|
inline void bgc_fp32_complex_multiply_by_real(BGC_FP32_Complex* product, const BGC_FP32_Complex* multiplicand, const float multiplier)
|
||||||
|
|
|
||||||
73
basic-geometry/dual-number.c
Normal file
73
basic-geometry/dual-number.c
Normal file
|
|
@ -0,0 +1,73 @@
|
||||||
|
#include "./dual-number.h"
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_reset(BGC_FP32_DualNumber* number);
|
||||||
|
extern inline void bgc_fp64_dual_number_reset(BGC_FP64_DualNumber* number);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_make(BGC_FP32_DualNumber* number, const float real_part, const float dual_part);
|
||||||
|
extern inline void bgc_fp64_dual_number_make(BGC_FP64_DualNumber* number, const double real_part, const double dual_part);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_copy(BGC_FP32_DualNumber* destination, const BGC_FP32_DualNumber* source);
|
||||||
|
extern inline void bgc_fp64_dual_number_copy(BGC_FP64_DualNumber* destination, const BGC_FP64_DualNumber* source);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_swap(BGC_FP32_DualNumber* first, BGC_FP32_DualNumber* second);
|
||||||
|
extern inline void bgc_fp64_dual_number_swap(BGC_FP64_DualNumber* first, BGC_FP64_DualNumber* second);
|
||||||
|
|
||||||
|
extern inline void bgc_fp64_dual_number_convert_to_fp32(BGC_FP32_DualNumber* first, BGC_FP64_DualNumber* second);
|
||||||
|
extern inline void bgc_fp32_dual_number_convert_to_fp64(BGC_FP64_DualNumber* first, BGC_FP32_DualNumber* second);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_revert(BGC_FP32_DualNumber* number);
|
||||||
|
extern inline void bgc_fp64_dual_number_revert(BGC_FP64_DualNumber* number);
|
||||||
|
|
||||||
|
extern inline void bgc_fp32_dual_number_get_reverse(BGC_FP32_DualNumber* reverse, const BGC_FP32_DualNumber* number);
|
||||||