summaryrefslogtreecommitdiff
path: root/tests/test-frexp.h
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff.email>2026-03-08 17:28:33 +0100
committerJörg Frings-Fürst <debian@jff.email>2026-03-08 17:28:33 +0100
commit5f59a34ab747dde8ede7357f3431bf06bd6002fe (patch)
tree056a4477fd870d454d5be5868cddab829a47f4d2 /tests/test-frexp.h
parent27dae84ed92f1ef0300263091972338d12e78348 (diff)
New upstream version 1.4.2upstream/1.4.2upstream
Diffstat (limited to 'tests/test-frexp.h')
-rw-r--r--tests/test-frexp.h185
1 files changed, 94 insertions, 91 deletions
diff --git a/tests/test-frexp.h b/tests/test-frexp.h
index ed687387..7cf24d88 100644
--- a/tests/test-frexp.h
+++ b/tests/test-frexp.h
@@ -1,5 +1,5 @@
/* Test of splitting a double into fraction and mantissa.
- Copyright (C) 2012-2025 Free Software Foundation, Inc.
+ Copyright (C) 2012-2026 Free Software Foundation, Inc.
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -27,7 +27,6 @@ my_ldexp (DOUBLE x, int d)
static void
test_function (void)
{
- int i;
VOLATILE DOUBLE x;
{ /* NaN. */
@@ -74,100 +73,104 @@ test_function (void)
ASSERT (signbit (mantissa));
}
- for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
- for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.5));
- }
+ {
+ int i;
- for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
- for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
- for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == - L_(0.5));
- }
+ for (i = 1, x = L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
+ for (i = 1, x = L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.5));
+ }
- for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.505));
- }
- for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.505));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa >= L_(0.5));
- ASSERT (mantissa < L_(1.0));
- ASSERT (mantissa == my_ldexp (x, - exp));
- }
+ for (i = 1, x = - L_(1.0); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
+ for (i = 1, x = - L_(1.0); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
+ for (; i >= MIN_EXP - 100 && x < L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == - L_(0.5));
+ }
- for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.866025));
- }
- for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i);
- ASSERT (mantissa == L_(0.866025));
- }
- for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
- {
- int exp = -9999;
- DOUBLE mantissa = FREXP (x, &exp);
- ASSERT (exp == i || exp == i + 1);
- ASSERT (mantissa >= L_(0.5));
- ASSERT (mantissa < L_(1.0));
- ASSERT (mantissa == my_ldexp (x, - exp));
- }
+ for (i = 1, x = L_(1.01); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.505));
+ }
+ for (i = 1, x = L_(1.01); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.505));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa >= L_(0.5));
+ ASSERT (mantissa < L_(1.0));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+
+ for (i = 1, x = L_(1.73205); i <= MAX_EXP; i++, x *= L_(2.0))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.866025));
+ }
+ for (i = 1, x = L_(1.73205); i >= MIN_NORMAL_EXP; i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i);
+ ASSERT (mantissa == L_(0.866025));
+ }
+ for (; i >= MIN_EXP - 100 && x > L_(0.0); i--, x *= L_(0.5))
+ {
+ int exp = -9999;
+ DOUBLE mantissa = FREXP (x, &exp);
+ ASSERT (exp == i || exp == i + 1);
+ ASSERT (mantissa >= L_(0.5));
+ ASSERT (mantissa < L_(1.0));
+ ASSERT (mantissa == my_ldexp (x, - exp));
+ }
+ }
/* Randomized tests. */
- for (i = 0; i < SIZEOF (RANDOM); i++)
+ for (int i = 0; i < SIZEOF (RANDOM); i++)
{
x = L_(20.0) * RANDOM[i] - L_(10.0); /* -10.0 <= x <= 10.0 */
{