HelenOS sources
This source file includes following definitions.
- fint
- dint
- PCUT_TEST
- PCUT_TEST
- PCUT_TEST
- PCUT_TEST
- PCUT_TEST
- PCUT_TEST
- PCUT_TEST
#include <pcut/pcut.h>
#include <math.h>
#include <inttypes.h>
#include <float.h>
PCUT_INIT;
PCUT_TEST_SUITE(rounding);
static inline uint32_t fint(float x)
{
union {
float f;
uint32_t i;
} u = { .f = x };
return u.i;
}
static inline uint64_t dint(double x)
{
union {
double f;
uint64_t i;
} u = { .f = x };
return u.i;
}
#define assert_float_equals(x, y) PCUT_ASSERT_EQUALS(fint(x), fint(y))
#define assert_double_equals(x, y) PCUT_ASSERT_EQUALS(dint(x), dint(y))
#define FLOAT_CASES 200
#define DOUBLE_CASES 0
static float float_arguments[FLOAT_CASES] = {
HUGE_VALF,
-HUGE_VALF,
__builtin_nanf(""),
-__builtin_nanf(""),
__builtin_nanf("0xdeadbe"),
-__builtin_nanf("0xdeadbe"),
0x0.000000p0f,
0x0.000002p-126f,
0x1.000000p-126f,
0x1.fffffep-2f,
0x1.000000p-1f,
0x1.000002p-1f,
0x1.fffffep-1f,
0x1.000000p0f,
0x1.000002p0f,
0x1.7ffffep0f,
0x1.800000p0f,
0x1.800002p0f,
0x1.fffffep0f,
0x1.000000p1f,
0x1.000002p1f,
0x1.3ffffep1f,
0x1.400000p1f,
0x1.400002p1f,
0x1.7ffffep1f,
0x1.800000p1f,
0x1.800002p1f,
0x1.bffffep1f,
0x1.c00000p1f,
0x1.c00002p1f,
0x1.fffffep1f,
0x1.000000p2f,
0x1.000002p2f,
0x1.ffffe0p20f,
0x1.ffffe2p20f,
0x1.ffffe4p20f,
0x1.ffffe6p20f,
0x1.ffffe8p20f,
0x1.ffffeap20f,
0x1.ffffecp20f,
0x1.ffffeep20f,
0x1.fffff0p20f,
0x1.fffff2p20f,
0x1.fffff4p20f,
0x1.fffff6p20f,
0x1.fffff8p20f,
0x1.fffffap20f,
0x1.fffffcp20f,
0x1.fffffep20f,
0x1.000000p21f,
0x1.000002p21f,
0x1.000004p21f,
0x1.000006p21f,
0x1.000008p21f,
0x1.00000ap21f,
0x1.00000cp21f,
0x1.00000ep21f,
0x1.000010p21f,
0x1.fffff0p21f,
0x1.fffff2p21f,
0x1.fffff4p21f,
0x1.fffff6p21f,
0x1.fffff8p21f,
0x1.fffffap21f,
0x1.fffffcp21f,
0x1.fffffep21f,
0x1.000000p22f,
0x1.000002p22f,
0x1.000004p22f,
0x1.000006p22f,
0x1.000008p22f,
0x1.fffff0p22f,
0x1.fffff2p22f,
0x1.fffff4p22f,
0x1.fffff6p22f,
0x1.fffff8p22f,
0x1.fffffap22f,
0x1.fffffcp22f,
0x1.fffffep22f,
0x1.000000p23f,
0x1.000002p23f,
0x1.000004p23f,
0x1.000006p23f,
0x1.000008p23f,
0x1.fffff0p23f,
0x1.fffff2p23f,
0x1.fffff4p23f,
0x1.fffff6p23f,
0x1.fffff8p23f,
0x1.fffffap23f,
0x1.fffffcp23f,
0x1.fffffep23f,
0x1.000000p24f,
0x1.000002p24f,
0x1.000004p24f,
0x1.000006p24f,
0x1.000008p24f,
0x1.fffffep100f,
-0x0.000000p0f,
-0x0.000002p-126f,
-0x1.000000p-126f,
-0x1.fffffep-2f,
-0x1.000000p-1f,
-0x1.000002p-1f,
-0x1.fffffep-1f,
-0x1.000000p0f,
-0x1.000002p0f,
-0x1.7ffffep0f,
-0x1.800000p0f,
-0x1.800002p0f,
-0x1.fffffep0f,
-0x1.000000p1f,
-0x1.000002p1f,
-0x1.3ffffep1f,
-0x1.400000p1f,
-0x1.400002p1f,
-0x1.7ffffep1f,
-0x1.800000p1f,
-0x1.800002p1f,
-0x1.bffffep1f,
-0x1.c00000p1f,
-0x1.c00002p1f,
-0x1.fffffep1f,
-0x1.000000p2f,
-0x1.000002p2f,
-0x1.ffffe0p20f,
-0x1.ffffe2p20f,
-0x1.ffffe4p20f,
-0x1.ffffe6p20f,
-0x1.ffffe8p20f,
-0x1.ffffeap20f,
-0x1.ffffecp20f,
-0x1.ffffeep20f,
-0x1.fffff0p20f,
-0x1.fffff2p20f,
-0x1.fffff4p20f,
-0x1.fffff6p20f,
-0x1.fffff8p20f,
-0x1.fffffap20f,
-0x1.fffffcp20f,
-0x1.fffffep20f,
-0x1.000000p21f,
-0x1.000002p21f,
-0x1.000004p21f,
-0x1.000006p21f,
-0x1.000008p21f,
-0x1.00000ap21f,
-0x1.00000cp21f,
-0x1.00000ep21f,
-0x1.000010p21f,
-0x1.fffff0p21f,
-0x1.fffff2p21f,
-0x1.fffff4p21f,
-0x1.fffff6p21f,
-0x1.fffff8p21f,
-0x1.fffffap21f,
-0x1.fffffcp21f,
-0x1.fffffep21f,
-0x1.000000p22f,
-0x1.000002p22f,
-0x1.000004p22f,
-0x1.000006p22f,
-0x1.000008p22f,
-0x1.fffff0p22f,
-0x1.fffff2p22f,
-0x1.fffff4p22f,
-0x1.fffff6p22f,
-0x1.fffff8p22f,
-0x1.fffffap22f,
-0x1.fffffcp22f,
-0x1.fffffep22f,
-0x1.000000p23f,
-0x1.000002p23f,
-0x1.000004p23f,
-0x1.000006p23f,
-0x1.000008p23f,
-0x1.fffff0p23f,
-0x1.fffff2p23f,
-0x1.fffff4p23f,
-0x1.fffff6p23f,
-0x1.fffff8p23f,
-0x1.fffffap23f,
-0x1.fffffcp23f,
-0x1.fffffep23f,
-0x1.000000p24f,
-0x1.000002p24f,
-0x1.000004p24f,
-0x1.000006p24f,
-0x1.000008p24f,
-0x1.fffffep100f,
3.5, -2.1, 100.0, 50.0, -1024.0, 0.0, 768.3156, 1080.499999, -600.0, 1.0
};
static float float_identity[FLOAT_CASES] = {
HUGE_VALF,
-HUGE_VALF,
__builtin_nanf(""),
-__builtin_nanf(""),
__builtin_nanf("0xdeadbe"),
-__builtin_nanf("0xdeadbe"),
0.0,
FLT_TRUE_MIN,
FLT_MIN,
0.5 - (FLT_EPSILON / 4.),
0.5,
0.5 + (FLT_EPSILON / 2.),
1.0 - (FLT_EPSILON / 2.),
1.0,
1.0 + FLT_EPSILON,
1.5 - FLT_EPSILON,
1.5,
1.5 + FLT_EPSILON,
2.0 - FLT_EPSILON,
2.0,
2.0 + (2.0 * FLT_EPSILON),
2.5 - (2.0 * FLT_EPSILON),
2.5,
2.5 + (2.0 * FLT_EPSILON),
3.0 - (2.0 * FLT_EPSILON),
3.0,
3.0 + (2.0 * FLT_EPSILON),
3.5 - (2.0 * FLT_EPSILON),
3.5,
3.5 + (2.0 * FLT_EPSILON),
4.0 - (2.0 * FLT_EPSILON),
4.0,
4.0 + (4.0 * FLT_EPSILON),
2097150.000,
2097150.125,
2097150.250,
2097150.375,
2097150.500,
2097150.625,
2097150.750,
2097150.875,
2097151.000,
2097151.125,
2097151.250,
2097151.375,
2097151.500,
2097151.625,
2097151.750,
2097151.875,
2097152.00,
2097152.25,
2097152.50,
2097152.75,
2097153.00,
2097153.25,
2097153.50,
2097153.75,
2097154.00,
4194302.00,
4194302.25,
4194302.50,
4194302.75,
4194303.00,
4194303.25,
4194303.50,
4194303.75,
4194304.0,
4194304.5,
4194305.0,
4194305.5,
4194306.0,
8388604.0,
8388604.5,
8388605.0,
8388605.5,
8388606.0,
8388606.5,
8388607.0,
8388607.5,
8388608.0,
8388609.0,
8388610.0,
8388611.0,
8388612.0,
16777208.0,
16777209.0,
16777210.0,
16777211.0,
16777212.0,
16777213.0,
16777214.0,
16777215.0,
16777216.0,
16777218.0,
16777220.0,
16777222.0,
16777224.0,
0x1.fffffep100f,
-0.0,
-FLT_TRUE_MIN,
-FLT_MIN,
-(0.5 - (FLT_EPSILON / 4.)),
-0.5,
-(0.5 + (FLT_EPSILON / 2.)),
-(1.0 - (FLT_EPSILON / 2.)),
-1.0,
-(1.0 + FLT_EPSILON),
-(1.5 - FLT_EPSILON),
-1.5,
-(1.5 + FLT_EPSILON),
-(2.0 - FLT_EPSILON),
-2.0,
-(2.0 + (2.0 * FLT_EPSILON)),
-(2.5 - (2.0 * FLT_EPSILON)),
-2.5,
-(2.5 + (2.0 * FLT_EPSILON)),
-(3.0 - (2.0 * FLT_EPSILON)),
-3.0,
-(3.0 + (2.0 * FLT_EPSILON)),
-(3.5 - (2.0 * FLT_EPSILON)),
-3.5,
-(3.5 + (2.0 * FLT_EPSILON)),
-(4.0 - (2.0 * FLT_EPSILON)),
-4.0,
-(4.0 + (4.0 * FLT_EPSILON)),
-2097150.000,
-2097150.125,
-2097150.250,
-2097150.375,
-2097150.500,
-2097150.625,
-2097150.750,
-2097150.875,
-2097151.000,
-2097151.125,
-2097151.250,
-2097151.375,
-2097151.500,
-2097151.625,
-2097151.750,
-2097151.875,
-2097152.00,
-2097152.25,
-2097152.50,
-2097152.75,
-2097153.00,
-2097153.25,
-2097153.50,
-2097153.75,
-2097154.00,
-4194302.00,
-4194302.25,
-4194302.50,
-4194302.75,
-4194303.00,
-4194303.25,
-4194303.50,
-4194303.75,
-4194304.0,
-4194304.5,
-4194305.0,
-4194305.5,
-4194306.0,
-8388604.0,
-8388604.5,
-8388605.0,
-8388605.5,
-8388606.0,
-8388606.5,
-8388607.0,
-8388607.5,
-8388608.0,
-8388609.0,
-8388610.0,
-8388611.0,
-8388612.0,
-16777208.0,
-16777209.0,
-16777210.0,
-16777211.0,
-16777212.0,
-16777213.0,
-16777214.0,
-16777215.0,
-16777216.0,
-16777218.0,
-16777220.0,
-16777222.0,
-16777224.0,
-0x1.fffffep100f,
3.5, -2.1, 100.0, 50.0, -1024.0, 0.0, 768.3156, 1080.5, -600.0, 1.0
};
static float float_results_trunc[FLOAT_CASES] = {
HUGE_VALF,
-HUGE_VALF,
__builtin_nanf(""),
-__builtin_nanf(""),
__builtin_nanf("0xdeadbe"),
-__builtin_nanf("0xdeadbe"),
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
2.0,
2.0,
2.0,
2.0,
2.0,
2.0,
3.0,
3.0,
3.0,
3.0,
3.0,
3.0,
4.0,
4.0,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097152.00,
2097152.00,
2097152.00,
2097152.00,
2097153.00,
2097153.00,
2097153.00,
2097153.00,
2097154.00,
4194302.00,
4194302.00,
4194302.00,
4194302.00,
4194303.00,
4194303.00,
4194303.00,
4194303.00,
4194304.0,
4194304.0,
4194305.0,
4194305.0,
4194306.0,
8388604.0,
8388604.0,
8388605.0,
8388605.0,
8388606.0,
8388606.0,
8388607.0,
8388607.0,
8388608.0,
8388609.0,
8388610.0,
8388611.0,
8388612.0,
16777208.0,
16777209.0,
16777210.0,
16777211.0,
16777212.0,
16777213.0,
16777214.0,
16777215.0,
16777216.0,
16777218.0,
16777220.0,
16777222.0,
16777224.0,
0x1.fffffep100f,
-0.0,
-0.0,
-0.0,
-0.0,
-0.0,
-0.0,
-0.0,
-1.0,
-1.0,
-1.0,
-1.0,
-1.0,
-1.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-3.0,
-3.0,
-3.0,
-3.0,
-3.0,
-3.0,
-4.0,
-4.0,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097152.00,
-2097152.00,
-2097152.00,
-2097152.00,
-2097153.00,
-2097153.00,
-2097153.00,
-2097153.00,
-2097154.00,
-4194302.00,
-4194302.00,
-4194302.00,
-4194302.00,
-4194303.00,
-4194303.00,
-4194303.00,
-4194303.00,
-4194304.0,
-4194304.0,
-4194305.0,
-4194305.0,
-4194306.0,
-8388604.0,
-8388604.0,
-8388605.0,
-8388605.0,
-8388606.0,
-8388606.0,
-8388607.0,
-8388607.0,
-8388608.0,
-8388609.0,
-8388610.0,
-8388611.0,
-8388612.0,
-16777208.0,
-16777209.0,
-16777210.0,
-16777211.0,
-16777212.0,
-16777213.0,
-16777214.0,
-16777215.0,
-16777216.0,
-16777218.0,
-16777220.0,
-16777222.0,
-16777224.0,
-0x1.fffffep100f,
3.0, -2.0, 100.0, 50.0, -1024.0, 0.0, 768.0, 1080.0, -600.0, 1.0
};
static float float_results_round[FLOAT_CASES] = {
HUGE_VALF,
-HUGE_VALF,
__builtin_nanf(""),
-__builtin_nanf(""),
__builtin_nanf("0xdeadbe"),
-__builtin_nanf("0xdeadbe"),
0.0,
0.0,
0.0,
0.0,
1.0,
1.0,
1.0,
1.0,
1.0,
1.0,
2.0,
2.0,
2.0,
2.0,
2.0,
2.0,
3.0,
3.0,
3.0,
3.0,
3.0,
3.0,
4.0,
4.0,
4.0,
4.0,
4.0,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097152.000,
2097152.000,
2097152.000,
2097152.000,
2097152.00,
2097152.00,
2097153.00,
2097153.00,
2097153.00,
2097153.00,
2097154.00,
2097154.00,
2097154.00,
4194302.00,
4194302.00,
4194303.00,
4194303.00,
4194303.00,
4194303.00,
4194304.00,
4194304.00,
4194304.0,
4194305.0,
4194305.0,
4194306.0,
4194306.0,
8388604.0,
8388605.0,
8388605.0,
8388606.0,
8388606.0,
8388607.0,
8388607.0,
8388608.0,
8388608.0,
8388609.0,
8388610.0,
8388611.0,
8388612.0,
16777208.0,
16777209.0,
16777210.0,
16777211.0,
16777212.0,
16777213.0,
16777214.0,
16777215.0,
16777216.0,
16777218.0,
16777220.0,
16777222.0,
16777224.0,
0x1.fffffep100f,
-0.0,
-0.0,
-0.0,
-0.0,
-1.0,
-1.0,
-1.0,
-1.0,
-1.0,
-1.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-3.0,
-3.0,
-3.0,
-3.0,
-3.0,
-3.0,
-4.0,
-4.0,
-4.0,
-4.0,
-4.0,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097152.000,
-2097152.000,
-2097152.000,
-2097152.000,
-2097152.00,
-2097152.00,
-2097153.00,
-2097153.00,
-2097153.00,
-2097153.00,
-2097154.00,
-2097154.00,
-2097154.00,
-4194302.00,
-4194302.00,
-4194303.00,
-4194303.00,
-4194303.00,
-4194303.00,
-4194304.00,
-4194304.00,
-4194304.0,
-4194305.0,
-4194305.0,
-4194306.0,
-4194306.0,
-8388604.0,
-8388605.0,
-8388605.0,
-8388606.0,
-8388606.0,
-8388607.0,
-8388607.0,
-8388608.0,
-8388608.0,
-8388609.0,
-8388610.0,
-8388611.0,
-8388612.0,
-16777208.0,
-16777209.0,
-16777210.0,
-16777211.0,
-16777212.0,
-16777213.0,
-16777214.0,
-16777215.0,
-16777216.0,
-16777218.0,
-16777220.0,
-16777222.0,
-16777224.0,
-0x1.fffffep100f,
4.0, -2.0, 100.0, 50.0, -1024.0, 0.0, 768.0, 1081.0, -600.0, 1.0
};
static float float_results_nearbyint[FLOAT_CASES] = {
HUGE_VALF,
-HUGE_VALF,
__builtin_nanf(""),
-__builtin_nanf(""),
__builtin_nanf("0xdeadbe"),
-__builtin_nanf("0xdeadbe"),
0.0,
0.0,
0.0,
0.0,
0.0,
1.0,
1.0,
1.0,
1.0,
1.0,
2.0,
2.0,
2.0,
2.0,
2.0,
2.0,
2.0,
3.0,
3.0,
3.0,
3.0,
3.0,
4.0,
4.0,
4.0,
4.0,
4.0,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097150.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097151.000,
2097152.000,
2097152.000,
2097152.000,
2097152.000,
2097152.00,
2097152.00,
2097152.00,
2097153.00,
2097153.00,
2097153.00,
2097154.00,
2097154.00,
2097154.00,
4194302.00,
4194302.00,
4194302.00,
4194303.00,
4194303.00,
4194303.00,
4194304.00,
4194304.0,
4194304.0,
4194304.0,
4194305.0,
4194306.0,
4194306.0,
8388604.0,
8388604.0,
8388605.0,
8388606.0,
8388606.0,
8388606.0,
8388607.0,
8388608.0,
8388608.0,
8388609.0,
8388610.0,
8388611.0,
8388612.0,
16777208.0,
16777209.0,
16777210.0,
16777211.0,
16777212.0,
16777213.0,
16777214.0,
16777215.0,
16777216.0,
16777218.0,
16777220.0,
16777222.0,
16777224.0,
0x1.fffffep100f,
-0.0,
-0.0,
-0.0,
-0.0,
-0.0,
-1.0,
-1.0,
-1.0,
-1.0,
-1.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-2.0,
-3.0,
-3.0,
-3.0,
-3.0,
-3.0,
-4.0,
-4.0,
-4.0,
-4.0,
-4.0,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097150.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097151.000,
-2097152.000,
-2097152.000,
-2097152.000,
-2097152.000,
-2097152.00,
-2097152.00,
-2097152.00,
-2097153.00,
-2097153.00,
-2097153.00,
-2097154.00,
-2097154.00,
-2097154.00,
-4194302.00,
-4194302.00,
-4194302.00,
-4194303.00,
-4194303.00,
-4194303.00,
-4194304.00,
-4194304.0,
-4194304.0,
-4194304.0,
-4194305.0,
-4194306.0,
-4194306.0,
-8388604.0,
-8388604.0,
-8388605.0,
-8388606.0,
-8388606.0,
-8388606.0,
-8388607.0,
-8388608.0,
-8388608.0,
-8388609.0,
-8388610.0,
-8388611.0,
-8388612.0,
-16777208.0,
-16777209.0,
-16777210.0,
-16777211.0,
-16777212.0,
-16777213.0,
-16777214.0,
-16777215.0,
-16777216.0,
-16777218.0,
-16777220.0,
-16777222.0,
-16777224.0,
-0x1.fffffep100f,
4.0, -2.0, 100.0, 50.0, -1024.0, 0.0, 768.0, 1080.0, -600.0, 1.0
};
PCUT_TEST(identity)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint32_t f1 = fint(float_arguments[i]);
uint32_t f2 = fint(float_identity[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%08x != 0x%08x\n", i, f1, f2);
}
}
}
PCUT_TEST(truncf)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint32_t f1 = fint(truncf(float_arguments[i]));
uint32_t f2 = fint(float_results_trunc[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%08x != 0x%08x\n", i, f1, f2);
}
}
}
PCUT_TEST(trunc)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint64_t f1 = dint(trunc(float_arguments[i]));
uint64_t f2 = dint(float_results_trunc[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%016" PRIx64 " != 0x%016" PRIx64 "\n", i, f1, f2);
}
}
}
PCUT_TEST(roundf)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint32_t f1 = fint(roundf(float_arguments[i]));
uint32_t f2 = fint(float_results_round[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%08x != 0x%08x\n", i, f1, f2);
}
}
}
PCUT_TEST(round)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint64_t f1 = dint(round(float_arguments[i]));
uint64_t f2 = dint(float_results_round[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%016" PRIx64 " != 0x%016" PRIx64 "\n", i, f1, f2);
}
}
}
PCUT_TEST(nearbyintf)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint32_t f1 = fint(nearbyintf(float_arguments[i]));
uint32_t f2 = fint(float_results_nearbyint[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%08x != 0x%08x\n", i, f1, f2);
}
}
}
PCUT_TEST(nearbyint)
{
for (int i = 0; i < FLOAT_CASES; i++) {
uint64_t f1 = dint(nearbyint(float_arguments[i]));
uint64_t f2 = dint(float_results_nearbyint[i]);
if (f1 != f2) {
PCUT_ASSERTION_FAILED("case %d: 0x%016" PRIx64 " != 0x%016" PRIx64 "\n", i, f1, f2);
}
}
}
PCUT_EXPORT(rounding);
HelenOS homepage, sources at GitHub