Переход на версию 0.3: изменение подхода к именованию сущностей, добавление, изменение и удаление ряда функций

This commit is contained in:
Andrey Pokidov 2026-01-30 19:37:49 +07:00
parent d33daf4e2d
commit f7e41645fe
87 changed files with 4580 additions and 4051 deletions

View file

@ -12,22 +12,22 @@ static const TestNumberPairFP32 _TEST_FP32_DATA_CLOSE[] = {
{1.0f, 1.0f},
{-1.0f, -1.0f},
{-0.4f * BGC_EPSYLON_FP32, 0.4f * BGC_EPSYLON_FP32},
{-0.4f * BGC_FP32_EPSYLON, 0.4f * BGC_FP32_EPSYLON},
{1.0f, 1.0f + 0.75f * BGC_EPSYLON_FP32},
{1.0f, 1.0f - 0.75f * BGC_EPSYLON_FP32},
{1.0f + 0.75f * BGC_EPSYLON_FP32, 1.0f},
{1.0f - 0.75f * BGC_EPSYLON_FP32, 1.0f},
{1.0f, 1.0f + 0.75f * BGC_FP32_EPSYLON},
{1.0f, 1.0f - 0.75f * BGC_FP32_EPSYLON},
{1.0f + 0.75f * BGC_FP32_EPSYLON, 1.0f},
{1.0f - 0.75f * BGC_FP32_EPSYLON, 1.0f},
{-1.0f, -1.0f + 0.75f * BGC_EPSYLON_FP32},
{-1.0f, -1.0f - 0.75f * BGC_EPSYLON_FP32},
{-1.0f + 0.75f * BGC_EPSYLON_FP32, -1.0f},
{-1.0f - 0.75f * BGC_EPSYLON_FP32, -1.0f},
{-1.0f, -1.0f + 0.75f * BGC_FP32_EPSYLON},
{-1.0f, -1.0f - 0.75f * BGC_FP32_EPSYLON},
{-1.0f + 0.75f * BGC_FP32_EPSYLON, -1.0f},
{-1.0f - 0.75f * BGC_FP32_EPSYLON, -1.0f},
{100.0f, 100.0f * (1.0f + 0.75f * BGC_EPSYLON_FP32)},
{100.0f, 100.0f * (1.0f - 0.75f * BGC_EPSYLON_FP32)},
{-100.0f, -100.0f * (1.0f + 0.75f * BGC_EPSYLON_FP32)},
{-100.0f, -100.0f * (1.0f - 0.75f * BGC_EPSYLON_FP32)}
{100.0f, 100.0f * (1.0f + 0.75f * BGC_FP32_EPSYLON)},
{100.0f, 100.0f * (1.0f - 0.75f * BGC_FP32_EPSYLON)},
{-100.0f, -100.0f * (1.0f + 0.75f * BGC_FP32_EPSYLON)},
{-100.0f, -100.0f * (1.0f - 0.75f * BGC_FP32_EPSYLON)}
};
static const TestNumberPairFP32 _TEST_FP32_DATA_DIFFERENT[] = {
@ -35,31 +35,31 @@ static const TestNumberPairFP32 _TEST_FP32_DATA_DIFFERENT[] = {
{1.0f, 0.999f},
{-1.0f, -0.999f},
{-0.6f * BGC_EPSYLON_FP32, 0.6f * BGC_EPSYLON_FP32},
{-0.6f * BGC_FP32_EPSYLON, 0.6f * BGC_FP32_EPSYLON},
{1.0f, 1.0f + 1.25f * BGC_EPSYLON_FP32},
{1.0f, 1.0f - 1.25f * BGC_EPSYLON_FP32},
{1.0f + 1.25f * BGC_EPSYLON_FP32, 1.0f},
{1.0f - 1.25f * BGC_EPSYLON_FP32, 1.0f},
{1.0f, 1.0f + 1.25f * BGC_FP32_EPSYLON},
{1.0f, 1.0f - 1.25f * BGC_FP32_EPSYLON},
{1.0f + 1.25f * BGC_FP32_EPSYLON, 1.0f},
{1.0f - 1.25f * BGC_FP32_EPSYLON, 1.0f},
{-1.0f, -1.0f + 1.25f * BGC_EPSYLON_FP32},
{-1.0f, -1.0f - 1.25f * BGC_EPSYLON_FP32},
{-1.0f + 1.25f * BGC_EPSYLON_FP32, -1.0f},
{-1.0f - 1.25f * BGC_EPSYLON_FP32, -1.0f},
{-1.0f, -1.0f + 1.25f * BGC_FP32_EPSYLON},
{-1.0f, -1.0f - 1.25f * BGC_FP32_EPSYLON},
{-1.0f + 1.25f * BGC_FP32_EPSYLON, -1.0f},
{-1.0f - 1.25f * BGC_FP32_EPSYLON, -1.0f},
{100.0f, 100.0f * (1.0f + 1.25f * BGC_EPSYLON_FP32)},
{100.0f, 100.0f * (1.0f - 1.25f * BGC_EPSYLON_FP32)},
{-100.0f, -100.0f * (1.0f + 1.25f * BGC_EPSYLON_FP32)},
{-100.0f, -100.0f * (1.0f - 1.25f * BGC_EPSYLON_FP32)}
{100.0f, 100.0f * (1.0f + 1.25f * BGC_FP32_EPSYLON)},
{100.0f, 100.0f * (1.0f - 1.25f * BGC_FP32_EPSYLON)},
{-100.0f, -100.0f * (1.0f + 1.25f * BGC_FP32_EPSYLON)},
{-100.0f, -100.0f * (1.0f - 1.25f * BGC_FP32_EPSYLON)}
};
void test_are_close_fp32()
{
print_testing_name("bgc_are_close_fp32");
print_testing_name("bgc_fp32_are_close");
// Testing close pairs of values:
for (int i = 0; i < _TEST_FP32_CLOSE_NUMBERS_AMOUNT; i++) {
if (!bgc_are_close_fp32(_TEST_FP32_DATA_CLOSE[i].number1, _TEST_FP32_DATA_CLOSE[i].number2)) {
if (!bgc_fp32_are_close(_TEST_FP32_DATA_CLOSE[i].number1, _TEST_FP32_DATA_CLOSE[i].number2)) {
print_testing_error("A pair of close numbers was not recognized");
return;
}
@ -67,7 +67,7 @@ void test_are_close_fp32()
// Testing different pairs of values:
for (int i = 0; i < _TEST_FP32_DIFFERENT_NUMBERS_AMOUNT; i++) {
if (bgc_are_close_fp32(_TEST_FP32_DATA_DIFFERENT[i].number1, _TEST_FP32_DATA_DIFFERENT[i].number2)) {
if (bgc_fp32_are_close(_TEST_FP32_DATA_DIFFERENT[i].number1, _TEST_FP32_DATA_DIFFERENT[i].number2)) {
print_testing_error("A pair of close numbers was not recognized");
return;
}
@ -86,22 +86,22 @@ static const TestNumberPairFP64 _TEST_FP64_DATA_CLOSE[] = {
{1.0, 1.0},
{-1.0, -1.0},
{-0.4 * BGC_EPSYLON_FP64, 0.4 * BGC_EPSYLON_FP64},
{-0.4 * BGC_FP64_EPSYLON, 0.4 * BGC_FP64_EPSYLON},
{1.0, 1.0 + 0.75 * BGC_EPSYLON_FP64},
{1.0, 1.0 - 0.75 * BGC_EPSYLON_FP64},
{1.0 + 0.75 * BGC_EPSYLON_FP64, 1.0},
{1.0 - 0.75 * BGC_EPSYLON_FP64, 1.0},
{1.0, 1.0 + 0.75 * BGC_FP64_EPSYLON},
{1.0, 1.0 - 0.75 * BGC_FP64_EPSYLON},
{1.0 + 0.75 * BGC_FP64_EPSYLON, 1.0},
{1.0 - 0.75 * BGC_FP64_EPSYLON, 1.0},
{-1.0, -1.0 + 0.75 * BGC_EPSYLON_FP64},
{-1.0, -1.0 - 0.75 * BGC_EPSYLON_FP64},
{-1.0 + 0.75 * BGC_EPSYLON_FP64, -1.0},
{-1.0 - 0.75 * BGC_EPSYLON_FP64, -1.0},
{-1.0, -1.0 + 0.75 * BGC_FP64_EPSYLON},
{-1.0, -1.0 - 0.75 * BGC_FP64_EPSYLON},
{-1.0 + 0.75 * BGC_FP64_EPSYLON, -1.0},
{-1.0 - 0.75 * BGC_FP64_EPSYLON, -1.0},
{100.0, 100.0 * (1.0 + 0.75 * BGC_EPSYLON_FP64)},
{100.0, 100.0 * (1.0 - 0.75 * BGC_EPSYLON_FP64)},
{-100.0, -100.0 * (1.0 + 0.75 * BGC_EPSYLON_FP64)},
{-100.0, -100.0 * (1.0 - 0.75 * BGC_EPSYLON_FP64)}
{100.0, 100.0 * (1.0 + 0.75 * BGC_FP64_EPSYLON)},
{100.0, 100.0 * (1.0 - 0.75 * BGC_FP64_EPSYLON)},
{-100.0, -100.0 * (1.0 + 0.75 * BGC_FP64_EPSYLON)},
{-100.0, -100.0 * (1.0 - 0.75 * BGC_FP64_EPSYLON)}
};
static const TestNumberPairFP64 _TEST_FP64_DATA_DIFFERENT[] = {
@ -109,31 +109,31 @@ static const TestNumberPairFP64 _TEST_FP64_DATA_DIFFERENT[] = {
{1.0, 0.999999},
{-1.0, -0.999999},
{-0.6 * BGC_EPSYLON_FP64, 0.6 * BGC_EPSYLON_FP64},
{-0.6 * BGC_FP64_EPSYLON, 0.6 * BGC_FP64_EPSYLON},
{1.0, 1.0 + 1.25 * BGC_EPSYLON_FP64},
{1.0, 1.0 - 1.25 * BGC_EPSYLON_FP64},
{1.0 + 1.25 * BGC_EPSYLON_FP64, 1.0},
{1.0 - 1.25 * BGC_EPSYLON_FP64, 1.0},
{1.0, 1.0 + 1.25 * BGC_FP64_EPSYLON},
{1.0, 1.0 - 1.25 * BGC_FP64_EPSYLON},
{1.0 + 1.25 * BGC_FP64_EPSYLON, 1.0},
{1.0 - 1.25 * BGC_FP64_EPSYLON, 1.0},
{-1.0, -1.0 + 1.25 * BGC_EPSYLON_FP64},
{-1.0, -1.0 - 1.25 * BGC_EPSYLON_FP64},
{-1.0 + 1.25 * BGC_EPSYLON_FP64, -1.0},
{-1.0 - 1.25 * BGC_EPSYLON_FP64, -1.0},
{-1.0, -1.0 + 1.25 * BGC_FP64_EPSYLON},
{-1.0, -1.0 - 1.25 * BGC_FP64_EPSYLON},
{-1.0 + 1.25 * BGC_FP64_EPSYLON, -1.0},
{-1.0 - 1.25 * BGC_FP64_EPSYLON, -1.0},
{100.0, 100.0 * (1.0 + 1.25 * BGC_EPSYLON_FP64)},
{100.0, 100.0 * (1.0 - 1.25 * BGC_EPSYLON_FP64)},
{-100.0, -100.0 * (1.0 + 1.25 * BGC_EPSYLON_FP64)},
{-100.0, -100.0 * (1.0 - 1.25 * BGC_EPSYLON_FP64)}
{100.0, 100.0 * (1.0 + 1.25 * BGC_FP64_EPSYLON)},
{100.0, 100.0 * (1.0 - 1.25 * BGC_FP64_EPSYLON)},
{-100.0, -100.0 * (1.0 + 1.25 * BGC_FP64_EPSYLON)},
{-100.0, -100.0 * (1.0 - 1.25 * BGC_FP64_EPSYLON)}
};
void test_are_close_fp64()
{
print_testing_name("bgc_are_close_fp64");
print_testing_name("bgc_fp64_are_close");
// Testing close pairs of values:
for (int i = 0; i < _TEST_FP64_CLOSE_NUMBERS_AMOUNT; i++) {
if (!bgc_are_close_fp64(_TEST_FP64_DATA_CLOSE[i].number1, _TEST_FP64_DATA_CLOSE[i].number2)) {
if (!bgc_fp64_are_close(_TEST_FP64_DATA_CLOSE[i].number1, _TEST_FP64_DATA_CLOSE[i].number2)) {
print_testing_error("A pair of close numbers was not recognized");
return;
}
@ -141,7 +141,7 @@ void test_are_close_fp64()
// Testing different pairs of values:
for (int i = 0; i < _TEST_FP64_DIFFERENT_NUMBERS_AMOUNT; i++) {
if (bgc_are_close_fp64(_TEST_FP64_DATA_DIFFERENT[i].number1, _TEST_FP64_DATA_DIFFERENT[i].number2)) {
if (bgc_fp64_are_close(_TEST_FP64_DATA_DIFFERENT[i].number1, _TEST_FP64_DATA_DIFFERENT[i].number2)) {
print_testing_error("A pair of different numbers was recognized as close numbers");
return;
}