File indexing completed on 2025-05-11 08:24:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 #ifndef __FPTEST_h
0048 #define __FPTEST_h
0049
0050 #include <stdio.h>
0051
0052 #define FP_DECLARE \
0053 double fp01 = 1.0; \
0054 double fp02 = 2.0; \
0055 double fp03 = 3.0; \
0056 double fp04 = 4.0; \
0057 double fp05 = 5.0; \
0058 double fp06 = 6.0; \
0059 double fp07 = 7.0; \
0060 double fp08 = 8.0; \
0061 double fp09 = 9.0; \
0062 double fp10 = 10.0; \
0063 double fp11 = 11.0; \
0064 double fp12 = 12.0; \
0065 double fp13 = 13.0; \
0066 double fp14 = 14.0; \
0067 double fp15 = 15.0; \
0068 double fp16 = 16.0; \
0069 double fp17 = 17.0; \
0070 double fp18 = 18.0; \
0071 double fp19 = 19.0; \
0072 double fp20 = 20.0; \
0073 double fp21 = 21.0; \
0074 double fp22 = 22.0; \
0075 double fp23 = 23.0; \
0076 double fp24 = 24.0; \
0077 double fp25 = 25.0; \
0078 double fp26 = 26.0; \
0079 double fp27 = 27.0; \
0080 double fp28 = 28.0; \
0081 double fp29 = 29.0; \
0082 double fp30 = 30.0; \
0083 double fp31 = 31.0; \
0084 double fp32 = 32.0
0085
0086 #define FP_LOAD( _factor ) \
0087 do { \
0088 fp01 += _factor; \
0089 fp02 += _factor; \
0090 fp03 += _factor; \
0091 fp04 += _factor; \
0092 fp05 += _factor; \
0093 fp06 += _factor; \
0094 fp07 += _factor; \
0095 fp08 += _factor; \
0096 fp09 += _factor; \
0097 fp10 += _factor; \
0098 fp11 += _factor; \
0099 fp12 += _factor; \
0100 fp13 += _factor; \
0101 fp14 += _factor; \
0102 fp15 += _factor; \
0103 fp16 += _factor; \
0104 fp17 += _factor; \
0105 fp18 += _factor; \
0106 fp19 += _factor; \
0107 fp20 += _factor; \
0108 fp21 += _factor; \
0109 fp22 += _factor; \
0110 fp23 += _factor; \
0111 fp24 += _factor; \
0112 fp25 += _factor; \
0113 fp26 += _factor; \
0114 fp27 += _factor; \
0115 fp28 += _factor; \
0116 fp29 += _factor; \
0117 fp30 += _factor; \
0118 fp31 += _factor; \
0119 fp32 += _factor; \
0120 } while (0)
0121
0122 #define EPSILON (0.0005)
0123 #define FPABS(d) (((d) < 0.0) ? -(d) : (d))
0124 #define FPNEQ(a,b) (FPABS((a)-(b)) > EPSILON)
0125
0126 #define FP_CHECK_ONE( _v, _base, _factor ) \
0127 if ( FPNEQ( (_v), ((_base) + (_factor)) ) ) { \
0128 printf("%" PRIu32 ": " #_v " wrong -- (%g not %g)\n", \
0129 task_index, (_v), (_base + _factor)); \
0130 }
0131
0132
0133 #define FP_CHECK( _factor ) \
0134 do { \
0135 FP_CHECK_ONE( fp01, 1.0, (_factor) ); \
0136 FP_CHECK_ONE( fp02, 2.0, (_factor) ); \
0137 FP_CHECK_ONE( fp03, 3.0, (_factor) ); \
0138 FP_CHECK_ONE( fp04, 4.0, (_factor) ); \
0139 FP_CHECK_ONE( fp05, 5.0, (_factor) ); \
0140 FP_CHECK_ONE( fp06, 6.0, (_factor) ); \
0141 FP_CHECK_ONE( fp07, 7.0, (_factor) ); \
0142 FP_CHECK_ONE( fp08, 8.0, (_factor) ); \
0143 FP_CHECK_ONE( fp09, 9.0, (_factor) ); \
0144 FP_CHECK_ONE( fp10, 10.0, (_factor) ); \
0145 FP_CHECK_ONE( fp11, 11.0, (_factor) ); \
0146 FP_CHECK_ONE( fp12, 12.0, (_factor) ); \
0147 FP_CHECK_ONE( fp13, 13.0, (_factor) ); \
0148 FP_CHECK_ONE( fp14, 14.0, (_factor) ); \
0149 FP_CHECK_ONE( fp15, 15.0, (_factor) ); \
0150 FP_CHECK_ONE( fp16, 16.0, (_factor) ); \
0151 FP_CHECK_ONE( fp17, 17.0, (_factor) ); \
0152 FP_CHECK_ONE( fp18, 18.0, (_factor) ); \
0153 FP_CHECK_ONE( fp19, 19.0, (_factor) ); \
0154 FP_CHECK_ONE( fp20, 20.0, (_factor) ); \
0155 FP_CHECK_ONE( fp21, 21.0, (_factor) ); \
0156 FP_CHECK_ONE( fp22, 22.0, (_factor) ); \
0157 FP_CHECK_ONE( fp23, 23.0, (_factor) ); \
0158 FP_CHECK_ONE( fp24, 24.0, (_factor) ); \
0159 FP_CHECK_ONE( fp25, 25.0, (_factor) ); \
0160 FP_CHECK_ONE( fp26, 26.0, (_factor) ); \
0161 FP_CHECK_ONE( fp27, 27.0, (_factor) ); \
0162 FP_CHECK_ONE( fp28, 28.0, (_factor) ); \
0163 FP_CHECK_ONE( fp29, 29.0, (_factor) ); \
0164 FP_CHECK_ONE( fp30, 30.0, (_factor) ); \
0165 FP_CHECK_ONE( fp31, 31.0, (_factor) ); \
0166 FP_CHECK_ONE( fp32, 32.0, (_factor) ); \
0167 } while (0)
0168
0169 #endif