From 2e902bc04062eb235c0d6bcc68537113012cd66a Mon Sep 17 00:00:00 2001 From: Andrey Pokidov Date: Tue, 11 Mar 2025 01:44:08 +0700 Subject: [PATCH] =?UTF-8?q?=D0=9E=D0=BF=D0=B5=D1=80=D0=B0=D1=86=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D0=BE=D0=B2=D0=BE=D1=80=D0=BE=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D0=B4=D0=B2=D1=83=D0=BC=D0=B5=D1=80=D0=BD?= =?UTF-8?q?=D0=BE=D0=B3=D0=BE=20=D0=BF=D1=80=D0=BE=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D1=81=D1=82=D0=B2=D0=B0=20(=D1=87=D0=B8=D1=81=D0=BB?= =?UTF-8?q?=D0=B0=20=D0=9A=D0=BE=D1=82=D1=81=D0=B0)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- basic-geometry/cotes-number.c | 3 +++ basic-geometry/cotes-number.h | 20 ++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/basic-geometry/cotes-number.c b/basic-geometry/cotes-number.c index fc7cc57..f00206b 100644 --- a/basic-geometry/cotes-number.c +++ b/basic-geometry/cotes-number.c @@ -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); diff --git a/basic-geometry/cotes-number.h b/basic-geometry/cotes-number.h index e4944a6..1990948 100644 --- a/basic-geometry/cotes-number.h +++ b/basic-geometry/cotes-number.h @@ -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)