1 // log10.testdata 2 // copyright (C) 2005 Ch. Q. Lauter and V.Lefevre 3 // This file is part of crlibm and is distributed under the GNU Public Licence 4 // See file COPYING for details 5 // The following lines are either comments (beginning with a #) 6 // or give 7 // 1/ a rounding mode : RN|RU|RD|RZ (crlibm syntax) or N|P|M|Z (libmcr syntax) 8 // 2/ The high and low hexadecimal halves of an input 9 // 3/ The high and low hexadecimal halves of the expected corresponding output 10 // Test all positive integer powers of 10 for exponents (to 10) from 0 to 25 11 // especially in the directed rounding modes 12 // (testing exponents 0 to 17 should suffice in fact) 13 T(RN, 0x1p+0, 0x0p+0, 0x0p+0, 0) 14 T(RU, 0x1p+0, 0x0p+0, 0x0p+0, 0) 15 T(RD, 0x1p+0, 0x0p+0, 0x0p+0, 0) 16 T(RZ, 0x1p+0, 0x0p+0, 0x0p+0, 0) 17 T(RN, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 18 T(RU, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 19 T(RD, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 20 T(RZ, 0x1.4p+3, 0x1p+0, 0x0p+0, 0) 21 T(RN, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 22 T(RU, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 23 T(RD, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 24 T(RZ, 0x1.9p+6, 0x1p+1, 0x0p+0, 0) 25 T(RN, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 26 T(RU, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 27 T(RD, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 28 T(RZ, 0x1.f4p+9, 0x1.8p+1, 0x0p+0, 0) 29 T(RN, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 30 T(RU, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 31 T(RD, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 32 T(RZ, 0x1.388p+13, 0x1p+2, 0x0p+0, 0) 33 T(RN, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) 34 T(RU, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) 35 T(RD, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) 36 T(RZ, 0x1.86ap+16, 0x1.4p+2, 0x0p+0, 0) 37 T(RN, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) 38 T(RU, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) 39 T(RD, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) 40 T(RZ, 0x1.e848p+19, 0x1.8p+2, 0x0p+0, 0) 41 T(RN, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) 42 T(RU, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) 43 T(RD, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) 44 T(RZ, 0x1.312dp+23, 0x1.cp+2, 0x0p+0, 0) 45 T(RN, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) 46 T(RU, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) 47 T(RD, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) 48 T(RZ, 0x1.7d784p+26, 0x1p+3, 0x0p+0, 0) 49 T(RN, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) 50 T(RU, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) 51 T(RD, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) 52 T(RZ, 0x1.dcd65p+29, 0x1.2p+3, 0x0p+0, 0) 53 T(RN, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) 54 T(RU, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) 55 T(RD, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) 56 T(RZ, 0x1.2a05f2p+33, 0x1.4p+3, 0x0p+0, 0) 57 T(RN, 0x1.74876e8p+36, 0x1.6p+3, 0x0p+0, 0) 58 T(RU, 0x1.74876e8p+36, 0x1.6p+3, 0x0p+0, 0) 59 T(RD, 0x1.74876e8p+36, 0x1.6p+3, 0x0p+0, 0) 60 T(RZ, 0x1.74876e8p+36, 0x1.6p+3, 0x0p+0, 0) 61 T(RN, 0x1.d1a94a2p+39, 0x1.8p+3, 0x0p+0, 0) 62 T(RU, 0x1.d1a94a2p+39, 0x1.8p+3, 0x0p+0, 0) 63 T(RD, 0x1.d1a94a2p+39, 0x1.8p+3, 0x0p+0, 0) 64 T(RZ, 0x1.d1a94a2p+39, 0x1.8p+3, 0x0p+0, 0) 65 T(RN, 0x1.2309ce54p+43, 0x1.ap+3, 0x0p+0, 0) 66 T(RU, 0x1.2309ce54p+43, 0x1.ap+3, 0x0p+0, 0) 67 T(RD, 0x1.2309ce54p+43, 0x1.ap+3, 0x0p+0, 0) 68 T(RZ, 0x1.2309ce54p+43, 0x1.ap+3, 0x0p+0, 0) 69 T(RN, 0x1.6bcc41e9p+46, 0x1.cp+3, 0x0p+0, 0) 70 T(RU, 0x1.6bcc41e9p+46, 0x1.cp+3, 0x0p+0, 0) 71 T(RD, 0x1.6bcc41e9p+46, 0x1.cp+3, 0x0p+0, 0) 72 T(RZ, 0x1.6bcc41e9p+46, 0x1.cp+3, 0x0p+0, 0) 73 T(RN, 0x1.c6bf52634p+49, 0x1.ep+3, 0x0p+0, 0) 74 T(RU, 0x1.c6bf52634p+49, 0x1.ep+3, 0x0p+0, 0) 75 T(RD, 0x1.c6bf52634p+49, 0x1.ep+3, 0x0p+0, 0) 76 T(RZ, 0x1.c6bf52634p+49, 0x1.ep+3, 0x0p+0, 0) 77 T(RN, 0x1.1c37937e08p+53, 0x1p+4, 0x0p+0, 0) 78 T(RU, 0x1.1c37937e08p+53, 0x1p+4, 0x0p+0, 0) 79 T(RD, 0x1.1c37937e08p+53, 0x1p+4, 0x0p+0, 0) 80 T(RZ, 0x1.1c37937e08p+53, 0x1p+4, 0x0p+0, 0) 81 T(RN, 0x1.6345785d8ap+56, 0x1.1p+4, 0x0p+0, 0) 82 T(RU, 0x1.6345785d8ap+56, 0x1.1p+4, 0x0p+0, 0) 83 T(RD, 0x1.6345785d8ap+56, 0x1.1p+4, 0x0p+0, 0) 84 T(RZ, 0x1.6345785d8ap+56, 0x1.1p+4, 0x0p+0, 0) 85 T(RN, 0x1.bc16d674ec8p+59, 0x1.2p+4, 0x0p+0, 0) 86 T(RU, 0x1.bc16d674ec8p+59, 0x1.2p+4, 0x0p+0, 0) 87 T(RD, 0x1.bc16d674ec8p+59, 0x1.2p+4, 0x0p+0, 0) 88 T(RZ, 0x1.bc16d674ec8p+59, 0x1.2p+4, 0x0p+0, 0) 89 T(RN, 0x1.158e460913dp+63, 0x1.3p+4, 0x0p+0, 0) 90 T(RU, 0x1.158e460913dp+63, 0x1.3p+4, 0x0p+0, 0) 91 T(RD, 0x1.158e460913dp+63, 0x1.3p+4, 0x0p+0, 0) 92 T(RZ, 0x1.158e460913dp+63, 0x1.3p+4, 0x0p+0, 0) 93 T(RN, 0x1.5af1d78b58c4p+66, 0x1.4p+4, 0x0p+0, 0) 94 T(RU, 0x1.5af1d78b58c4p+66, 0x1.4p+4, 0x0p+0, 0) 95 T(RD, 0x1.5af1d78b58c4p+66, 0x1.4p+4, 0x0p+0, 0) 96 T(RZ, 0x1.5af1d78b58c4p+66, 0x1.4p+4, 0x0p+0, 0) 97 T(RN, 0x1.b1ae4d6e2ef5p+69, 0x1.5p+4, 0x0p+0, 0) 98 T(RU, 0x1.b1ae4d6e2ef5p+69, 0x1.5p+4, 0x0p+0, 0) 99 T(RD, 0x1.b1ae4d6e2ef5p+69, 0x1.5p+4, 0x0p+0, 0) 100 T(RZ, 0x1.b1ae4d6e2ef5p+69, 0x1.5p+4, 0x0p+0, 0) 101 T(RN, 0x1.0f0cf064dd592p+73, 0x1.6p+4, 0x0p+0, 0) 102 T(RU, 0x1.0f0cf064dd592p+73, 0x1.6p+4, 0x0p+0, 0) 103 T(RD, 0x1.0f0cf064dd592p+73, 0x1.6p+4, 0x0p+0, 0) 104 T(RZ, 0x1.0f0cf064dd592p+73, 0x1.6p+4, 0x0p+0, 0) 105 T(RN, 0x1.52d02c7e14af6p+76, 0x1.7p+4, 0x1.5004e2p-7, INEXACT) 106 T(RU, 0x1.52d02c7e14af6p+76, 0x1.7p+4, 0x1.5004e2p-7, INEXACT) 107 T(RD, 0x1.52d02c7e14af6p+76, 0x1.6ffffffffffffp+4, -0x1.fabfecp-1, INEXACT) 108 T(RZ, 0x1.52d02c7e14af6p+76, 0x1.6ffffffffffffp+4, -0x1.fabfecp-1, INEXACT) 109 T(RN, 0x1.a784379d99db4p+79, 0x1.8p+4, 0x1.0cd0b6p-9, INEXACT) 110 T(RU, 0x1.a784379d99db4p+79, 0x1.8p+4, 0x1.0cd0b6p-9, INEXACT) 111 T(RD, 0x1.a784379d99db4p+79, 0x1.7ffffffffffffp+4, -0x1.fef33p-1, INEXACT) 112 T(RZ, 0x1.a784379d99db4p+79, 0x1.7ffffffffffffp+4, -0x1.fef33p-1, INEXACT) 113 T(RN, 0x1.08b2a2c280291p+83, 0x1.9p+4, -0x1.6ae68ep-7, INEXACT) 114 T(RU, 0x1.08b2a2c280291p+83, 0x1.9000000000001p+4, 0x1.fa5466p-1, INEXACT) 115 T(RD, 0x1.08b2a2c280291p+83, 0x1.9p+4, -0x1.6ae68ep-7, INEXACT) 116 T(RZ, 0x1.08b2a2c280291p+83, 0x1.9p+4, -0x1.6ae68ep-7, INEXACT) 117 // The very worst case 118 T(RN, 0x1.e12d66744ff81p+429, 0x1.02d4f53729e45p+7, 0x1p-1, INEXACT) 119 T(RU, 0x1.e12d66744ff81p+429, 0x1.02d4f53729e45p+7, 0x1p-1, INEXACT) 120 T(RD, 0x1.e12d66744ff81p+429, 0x1.02d4f53729e44p+7, -0x1p-1, INEXACT) 121 T(RZ, 0x1.e12d66744ff81p+429, 0x1.02d4f53729e44p+7, -0x1p-1, INEXACT) 122 T(RN, 0x1.ce41d8fa665fap+4, 0x1.75f49c6ad3badp+0, -0x1.46p-68, INEXACT) 123 T(RU, 0x1.ce41d8fa665fap+4, 0x1.75f49c6ad3baep+0, 0x1p+0, INEXACT) 124 T(RD, 0x1.ce41d8fa665fap+4, 0x1.75f49c6ad3badp+0, -0x1.46p-68, INEXACT) 125 T(RZ, 0x1.ce41d8fa665fap+4, 0x1.75f49c6ad3badp+0, -0x1.46p-68, INEXACT) 126 // One in five of the very worst cases computed by Lefevre and Muller. 127 // Rounding these values requires evaluating the function to at least 2^(-100). 128 // These worst cases have been selected thanks to the filterlists 5 script 129 // If you want the full list please contact Jean-Michel Muller 130 T(RN, 0x1.62410eb7b7e1p-1, -0x1.479681c44dd78p-3, -0x1p-1, INEXACT) // 6.919025992646670175645340350457e-01 131 T(RZ, 0x1.2a8e6c238a22ep-1, -0x1.dfbb24b4d439dp-3, 0x1p+0, INEXACT) // 5.831178468116087199035746380105e-01 132 T(RN, 0x1.b0cf736f1ae1dp-1, -0x1.2ae5057cd8c44p-4, 0x1p-1, INEXACT) // 8.453327248693686124525470404478e-01 133 T(RN, 0x1.89825f74aa6b7p+0, 0x1.7e646f3fab0d1p-3, 0x1p-1, INEXACT) // 1.537145582182729119935515882389e+00 134 T(RN, 0x1.1705af708c532p+2, 0x1.476724bcf05c3p-1, 0x1p-1, INEXACT) // 4.359722003851219440662134729791e+00 135 T(RZ, 0x1.8070cd731f577p+2, 0x1.8eab1f62d8e8dp-1, -0x1.edefp-55, INEXACT) // 6.006884920524831805721532873577e+00 136 T(RN, 0x1.09732bc3fb6fp+3, 0x1.d67138d8e1fabp-1, 0x1p-1, INEXACT) // 8.295308954980527005318435840309e+00 137 T(RN, 0x1.819598b70b769p+1, 0x1.ea673c9a0bc62p-2, -0x1p-1, INEXACT) // 3.012377824189503616736374169705e+00 138 T(RN, 0x1.96c0b463d632ep+3, 0x1.1aab931fc4a83p+0, 0x1p-1, INEXACT) // 1.271102351664884722026727104094e+01 139 T(RZ, 0x1.3ba0e5e7c603dp+4, 0x1.4b88ce4490878p+0, -0x1.f0e37cp-53, INEXACT) // 1.972678175484201190670319192577e+01 140 T(RZ, 0x1.f60165d5bc3e1p+5, 0x1.cc30b915ec8c3p+0, -0x1p+0, INEXACT) // 6.275068251591415702250742469914e+01 141 T(RN, 0x1.0214115c6897ep+7, 0x1.0e2c2079f4791p+1, -0x1p-1, INEXACT) // 1.290391949536969491418858524412e+02 142 T(RN, 0x1.e5b46cc566c89p+7, 0x1.3152e63907254p+1, -0x1p-1, INEXACT) // 2.428523923576324534678860800341e+02 143 T(RN, 0x1.13aedb3538379p+12, 0x1.d27ff5ae16374p+1, -0x1p-1, INEXACT) // 4.410928517551038567034993320704e+03 144 T(RZ, 0x1.c8ed39b9d8a37p+12, 0x1.ee9674267e65fp+1, -0x1.ca0ep-60, INEXACT) // 7.310826593252414568269159644842e+03 145 T(RZ, 0x1.5e441b86eb0e5p+15, 0x1.29b3f213569e3p+2, -0x1.322ep-55, INEXACT) // 4.483405376371907914290204644203e+04 146 T(RN, 0x1.c981659f2ca6p+32, 0x1.3c52df27c62b2p+3, 0x1p-1, INEXACT) // 7.675667871174407958984375000000e+09 147 T(RN, 0x1.fe67e6c6ceb38p+34, 0x1.511c39d418079p+3, -0x1p-1, INEXACT) // 3.425275778722970581054687500000e+10 148 T(RN, 0x1.e16ed4ce49996p+37, 0x1.6d326d60c8089p+3, -0x1p-1, INEXACT) // 2.584673386971998901367187500000e+11 149 T(RN, 0x1.3f00f03c41303p+38, 0x1.711c39d418079p+3, -0x1p-1, INEXACT) // 3.425275778722970581054687500000e+11 150 T(RN, 0x1.51ed94d282c63p+40, 0x1.852d55dca353p+3, 0x1p-1, INEXACT) // 1.451389932162774169921875000000e+12 151 T(RN, 0x1.a275c0b3d6b93p+60, 0x1.24674679efeeep+4, 0x1p-1, INEXACT) // 1.884576172422697728000000000000e+18 152 T(RN, 0x1.acf0197df0564p+90, 0x1.b511d58e9bf6ep+4, -0x1p-1, INEXACT) // 2.074216355977599705575063552000e+27 153 T(RN, 0x1.2975c05d77d0cp+115, 0x1.1578173b49d48p+5, 0x1p-1, INEXACT) // 4.826563905133211468089089063282e+34 154 T(RN, 0x1.691810a4906ebp+153, 0x1.71a7dfb3f259p+5, -0x1p-1, INEXACT) // 1.610533074958623000119510242602e+46 155 T(RN, 0x1.758976044bfd1p+157, 0x1.7b680b5de7eb4p+5, -0x1p-1, INEXACT) // 2.665648800401707910762303594475e+47 156 T(RZ, 0x1.2822af2487796p+165, 0x1.8ddd97d7481f1p+5, -0x1.65c54p-57, INEXACT) // 5.410031201858834566460604651708e+49 157 T(RZ, 0x1.00ecbfe1c7e24p+226, 0x1.10232b5bc1921p+6, -0x1.34878p-58, INEXACT) // 1.082293591137922845086980219250e+68 158 T(RZ, 0x1.01db5ea232cccp+265, 0x1.3f1ab6b9840dp+6, -0x1.6b55p-58, INEXACT) // 5.971558130181310987237296921284e+79 159 T(RN, 0x1.aa8cce883305bp+313, 0x1.79c6c70a21751p+6, 0x1p-1, INEXACT) // 2.780472798533127667532607272298e+94 160 T(RN, 0x1.6848181b7571cp+318, 0x1.7f80f69d57adep+6, -0x1p-1, INEXACT) // 7.515203759795911185316596929209e+95 161 T(RZ, 0x1.f5b55de961a8ep+541, 0x1.464c8348af949p+7, -0x1p+0, INEXACT) // 1.410714456596528386795551901832e+163 162 T(RN, 0x1.4d0f00313488cp+576, 0x1.5b03deaa9abb2p+7, -0x1p-1, INEXACT) // 3.217793610610951495377196763253e+173 163 T(RN, 0x1.3e238630d4b3bp+581, 0x1.5dfc50d1ef669p+7, 0x1p-1, INEXACT) // 9.835673600325649497978919582662e+174 164 T(RZ, 0x1.061d60c2c0093p+803, 0x1.e379845eaa774p+7, -0x1.838ap-59, INEXACT) // 5.461828085706753538145251018537e+241 165 T(RZ, 0x1.bd35ae5d5fe52p+952, 0x1.1ed22539bd8d6p+8, -0x1.e9ap-62, INEXACT) // 6.620343395914844405355705099139e+286 166