1 #include "crlibm.h" 2 #include "crlibm_private.h" 3 4 /* File generated by maple/expm1.mpl */ 5 #define log2InvMult2L 5.90927888748119403317105025053024291992187500000000e+03 6 #define msLog2Div2Lh -1.69225385878892892145206050535932718048570677638054e-04 7 #define msLog2Div2Lm -5.66173538536694228129338642508144915789549786200850e-21 8 #define msLog2Div2Ll -1.39348350547270802387134479195513221596886344528448e-37 9 #define shiftConst 6.75539944105574400000000000000000000000000000000000e+15 10 #define INDEXMASK1 0x0000003f 11 #define INDEXMASK2 0x00000fc0 12 #define RETURNXBOUND 0x3c900000 13 #define OVERFLOWBOUND 7.09782712893383973096206318587064743041992187500000e+02 14 #define LARGEST 1.79769313486231570814527423731704356798070567525845e+308 15 #define SMALLEST 4.94065645841246544176568792868221372365059802614325e-324 16 #define MINUSONEBOUND -3.74299477502370478987359092570841312408447265625000e+01 17 #define SIMPLEOVERFLOWBOUND 0x40862e42 18 #define DIRECTINTERVALBOUND 0x3fd00000 19 #define SPECIALINTERVALBOUND 0x3f300000 20 #define ROUNDCSTDIRECTRN 1.00392156862745109185069459291432461909707184007331e+00 21 #define ROUNDCSTDIRECTRD 2.16840434497100886801490560173988342285156250000000e-19 22 #define ROUNDCSTCOMMONRN 1.00392156862745109185069459291432461909707184007331e+00 23 #define ROUNDCSTCOMMONRD 2.16840434497100886801490560173988342285156250000000e-19 24 #define MINUSONEPLUSONEULP -9.99999999999999888977697537484345957636833190917969e-01 25 26 27 #define quickDirectpolyC3h 1.66666666666666657414808128123695496469736099243164e-01 28 #define quickDirectpolyC4h 4.16666666666666921092776476598373847082257270812988e-02 29 #define quickDirectpolyC5h 8.33333333340913022524443221072942833416163921356201e-03 30 #define quickDirectpolyC6h 1.38888888866754321368968128069809608859941363334656e-03 31 #define quickDirectpolyC7h 1.98412543160940484055984600608724122139392420649528e-04 32 #define quickDirectpolyC8h 2.48020519562457199031109411624385074901510961353779e-05 33 #define quickDirectpolyC9h 2.84660857362219107811367527216539485834800871089101e-06 34 35 #define accuDirectpolyC3h 1.66666666666666657414808128123695496469736099243164e-01 36 #define accuDirectpolyC3m 9.25185853854297065661561206416060845590588197735272e-18 37 #define accuDirectpolyC3l 5.13581650457284662711479178584444638962917803311780e-34 38 #define accuDirectpolyC4h 4.16666666666666643537020320309238741174340248107910e-02 39 #define accuDirectpolyC4m 2.31296463463574227896791413859298150278088197735272e-18 40 #define accuDirectpolyC5h 8.33333333333333321768510160154619370587170124053955e-03 41 #define accuDirectpolyC5m 1.15648231731787113948395706929649075139044098867636e-19 42 #define accuDirectpolyC6h 1.38888888888888894189432843262466121814213693141937e-03 43 #define accuDirectpolyC6m -5.30054395357292524960423423338339636695154423835845e-20 44 #define accuDirectpolyC7h 1.98412698412698412526317115478491359681356698274612e-04 45 #define accuDirectpolyC7m 1.72095583354814495137206233661964154177299630853468e-22 46 #define accuDirectpolyC8h 2.48015873015873015657896394348114199601695872843266e-05 47 #define accuDirectpolyC8m 2.14651941309384838916703253244235321323283349969089e-23 48 #define accuDirectpolyC9h 2.75573192239858925109505932704578867742384318262339e-06 49 #define accuDirectpolyC9m -1.85841997665354272936683956225603122653869677259213e-22 50 #define accuDirectpolyC10h 2.75573192239859041576536180170875489636728161713108e-07 51 #define accuDirectpolyC11h 2.50521083854417268413110797455750633488946732541081e-08 52 #define accuDirectpolyC12h 2.08767569858109971289062132052388037761758710075810e-09 53 #define accuDirectpolyC13h 1.60590438355780403477083534013894559194790545575415e-10 54 #define accuDirectpolyC14h 1.14709032708663011999233928519882120839606942652722e-11 55 #define accuDirectpolyC15h 7.64725827750169879636792489069881340263759583741887e-13 56 57 #define quickCommonpolyC3h 1.66666666696497350885763921723992098122835159301758e-01 58 #define quickCommonpolyC4h 4.16666666766102242180913606262038229033350944519043e-02 59 60 #define accuCommonpolyC3h 1.66666666666666657414808128123695496469736099243164e-01 61 #define accuCommonpolyC3m 9.25185853866467248091737476239823936927135463652392e-18 62 #define accuCommonpolyC4h 4.16666666666666643537020320309238741174340248107910e-02 63 #define accuCommonpolyC4m 2.31256737150511109641969514308685693497248293481702e-18 64 #define accuCommonpolyC5h 8.33333333333333321768510160154619370587170124053955e-03 65 #define accuCommonpolyC6h 1.38888888911084334119860894674047813168726861476898e-03 66 #define accuCommonpolyC7h 1.98412713635391310413452758965036082372535020112991e-04 67 68 69 typedef struct tPi_t_tag {double hi; double mi; double lo;} tPi_t; 70 static const tPi_t twoPowerIndex1[64] = { 71 { 72 1.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex1hi[0] */ 73 0.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex1mi[0] */ 74 0.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex1lo[0] */ 75 } , 76 { 77 1.00016923970530213772178740327944979071617126464844e+00, /* twoPowerIndex1hi[1] */ 78 9.33618533547846199388179470637929281332443150415515e-17, /* twoPowerIndex1mi[1] */ 79 3.77297954885090084710073756456287936644477196404411e-33, /* twoPowerIndex1lo[1] */ 80 } , 81 { 82 1.00033850805268231809463941317517310380935668945312e+00, /* twoPowerIndex1hi[2] */ 83 -5.14133393131895706530678267769194263660821897510018e-18, /* twoPowerIndex1mi[2] */ 84 3.65532984508913994275805274025238001612209382982528e-34, /* twoPowerIndex1lo[2] */ 85 } , 86 { 87 1.00050780504698755279946453811135143041610717773438e+00, /* twoPowerIndex1hi[3] */ 88 6.96242402202057255168575283120383384543281723609229e-17, /* twoPowerIndex1mi[3] */ 89 5.20646484360987194687938744912769762301408608274186e-34, /* twoPowerIndex1lo[3] */ 90 } , 91 { 92 1.00067713069306640782940576173132285475730895996094e+00, /* twoPowerIndex1hi[4] */ 93 -5.11512329768566763581175858027414623025077801052578e-17, /* twoPowerIndex1mi[4] */ 94 6.98198098827029289611306311409722598417652045670746e-34, /* twoPowerIndex1lo[4] */ 95 } , 96 { 97 1.00084648499576744917760606767842546105384826660156e+00, /* twoPowerIndex1hi[5] */ 98 8.42299002458648658027371639395540881533737558365359e-17, /* twoPowerIndex1mi[5] */ 99 2.36970468083963275494383447607242933566525306383712e-33, /* twoPowerIndex1lo[5] */ 100 } , 101 { 102 1.00101586795994101919404783984646201133728027343750e+00, /* twoPowerIndex1hi[6] */ 103 -2.82452207477616780689379931990767172214919031737312e-17, /* twoPowerIndex1mi[6] */ 104 -1.95728551891328398835983018867545661396300096090192e-33, /* twoPowerIndex1lo[6] */ 105 } , 106 { 107 1.00118527959043746022871346212923526763916015625000e+00, /* twoPowerIndex1hi[7] */ 108 -7.18042456559213166577815896739695813826899291527385e-17, /* twoPowerIndex1mi[7] */ 109 -4.76259460142737667571053552520587169925041399888400e-33, /* twoPowerIndex1lo[7] */ 110 } , 111 { 112 1.00135471989210822485460994357708841562271118164062e+00, /* twoPowerIndex1hi[8] */ 113 -1.89737284167929933536294189134998232481318340155287e-17, /* twoPowerIndex1mi[8] */ 114 -1.14644761608474571162584330231223616391499645510675e-34, /* twoPowerIndex1lo[8] */ 115 } , 116 { 117 1.00152418886980565382316399336559697985649108886719e+00, /* twoPowerIndex1hi[9] */ 118 9.06044106726912172835402556659442028244667434824268e-17, /* twoPowerIndex1mi[9] */ 119 -9.28795936877474030548429956901821606468166518236870e-34, /* twoPowerIndex1lo[9] */ 120 } , 121 { 122 1.00169368652838319810882694582687690854072570800781e+00, /* twoPowerIndex1hi[10] */ 123 -7.17327634990031997530849131951948428542423257707819e-17, /* twoPowerIndex1mi[10] */ 124 6.07647560689104755979568262152596670382288431776872e-33, /* twoPowerIndex1lo[10] */ 125 } , 126 { 127 1.00186321287269430868605013529304414987564086914062e+00, /* twoPowerIndex1hi[11] */ 128 -1.33071962467226606689858482393149015112554043251841e-17, /* twoPowerIndex1mi[11] */ 129 -3.85443386097781554341108465500150047004226523597749e-34, /* twoPowerIndex1lo[11] */ 130 } , 131 { 132 1.00203276790759399084151937131537124514579772949219e+00, /* twoPowerIndex1hi[12] */ 133 2.57269259432211179649018725316354562817431777421067e-17, /* twoPowerIndex1mi[12] */ 134 6.79751255613789265201334995370535043187556454092516e-34, /* twoPowerIndex1lo[12] */ 135 } , 136 { 137 1.00220235163793791599573523853905498981475830078125e+00, /* twoPowerIndex1hi[13] */ 138 -3.92993778548451720552933864302152846562830407163222e-17, /* twoPowerIndex1mi[13] */ 139 2.22740945016647607963332576015739728975193247400334e-33, /* twoPowerIndex1lo[13] */ 140 } , 141 { 142 1.00237196406858219965840817167190834879875183105469e+00, /* twoPowerIndex1hi[14] */ 143 8.46137724799471749932697856411684097253648908880386e-17, /* twoPowerIndex1mi[14] */ 144 -1.15795350476069740873680647805085951983720786847012e-33, /* twoPowerIndex1lo[14] */ 145 } , 146 { 147 1.00254160520438451165148308064090088009834289550781e+00, /* twoPowerIndex1hi[15] */ 148 -4.19488324163994025318330321149973224973566383682287e-17, /* twoPowerIndex1mi[15] */ 149 -1.10867727371575753136248480661711257993643946476249e-33, /* twoPowerIndex1lo[15] */ 150 } , 151 { 152 1.00271127505020252179690487537300214171409606933594e+00, /* twoPowerIndex1hi[16] */ 153 -3.63661592869226394431650732319448247819940912156384e-17, /* twoPowerIndex1mi[16] */ 154 -6.58076018413558386665763067745208065096307047224855e-34, /* twoPowerIndex1lo[16] */ 155 } , 156 { 157 1.00288097361089523218424801598303020000457763671875e+00, /* twoPowerIndex1hi[17] */ 158 -2.61094406324393831074545742903203024867557691172893e-17, /* twoPowerIndex1mi[17] */ 159 1.20560913995705683042979390390212408639703633013464e-33, /* twoPowerIndex1lo[17] */ 160 } , 161 { 162 1.00305070089132231103690173767972737550735473632812e+00, /* twoPowerIndex1hi[18] */ 163 1.75307847798233211014008193947934807324617806015147e-17, /* twoPowerIndex1mi[18] */ 164 1.13393213893456062969952574781413432615748154285102e-33, /* twoPowerIndex1lo[18] */ 165 } , 166 { 167 1.00322045689634431475667497579706832766532897949219e+00, /* twoPowerIndex1hi[19] */ 168 5.75392352562826744411122442879351687879645730521252e-17, /* twoPowerIndex1mi[19] */ 169 -2.67723202763627633853056570968049475423332897231238e-33, /* twoPowerIndex1lo[19] */ 170 } , 171 { 172 1.00339024163082268792379636579426005482673645019531e+00, /* twoPowerIndex1hi[20] */ 173 -8.68492200511795617368964392061338881522209699276521e-18, /* twoPowerIndex1mi[20] */ 174 -3.48402050975972235345434529928044249018150775634918e-34, /* twoPowerIndex1lo[20] */ 175 } , 176 { 177 1.00356005509961931920770439319312572479248046875000e+00, /* twoPowerIndex1hi[21] */ 178 9.49003543098177759384527648244793376993805358019830e-17, /* twoPowerIndex1mi[21] */ 179 -2.72838479693459377473949067074824993718971708464416e-34, /* twoPowerIndex1lo[21] */ 180 } , 181 { 182 1.00372989730759765159007201873464509844779968261719e+00, /* twoPowerIndex1hi[22] */ 183 -8.71038060581842237129503222771273097866222639659196e-17, /* twoPowerIndex1mi[22] */ 184 1.08618280977421918449964280592134822915254002216492e-33, /* twoPowerIndex1lo[22] */ 185 } , 186 { 187 1.00389976825962090600796727812848985195159912109375e+00, /* twoPowerIndex1hi[23] */ 188 3.49589169585715450145113080496294928974704413200507e-17, /* twoPowerIndex1mi[23] */ 189 -2.94144759791575889018758341844218078845293410867033e-33, /* twoPowerIndex1lo[23] */ 190 } , 191 { 192 1.00406966796055407975529760733479633927345275878906e+00, /* twoPowerIndex1hi[24] */ 193 9.75378754984024099793268477195846557070899843396028e-17, /* twoPowerIndex1mi[24] */ 194 5.64300142720863839874652371486135387544215443970822e-33, /* twoPowerIndex1lo[24] */ 195 } , 196 { 197 1.00423959641526283625978521740762516856193542480469e+00, /* twoPowerIndex1hi[25] */ 198 -1.05762211962928569325595987354393790031696252155330e-16, /* twoPowerIndex1mi[25] */ 199 5.83707943855262433756426258532402998630656838432942e-33, /* twoPowerIndex1lo[25] */ 200 } , 201 { 202 1.00440955362861283894915231940103694796562194824219e+00, /* twoPowerIndex1hi[26] */ 203 4.20918873812712592966120368574870018412444102186114e-17, /* twoPowerIndex1mi[26] */ 204 2.17971061415864797757688538084764343153482363480001e-33, /* twoPowerIndex1lo[26] */ 205 } , 206 { 207 1.00457953960547174965256544965086504817008972167969e+00, /* twoPowerIndex1hi[27] */ 208 -1.67001668575547876279593068362269006396955075031486e-17, /* twoPowerIndex1mi[27] */ 209 8.56552273127180632250100064178508499726804497630949e-34, /* twoPowerIndex1lo[27] */ 210 } , 211 { 212 1.00474955435070723019919114449294283986091613769531e+00, /* twoPowerIndex1hi[28] */ 213 -1.62314635541245143576050143734168865049382925451905e-17, /* twoPowerIndex1mi[28] */ 214 9.28530603331304279248127378347521992965436217888846e-35, /* twoPowerIndex1lo[28] */ 215 } , 216 { 217 1.00491959786918805264122056541964411735534667968750e+00, /* twoPowerIndex1hi[29] */ 218 2.30285392780281171183781407072193459566423534757738e-17, /* twoPowerIndex1mi[29] */ 219 -4.94345170697772961451844215454960159293576885861471e-34, /* twoPowerIndex1lo[29] */ 220 } , 221 { 222 1.00508967016578387720926457404857501387596130371094e+00, /* twoPowerIndex1hi[30] */ 223 1.64180469767730323539044065876968510741128671646342e-17, /* twoPowerIndex1mi[30] */ 224 -1.40120338097898451052996285664279342840562084008057e-34, /* twoPowerIndex1lo[30] */ 225 } , 226 { 227 1.00525977124536503026774880709126591682434082031250e+00, /* twoPowerIndex1hi[31] */ 228 3.72669843182841367415839881731427710949489409371967e-17, /* twoPowerIndex1mi[31] */ 229 -6.47401139805376556406832921347318553328966160972009e-34, /* twoPowerIndex1lo[31] */ 230 } , 231 { 232 1.00542990111280272635951860138447955250740051269531e+00, /* twoPowerIndex1hi[32] */ 233 9.49918653545503175702165599813853704096085691656846e-17, /* twoPowerIndex1mi[32] */ 234 2.69197614795285565383714012654266434015814803945559e-33, /* twoPowerIndex1lo[32] */ 235 } , 236 { 237 1.00560005977296929025044391892151907086372375488281e+00, /* twoPowerIndex1hi[33] */ 238 -8.68093131444458156819420437418787120833640771986467e-17, /* twoPowerIndex1mi[33] */ 239 1.70120132411898592857823454488038166970266621441155e-33, /* twoPowerIndex1lo[33] */ 240 } , 241 { 242 1.00577024723073704670639472169568762183189392089844e+00, /* twoPowerIndex1hi[34] */ 243 4.00054749103011688253297776917861866454998331259826e-17, /* twoPowerIndex1mi[34] */ 244 1.31925963209617013098908877209722537258440391267352e-33, /* twoPowerIndex1lo[34] */ 245 } , 246 { 247 1.00594046349098009685008037195075303316116333007812e+00, /* twoPowerIndex1hi[35] */ 248 7.19049911150997399545071999536183023264065701084941e-17, /* twoPowerIndex1mi[35] */ 249 5.87388840736458866162752231275781178461761843642826e-33, /* twoPowerIndex1lo[35] */ 250 } , 251 { 252 1.00611070855857298589342008199309930205345153808594e+00, /* twoPowerIndex1hi[36] */ 253 -1.39080686710657830063564897325456873924612265621065e-17, /* twoPowerIndex1mi[36] */ 254 -1.04608842475341479042763417006066485614641577765254e-33, /* twoPowerIndex1lo[36] */ 255 } , 256 { 257 1.00628098243839092518214783922303467988967895507812e+00, /* twoPowerIndex1hi[37] */ 258 -8.14020864257304964668281784838729787981918541118695e-17, /* twoPowerIndex1mi[37] */ 259 9.81687621053626949463979101287162593669867055078380e-34, /* twoPowerIndex1lo[37] */ 260 } , 261 { 262 1.00645128513531001424041733116609975695610046386719e+00, /* twoPowerIndex1hi[38] */ 263 -5.76215104374953424938341851527793234314721266620465e-17, /* twoPowerIndex1mi[38] */ 264 -2.57074696660737495074482007072094547944536206743811e-33, /* twoPowerIndex1lo[38] */ 265 } , 266 { 267 1.00662161665420724077080194547306746244430541992188e+00, /* twoPowerIndex1hi[39] */ 268 6.74527847731045679518854873240614524466814727371618e-17, /* twoPowerIndex1mi[39] */ 269 3.78807035520293397050945635744099720111701312971531e-33, /* twoPowerIndex1lo[39] */ 270 } , 271 { 272 1.00679197699996070269889969495125114917755126953125e+00, /* twoPowerIndex1hi[40] */ 273 1.89985572403462958330039110072328316553950667129559e-17, /* twoPowerIndex1mi[40] */ 274 -9.63431595756658515104002497950853752466876076619761e-34, /* twoPowerIndex1lo[40] */ 275 } , 276 { 277 1.00696236617744894203951844247058033943176269531250e+00, /* twoPowerIndex1hi[41] */ 278 -9.63743003231640715845365699595418727819327585110316e-17, /* twoPowerIndex1mi[41] */ 279 5.37739172125896523173793245498965828230574349410153e-34, /* twoPowerIndex1lo[41] */ 280 } , 281 { 282 1.00713278419155116694128082599490880966186523437500e+00, /* twoPowerIndex1hi[42] */ 283 -1.25286544624539788678561179100718466970708089928402e-17, /* twoPowerIndex1mi[42] */ 284 6.73461401738595970431440883296934068477066941591536e-34, /* twoPowerIndex1lo[42] */ 285 } , 286 { 287 1.00730323104714791782043903367593884468078613281250e+00, /* twoPowerIndex1hi[43] */ 288 3.02057888784369419361601396858156577301726732087163e-17, /* twoPowerIndex1mi[43] */ 289 2.28748779695564659338938424768062274005093770790899e-33, /* twoPowerIndex1lo[43] */ 290 } , 291 { 292 1.00747370674912040122706002875929698348045349121094e+00, /* twoPowerIndex1hi[44] */ 293 -4.86939425860856490657306074829518805252629724182687e-17, /* twoPowerIndex1mi[44] */ 294 -2.15005825118530979132585793750524459885823808259600e-33, /* twoPowerIndex1lo[44] */ 295 } , 296 { 297 1.00764421130235026780042062455322593450546264648438e+00, /* twoPowerIndex1hi[45] */ 298 5.22402993768745316546273304631524097955173932918745e-17, /* twoPowerIndex1mi[45] */ 299 1.56859855755260687389551771821040360984576895950448e-33, /* twoPowerIndex1lo[45] */ 300 } , 301 { 302 1.00781474471172072249203210958512499928474426269531e+00, /* twoPowerIndex1hi[46] */ 303 -9.36154355147845590745647945463041972879607082944076e-17, /* twoPowerIndex1mi[46] */ 304 2.73525232969860711971224663796949142049450209755900e-33, /* twoPowerIndex1lo[46] */ 305 } , 306 { 307 1.00798530698211497025340577238239347934722900390625e+00, /* twoPowerIndex1hi[47] */ 308 -8.65251323306194956904999437269495581443314540350323e-17, /* twoPowerIndex1mi[47] */ 309 3.95202635576858744637745517221782298786195221857564e-33, /* twoPowerIndex1lo[47] */ 310 } , 311 { 312 1.00815589811841754830368245166027918457984924316406e+00, /* twoPowerIndex1hi[48] */ 313 -3.25205875608430806088583499076669170064325943797327e-17, /* twoPowerIndex1mi[48] */ 314 2.46355206137317856028163445564386882918089954604456e-33, /* twoPowerIndex1lo[48] */ 315 } , 316 { 317 1.00832651812551388204042268625926226377487182617188e+00, /* twoPowerIndex1hi[49] */ 318 -9.91723226806091428304981281566311898208154515630026e-17, /* twoPowerIndex1mi[49] */ 319 -5.54888559019883709197982155449053331751526019176611e-33, /* twoPowerIndex1lo[49] */ 320 } , 321 { 322 1.00849716700828984095039686508243903517723083496094e+00, /* twoPowerIndex1hi[50] */ 323 -7.13604740416252276802131825807759910735798752142063e-17, /* twoPowerIndex1mi[50] */ 324 4.98539917129953776836361552714923793985513981224277e-33, /* twoPowerIndex1lo[50] */ 325 } , 326 { 327 1.00866784477163240474340000218944624066352844238281e+00, /* twoPowerIndex1hi[51] */ 328 -1.72686837122432199045769102324975071816159176955755e-17, /* twoPowerIndex1mi[51] */ 329 1.49699250027049460850618457278328039699137666243513e-33, /* twoPowerIndex1lo[51] */ 330 } , 331 { 332 1.00883855142042944130764681176515296101570129394531e+00, /* twoPowerIndex1hi[52] */ 333 -6.61995469367394011396161169543794432105455894234207e-17, /* twoPowerIndex1mi[52] */ 334 -1.37180394060118324236386341775148249159351409372011e-33, /* twoPowerIndex1lo[52] */ 335 } , 336 { 337 1.00900928695956926262056185805704444646835327148438e+00, /* twoPowerIndex1hi[53] */ 338 3.56545690151302037529536411250390721695546928174132e-17, /* twoPowerIndex1mi[53] */ 339 -3.04973969952342772070810129193852120178103073824881e-33, /* twoPowerIndex1lo[53] */ 340 } , 341 { 342 1.00918005139394151292719925550045445561408996582031e+00, /* twoPowerIndex1hi[54] */ 343 3.71731001370881785990046067286312459291233468170260e-17, /* twoPowerIndex1mi[54] */ 344 2.33846700487585833881864340821781209486455210644683e-33, /* twoPowerIndex1lo[54] */ 345 } , 346 { 347 1.00935084472843628056182296859333291649818420410156e+00, /* twoPowerIndex1hi[55] */ 348 7.06257240682552768409771521622687712943771198652841e-17, /* twoPowerIndex1mi[55] */ 349 -2.69254581845265407066861039619808678678301305791490e-33, /* twoPowerIndex1lo[55] */ 350 } , 351 { 352 1.00952166696794476408172158699017018079757690429688e+00, /* twoPowerIndex1hi[56] */ 353 -1.43214123034288192889278157016818203958577074101904e-17, /* twoPowerIndex1mi[56] */ 354 1.18343254028162625925516501493235924385911429505127e-33, /* twoPowerIndex1lo[56] */ 355 } , 356 { 357 1.00969251811735860613339355040807276964187622070312e+00, /* twoPowerIndex1hi[57] */ 358 1.56681880131341096294393603553275561732689802958880e-17, /* twoPowerIndex1mi[57] */ 359 -7.81531085085694011629938080711347719818453468652371e-34, /* twoPowerIndex1lo[57] */ 360 } , 361 { 362 1.00986339818157078163096684875199571251869201660156e+00, /* twoPowerIndex1hi[58] */ 363 -1.10436957803936884179513517801130489140214758906396e-16, /* twoPowerIndex1mi[58] */ 364 2.26009746193166539328485913376118607218426838997178e-33, /* twoPowerIndex1lo[58] */ 365 } , 366 { 367 1.01003430716547448753317439695820212364196777343750e+00, /* twoPowerIndex1hi[59] */ 368 -5.76731742716039801926309676866051407637690838590278e-17, /* twoPowerIndex1mi[59] */ 369 -2.78217177127226696492717790709599913537289113429847e-33, /* twoPowerIndex1lo[59] */ 370 } , 371 { 372 1.01020524507396425306637866015080362558364868164062e+00, /* twoPowerIndex1hi[60] */ 373 4.83548497844038273903057565303994337100835235326315e-18, /* twoPowerIndex1mi[60] */ 374 2.61454310671247390892899439237254056446677108734060e-34, /* twoPowerIndex1lo[60] */ 375 } , 376 { 377 1.01037621191193527359075687854783609509468078613281e+00, /* twoPowerIndex1hi[61] */ 378 7.01512128971544209746870624992521939688820868468409e-17, /* twoPowerIndex1mi[61] */ 379 -5.58161827166019262256128049263563333632096890407031e-33, /* twoPowerIndex1lo[61] */ 380 } , 381 { 382 1.01054720768428363264490599249256774783134460449219e+00, /* twoPowerIndex1hi[62] */ 383 7.16180287361957384315239192590148379997244337618299e-17, /* twoPowerIndex1mi[62] */ 384 -2.02563561553844543425647289447795720504633264470840e-34, /* twoPowerIndex1lo[62] */ 385 } , 386 { 387 1.01071823239590607990123771742219105362892150878906e+00, /* twoPowerIndex1hi[63] */ 388 1.05046591340840499506734116899577087874840087102554e-16, /* twoPowerIndex1mi[63] */ 389 2.18415845005431430458109722226729544983351542501345e-33, /* twoPowerIndex1lo[63] */ 390 } }; 391 392 static const tPi_t twoPowerIndex2[64] = { 393 { 394 1.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex2hi[0] */ 395 0.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex2mi[0] */ 396 0.00000000000000000000000000000000000000000000000000e+00, /* twoPowerIndex2lo[0] */ 397 } , 398 { 399 1.01088928605170047525518839393043890595436096191406e+00, /* twoPowerIndex2hi[1] */ 400 -1.52347786033685771762884896542837070154735103108242e-17, /* twoPowerIndex2mi[1] */ 401 -1.20527773363982029579667170059568717373235495431222e-33, /* twoPowerIndex2lo[1] */ 402 } , 403 { 404 1.02189714865411662714222984504885971546173095703125e+00, /* twoPowerIndex2hi[2] */ 405 5.10922502897344389358977529484899213711118891193073e-17, /* twoPowerIndex2mi[2] */ 406 7.88422656496927442160138555121324022911581088833303e-34, /* twoPowerIndex2lo[2] */ 407 } , 408 { 409 1.03302487902122841489926940994337201118469238281250e+00, /* twoPowerIndex2hi[3] */ 410 7.60083887402708848935418174694583720224989620170520e-18, /* twoPowerIndex2mi[3] */ 411 4.17547660336499599627565312970423748685953776150432e-34, /* twoPowerIndex2lo[3] */ 412 } , 413 { 414 1.04427378242741375480306942336028441786766052246094e+00, /* twoPowerIndex2hi[4] */ 415 8.55188970553796489217080231819249267647451456689049e-17, /* twoPowerIndex2mi[4] */ 416 -4.33079108057472301914865017639792677602990877842667e-33, /* twoPowerIndex2lo[4] */ 417 } , 418 { 419 1.05564517836055715704901558638084679841995239257812e+00, /* twoPowerIndex2hi[5] */ 420 1.75932573877209198413667791203269037000656546957040e-18, /* twoPowerIndex2mi[5] */ 421 -1.30396724977978376996223394717384715710429730879060e-34, /* twoPowerIndex2lo[5] */ 422 } , 423 { 424 1.06714040067682369716806078940862789750099182128906e+00, /* twoPowerIndex2hi[6] */ 425 -7.89985396684158212226333428391940791349522867645719e-17, /* twoPowerIndex2mi[6] */ 426 2.48773924323047906697979838020484860096229450391065e-33, /* twoPowerIndex2lo[6] */ 427 } , 428 { 429 1.07876079775711986030728439800441265106201171875000e+00, /* twoPowerIndex2hi[7] */ 430 -6.65666043605659260344452997720816205593857378631714e-17, /* twoPowerIndex2mi[7] */ 431 -3.65812580131923690564246115619834327696213789275798e-33, /* twoPowerIndex2lo[7] */ 432 } , 433 { 434 1.09050773266525768967483145388541743159294128417969e+00, /* twoPowerIndex2hi[8] */ 435 -3.04678207981247114696551170541257032193091359539676e-17, /* twoPowerIndex2mi[8] */ 436 2.01705487848848619150139275849815038703452970938356e-33, /* twoPowerIndex2lo[8] */ 437 } , 438 { 439 1.10238258330784089089604549371870234608650207519531e+00, /* twoPowerIndex2hi[9] */ 440 5.26603687157069438656191942579725322612448063343618e-17, /* twoPowerIndex2mi[9] */ 441 6.45805397536721410708490440561131106837447579889036e-34, /* twoPowerIndex2lo[9] */ 442 } , 443 { 444 1.11438674259589243220602838846389204263687133789062e+00, /* twoPowerIndex2hi[10] */ 445 1.04102784568455709549461912557590544266030834754874e-16, /* twoPowerIndex2mi[10] */ 446 1.47570167344000313963428137759389241586071635800536e-33, /* twoPowerIndex2lo[10] */ 447 } , 448 { 449 1.12652161860824184813623105583246797323226928710938e+00, /* twoPowerIndex2hi[11] */ 450 5.16585675879545673703180814711785602957687143067887e-17, /* twoPowerIndex2mi[11] */ 451 -5.65916686170716220063974592097473710424342945964456e-34, /* twoPowerIndex2lo[11] */ 452 } , 453 { 454 1.13878863475669156457570352358743548393249511718750e+00, /* twoPowerIndex2hi[12] */ 455 8.91281267602540777782023808215740339330966556723006e-17, /* twoPowerIndex2mi[12] */ 456 -2.00741463283249448727846279877956608996968961458494e-33, /* twoPowerIndex2lo[12] */ 457 } , 458 { 459 1.15118922995298267331065744656370952725410461425781e+00, /* twoPowerIndex2hi[13] */ 460 3.25071021886382721197741051783883831627922464835734e-17, /* twoPowerIndex2mi[13] */ 461 8.89091931637927159755660842958283684863470887791663e-34, /* twoPowerIndex2lo[13] */ 462 } , 463 { 464 1.16372485877757747552152522985124960541725158691406e+00, /* twoPowerIndex2hi[14] */ 465 3.82920483692409349872159816102110059722238312159091e-17, /* twoPowerIndex2mi[14] */ 466 7.19709831987676327409679245188515478735702972651365e-34, /* twoPowerIndex2lo[14] */ 467 } , 468 { 469 1.17639699165028122074261318630306050181388854980469e+00, /* twoPowerIndex2hi[15] */ 470 5.55420325421807896276684328889766000203735373777665e-17, /* twoPowerIndex2mi[15] */ 471 -1.48842929343368511961710849782815827921712348302943e-33, /* twoPowerIndex2lo[15] */ 472 } , 473 { 474 1.18920711500272102689734765590401366353034973144531e+00, /* twoPowerIndex2hi[16] */ 475 3.98201523146564611098029654755651628169309930562261e-17, /* twoPowerIndex2mi[16] */ 476 1.14195965688545340101163692105448367710482873511510e-33, /* twoPowerIndex2lo[16] */ 477 } , 478 { 479 1.20215673145270307564658196497475728392601013183594e+00, /* twoPowerIndex2hi[17] */ 480 6.64498149925230124489270286991048474954122885069094e-17, /* twoPowerIndex2mi[17] */ 481 -3.85685255336907654452995968372311171004938395576078e-33, /* twoPowerIndex2lo[17] */ 482 } , 483 { 484 1.21524735998046895524282717815367504954338073730469e+00, /* twoPowerIndex2hi[18] */ 485 -7.71263069268148813091257203929615917892526180720328e-17, /* twoPowerIndex2mi[18] */ 486 4.71720614288499816545262331753743129502653902881319e-33, /* twoPowerIndex2lo[18] */ 487 } , 488 { 489 1.22848053610687002468182527081808075308799743652344e+00, /* twoPowerIndex2hi[19] */ 490 -1.89878163130252995311948719658078062677878185721429e-17, /* twoPowerIndex2mi[19] */ 491 6.18469453652103848424687212656185051850860290411013e-34, /* twoPowerIndex2lo[19] */ 492 } , 493 { 494 1.24185781207348400201340155035723000764846801757812e+00, /* twoPowerIndex2hi[20] */ 495 4.65802759183693679122616767654141683800114091774588e-17, /* twoPowerIndex2mi[20] */ 496 -2.31439910378785985764079190411324307370918857557275e-33, /* twoPowerIndex2lo[20] */ 497 } , 498 { 499 1.25538075702469109629078047873917967081069946289062e+00, /* twoPowerIndex2hi[21] */ 500 -6.71138982129687841852821870522008036246320680675952e-18, /* twoPowerIndex2mi[21] */ 501 -5.76846264325028352862497671463784812858487529613818e-35, /* twoPowerIndex2lo[21] */ 502 } , 503 { 504 1.26905095719173321988648694969015195965766906738281e+00, /* twoPowerIndex2hi[22] */ 505 2.66793213134218609522998616502989391061315227839969e-18, /* twoPowerIndex2mi[22] */ 506 -5.01723570938719050333027020376949013774930719140568e-35, /* twoPowerIndex2lo[22] */ 507 } , 508 { 509 1.28287001607877826359072059858590364456176757812500e+00, /* twoPowerIndex2hi[23] */ 510 1.71359491824356096814175768900864730928374054987756e-17, /* twoPowerIndex2mi[23] */ 511 7.25131491282819461838977871983760669047046080773478e-34, /* twoPowerIndex2lo[23] */ 512 } , 513 { 514 1.29683955465100964055125132290413603186607360839844e+00, /* twoPowerIndex2hi[24] */ 515 2.53825027948883149592910250791940344234383392801619e-17, /* twoPowerIndex2mi[24] */ 516 1.68678246461832500334243039646153124282288438904092e-34, /* twoPowerIndex2lo[24] */ 517 } , 518 { 519 1.31096121152476441373835314152529463171958923339844e+00, /* twoPowerIndex2hi[25] */ 520 -7.18153613551945385697245613605196258733040544776187e-17, /* twoPowerIndex2mi[25] */ 521 -2.12629266743969557140434977160228094057588798528197e-34, /* twoPowerIndex2lo[25] */ 522 } , 523 { 524 1.32523664315974132321684919588733464479446411132812e+00, /* twoPowerIndex2hi[26] */ 525 -2.85873121003886137327027220806882812126373511580572e-17, /* twoPowerIndex2mi[26] */ 526 7.62021406397260431456821182703024347950927217409368e-34, /* twoPowerIndex2lo[26] */ 527 } , 528 { 529 1.33966752405330291608720472140703350305557250976562e+00, /* twoPowerIndex2hi[27] */ 530 8.92728259483173198426255486589831591472085466011828e-17, /* twoPowerIndex2mi[27] */ 531 -7.69657983531899254540849298389093495155758992415150e-34, /* twoPowerIndex2lo[27] */ 532 } , 533 { 534 1.35425554693689265128853094211081042885780334472656e+00, /* twoPowerIndex2hi[28] */ 535 7.70094837980298946162338224151128414915778826123523e-17, /* twoPowerIndex2mi[28] */ 536 -2.24074836437395028882100810844688282941385619430371e-33, /* twoPowerIndex2lo[28] */ 537 } , 538 { 539 1.36900242297459051599162194179370999336242675781250e+00, /* twoPowerIndex2hi[29] */ 540 9.59379791911884877255545693637832999511204427845953e-17, /* twoPowerIndex2mi[29] */ 541 -4.88674958784947176959607858061848292445663702071206e-33, /* twoPowerIndex2lo[29] */ 542 } , 543 { 544 1.38390988196383202257777611521305516362190246582031e+00, /* twoPowerIndex2hi[30] */ 545 -6.77051165879478628715737183479431151106043475381389e-17, /* twoPowerIndex2mi[30] */ 546 5.25954134785524271676320971772030766300829615286373e-34, /* twoPowerIndex2lo[30] */ 547 } , 548 { 549 1.39897967253831123635166022722842171788215637207031e+00, /* twoPowerIndex2hi[31] */ 550 -9.61421320905132307233280072508933760749140842467170e-17, /* twoPowerIndex2mi[31] */ 551 3.97465190077505680357285219692652769985214754647576e-33, /* twoPowerIndex2lo[31] */ 552 } , 553 { 554 1.41421356237309514547462185873882845044136047363281e+00, /* twoPowerIndex2hi[32] */ 555 -9.66729331345291345105469972976694765012981670542977e-17, /* twoPowerIndex2mi[32] */ 556 4.13867530869941356271900493210877889450985709540127e-33, /* twoPowerIndex2lo[32] */ 557 } , 558 { 559 1.42961333839197002326670826732879504561424255371094e+00, /* twoPowerIndex2hi[33] */ 560 -1.20316424890536551791763281075597751007148682598677e-17, /* twoPowerIndex2mi[33] */ 561 3.96492532243389364766543780399018506300743370884771e-35, /* twoPowerIndex2lo[33] */ 562 } , 563 { 564 1.44518080697704665027458759141154587268829345703125e+00, /* twoPowerIndex2hi[34] */ 565 -3.02375813499398731939978948265280760393682335269040e-17, /* twoPowerIndex2mi[34] */ 566 -1.77301195820250091791088617662298487007284882395542e-33, /* twoPowerIndex2lo[34] */ 567 } , 568 { 569 1.46091779418064704465507475106278434395790100097656e+00, /* twoPowerIndex2hi[35] */ 570 -5.60037718607521580013156831807759453639536208267684e-17, /* twoPowerIndex2mi[35] */ 571 -4.80948804890004400970317146361816382779746350931714e-33, /* twoPowerIndex2lo[35] */ 572 } , 573 { 574 1.47682614593949934622685304930200800299644470214844e+00, /* twoPowerIndex2hi[36] */ 575 -3.48399455689279579579151031868718147769491495422105e-17, /* twoPowerIndex2mi[36] */ 576 -1.21157704523090580028169713170353136148082368354920e-34, /* twoPowerIndex2lo[36] */ 577 } , 578 { 579 1.49290772829126483500772337720263749361038208007812e+00, /* twoPowerIndex2hi[37] */ 580 1.41929201542840357707378184476885202767753055101956e-17, /* twoPowerIndex2mi[37] */ 581 2.77326329344780505247628358108799734324783290873618e-34, /* twoPowerIndex2lo[37] */ 582 } , 583 { 584 1.50916442759342284141155232646269723773002624511719e+00, /* twoPowerIndex2hi[38] */ 585 -1.01645532775429503910501990740249618370059871055172e-16, /* twoPowerIndex2mi[38] */ 586 2.04191706967403438352422808603561166583202022922508e-34, /* twoPowerIndex2lo[38] */ 587 } , 588 { 589 1.52559815074453841710067081294255331158638000488281e+00, /* twoPowerIndex2hi[39] */ 590 -1.10249417123425609363148008789604625195179292613569e-16, /* twoPowerIndex2mi[39] */ 591 -2.99382882637137806007903782085057425945683820190483e-33, /* twoPowerIndex2lo[39] */ 592 } , 593 { 594 1.54221082540794074411394376511452719569206237792969e+00, /* twoPowerIndex2hi[40] */ 595 7.94983480969762085616103882937991564856794389991833e-17, /* twoPowerIndex2mi[40] */ 596 -9.15995637410036729585390444224530830478731117122757e-34, /* twoPowerIndex2lo[40] */ 597 } , 598 { 599 1.55900440023783692922165755589958280324935913085938e+00, /* twoPowerIndex2hi[41] */ 600 3.78120705335752750188190562589679090842557793649900e-17, /* twoPowerIndex2mi[41] */ 601 5.94230221045385633407443935898656310894518533675204e-35, /* twoPowerIndex2lo[41] */ 602 } , 603 { 604 1.57598084510788649659218663146020844578742980957031e+00, /* twoPowerIndex2hi[42] */ 605 -1.01369164712783039807957177429288269249745537889645e-17, /* twoPowerIndex2mi[42] */ 606 5.43913851556220712785038586461119929989856637311730e-34, /* twoPowerIndex2lo[42] */ 607 } , 608 { 609 1.59314215134226699888131406623870134353637695312500e+00, /* twoPowerIndex2hi[43] */ 610 -1.00944065423119637216151952902063201612012779755882e-16, /* twoPowerIndex2mi[43] */ 611 4.60848399034962572477662350836868643017178368092553e-33, /* twoPowerIndex2lo[43] */ 612 } , 613 { 614 1.61049033194925428347232809755951166152954101562500e+00, /* twoPowerIndex2hi[44] */ 615 2.47071925697978878522451183466139791436957933053447e-17, /* twoPowerIndex2mi[44] */ 616 1.06968477888935897586507304780358756526593706030066e-33, /* twoPowerIndex2lo[44] */ 617 } , 618 { 619 1.62802742185734783397776936908485367894172668457031e+00, /* twoPowerIndex2hi[45] */ 620 -6.71295508470708408629558620522800193343463268850872e-17, /* twoPowerIndex2mi[45] */ 621 1.86124288813399584090278118171650158752835667500490e-33, /* twoPowerIndex2lo[45] */ 622 } , 623 { 624 1.64575547815396494577555586147354915738105773925781e+00, /* twoPowerIndex2hi[46] */ 625 -1.01256799136747726037875241569662212149731136230039e-16, /* twoPowerIndex2mi[46] */ 626 -6.73838498803664271467304077725442401461793880458369e-34, /* twoPowerIndex2lo[46] */ 627 } , 628 { 629 1.66367658032673637613640948984539136290550231933594e+00, /* twoPowerIndex2hi[47] */ 630 5.89099269671309967045155789620226639428173542900082e-17, /* twoPowerIndex2mi[47] */ 631 2.37785299276765025315795732233641105960161859663372e-33, /* twoPowerIndex2lo[47] */ 632 } , 633 { 634 1.68179283050742900407215074665145948529243469238281e+00, /* twoPowerIndex2hi[48] */ 635 8.19901002058149652012724391042374107310082144797238e-17, /* twoPowerIndex2mi[48] */ 636 5.10351519472809316392686812760480457926425713861784e-33, /* twoPowerIndex2lo[48] */ 637 } , 638 { 639 1.70010635371852347752508194389520213007926940917969e+00, /* twoPowerIndex2hi[49] */ 640 -8.02371937039770024588528464451482959960563128920877e-18, /* twoPowerIndex2mi[49] */ 641 4.50894675051846528463958043437010583905518288996850e-34, /* twoPowerIndex2lo[49] */ 642 } , 643 { 644 1.71861929812247793414314855908742174506187438964844e+00, /* twoPowerIndex2hi[50] */ 645 -1.85138041826311098821086356969536380719870481925638e-17, /* twoPowerIndex2mi[50] */ 646 6.41562962530571009881963439719259893730039269925891e-34, /* twoPowerIndex2lo[50] */ 647 } , 648 { 649 1.73733383527370621735030908894259482622146606445312e+00, /* twoPowerIndex2hi[51] */ 650 3.16438929929295694659064288262436215220581330791541e-17, /* twoPowerIndex2mi[51] */ 651 2.46812086524635182684409036079744664142196277491485e-33, /* twoPowerIndex2lo[51] */ 652 } , 653 { 654 1.75625216037329945351075366488657891750335693359375e+00, /* twoPowerIndex2hi[52] */ 655 2.96014069544887330703087179323550026749650613893620e-17, /* twoPowerIndex2mi[52] */ 656 1.23348227448930022362949427574612725745479960698002e-33, /* twoPowerIndex2lo[52] */ 657 } , 658 { 659 1.77537649252652118825324123463360592722892761230469e+00, /* twoPowerIndex2hi[53] */ 660 6.42973179655657203395602172161574258202382771355994e-17, /* twoPowerIndex2mi[53] */ 661 -3.05903038196122316059732104267589318807211463677414e-33, /* twoPowerIndex2lo[53] */ 662 } , 663 { 664 1.79470907500310716820024481421569362282752990722656e+00, /* twoPowerIndex2hi[54] */ 665 1.82274584279120867697625715862678123206602563412216e-17, /* twoPowerIndex2mi[54] */ 666 1.42176433874694971095041068746172287320972847635154e-33, /* twoPowerIndex2lo[54] */ 667 } , 668 { 669 1.81425217550039885594514998956583440303802490234375e+00, /* twoPowerIndex2hi[55] */ 670 -9.96953153892034881983229632097342495877571562964276e-17, /* twoPowerIndex2mi[55] */ 671 -5.86224914377491774994695195482808191103744720514440e-33, /* twoPowerIndex2lo[55] */ 672 } , 673 { 674 1.83400808640934243065601094713201746344566345214844e+00, /* twoPowerIndex2hi[56] */ 675 3.28310722424562720351405816760294702167288526703081e-17, /* twoPowerIndex2mi[56] */ 676 -6.42508934795304248095271046696049734574532048424330e-34, /* twoPowerIndex2lo[56] */ 677 } , 678 { 679 1.85397912508338547077357816306175664067268371582031e+00, /* twoPowerIndex2hi[57] */ 680 9.76188749072759353840331670682321086158335176176729e-17, /* twoPowerIndex2mi[57] */ 681 4.61481577205566482307976345637533484680898060020057e-33, /* twoPowerIndex2lo[57] */ 682 } , 683 { 684 1.87416763411029996255763307999586686491966247558594e+00, /* twoPowerIndex2hi[58] */ 685 -6.12276341300414256163658402373731493255704994623650e-17, /* twoPowerIndex2mi[58] */ 686 5.28588559402507397372575432425046614667899080733482e-33, /* twoPowerIndex2lo[58] */ 687 } , 688 { 689 1.89457598158696560730618330126162618398666381835938e+00, /* twoPowerIndex2hi[59] */ 690 3.40340353521652967060147928999507962708632290832738e-17, /* twoPowerIndex2mi[59] */ 691 1.72475099549343225430579028439403217279441019556785e-33, /* twoPowerIndex2lo[59] */ 692 } , 693 { 694 1.91520656139714740007207183225546032190322875976562e+00, /* twoPowerIndex2hi[60] */ 695 -1.06199460561959626376283195555328606320260702029334e-16, /* twoPowerIndex2mi[60] */ 696 -3.05776975679132548538006102719337626149343902119718e-33, /* twoPowerIndex2lo[60] */ 697 } , 698 { 699 1.93606179349229434727419629780342802405357360839844e+00, /* twoPowerIndex2hi[61] */ 700 1.03323859606763257447769151803649788699571393339738e-16, /* twoPowerIndex2mi[61] */ 701 6.05301367682062275405664830597304146844867569493449e-33, /* twoPowerIndex2lo[61] */ 702 } , 703 { 704 1.95714412417540017941064434126019477844238281250000e+00, /* twoPowerIndex2hi[62] */ 705 8.96076779103666776760155050762912042076490756639488e-17, /* twoPowerIndex2mi[62] */ 706 -9.63267661361827588458686334472185443533033181828620e-34, /* twoPowerIndex2lo[62] */ 707 } , 708 { 709 1.97845602638795092786949680885300040245056152343750e+00, /* twoPowerIndex2hi[63] */ 710 4.03887531092781665749784154795462589642365074083484e-17, /* twoPowerIndex2mi[63] */ 711 3.58120371667786223934924900740488031476290303118010e-34, /* twoPowerIndex2lo[63] */ 712 } }; 713 714 715 716