darcy | 32db449 | 2009-01-26 19:49:26 -0800 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2003-2004 Sun Microsystems, Inc. All Rights Reserved. |
| 3 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
| 4 | * |
| 5 | * This code is free software; you can redistribute it and/or modify it |
| 6 | * under the terms of the GNU General Public License version 2 only, as |
| 7 | * published by the Free Software Foundation. |
| 8 | * |
| 9 | * This code is distributed in the hope that it will be useful, but WITHOUT |
| 10 | * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
| 11 | * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
| 12 | * version 2 for more details (a copy is included in the LICENSE file that |
| 13 | * accompanied this code). |
| 14 | * |
| 15 | * You should have received a copy of the GNU General Public License version |
| 16 | * 2 along with this work; if not, write to the Free Software Foundation, |
| 17 | * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. |
| 18 | * |
| 19 | * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, |
| 20 | * CA 95054 USA or visit www.sun.com if you need additional information or |
| 21 | * have any questions. |
| 22 | */ |
| 23 | |
| 24 | /* |
| 25 | * @test |
| 26 | * @bug 4347132 |
| 27 | * @summary Tests specifically for StrictMath.cbrt |
| 28 | * @author Joseph D. Darcy |
| 29 | */ |
| 30 | |
| 31 | /** |
| 32 | * The tests in ../Math/CubeRootTests.java test properties that should |
| 33 | * hold for any cube root implementation, including the FDLIBM-based |
| 34 | * one required for StrictMath.cbrt. Therefore, the test cases in |
| 35 | * ../Math/CubeRootTests.java are run against both the Math and |
| 36 | * StrictMath versions of cube root. The role of this test is to |
| 37 | * verify that the FDLIBM cbrt algorithm is being used by running |
| 38 | * golden file tests on values that may vary from one conforming cube |
| 39 | * root implementation to another. |
| 40 | */ |
| 41 | |
| 42 | public class CubeRootTests { |
| 43 | private CubeRootTests(){} |
| 44 | |
| 45 | static int testCubeRootCase(double input, double expected) { |
| 46 | int failures=0; |
| 47 | |
| 48 | double minus_input = -input; |
| 49 | double minus_expected = -expected; |
| 50 | |
| 51 | failures+=Tests.test("StrictMath.cbrt(double)", input, |
| 52 | StrictMath.cbrt(input), expected); |
| 53 | failures+=Tests.test("StrictMath.cbrt(double)", minus_input, |
| 54 | StrictMath.cbrt(minus_input), minus_expected); |
| 55 | return failures; |
| 56 | } |
| 57 | |
| 58 | static int testCubeRoot() { |
| 59 | int failures = 0; |
| 60 | double [][] testCases = { |
| 61 | {0x1.ffffffffffffep-766, 0x1.fffffffffffffp-256}, |
| 62 | {0x1.ffffffffffffep-763, 0x1.fffffffffffffp-255}, |
| 63 | {0x1.ffffffffffffep-760, 0x1.fffffffffffffp-254}, |
| 64 | {0x1.ffffffffffffep-757, 0x1.fffffffffffffp-253}, |
| 65 | {0x1.ffffffffffffep-754, 0x1.fffffffffffffp-252}, |
| 66 | {0x1.ffffffffffffep-751, 0x1.fffffffffffffp-251}, |
| 67 | {0x1.ffffffffffffep-748, 0x1.fffffffffffffp-250}, |
| 68 | {0x1.ffffffffffffep-745, 0x1.fffffffffffffp-249}, |
| 69 | {0x1.ffffffffffffep-742, 0x1.fffffffffffffp-248}, |
| 70 | {0x1.ffffffffffffep-739, 0x1.fffffffffffffp-247}, |
| 71 | {0x1.ffffffffffffep-1006, 0x1.fffffffffffffp-336}, |
| 72 | {0x1.ffffffffffffep-736, 0x1.fffffffffffffp-246}, |
| 73 | {0x1.ffffffffffffep-733, 0x1.fffffffffffffp-245}, |
| 74 | {0x1.ffffffffffffep-730, 0x1.fffffffffffffp-244}, |
| 75 | {0x1.ffffffffffffep-727, 0x1.fffffffffffffp-243}, |
| 76 | {0x1.ffffffffffffep-724, 0x1.fffffffffffffp-242}, |
| 77 | {0x1.ffffffffffffep-721, 0x1.fffffffffffffp-241}, |
| 78 | {0x1.ffffffffffffep-718, 0x1.fffffffffffffp-240}, |
| 79 | {0x1.ffffffffffffep-715, 0x1.fffffffffffffp-239}, |
| 80 | {0x1.ffffffffffffep-712, 0x1.fffffffffffffp-238}, |
| 81 | {0x1.ffffffffffffep-709, 0x1.fffffffffffffp-237}, |
| 82 | {0x1.ffffffffffffep-706, 0x1.fffffffffffffp-236}, |
| 83 | {0x1.ffffffffffffep-703, 0x1.fffffffffffffp-235}, |
| 84 | {0x1.ffffffffffffep-700, 0x1.fffffffffffffp-234}, |
| 85 | {0x1.ffffffffffffep-697, 0x1.fffffffffffffp-233}, |
| 86 | {0x1.ffffffffffffep-694, 0x1.fffffffffffffp-232}, |
| 87 | {0x1.ffffffffffffep-691, 0x1.fffffffffffffp-231}, |
| 88 | {0x1.ffffffffffffep-1003, 0x1.fffffffffffffp-335}, |
| 89 | {0x1.ffffffffffffep-688, 0x1.fffffffffffffp-230}, |
| 90 | {0x1.ffffffffffffep-685, 0x1.fffffffffffffp-229}, |
| 91 | {0x1.ffffffffffffep-682, 0x1.fffffffffffffp-228}, |
| 92 | {0x1.ffffffffffffep-679, 0x1.fffffffffffffp-227}, |
| 93 | {0x1.ffffffffffffep-676, 0x1.fffffffffffffp-226}, |
| 94 | {0x1.ffffffffffffep-673, 0x1.fffffffffffffp-225}, |
| 95 | {0x1.ffffffffffffep-670, 0x1.fffffffffffffp-224}, |
| 96 | {0x1.ffffffffffffep-667, 0x1.fffffffffffffp-223}, |
| 97 | {0x1.ffffffffffffep-664, 0x1.fffffffffffffp-222}, |
| 98 | {0x1.ffffffffffffep-661, 0x1.fffffffffffffp-221}, |
| 99 | {0x1.ffffffffffffep-658, 0x1.fffffffffffffp-220}, |
| 100 | {0x1.ffffffffffffep-655, 0x1.fffffffffffffp-219}, |
| 101 | {0x1.ffffffffffffep-652, 0x1.fffffffffffffp-218}, |
| 102 | {0x1.ffffffffffffep-649, 0x1.fffffffffffffp-217}, |
| 103 | {0x1.ffffffffffffep-646, 0x1.fffffffffffffp-216}, |
| 104 | {0x1.ffffffffffffep-643, 0x1.fffffffffffffp-215}, |
| 105 | {0x1.ffffffffffffep-1000, 0x1.fffffffffffffp-334}, |
| 106 | {0x1.ffffffffffffep-640, 0x1.fffffffffffffp-214}, |
| 107 | {0x1.ffffffffffffep-637, 0x1.fffffffffffffp-213}, |
| 108 | {0x1.ffffffffffffep-634, 0x1.fffffffffffffp-212}, |
| 109 | {0x1.ffffffffffffep-631, 0x1.fffffffffffffp-211}, |
| 110 | {0x1.ffffffffffffep-628, 0x1.fffffffffffffp-210}, |
| 111 | {0x1.ffffffffffffep-625, 0x1.fffffffffffffp-209}, |
| 112 | {0x1.ffffffffffffep-622, 0x1.fffffffffffffp-208}, |
| 113 | {0x1.ffffffffffffep-619, 0x1.fffffffffffffp-207}, |
| 114 | {0x1.ffffffffffffep-616, 0x1.fffffffffffffp-206}, |
| 115 | {0x1.ffffffffffffep-613, 0x1.fffffffffffffp-205}, |
| 116 | {0x1.ffffffffffffep-610, 0x1.fffffffffffffp-204}, |
| 117 | {0x1.ffffffffffffep-607, 0x1.fffffffffffffp-203}, |
| 118 | {0x1.ffffffffffffep-604, 0x1.fffffffffffffp-202}, |
| 119 | {0x1.ffffffffffffep-601, 0x1.fffffffffffffp-201}, |
| 120 | {0x1.ffffffffffffep-598, 0x1.fffffffffffffp-200}, |
| 121 | {0x1.ffffffffffffep-595, 0x1.fffffffffffffp-199}, |
| 122 | {0x1.ffffffffffffep-997, 0x1.fffffffffffffp-333}, |
| 123 | {0x1.ffffffffffffep-592, 0x1.fffffffffffffp-198}, |
| 124 | {0x1.ffffffffffffep-589, 0x1.fffffffffffffp-197}, |
| 125 | {0x1.ffffffffffffep-586, 0x1.fffffffffffffp-196}, |
| 126 | {0x1.ffffffffffffep-583, 0x1.fffffffffffffp-195}, |
| 127 | {0x1.ffffffffffffep-580, 0x1.fffffffffffffp-194}, |
| 128 | {0x1.ffffffffffffep-577, 0x1.fffffffffffffp-193}, |
| 129 | {0x1.ffffffffffffep-574, 0x1.fffffffffffffp-192}, |
| 130 | {0x1.ffffffffffffep-571, 0x1.fffffffffffffp-191}, |
| 131 | {0x1.ffffffffffffep-568, 0x1.fffffffffffffp-190}, |
| 132 | {0x1.ffffffffffffep-565, 0x1.fffffffffffffp-189}, |
| 133 | {0x1.ffffffffffffep-562, 0x1.fffffffffffffp-188}, |
| 134 | {0x1.ffffffffffffep-559, 0x1.fffffffffffffp-187}, |
| 135 | {0x1.ffffffffffffep-556, 0x1.fffffffffffffp-186}, |
| 136 | {0x1.ffffffffffffep-553, 0x1.fffffffffffffp-185}, |
| 137 | {0x1.ffffffffffffep-550, 0x1.fffffffffffffp-184}, |
| 138 | {0x1.ffffffffffffep-547, 0x1.fffffffffffffp-183}, |
| 139 | {0x1.ffffffffffffep-994, 0x1.fffffffffffffp-332}, |
| 140 | {0x1.ffffffffffffep-544, 0x1.fffffffffffffp-182}, |
| 141 | {0x1.ffffffffffffep-541, 0x1.fffffffffffffp-181}, |
| 142 | {0x1.ffffffffffffep-538, 0x1.fffffffffffffp-180}, |
| 143 | {0x1.ffffffffffffep-535, 0x1.fffffffffffffp-179}, |
| 144 | {0x1.ffffffffffffep-532, 0x1.fffffffffffffp-178}, |
| 145 | {0x1.ffffffffffffep-529, 0x1.fffffffffffffp-177}, |
| 146 | {0x0.00000000001fp-1022, 0x1.fa9c313858568p-356}, |
| 147 | {0x1.ffffffffffffep-526, 0x1.fffffffffffffp-176}, |
| 148 | {0x1.ffffffffffffep-523, 0x1.fffffffffffffp-175}, |
| 149 | {0x1.ffffffffffffep-520, 0x1.fffffffffffffp-174}, |
| 150 | {0x1.ffffffffffffep-517, 0x1.fffffffffffffp-173}, |
| 151 | {0x0.00000000001fdp-1022, 0x1.feff7f94ea34dp-356}, |
| 152 | {0x1.ffffffffffffep-514, 0x1.fffffffffffffp-172}, |
| 153 | {0x0.00000001fffe7p-1022, 0x1.ffff7aaa87f1bp-352}, |
| 154 | {0x0.00000001fffffp-1022, 0x1.fffffaaaaa9c7p-352}, |
| 155 | {0x0.00001ffffff4p-1022, 0x1.ffffffcp-348}, |
| 156 | {0x0.00001ffffffffp-1022, 0x1.ffffffffaaaabp-348}, |
| 157 | {0x0.01ffffffffffcp-1022, 0x1.ffffffffffeabp-344}, |
| 158 | {0x1.ffffffffffffep-511, 0x1.fffffffffffffp-171}, |
| 159 | {0x1.ffffffffffffep-508, 0x1.fffffffffffffp-170}, |
| 160 | {0x1.ffffffffffffep-505, 0x1.fffffffffffffp-169}, |
| 161 | {0x1.ffffffffffffep-502, 0x1.fffffffffffffp-168}, |
| 162 | {0x1.ffffffffffffep-499, 0x1.fffffffffffffp-167}, |
| 163 | {0x1.ffffffffffffep-991, 0x1.fffffffffffffp-331}, |
| 164 | {0x1.ffffffffffffep-496, 0x1.fffffffffffffp-166}, |
| 165 | {0x1.ffffffffffffep-493, 0x1.fffffffffffffp-165}, |
| 166 | {0x1.ffffffffffffep-490, 0x1.fffffffffffffp-164}, |
| 167 | {0x1.ffffffffffffep-487, 0x1.fffffffffffffp-163}, |
| 168 | {0x1.ffffffffffffep-484, 0x1.fffffffffffffp-162}, |
| 169 | {0x1.ffffffffffffep-481, 0x1.fffffffffffffp-161}, |
| 170 | {0x1.ffffffffffffep-478, 0x1.fffffffffffffp-160}, |
| 171 | {0x1.ffffffffffffep-475, 0x1.fffffffffffffp-159}, |
| 172 | {0x1.ffffffffffffep-472, 0x1.fffffffffffffp-158}, |
| 173 | {0x1.ffffffffffffep-469, 0x1.fffffffffffffp-157}, |
| 174 | {0x1.ffffffffffffep-466, 0x1.fffffffffffffp-156}, |
| 175 | {0x1.ffffffffffffep-463, 0x1.fffffffffffffp-155}, |
| 176 | {0x1.ffffffffffffep-460, 0x1.fffffffffffffp-154}, |
| 177 | {0x1.ffffffffffffep-457, 0x1.fffffffffffffp-153}, |
| 178 | {0x1.ffffffffffffep-454, 0x1.fffffffffffffp-152}, |
| 179 | {0x1.ffffffffffffep-451, 0x1.fffffffffffffp-151}, |
| 180 | {0x1.ffffffffffffep-988, 0x1.fffffffffffffp-330}, |
| 181 | {0x1.ffffffffffffep-448, 0x1.fffffffffffffp-150}, |
| 182 | {0x1.ffffffffffffep-445, 0x1.fffffffffffffp-149}, |
| 183 | {0x1.ffffffffffffep-442, 0x1.fffffffffffffp-148}, |
| 184 | {0x1.ffffffffffffep-439, 0x1.fffffffffffffp-147}, |
| 185 | {0x1.ffffffffffffep-436, 0x1.fffffffffffffp-146}, |
| 186 | {0x1.ffffffffffffep-433, 0x1.fffffffffffffp-145}, |
| 187 | {0x1.ffffffffffffep-430, 0x1.fffffffffffffp-144}, |
| 188 | {0x1.ffffffffffffep-427, 0x1.fffffffffffffp-143}, |
| 189 | {0x1.ffffffffffffep-424, 0x1.fffffffffffffp-142}, |
| 190 | {0x1.ffffffffffffep-421, 0x1.fffffffffffffp-141}, |
| 191 | {0x1.ffffffffffffep-418, 0x1.fffffffffffffp-140}, |
| 192 | {0x1.ffffffffffffep-415, 0x1.fffffffffffffp-139}, |
| 193 | {0x1.ffffffffffffep-412, 0x1.fffffffffffffp-138}, |
| 194 | {0x1.ffffffffffffep-409, 0x1.fffffffffffffp-137}, |
| 195 | {0x1.ffffffffffffep-406, 0x1.fffffffffffffp-136}, |
| 196 | {0x1.ffffffffffffep-403, 0x1.fffffffffffffp-135}, |
| 197 | {0x1.ffffffffffffep-985, 0x1.fffffffffffffp-329}, |
| 198 | {0x1.ffffffffffffep-400, 0x1.fffffffffffffp-134}, |
| 199 | {0x1.ffffffffffffep-397, 0x1.fffffffffffffp-133}, |
| 200 | {0x1.ffffffffffffep-394, 0x1.fffffffffffffp-132}, |
| 201 | {0x1.ffffffffffffep-391, 0x1.fffffffffffffp-131}, |
| 202 | {0x1.ffffffffffffep-388, 0x1.fffffffffffffp-130}, |
| 203 | {0x1.ffffffffffffep-385, 0x1.fffffffffffffp-129}, |
| 204 | {0x1.ffffffffffffep-382, 0x1.fffffffffffffp-128}, |
| 205 | {0x1.ffffffffffffep-379, 0x1.fffffffffffffp-127}, |
| 206 | {0x1.ffffffffffffep-376, 0x1.fffffffffffffp-126}, |
| 207 | {0x1.ffffffffffffep-373, 0x1.fffffffffffffp-125}, |
| 208 | {0x1.ffffffffffffep-370, 0x1.fffffffffffffp-124}, |
| 209 | {0x1.ffffffffffffep-367, 0x1.fffffffffffffp-123}, |
| 210 | {0x1.ffffffffffffep-364, 0x1.fffffffffffffp-122}, |
| 211 | {0x1.ffffffffffffep-361, 0x1.fffffffffffffp-121}, |
| 212 | {0x1.ffffffffffffep-358, 0x1.fffffffffffffp-120}, |
| 213 | {0x1.ffffffffffffep-355, 0x1.fffffffffffffp-119}, |
| 214 | {0x1.ffffffffffffep-982, 0x1.fffffffffffffp-328}, |
| 215 | {0x1.ffffffffffffep-352, 0x1.fffffffffffffp-118}, |
| 216 | {0x1.ffffffffffffep-349, 0x1.fffffffffffffp-117}, |
| 217 | {0x1.ffffffffffffep-346, 0x1.fffffffffffffp-116}, |
| 218 | {0x1.ffffffffffffep-343, 0x1.fffffffffffffp-115}, |
| 219 | {0x1.ffffffffffffep-340, 0x1.fffffffffffffp-114}, |
| 220 | {0x1.ffffffffffffep-337, 0x1.fffffffffffffp-113}, |
| 221 | {0x1.ffffffffffffep-334, 0x1.fffffffffffffp-112}, |
| 222 | {0x1.ffffffffffffep-331, 0x1.fffffffffffffp-111}, |
| 223 | {0x1.ffffffffffffep-328, 0x1.fffffffffffffp-110}, |
| 224 | {0x1.ffffffffffffep-325, 0x1.fffffffffffffp-109}, |
| 225 | {0x1.ffffffffffffep-322, 0x1.fffffffffffffp-108}, |
| 226 | {0x1.ffffffffffffep-319, 0x1.fffffffffffffp-107}, |
| 227 | {0x1.ffffffffffffep-316, 0x1.fffffffffffffp-106}, |
| 228 | {0x1.ffffffffffffep-313, 0x1.fffffffffffffp-105}, |
| 229 | {0x1.ffffffffffffep-310, 0x1.fffffffffffffp-104}, |
| 230 | {0x1.ffffffffffffep-307, 0x1.fffffffffffffp-103}, |
| 231 | {0x1.ffffffffffffep-979, 0x1.fffffffffffffp-327}, |
| 232 | {0x1.ffffffffffffep-304, 0x1.fffffffffffffp-102}, |
| 233 | {0x1.ffffffffffffep-301, 0x1.fffffffffffffp-101}, |
| 234 | {0x1.ffffffffffffep-298, 0x1.fffffffffffffp-100}, |
| 235 | {0x1.ffffffffffffep-295, 0x1.fffffffffffffp-99}, |
| 236 | {0x1.ffffffffffffep-292, 0x1.fffffffffffffp-98}, |
| 237 | {0x1.ffffffffffffep-289, 0x1.fffffffffffffp-97}, |
| 238 | {0x1.ffffffffffffep-286, 0x1.fffffffffffffp-96}, |
| 239 | {0x1.ffffffffffffep-283, 0x1.fffffffffffffp-95}, |
| 240 | {0x1.ffffffffffffep-280, 0x1.fffffffffffffp-94}, |
| 241 | {0x1.ffffffffffffep-277, 0x1.fffffffffffffp-93}, |
| 242 | {0x1.ffffffffffffep-274, 0x1.fffffffffffffp-92}, |
| 243 | {0x1.ffffffffffffep-271, 0x1.fffffffffffffp-91}, |
| 244 | {0x1.ffffffffffffep-268, 0x1.fffffffffffffp-90}, |
| 245 | {0x1.ffffffffffffep-265, 0x1.fffffffffffffp-89}, |
| 246 | {0x1.ffffffffffffep-262, 0x1.fffffffffffffp-88}, |
| 247 | {0x1.ffffffffffffep-259, 0x1.fffffffffffffp-87}, |
| 248 | {0x1.ffffffffffffep-1021, 0x1.fffffffffffffp-341}, |
| 249 | {0x1.ffffffffffffep-976, 0x1.fffffffffffffp-326}, |
| 250 | {0x1.ffffffffffffep-256, 0x1.fffffffffffffp-86}, |
| 251 | {0x1.ffffffffffffep-253, 0x1.fffffffffffffp-85}, |
| 252 | {0x1.ffffffffffffep-250, 0x1.fffffffffffffp-84}, |
| 253 | {0x1.ffffffffffffep-247, 0x1.fffffffffffffp-83}, |
| 254 | {0x1.ffffffffffffep-244, 0x1.fffffffffffffp-82}, |
| 255 | {0x1.ffffffffffffep-241, 0x1.fffffffffffffp-81}, |
| 256 | {0x1.ffffffffffffep-238, 0x1.fffffffffffffp-80}, |
| 257 | {0x1.ffffffffffffep-235, 0x1.fffffffffffffp-79}, |
| 258 | {0x1.ffffffffffffep-232, 0x1.fffffffffffffp-78}, |
| 259 | {0x1.ffffffffffffep-229, 0x1.fffffffffffffp-77}, |
| 260 | {0x1.ffffffffffffep-226, 0x1.fffffffffffffp-76}, |
| 261 | {0x1.ffffffffffffep-223, 0x1.fffffffffffffp-75}, |
| 262 | {0x1.ffffffffffffep-220, 0x1.fffffffffffffp-74}, |
| 263 | {0x1.ffffffffffffep-217, 0x1.fffffffffffffp-73}, |
| 264 | {0x1.ffffffffffffep-214, 0x1.fffffffffffffp-72}, |
| 265 | {0x1.ffffffffffffep-211, 0x1.fffffffffffffp-71}, |
| 266 | {0x1.ffffffffffffep-973, 0x1.fffffffffffffp-325}, |
| 267 | {0x1.ffffffffffffep-208, 0x1.fffffffffffffp-70}, |
| 268 | {0x1.ffffffffffffep-205, 0x1.fffffffffffffp-69}, |
| 269 | {0x1.ffffffffffffep-202, 0x1.fffffffffffffp-68}, |
| 270 | {0x1.ffffffffffffep-199, 0x1.fffffffffffffp-67}, |
| 271 | {0x1.ffffffffffffep-196, 0x1.fffffffffffffp-66}, |
| 272 | {0x1.ffffffffffffep-193, 0x1.fffffffffffffp-65}, |
| 273 | {0x1.ffffffffffffep-190, 0x1.fffffffffffffp-64}, |
| 274 | {0x1.ffffffffffffep-187, 0x1.fffffffffffffp-63}, |
| 275 | {0x1.ffffffffffffep-184, 0x1.fffffffffffffp-62}, |
| 276 | {0x1.ffffffffffffep-181, 0x1.fffffffffffffp-61}, |
| 277 | {0x1.ffffffffffffep-178, 0x1.fffffffffffffp-60}, |
| 278 | {0x1.ffffffffffffep-175, 0x1.fffffffffffffp-59}, |
| 279 | {0x1.ffffffffffffep-172, 0x1.fffffffffffffp-58}, |
| 280 | {0x1.ffffffffffffep-169, 0x1.fffffffffffffp-57}, |
| 281 | {0x1.ffffffffffffep-166, 0x1.fffffffffffffp-56}, |
| 282 | {0x1.ffffffffffffep-163, 0x1.fffffffffffffp-55}, |
| 283 | {0x1.ffffffffffffep-970, 0x1.fffffffffffffp-324}, |
| 284 | {0x1.ffffffffffffep-160, 0x1.fffffffffffffp-54}, |
| 285 | {0x1.ffffffffffffep-157, 0x1.fffffffffffffp-53}, |
| 286 | {0x1.ffffffffffffep-154, 0x1.fffffffffffffp-52}, |
| 287 | {0x1.ffffffffffffep-151, 0x1.fffffffffffffp-51}, |
| 288 | {0x1.ffffffffffffep-148, 0x1.fffffffffffffp-50}, |
| 289 | {0x1.ffffffffffffep-145, 0x1.fffffffffffffp-49}, |
| 290 | {0x1.ffffffffffffep-142, 0x1.fffffffffffffp-48}, |
| 291 | {0x1.ffffffffffffep-139, 0x1.fffffffffffffp-47}, |
| 292 | {0x1.ffffffffffffep-136, 0x1.fffffffffffffp-46}, |
| 293 | {0x1.ffffffffffffep-133, 0x1.fffffffffffffp-45}, |
| 294 | {0x1.ffffffffffffep-130, 0x1.fffffffffffffp-44}, |
| 295 | {0x1.ffffffffffffep-127, 0x1.fffffffffffffp-43}, |
| 296 | {0x1.ffffffffffffep-124, 0x1.fffffffffffffp-42}, |
| 297 | {0x1.ffffffffffffep-121, 0x1.fffffffffffffp-41}, |
| 298 | {0x1.ffffffffffffep-118, 0x1.fffffffffffffp-40}, |
| 299 | {0x1.ffffffffffffep-115, 0x1.fffffffffffffp-39}, |
| 300 | {0x1.ffffffffffffep-967, 0x1.fffffffffffffp-323}, |
| 301 | {0x1.ffffffffffffep-112, 0x1.fffffffffffffp-38}, |
| 302 | {0x1.ffffffffffffep-109, 0x1.fffffffffffffp-37}, |
| 303 | {0x1.ffffffffffffep-106, 0x1.fffffffffffffp-36}, |
| 304 | {0x1.ffffffffffffep-103, 0x1.fffffffffffffp-35}, |
| 305 | {0x1.ffffffffffffep-100, 0x1.fffffffffffffp-34}, |
| 306 | {0x1.ffffffffffffep-97, 0x1.fffffffffffffp-33}, |
| 307 | {0x1.ffffffffffffep-94, 0x1.fffffffffffffp-32}, |
| 308 | {0x1.ffffffffffffep-91, 0x1.fffffffffffffp-31}, |
| 309 | {0x1.ffffffffffffep-88, 0x1.fffffffffffffp-30}, |
| 310 | {0x1.ffffffffffffep-85, 0x1.fffffffffffffp-29}, |
| 311 | {0x1.ffffffffffffep-82, 0x1.fffffffffffffp-28}, |
| 312 | {0x1.ffffffffffffep-79, 0x1.fffffffffffffp-27}, |
| 313 | {0x1.ffffffffffffep-76, 0x1.fffffffffffffp-26}, |
| 314 | {0x1.ffffffffffffep-73, 0x1.fffffffffffffp-25}, |
| 315 | {0x1.ffffffffffffep-70, 0x1.fffffffffffffp-24}, |
| 316 | {0x1.ffffffffffffep-67, 0x1.fffffffffffffp-23}, |
| 317 | {0x1.ffffffffffffep-964, 0x1.fffffffffffffp-322}, |
| 318 | {0x1.ffffffffffffep-64, 0x1.fffffffffffffp-22}, |
| 319 | {0x1.ffffffffffffep-61, 0x1.fffffffffffffp-21}, |
| 320 | {0x1.ffffffffffffep-58, 0x1.fffffffffffffp-20}, |
| 321 | {0x1.ffffffffffffep-55, 0x1.fffffffffffffp-19}, |
| 322 | {0x1.ffffffffffffep-52, 0x1.fffffffffffffp-18}, |
| 323 | {0x1.ffffffffffffep-49, 0x1.fffffffffffffp-17}, |
| 324 | {0x1.ffffffffffffep-46, 0x1.fffffffffffffp-16}, |
| 325 | {0x1.ffffffffffffep-43, 0x1.fffffffffffffp-15}, |
| 326 | {0x1.ffffffffffffep-40, 0x1.fffffffffffffp-14}, |
| 327 | {0x1.ffffffffffffep-37, 0x1.fffffffffffffp-13}, |
| 328 | {0x1.ffffffffffffep-34, 0x1.fffffffffffffp-12}, |
| 329 | {0x1.ffffffffffffep-31, 0x1.fffffffffffffp-11}, |
| 330 | {0x1.ffffffffffffep-28, 0x1.fffffffffffffp-10}, |
| 331 | {0x1.ffffffffffffep-25, 0x1.fffffffffffffp-9}, |
| 332 | {0x1.ffffffffffffep-22, 0x1.fffffffffffffp-8}, |
| 333 | {0x0.000000000003ep-1022, 0x1.fa9c313858568p-357}, |
| 334 | {0x1.ffffffffffffep-19, 0x1.fffffffffffffp-7}, |
| 335 | {0x1.ffffffffffffep-961, 0x1.fffffffffffffp-321}, |
| 336 | {0x1.ffffffffffffep-16, 0x1.fffffffffffffp-6}, |
| 337 | {0x1.ffffffffffffep-13, 0x1.fffffffffffffp-5}, |
| 338 | {0x1.ffffffffffffep-10, 0x1.fffffffffffffp-4}, |
| 339 | {0x1.ffffffffffffep-7, 0x1.fffffffffffffp-3}, |
| 340 | {0x0.000000000003fp-1022, 0x1.fd51bf2069fe6p-357}, |
| 341 | {0x1.ffffffffffffep-4, 0x1.fffffffffffffp-2}, |
| 342 | {0x1.ffffffffffffep-1, 0x1.fffffffffffffp-1}, |
| 343 | {0x0.000000003fffcp-1022, 0x1.ffff55551c71bp-353}, |
| 344 | {0x0.000003fffffe8p-1022, 0x1.ffffffcp-349}, |
| 345 | {0x0.000003ffffffcp-1022, 0x1.fffffff555555p-349}, |
| 346 | {0x0.003fffffffff9p-1022, 0x1.fffffffffed55p-345}, |
| 347 | {0x1.ffffffffffffep2, 0x1.fffffffffffffp0}, |
| 348 | {0x1.bp4, 0x1.8p1}, |
| 349 | {0x1.ffffffffffffep5, 0x1.fffffffffffffp1}, |
| 350 | {0x1.f3ffffffffff4p6, 0x1.3fffffffffffep2}, |
| 351 | {0x1.f3ffffffffffcp6, 0x1.3ffffffffffffp2}, |
| 352 | {0x1.bp7, 0x1.8p2}, |
| 353 | {0x1.56ffffffffffep8, 0x1.bffffffffffffp2}, |
| 354 | {0x1.ffffffffffffep8, 0x1.fffffffffffffp2}, |
| 355 | {0x1.6c8p9, 0x1.2p3}, |
| 356 | {0x1.f3ffffffffff4p9, 0x1.3fffffffffffep3}, |
| 357 | {0x1.f3ffffffffffcp9, 0x1.3ffffffffffffp3}, |
| 358 | {0x1.4cbfffffffffcp10, 0x1.5fffffffffffep3}, |
| 359 | {0x1.4cbfffffffffep10, 0x1.5ffffffffffffp3}, |
| 360 | {0x1.bp10, 0x1.8p3}, |
| 361 | {0x1.129ffffffffa4p11, 0x1.9ffffffffffd1p3}, |
| 362 | {0x1.129fffffffffep11, 0x1.9ffffffffffffp3}, |
| 363 | {0x1.56ffffffffffep11, 0x1.bffffffffffffp3}, |
| 364 | {0x1.a5ep11, 0x1.ep3}, |
| 365 | {0x1.ffffffffffffep11, 0x1.fffffffffffffp3}, |
| 366 | {0x1.330fffffffc1ep12, 0x1.0fffffffffedbp4}, |
| 367 | {0x1.331p12, 0x1.1p4}, |
| 368 | {0x1.6c8p12, 0x1.2p4}, |
| 369 | {0x1.acafffffffffap12, 0x1.2ffffffffffffp4}, |
| 370 | {0x1.acafffffffffep12, 0x1.2ffffffffffffp4}, |
| 371 | {0x1.ffffffffffffep-958, 0x1.fffffffffffffp-320}, |
| 372 | {0x1.ffffffffffffep-955, 0x1.fffffffffffffp-319}, |
| 373 | {0x1.ffffffffffffep-952, 0x1.fffffffffffffp-318}, |
| 374 | {0x1.ffffffffffffep-949, 0x1.fffffffffffffp-317}, |
| 375 | {0x1.ffffffffffffep-946, 0x1.fffffffffffffp-316}, |
| 376 | {0x1.ffffffffffffep-943, 0x1.fffffffffffffp-315}, |
| 377 | {0x1.ffffffffffffep-940, 0x1.fffffffffffffp-314}, |
| 378 | {0x1.ffffffffffffep-937, 0x1.fffffffffffffp-313}, |
| 379 | {0x1.ffffffffffffep-934, 0x1.fffffffffffffp-312}, |
| 380 | {0x1.ffffffffffffep-931, 0x1.fffffffffffffp-311}, |
| 381 | {0x1.ffffffffffffep-1018, 0x1.fffffffffffffp-340}, |
| 382 | {0x1.ffffffffffffep-928, 0x1.fffffffffffffp-310}, |
| 383 | {0x1.ffffffffffffep-925, 0x1.fffffffffffffp-309}, |
| 384 | {0x1.ffffffffffffep-922, 0x1.fffffffffffffp-308}, |
| 385 | {0x1.ffffffffffffep-919, 0x1.fffffffffffffp-307}, |
| 386 | {0x1.ffffffffffffep-916, 0x1.fffffffffffffp-306}, |
| 387 | {0x1.ffffffffffffep-913, 0x1.fffffffffffffp-305}, |
| 388 | {0x1.ffffffffffffep-910, 0x1.fffffffffffffp-304}, |
| 389 | {0x1.ffffffffffffep-907, 0x1.fffffffffffffp-303}, |
| 390 | {0x1.ffffffffffffep-904, 0x1.fffffffffffffp-302}, |
| 391 | {0x0.0000000000007p-1022, 0x1.e9b5dba58189ep-358}, |
| 392 | {0x1.ffffffffffffep-901, 0x1.fffffffffffffp-301}, |
| 393 | {0x1.ffffffffffffep-898, 0x1.fffffffffffffp-300}, |
| 394 | {0x0.0000000007ffp-1022, 0x1.ffeaa9c70ca31p-354}, |
| 395 | {0x0.0000000007ffep-1022, 0x1.fffd5551c7149p-354}, |
| 396 | {0x0.0000007fffffdp-1022, 0x1.ffffffcp-350}, |
| 397 | {0x0.0000007fffffep-1022, 0x1.ffffffd555555p-350}, |
| 398 | {0x0.0007ffffffffap-1022, 0x1.fffffffff8p-346}, |
| 399 | {0x0.7ffffffffffffp-1022, 0x1.fffffffffffffp-342}, |
| 400 | {0x1.ffffffffffffep-895, 0x1.fffffffffffffp-299}, |
| 401 | {0x1.ffffffffffffep-892, 0x1.fffffffffffffp-298}, |
| 402 | {0x1.ffffffffffffep-889, 0x1.fffffffffffffp-297}, |
| 403 | {0x1.ffffffffffffep-886, 0x1.fffffffffffffp-296}, |
| 404 | {0x1.ffffffffffffep-883, 0x1.fffffffffffffp-295}, |
| 405 | {0x1.ffffffffffffep-1015, 0x1.fffffffffffffp-339}, |
| 406 | {0x1.ffffffffffffep-880, 0x1.fffffffffffffp-294}, |
| 407 | {0x1.ffffffffffffep-877, 0x1.fffffffffffffp-293}, |
| 408 | {0x1.ffffffffffffep-874, 0x1.fffffffffffffp-292}, |
| 409 | {0x1.ffffffffffffep-871, 0x1.fffffffffffffp-291}, |
| 410 | {0x1.ffffffffffffep-868, 0x1.fffffffffffffp-290}, |
| 411 | {0x1.ffffffffffffep-865, 0x1.fffffffffffffp-289}, |
| 412 | {0x1.ffffffffffffep-862, 0x1.fffffffffffffp-288}, |
| 413 | {0x1.ffffffffffffep-859, 0x1.fffffffffffffp-287}, |
| 414 | {0x1.ffffffffffffep-856, 0x1.fffffffffffffp-286}, |
| 415 | {0x1.ffffffffffffep-853, 0x1.fffffffffffffp-285}, |
| 416 | {0x1.ffffffffffffep-850, 0x1.fffffffffffffp-284}, |
| 417 | {0x1.ffffffffffffep-847, 0x1.fffffffffffffp-283}, |
| 418 | {0x1.ffffffffffffep-844, 0x1.fffffffffffffp-282}, |
| 419 | {0x1.ffffffffffffep-841, 0x1.fffffffffffffp-281}, |
| 420 | {0x1.ffffffffffffep-838, 0x1.fffffffffffffp-280}, |
| 421 | {0x1.ffffffffffffep-835, 0x1.fffffffffffffp-279}, |
| 422 | {0x1.ffffffffffffep-1012, 0x1.fffffffffffffp-338}, |
| 423 | {0x1.ffffffffffffep-832, 0x1.fffffffffffffp-278}, |
| 424 | {0x1.ffffffffffffep-829, 0x1.fffffffffffffp-277}, |
| 425 | {0x1.ffffffffffffep-826, 0x1.fffffffffffffp-276}, |
| 426 | {0x1.ffffffffffffep-823, 0x1.fffffffffffffp-275}, |
| 427 | {0x1.ffffffffffffep-820, 0x1.fffffffffffffp-274}, |
| 428 | {0x1.ffffffffffffep-817, 0x1.fffffffffffffp-273}, |
| 429 | {0x1.ffffffffffffep-814, 0x1.fffffffffffffp-272}, |
| 430 | {0x1.ffffffffffffep-811, 0x1.fffffffffffffp-271}, |
| 431 | {0x1.ffffffffffffep-808, 0x1.fffffffffffffp-270}, |
| 432 | {0x1.ffffffffffffep-805, 0x1.fffffffffffffp-269}, |
| 433 | {0x1.ffffffffffffep-802, 0x1.fffffffffffffp-268}, |
| 434 | {0x1.ffffffffffffep-799, 0x1.fffffffffffffp-267}, |
| 435 | {0x1.ffffffffffffep-796, 0x1.fffffffffffffp-266}, |
| 436 | {0x1.ffffffffffffep-793, 0x1.fffffffffffffp-265}, |
| 437 | {0x1.ffffffffffffep-790, 0x1.fffffffffffffp-264}, |
| 438 | {0x1.ffffffffffffep-787, 0x1.fffffffffffffp-263}, |
| 439 | {0x1.ffffffffffffep-1009, 0x1.fffffffffffffp-337}, |
| 440 | {0x1.ffffffffffffep-784, 0x1.fffffffffffffp-262}, |
| 441 | {0x1.ffffffffffffep-781, 0x1.fffffffffffffp-261}, |
| 442 | {0x1.ffffffffffffep-778, 0x1.fffffffffffffp-260}, |
| 443 | {0x1.ffffffffffffep-775, 0x1.fffffffffffffp-259}, |
| 444 | {0x1.ffffffffffffep-772, 0x1.fffffffffffffp-258}, |
| 445 | {0x1.ffffffffffffep-769, 0x1.fffffffffffffp-257}, |
| 446 | {0x0.0000000000ffep-1022, 0x1.ffeaa9c70ca31p-355}, |
| 447 | {0x0.0000000000fffp-1022, 0x1.fff5551c6fcd6p-355}, |
| 448 | {0x0.0000000ffff86p-1022, 0x1.ffffaeaa9dbf1p-351}, |
| 449 | {0x0.0000000ffffffp-1022, 0x1.ffffff5555552p-351}, |
| 450 | {0x0.0000ffffffap-1022, 0x1.ffffffcp-347}, |
| 451 | {0x0.0000ffffffff8p-1022, 0x1.ffffffffaaaabp-347}, |
| 452 | {0x0.0fffffffffffbp-1022, 0x1.fffffffffffcbp-343} |
| 453 | }; |
| 454 | |
| 455 | for(double[] testCase: testCases) |
| 456 | failures+=testCubeRootCase(testCase[0], testCase[1]); |
| 457 | |
| 458 | return failures; |
| 459 | } |
| 460 | |
| 461 | |
| 462 | public static void main(String [] argv) { |
| 463 | int failures = 0; |
| 464 | |
| 465 | failures += testCubeRoot(); |
| 466 | |
| 467 | if (failures > 0) { |
| 468 | System.err.println("Testing the cube root incurred " |
| 469 | + failures + " failures."); |
| 470 | throw new RuntimeException(); |
| 471 | } |
| 472 | } |
| 473 | } |