Операция исключения поворота для двумерного пространства (числа Котса)

This commit is contained in:
Andrey Pokidov 2025-03-11 01:44:08 +07:00
parent 0a1ca06ce5
commit 2e902bc040
2 changed files with 23 additions and 0 deletions

View file

@ -34,6 +34,9 @@ extern inline void bgc_cotes_number_get_exponation_fp64(const BgcCotesNumberFP64
extern inline void bgc_cotes_number_combine_fp32(const BgcCotesNumberFP32* number1, const BgcCotesNumberFP32* number2, BgcCotesNumberFP32* result);
extern inline void bgc_cotes_number_combine_fp64(const BgcCotesNumberFP64* number1, const BgcCotesNumberFP64* number2, BgcCotesNumberFP64* result);
extern inline void bgc_cotes_number_exclude_fp32(const BgcCotesNumberFP32* base, const BgcCotesNumberFP32* excludant, BgcCotesNumberFP32* difference);
extern inline void bgc_cotes_number_exclude_fp64(const BgcCotesNumberFP64* base, const BgcCotesNumberFP64* excludant, BgcCotesNumberFP64* difference);
extern inline void bgc_cotes_number_get_rotation_matrix_fp32(const BgcCotesNumberFP32* number, BgcMatrix2x2FP32* matrix);
extern inline void bgc_cotes_number_get_rotation_matrix_fp64(const BgcCotesNumberFP64* number, BgcMatrix2x2FP64* matrix);

View file

@ -277,6 +277,26 @@ inline void bgc_cotes_number_combine_fp64(const BgcCotesNumberFP64* number1, con
);
}
// ================= Exclusion ================== //
inline void bgc_cotes_number_exclude_fp32(const BgcCotesNumberFP32* base, const BgcCotesNumberFP32* excludant, BgcCotesNumberFP32* difference)
{
bgc_cotes_number_set_values_fp32(
base->cos * excludant->cos + base->sin * excludant->sin,
base->sin * excludant->cos - base->cos * excludant->sin,
difference
);
}
inline void bgc_cotes_number_exclude_fp64(const BgcCotesNumberFP64* base, const BgcCotesNumberFP64* excludant, BgcCotesNumberFP64* difference)
{
bgc_cotes_number_set_values_fp64(
base->cos * excludant->cos + base->sin * excludant->sin,
base->sin * excludant->cos - base->cos * excludant->sin,
difference
);
}
// ============== Rotation Matrix =============== //
inline void bgc_cotes_number_get_rotation_matrix_fp32(const BgcCotesNumberFP32* number, BgcMatrix2x2FP32* matrix)