bionic/tests/math_data/significand_intel_data.h
Jingwei Zhang 56b2b2916b Accuracy tests for libm
This patch adds more tests for math functions to address coverage
issue of math functions discussed in:
https://android-review.googlesource.com/#/c/49653/
https://android-review.googlesource.com/#/c/94780/

These are data sets used in regression tests for the Intel the math library (libm). They were collected over a long period of testing various libm implementations.
The data sets contain function specific data (special and corner cases such as +/-0, maximum/minimum normalized numbers, +/-infinity, QNaN/SNaN, maximum/minimum denormal numbers, arguments that would produce close to overflow/underflow results, known hard-to-round cases, etc), implementation specific data (arguments close to table look-up values for different polynomial approximations, worst cases for range reduction algorithms) and other data with interesting bit patterns.
The reference values are computed with Maple and were converted into hexadecimal format.

Change-Id: I7177c282937369eae98f25d02134e4fc3beadde8
Signed-off-by: Jingwei Zhang <jingwei.zhang@intel.com>
Signed-off-by: Mingwei Shi <mingwei.shi@intel.com>
2015-02-14 00:56:46 +08:00

639 lines
10 KiB
C

/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
static data_1_1_t<double, double> g_significand_intel_data[] = {
{ // Entry 0
0x1.p0,
0x1.0p100
},
{ // Entry 1
0x1.2aaaaaaaaaaab0p0,
0x1.2aaaaaaaaaaabp100
},
{ // Entry 2
0x1.55555555555560p0,
0x1.5555555555556p100
},
{ // Entry 3
0x1.80000000000010p0,
0x1.8000000000001p100
},
{ // Entry 4
0x1.aaaaaaaaaaaac0p0,
0x1.aaaaaaaaaaaacp100
},
{ // Entry 5
0x1.d5555555555570p0,
0x1.d555555555557p100
},
{ // Entry 6
0x1.p0,
0x1.0p101
},
{ // Entry 7
0x1.p0,
0x1.0p200
},
{ // Entry 8
0x1.2aaaaaaaaaaab0p0,
0x1.2aaaaaaaaaaabp200
},
{ // Entry 9
0x1.55555555555560p0,
0x1.5555555555556p200
},
{ // Entry 10
0x1.80000000000010p0,
0x1.8000000000001p200
},
{ // Entry 11
0x1.aaaaaaaaaaaac0p0,
0x1.aaaaaaaaaaaacp200
},
{ // Entry 12
0x1.d5555555555570p0,
0x1.d555555555557p200
},
{ // Entry 13
0x1.p0,
0x1.0p201
},
{ // Entry 14
0x1.p0,
0x1.0p1000
},
{ // Entry 15
0x1.2aaaaaaaaaaab0p0,
0x1.2aaaaaaaaaaabp1000
},
{ // Entry 16
0x1.55555555555560p0,
0x1.5555555555556p1000
},
{ // Entry 17
0x1.80000000000010p0,
0x1.8000000000001p1000
},
{ // Entry 18
0x1.aaaaaaaaaaaac0p0,
0x1.aaaaaaaaaaaacp1000
},
{ // Entry 19
0x1.d5555555555570p0,
0x1.d555555555557p1000
},
{ // Entry 20
0x1.p0,
0x1.0p1001
},
{ // Entry 21
-0x1.p0,
-0x1.0p101
},
{ // Entry 22
-0x1.d5555555555550p0,
-0x1.d555555555555p100
},
{ // Entry 23
-0x1.aaaaaaaaaaaaa0p0,
-0x1.aaaaaaaaaaaaap100
},
{ // Entry 24
-0x1.7ffffffffffff0p0,
-0x1.7ffffffffffffp100
},
{ // Entry 25
-0x1.55555555555540p0,
-0x1.5555555555554p100
},
{ // Entry 26
-0x1.2aaaaaaaaaaa90p0,
-0x1.2aaaaaaaaaaa9p100
},
{ // Entry 27
-0x1.p0,
-0x1.0p100
},
{ // Entry 28
-0x1.p0,
-0x1.0p201
},
{ // Entry 29
-0x1.d5555555555550p0,
-0x1.d555555555555p200
},
{ // Entry 30
-0x1.aaaaaaaaaaaaa0p0,
-0x1.aaaaaaaaaaaaap200
},
{ // Entry 31
-0x1.7ffffffffffff0p0,
-0x1.7ffffffffffffp200
},
{ // Entry 32
-0x1.55555555555540p0,
-0x1.5555555555554p200
},
{ // Entry 33
-0x1.2aaaaaaaaaaa90p0,
-0x1.2aaaaaaaaaaa9p200
},
{ // Entry 34
-0x1.p0,
-0x1.0p200
},
{ // Entry 35
-0x1.p0,
-0x1.0p1001
},
{ // Entry 36
-0x1.d5555555555550p0,
-0x1.d555555555555p1000
},
{ // Entry 37
-0x1.aaaaaaaaaaaaa0p0,
-0x1.aaaaaaaaaaaaap1000
},
{ // Entry 38
-0x1.7ffffffffffff0p0,
-0x1.7ffffffffffffp1000
},
{ // Entry 39
-0x1.55555555555540p0,
-0x1.5555555555554p1000
},
{ // Entry 40
-0x1.2aaaaaaaaaaa90p0,
-0x1.2aaaaaaaaaaa9p1000
},
{ // Entry 41
-0x1.p0,
-0x1.0p1000
},
{ // Entry 42
0x1.p0,
0x1.0p50
},
{ // Entry 43
0x1.p0,
0x1.0p51
},
{ // Entry 44
0x1.p0,
0x1.0p52
},
{ // Entry 45
0x1.p0,
0x1.0p53
},
{ // Entry 46
0x1.p0,
0x1.0p-1026
},
{ // Entry 47
0x1.ae8ba2e8ba2e80p0,
0x1.ae8ba2e8ba2e8p-1024
},
{ // Entry 48
0x1.8e8ba2e8ba2e80p0,
0x1.8e8ba2e8ba2e8p-1023
},
{ // Entry 49
0x1.22e8ba2e8ba2e0p0,
0x1.22e8ba2e8ba2ep-1022
},
{ // Entry 50
0x1.7e8ba2e8ba2e80p0,
0x1.7e8ba2e8ba2e8p-1022
},
{ // Entry 51
0x1.da2e8ba2e8ba20p0,
0x1.da2e8ba2e8ba2p-1022
},
{ // Entry 52
0x1.1ae8ba2e8ba2e0p0,
0x1.1ae8ba2e8ba2ep-1021
},
{ // Entry 53
0x1.48ba2e8ba2e8b0p0,
0x1.48ba2e8ba2e8bp-1021
},
{ // Entry 54
0x1.768ba2e8ba2e80p0,
0x1.768ba2e8ba2e8p-1021
},
{ // Entry 55
0x1.a45d1745d17450p0,
0x1.a45d1745d1745p-1021
},
{ // Entry 56
0x1.d22e8ba2e8ba20p0,
0x1.d22e8ba2e8ba2p-1021
},
{ // Entry 57
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-1021
},
{ // Entry 58
0x1.fffffffffffff0p0,
0x1.fffffffffffffp50
},
{ // Entry 59
0x1.p0,
0x1.0p51
},
{ // Entry 60
0x1.00000000000010p0,
0x1.0000000000001p51
},
{ // Entry 61
0x1.fffffffffffff0p0,
0x1.fffffffffffffp51
},
{ // Entry 62
0x1.p0,
0x1.0p52
},
{ // Entry 63
0x1.00000000000010p0,
0x1.0000000000001p52
},
{ // Entry 64
0x1.fffffffffffff0p0,
0x1.fffffffffffffp52
},
{ // Entry 65
0x1.p0,
0x1.0p53
},
{ // Entry 66
0x1.00000000000010p0,
0x1.0000000000001p53
},
{ // Entry 67
-0x1.00000000000010p0,
-0x1.0000000000001p51
},
{ // Entry 68
-0x1.p0,
-0x1.0p51
},
{ // Entry 69
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp50
},
{ // Entry 70
-0x1.00000000000010p0,
-0x1.0000000000001p52
},
{ // Entry 71
-0x1.p0,
-0x1.0p52
},
{ // Entry 72
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp51
},
{ // Entry 73
-0x1.00000000000010p0,
-0x1.0000000000001p53
},
{ // Entry 74
-0x1.p0,
-0x1.0p53
},
{ // Entry 75
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp52
},
{ // Entry 76
0x1.fffffffffffff0p0,
0x1.fffffffffffffp1023
},
{ // Entry 77
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp1023
},
{ // Entry 78
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-7
},
{ // Entry 79
0x1.p0,
0x1.0p-6
},
{ // Entry 80
0x1.00000000000010p0,
0x1.0000000000001p-6
},
{ // Entry 81
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-6
},
{ // Entry 82
0x1.p0,
0x1.0p-5
},
{ // Entry 83
0x1.00000000000010p0,
0x1.0000000000001p-5
},
{ // Entry 84
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-5
},
{ // Entry 85
0x1.p0,
0x1.0p-4
},
{ // Entry 86
0x1.00000000000010p0,
0x1.0000000000001p-4
},
{ // Entry 87
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-4
},
{ // Entry 88
0x1.p0,
0x1.0p-3
},
{ // Entry 89
0x1.00000000000010p0,
0x1.0000000000001p-3
},
{ // Entry 90
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-3
},
{ // Entry 91
0x1.p0,
0x1.0p-2
},
{ // Entry 92
0x1.00000000000010p0,
0x1.0000000000001p-2
},
{ // Entry 93
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-2
},
{ // Entry 94
0x1.p0,
0x1.0p-1
},
{ // Entry 95
0x1.00000000000010p0,
0x1.0000000000001p-1
},
{ // Entry 96
-0x1.p0,
-0x1.0p-1074
},
{ // Entry 97
-0.0,
-0.0
},
{ // Entry 98
0x1.p0,
0x1.0p-1074
},
{ // Entry 99
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-1
},
{ // Entry 100
0x1.p0,
0x1.0p0
},
{ // Entry 101
0x1.00000000000010p0,
0x1.0000000000001p0
},
{ // Entry 102
0x1.fffffffffffff0p0,
0x1.fffffffffffffp0
},
{ // Entry 103
0x1.p0,
0x1.0p1
},
{ // Entry 104
0x1.00000000000010p0,
0x1.0000000000001p1
},
{ // Entry 105
0x1.fffffffffffff0p0,
0x1.fffffffffffffp1
},
{ // Entry 106
0x1.p0,
0x1.0p2
},
{ // Entry 107
0x1.00000000000010p0,
0x1.0000000000001p2
},
{ // Entry 108
0x1.fffffffffffff0p0,
0x1.fffffffffffffp2
},
{ // Entry 109
0x1.p0,
0x1.0p3
},
{ // Entry 110
0x1.00000000000010p0,
0x1.0000000000001p3
},
{ // Entry 111
0x1.fffffffffffff0p0,
0x1.fffffffffffffp3
},
{ // Entry 112
0x1.p0,
0x1.0p4
},
{ // Entry 113
0x1.00000000000010p0,
0x1.0000000000001p4
},
{ // Entry 114
0x1.fffffffffffff0p0,
0x1.fffffffffffffp4
},
{ // Entry 115
0x1.p0,
0x1.0p5
},
{ // Entry 116
0x1.00000000000010p0,
0x1.0000000000001p5
},
{ // Entry 117
0x1.fffffffffffff0p0,
0x1.fffffffffffffp5
},
{ // Entry 118
0x1.p0,
0x1.0p6
},
{ // Entry 119
0x1.00000000000010p0,
0x1.0000000000001p6
},
{ // Entry 120
0x1.fffffffffffff0p0,
0x1.fffffffffffffp6
},
{ // Entry 121
0x1.p0,
0x1.0p7
},
{ // Entry 122
0x1.00000000000010p0,
0x1.0000000000001p7
},
{ // Entry 123
HUGE_VAL,
HUGE_VAL
},
{ // Entry 124
-HUGE_VAL,
-HUGE_VAL
},
{ // Entry 125
0x1.fffffffffffff0p0,
0x1.fffffffffffffp1023
},
{ // Entry 126
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp1023
},
{ // Entry 127
0x1.ffffffffffffe0p0,
0x1.ffffffffffffep1023
},
{ // Entry 128
-0x1.ffffffffffffe0p0,
-0x1.ffffffffffffep1023
},
{ // Entry 129
0x1.921fb54442d180p0,
0x1.921fb54442d18p1
},
{ // Entry 130
-0x1.921fb54442d180p0,
-0x1.921fb54442d18p1
},
{ // Entry 131
0x1.921fb54442d180p0,
0x1.921fb54442d18p0
},
{ // Entry 132
-0x1.921fb54442d180p0,
-0x1.921fb54442d18p0
},
{ // Entry 133
0x1.00000000000010p0,
0x1.0000000000001p0
},
{ // Entry 134
-0x1.00000000000010p0,
-0x1.0000000000001p0
},
{ // Entry 135
0x1.p0,
0x1.0p0
},
{ // Entry 136
-0x1.p0,
-0x1.0p0
},
{ // Entry 137
0x1.fffffffffffff0p0,
0x1.fffffffffffffp-1
},
{ // Entry 138
-0x1.fffffffffffff0p0,
-0x1.fffffffffffffp-1
},
{ // Entry 139
0x1.921fb54442d180p0,
0x1.921fb54442d18p-1
},
{ // Entry 140
-0x1.921fb54442d180p0,
-0x1.921fb54442d18p-1
},
{ // Entry 141
0x1.00000000000010p0,
0x1.0000000000001p-1022
},
{ // Entry 142
-0x1.00000000000010p0,
-0x1.0000000000001p-1022
},
{ // Entry 143
0x1.p0,
0x1.0p-1022
},
{ // Entry 144
-0x1.p0,
-0x1.0p-1022
},
{ // Entry 145
0x1.ffffffffffffe0p0,
0x1.ffffffffffffep-1023
},
{ // Entry 146
-0x1.ffffffffffffe0p0,
-0x1.ffffffffffffep-1023
},
{ // Entry 147
0x1.ffffffffffffc0p0,
0x1.ffffffffffffcp-1023
},
{ // Entry 148
-0x1.ffffffffffffc0p0,
-0x1.ffffffffffffcp-1023
},
{ // Entry 149
0x1.p0,
0x1.0p-1073
},
{ // Entry 150
-0x1.p0,
-0x1.0p-1073
},
{ // Entry 151
0x1.p0,
0x1.0p-1074
},
{ // Entry 152
-0x1.p0,
-0x1.0p-1074
},
{ // Entry 153
0.0,
0.0
},
{ // Entry 154
-0.0,
-0.0
}
};