Viewing file: long-double-wf.h (3.33 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
#ifndef LONG_DOUBLE_WF_H #define LONG_DOUBLE_WF_H 1
#include <math.h>
#define ADD(x, y, z) ((x) + (z)) #define DIV(x, y, z) ((x) / (z)) #define FABSL(x, y, z) (fabsl (y)) #define ISINFL(x, y, z) (isinfl (x) ? (y) : (z)) #define MUL(x, y, z) ((x) * (z)) #define MUL_ADD(x, y, z) ((x) * (y) + (z)) #define MUL_SUB(x, y, z) ((x) * (y) - (z)) #define NEG(x, y, z) \ ({ \ volatile long double r = -(y); \ r; \ }) #define NEG_MUL_ADD(x, y, z) NEG (0, MUL_ADD (x, y, z), 0) #define NEG_MUL_SUB(x, y, z) NEG (0, MUL_SUB (x, y, z), 0) #define QUIET_IFEQUAL(x, y, z) ((x) == (y) ? (z) : 0) #define QUIET_IFGREATER(x, y, z) (__builtin_isgreater (x, y) ? (z) : 0) #define QUIET_IFLESS(x, y, z) (__builtin_isless (x, y) ? (z) : 0) #define QUIET_IFUNORDERED(x, y, z) (__builtin_isunordered (x, y) ? (z) : 0) #define SIGNALING_IFEQUAL(x, y, z) (((x) >= (y) && (x) <= (y)) ? (z) : 0) #define SIGNALING_IFGREATER(x, y, z) ((x) > (y) ? (z) : 0) #define SIGNALING_IFLESS(x, y, z) ((x) < (y) ? (z) : 0) #define ROUNDL(x, y, z) (roundl (y)) #define SQRTL(x, y, z) (sqrtl (y)) #define SUB(x, y, z) ((x) - (z))
#define LONG_DOUBLE_WF(op) \ long double test ( \ long double x0, long double x1, long double x2, long double x3, \ long double x4, long double x5, long double x6, long double x7, \ long double x8, long double x9, long double x10, long double x11, \ long double x12, long double x13, long double x14, long double x15) \ { \ while (x15 < 1E+30) \ { \ x0 = op (x1, x2, x3); \ x1 = op (x2, x3, x4) + 1; \ x2 = op (x3, x4, x5) + 2; \ x3 = op (x4, x5, x6) + 3; \ x4 = op (x5, x6, x7) + 4; \ x5 = op (x6, x7, x8) + 5; \ x6 = op (x7, x8, x9) + 6; \ x7 = op (x8, x9, x10) + 7; \ x8 = op (x9, x10, x11) + 8; \ x9 = op (x10, x11, x12) + 9; \ x10 = op (x11, x12, x13) + 10; \ x11 = op (x12, x13, x14) + 11; \ x12 = op (x13, x14, x15) + 12; \ x13 = op (x14, x15, x0) + 13; \ x14 = op (x15, x0, x1) + 14; \ x15 = op (x0, x1, x2) + 15; \ } \ return x15; \ }
#endif
|