blob: 5f345c0cf17af0bc315443a91f6ce1dca87f025a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
//
// Created by kirill on 8/30/22.
//
#ifndef LLVM_IN_FLOAT_RANGE_TEST_HELPER_H
#define LLVM_IN_FLOAT_RANGE_TEST_HELPER_H
#include <stdint.h>
#define CHECK_DATA(start, stop, mfp_op, f, f_check, count, prec) \
{ \
uint64_t ustart = FPBits(start).uintval(); \
uint64_t ustop = FPBits(stop).uintval(); \
for (uint64_t i = 0;; ++i) { \
uint64_t v = ustart + (ustop - ustart) * i / count; \
if (v > ustop) \
break; \
float x = FPBits(uint32_t(v)).get_val(); \
if ((f_check)(x)) { \
EXPECT_MPFR_MATCH_ALL_ROUNDING(mfp_op, x, static_cast<float>((f)(x)), \
(prec)); \
} \
} \
}
#endif // LLVM_IN_FLOAT_RANGE_TEST_HELPER_H
|