(root)/
gcc-13.2.0/
gcc/
testsuite/
gcc.dg/
float-exact-1.c
       1  /* Test exact conversion to binary floating-point types of
       2     floating-point contents expressed in decimal.  PR 21718.  */
       3  /* { dg-do run } */
       4  /* { dg-options "-w" } */
       5  /* { dg-add-options ieee } */
       6  
       7  /* For float (if IEEE binary32), double (if IEEE binary64) and long
       8     double (if IEEE binary64, x86 extended or IEEE binary128) we test
       9     half-way values and numbers close to those half-way values.  */
      10  
      11  #include <float.h>
      12  
      13  #if FLT_EVAL_METHOD == 0 \
      14    && FLT_MANT_DIG == 24 \
      15    && FLT_MIN_EXP == -125 \
      16    && FLT_MAX_EXP == 128
      17  # define FLT_OK
      18  /* 0x0.8p-149 */
      19  static const float f1ae = 0, f1be = 0, f1ce = 0x1p-149f;
      20  static const float f1a =
      21  7.0064923216240853546186479164495806564013097093825788587853\
      22  4141944895541342930300743319094181060791015624999e-46f;
      23  static const float f1b =
      24  7.0064923216240853546186479164495806564013097093825788587853\
      25  4141944895541342930300743319094181060791015625e-46f;
      26  static const float f1c =
      27  7.0064923216240853546186479164495806564013097093825788587853\
      28  4141944895541342930300743319094181060791015625001e-46f;
      29  /* 0x1.8p-149 */
      30  static const float f2ae = 0x1p-149f, f2be = 0x2p-149f, f2ce = 0x2p-149f;
      31  static const float f2a =
      32  2.1019476964872256063855943749348741969203929128147736576356\
      33  02425834686624028790902229957282543182373046874999e-45f;
      34  static const float f2b =
      35  2.1019476964872256063855943749348741969203929128147736576356\
      36  02425834686624028790902229957282543182373046875e-45f;
      37  static const float f2c =
      38  2.1019476964872256063855943749348741969203929128147736576356\
      39  02425834686624028790902229957282543182373046875001e-45f;
      40  /* 0x1.000001p127 */
      41  static const float f3ae = 0x1p127f, f3be = 0x1p127f, f3ce = 0x1.000002p127f;
      42  static const float f3a =
      43  1.70141193601674033557522515689509748735999e+38f;
      44  static const float f3b =
      45  1.70141193601674033557522515689509748736e+38f;
      46  static const float f3c =
      47  1.70141193601674033557522515689509748736001e+38f;
      48  #endif
      49  
      50  #if (FLT_EVAL_METHOD == 0 || FLT_EVAL_METHOD == 1) \
      51    && DBL_MANT_DIG == 53 \
      52    && DBL_MIN_EXP == -1021 \
      53    && DBL_MAX_EXP == 1024
      54  # define DBL_OK
      55  /* 0x0.8p-1074 */
      56  static const double d1ae = 0, d1be = 0, d1ce = 0x1p-1074;
      57  static const double d1a =
      58  2.4703282292062327208828439643411068618252990130716238221279\
      59  284125033775363510437593264991818081799618989828234772285886\
      60  546332835517796989819938739800539093906315035659515570226392\
      61  290858392449105184435931802849936536152500319370457678249219\
      62  365623669863658480757001585769269903706311928279558551332927\
      63  834338409351978015531246597263579574622766465272827220056374\
      64  006485499977096599470454020828166226237857393450736339007967\
      65  761930577506740176324673600968951340535537458516661134223766\
      66  678604162159680461914467291840300530057530849048765391711386\
      67  591646239524912623653881879636239373280423891018672348497668\
      68  235089863388587925628302755995657524455507255189313690836254\
      69  779186948667994968324049705821028513185451396213837722826145\
      70  437693412532098591327667236328124999e-324;
      71  static const double d1b =
      72  2.4703282292062327208828439643411068618252990130716238221279\
      73  284125033775363510437593264991818081799618989828234772285886\
      74  546332835517796989819938739800539093906315035659515570226392\
      75  290858392449105184435931802849936536152500319370457678249219\
      76  365623669863658480757001585769269903706311928279558551332927\
      77  834338409351978015531246597263579574622766465272827220056374\
      78  006485499977096599470454020828166226237857393450736339007967\
      79  761930577506740176324673600968951340535537458516661134223766\
      80  678604162159680461914467291840300530057530849048765391711386\
      81  591646239524912623653881879636239373280423891018672348497668\
      82  235089863388587925628302755995657524455507255189313690836254\
      83  779186948667994968324049705821028513185451396213837722826145\
      84  437693412532098591327667236328125e-324;
      85  static const double d1c =
      86  2.4703282292062327208828439643411068618252990130716238221279\
      87  284125033775363510437593264991818081799618989828234772285886\
      88  546332835517796989819938739800539093906315035659515570226392\
      89  290858392449105184435931802849936536152500319370457678249219\
      90  365623669863658480757001585769269903706311928279558551332927\
      91  834338409351978015531246597263579574622766465272827220056374\
      92  006485499977096599470454020828166226237857393450736339007967\
      93  761930577506740176324673600968951340535537458516661134223766\
      94  678604162159680461914467291840300530057530849048765391711386\
      95  591646239524912623653881879636239373280423891018672348497668\
      96  235089863388587925628302755995657524455507255189313690836254\
      97  779186948667994968324049705821028513185451396213837722826145\
      98  437693412532098591327667236328125001e-324;
      99  /* 0x1.8p-1074 */
     100  static const double d2ae = 0x1p-1074, d2be = 0x2p-1074, d2ce = 0x2p-1074;
     101  static const double d2a =
     102  7.4109846876186981626485318930233205854758970392148714663837\
     103  852375101326090531312779794975454245398856969484704316857659\
     104  638998506553390969459816219401617281718945106978546710679176\
     105  872575177347315553307795408549809608457500958111373034747658\
     106  096871009590975442271004757307809711118935784838675653998783\
     107  503015228055934046593739791790738723868299395818481660169122\
     108  019456499931289798411362062484498678713572180352209017023903\
     109  285791732520220528974020802906854021606612375549983402671300\
     110  035812486479041385743401875520901590172592547146296175134159\
     111  774938718574737870961645638908718119841271673056017045493004\
     112  705269590165763776884908267986972573366521765567941072508764\
     113  337560846003984904972149117463085539556354188641513168478436\
     114  313080237596295773983001708984374999e-324;
     115  static const double d2b =
     116  7.4109846876186981626485318930233205854758970392148714663837\
     117  852375101326090531312779794975454245398856969484704316857659\
     118  638998506553390969459816219401617281718945106978546710679176\
     119  872575177347315553307795408549809608457500958111373034747658\
     120  096871009590975442271004757307809711118935784838675653998783\
     121  503015228055934046593739791790738723868299395818481660169122\
     122  019456499931289798411362062484498678713572180352209017023903\
     123  285791732520220528974020802906854021606612375549983402671300\
     124  035812486479041385743401875520901590172592547146296175134159\
     125  774938718574737870961645638908718119841271673056017045493004\
     126  705269590165763776884908267986972573366521765567941072508764\
     127  337560846003984904972149117463085539556354188641513168478436\
     128  313080237596295773983001708984375e-324;
     129  static const double d2c =
     130  7.4109846876186981626485318930233205854758970392148714663837\
     131  852375101326090531312779794975454245398856969484704316857659\
     132  638998506553390969459816219401617281718945106978546710679176\
     133  872575177347315553307795408549809608457500958111373034747658\
     134  096871009590975442271004757307809711118935784838675653998783\
     135  503015228055934046593739791790738723868299395818481660169122\
     136  019456499931289798411362062484498678713572180352209017023903\
     137  285791732520220528974020802906854021606612375549983402671300\
     138  035812486479041385743401875520901590172592547146296175134159\
     139  774938718574737870961645638908718119841271673056017045493004\
     140  705269590165763776884908267986972573366521765567941072508764\
     141  337560846003984904972149117463085539556354188641513168478436\
     142  313080237596295773983001708984375001e-324;
     143  /* 0x1.00000000000008p1023 */
     144  static const double d3ae = 0x1p1023, d3be = 0x1p1023, d3ce = 0x1.0000000000001p1023;
     145  static const double d3a =
     146  8.9884656743115805365666807213050294962762414131308158973971\
     147  342756154045415486693752413698006024096935349884403114202125\
     148  541629105369684531108613657287705365884742938136589844238179\
     149  474556051429647415148697857438797685859063890851407391008830\
     150  874765563025951597582513936655578157348020066364210154316532\
     151  161708031999e+307;
     152  static const double d3b =
     153  8.9884656743115805365666807213050294962762414131308158973971\
     154  342756154045415486693752413698006024096935349884403114202125\
     155  541629105369684531108613657287705365884742938136589844238179\
     156  474556051429647415148697857438797685859063890851407391008830\
     157  874765563025951597582513936655578157348020066364210154316532\
     158  161708032e+307;
     159  static const double d3c =
     160  8.9884656743115805365666807213050294962762414131308158973971\
     161  342756154045415486693752413698006024096935349884403114202125\
     162  541629105369684531108613657287705365884742938136589844238179\
     163  474556051429647415148697857438797685859063890851407391008830\
     164  874765563025951597582513936655578157348020066364210154316532\
     165  161708032001e+307;
     166  #endif
     167  
     168  #if LDBL_MANT_DIG == 53 \
     169    && LDBL_MIN_EXP == -1021 \
     170    && LDBL_MAX_EXP == 1024
     171  # define LDBL_OK
     172  /* 0x0.8p-1074 */
     173  static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-1074L;
     174  static const long double ld1a =
     175  2.4703282292062327208828439643411068618252990130716238221279\
     176  284125033775363510437593264991818081799618989828234772285886\
     177  546332835517796989819938739800539093906315035659515570226392\
     178  290858392449105184435931802849936536152500319370457678249219\
     179  365623669863658480757001585769269903706311928279558551332927\
     180  834338409351978015531246597263579574622766465272827220056374\
     181  006485499977096599470454020828166226237857393450736339007967\
     182  761930577506740176324673600968951340535537458516661134223766\
     183  678604162159680461914467291840300530057530849048765391711386\
     184  591646239524912623653881879636239373280423891018672348497668\
     185  235089863388587925628302755995657524455507255189313690836254\
     186  779186948667994968324049705821028513185451396213837722826145\
     187  437693412532098591327667236328124999e-324L;
     188  static const long double ld1b =
     189  2.4703282292062327208828439643411068618252990130716238221279\
     190  284125033775363510437593264991818081799618989828234772285886\
     191  546332835517796989819938739800539093906315035659515570226392\
     192  290858392449105184435931802849936536152500319370457678249219\
     193  365623669863658480757001585769269903706311928279558551332927\
     194  834338409351978015531246597263579574622766465272827220056374\
     195  006485499977096599470454020828166226237857393450736339007967\
     196  761930577506740176324673600968951340535537458516661134223766\
     197  678604162159680461914467291840300530057530849048765391711386\
     198  591646239524912623653881879636239373280423891018672348497668\
     199  235089863388587925628302755995657524455507255189313690836254\
     200  779186948667994968324049705821028513185451396213837722826145\
     201  437693412532098591327667236328125e-324L;
     202  static const long double ld1c =
     203  2.4703282292062327208828439643411068618252990130716238221279\
     204  284125033775363510437593264991818081799618989828234772285886\
     205  546332835517796989819938739800539093906315035659515570226392\
     206  290858392449105184435931802849936536152500319370457678249219\
     207  365623669863658480757001585769269903706311928279558551332927\
     208  834338409351978015531246597263579574622766465272827220056374\
     209  006485499977096599470454020828166226237857393450736339007967\
     210  761930577506740176324673600968951340535537458516661134223766\
     211  678604162159680461914467291840300530057530849048765391711386\
     212  591646239524912623653881879636239373280423891018672348497668\
     213  235089863388587925628302755995657524455507255189313690836254\
     214  779186948667994968324049705821028513185451396213837722826145\
     215  437693412532098591327667236328125001e-324L;
     216  /* 0x1.8p-1074 */
     217  static const long double ld2ae = 0x1p-1074L, ld2be = 0x2p-1074L, ld2ce = 0x2p-1074L;
     218  static const long double ld2a =
     219  7.4109846876186981626485318930233205854758970392148714663837\
     220  852375101326090531312779794975454245398856969484704316857659\
     221  638998506553390969459816219401617281718945106978546710679176\
     222  872575177347315553307795408549809608457500958111373034747658\
     223  096871009590975442271004757307809711118935784838675653998783\
     224  503015228055934046593739791790738723868299395818481660169122\
     225  019456499931289798411362062484498678713572180352209017023903\
     226  285791732520220528974020802906854021606612375549983402671300\
     227  035812486479041385743401875520901590172592547146296175134159\
     228  774938718574737870961645638908718119841271673056017045493004\
     229  705269590165763776884908267986972573366521765567941072508764\
     230  337560846003984904972149117463085539556354188641513168478436\
     231  313080237596295773983001708984374999e-324L;
     232  static const long double ld2b =
     233  7.4109846876186981626485318930233205854758970392148714663837\
     234  852375101326090531312779794975454245398856969484704316857659\
     235  638998506553390969459816219401617281718945106978546710679176\
     236  872575177347315553307795408549809608457500958111373034747658\
     237  096871009590975442271004757307809711118935784838675653998783\
     238  503015228055934046593739791790738723868299395818481660169122\
     239  019456499931289798411362062484498678713572180352209017023903\
     240  285791732520220528974020802906854021606612375549983402671300\
     241  035812486479041385743401875520901590172592547146296175134159\
     242  774938718574737870961645638908718119841271673056017045493004\
     243  705269590165763776884908267986972573366521765567941072508764\
     244  337560846003984904972149117463085539556354188641513168478436\
     245  313080237596295773983001708984375e-324L;
     246  static const long double ld2c =
     247  7.4109846876186981626485318930233205854758970392148714663837\
     248  852375101326090531312779794975454245398856969484704316857659\
     249  638998506553390969459816219401617281718945106978546710679176\
     250  872575177347315553307795408549809608457500958111373034747658\
     251  096871009590975442271004757307809711118935784838675653998783\
     252  503015228055934046593739791790738723868299395818481660169122\
     253  019456499931289798411362062484498678713572180352209017023903\
     254  285791732520220528974020802906854021606612375549983402671300\
     255  035812486479041385743401875520901590172592547146296175134159\
     256  774938718574737870961645638908718119841271673056017045493004\
     257  705269590165763776884908267986972573366521765567941072508764\
     258  337560846003984904972149117463085539556354188641513168478436\
     259  313080237596295773983001708984375001e-324L;
     260  /* 0x1.00000000000008p1023 */
     261  static const long double ld3ae = 0x1p1023L, ld3be = 0x1p1023L, ld3ce = 0x1.0000000000001p1023L;
     262  static const long double ld3a =
     263  8.9884656743115805365666807213050294962762414131308158973971\
     264  342756154045415486693752413698006024096935349884403114202125\
     265  541629105369684531108613657287705365884742938136589844238179\
     266  474556051429647415148697857438797685859063890851407391008830\
     267  874765563025951597582513936655578157348020066364210154316532\
     268  161708031999e+307L;
     269  static const long double ld3b =
     270  8.9884656743115805365666807213050294962762414131308158973971\
     271  342756154045415486693752413698006024096935349884403114202125\
     272  541629105369684531108613657287705365884742938136589844238179\
     273  474556051429647415148697857438797685859063890851407391008830\
     274  874765563025951597582513936655578157348020066364210154316532\
     275  161708032e+307L;
     276  static const long double ld3c =
     277  8.9884656743115805365666807213050294962762414131308158973971\
     278  342756154045415486693752413698006024096935349884403114202125\
     279  541629105369684531108613657287705365884742938136589844238179\
     280  474556051429647415148697857438797685859063890851407391008830\
     281  874765563025951597582513936655578157348020066364210154316532\
     282  161708032001e+307L;
     283  #endif
     284  
     285  #if LDBL_MANT_DIG == 64 \
     286    && LDBL_MIN_EXP == -16381 \
     287    && LDBL_MAX_EXP == 16384
     288  # define LDBL_OK
     289  /* 0x0.8p-16445 */
     290  static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-16445L;
     291  static const long double ld1a =
     292  1.8225997659412373012642029668097099081995254078467816718604\
     293  902435141858443166988684047803543129136025986236736736017655\
     294  509834928163110160849867540377949045027419112905889658392846\
     295  126319028167798783107812829917053644701598967767636342956203\
     296  999770864055077592691915230273843577112246476529298591341071\
     297  313110337661777304220340396298768698441131694859514066773321\
     298  059786469060001083813361460161387168195154228027648977594276\
     299  496061276605855817438145692314650177569263750801566422892936\
     300  732834290416745265618525969943519916542939199731612507343012\
     301  297331882934352282118173551211985973294301787840335672389913\
     302  821098681464088756477802684228806339233239542587316254618680\
     303  197563613907079766830481997222017010585267442240109888818022\
     304  189543438116245170584546472752661417773021275082355242554950\
     305  776248474101880875363872607989624146320823364146896124171892\
     306  610744237622308266702265704492674694505399997330424978964704\
     307  335411125839490463131661420668167686151828553033363555080508\
     308  484934542727634080467233927879117726432283352324546435315312\
     309  937809651095964197873430398662003709663353962932921239516263\
     310  008572512558260093668527782388349282015308359304941505110445\
     311  043762021191469060607078792635897736408141163554429972292873\
     312  575169264387977130124003958599909776720759582995017519144111\
     313  001778329839793855454688442046155253818724410472281602421363\
     314  580613990749181808302947976045417884436271162664776148749463\
     315  202753814797191206392480969096910387729527305862739806702349\
     316  088455828380471306603628636563037414688265702108098430515297\
     317  645997107159687247830496686980315376091511219227376708389862\
     318  310190633134517040835432587726931910775044780329777051964574\
     319  763119639404235797665922677433332402402817037657141926646502\
     320  612388421085254756323737273178774331073924707711575555193153\
     321  421957126062196520952920611871114861423032687425262323243276\
     322  848595495133802591437804984986053892365334900647137137197585\
     323  161954823956838391108748154877098567190695813394392779995887\
     324  642254413740232692940887236351533691174492514884514265006822\
     325  752026136435469700291628942927286843274959781329315250417360\
     326  438115330104516894597449604875954147108010051910197388860417\
     327  003307595774863477182911525109554542883460240867674794470854\
     328  883815424039187014069246137704710366577005576311674384079810\
     329  437206511282792194562503036151028910065418370565117488062226\
     330  073975854919243439941741016447206284543777826080409075756028\
     331  194465562812076645422284670475730922346454505830553174377950\
     332  824178034708147037448871898963699023373821217419560423459358\
     333  846127232531421552826545954362386431279626917642725181802754\
     334  271134597856231805666129524101509582941585421888561296839474\
     335  232056474112935379177434928227554149402642893913492062781246\
     336  372611175305462271711931011635602039137701669573065960945871\
     337  579420683440097179831368317352157202215160682058878025153007\
     338  184185319863451652087375936651004559837502483808090613073982\
     339  264685620351993519454344577635257452328683726988824705474397\
     340  398247190812883071734743260426540123481791283782928972842466\
     341  595210269414219040901793935553872090377394005932597887081359\
     342  481915849178541128182923272843218513093012167744690818603663\
     343  862691727272565325057703378827553284852502067686026850339624\
     344  401046086817036618366842240024522042069888708534827471235203\
     345  998932259309110942367856287784097166420437430118381247339347\
     346  418156902369282431197735078016591613063918260343498992697002\
     347  033186558413655576703389208301203552157755701852051877927864\
     348  696515420369217703510602759815252574799728706795849558382877\
     349  392016396900560101736741462690753991602263974212137632508984\
     350  264559315540891383192361601189350414311358816980975697568561\
     351  515680971830107704152657284552920241862730125888825702301035\
     352  564615759615882010733764341109834449576907982406265803484111\
     353  303615971297609065271517286111839839646343815364461776394273\
     354  571391219315553915335300622295196577640884201524657614065743\
     355  729121754460652975075990012786021662416077757235487562550381\
     356  116824006014440438178253273174734436163638119532295383351135\
     357  543170811596051785036366846773285937845231974424475418970517\
     358  659179798069972876889488877627309887323737590814875050457317\
     359  809625163713227973229002908003491739085115971899606986738405\
     360  752463436186745107821032315480693516006251388789902053863235\
     361  071957895722121876262598833823352290042576488238120724072267\
     362  480348425637199003147760378463243043407534395221882144887315\
     363  875876025907739792297575795373506429192468470170038312050500\
     364  917665707583420927303790875332407805094505665159755210495266\
     365  485594187244922216154283213688032393939401426499517609275128\
     366  062067355172333120857796045387692492375534056470145301671359\
     367  016602832469675123108598588424022216759334733452626330303791\
     368  660952659036162827509451468771297954737165701921676834866994\
     369  084496268491510599580714458155026746676860790028899722645883\
     370  679435969902046442373108472951515492761911884847211825930115\
     371  654927539118088350255959445076757398298893380662248358210075\
     372  297702191186519614515280395341723177201383862827129721649638\
     373  274531314762377778754560119397123180107310216608157141828379\
     374  259328274508467371717057031104537750450228447941619684073375\
     375  630517322006118640290925241602376256334414376495602911265450\
     376  165889418372161719063670619610214632774542741157366426747861\
     377  054811449449004970132668146607323502760146957586465275981090\
     378  328336256381187450646030492071694516054712444513961269623339\
     379  705411366337817643269316717217432478812002049894979925260411\
     380  553651385384826214231392012841425936827944383266227115236029\
     381  717393064659821056467446870597828757433936024422511537561864\
     382  619865595955628070343780472634463916608440151554502790128417\
     383  277259492437005696576453717387309605129939526661181496994297\
     384  244693710437436581443653555343763817246961834486181294985455\
     385  884981266421533438177271809310897035958260776218253097858601\
     386  160643120653927024652834025146166356877731266566437231429061\
     387  099807825113272551869352908241073955695854354852545370793609\
     388  838167127357752579007490955536081388103461735071174567636929\
     389  060824172375010035497010614957197713919909924635906503348016\
     390  450952475530978921242656498701313530533991692867619886826204\
     391  706468476070943378163577235406861262755114909606255628375659\
     392  196050370661430148107216310635729360112021571291096278032076\
     393  401092225373270173950575377792566872113768085940991929655824\
     394  050914085013970861399015141010432835406337266746706727481946\
     395  196898882472095111505210339933002505227334750020285673634670\
     396  738458390159933494226851499935336922036551687169140582574153\
     397  726872453800858360764892975201757027862632615130256075468549\
     398  502839367841926212872731925042838691319757663382746471782087\
     399  828988857978192483595747889021081459460627705275735868618724\
     400  958783348362295106875556443770626864591972089881215465141073\
     401  516646930158996569747675806719463602045230325049794904894739\
     402  988312727573320971310488326486213061839843830003145873279435\
     403  454121817918269218294901387830156432148142381592864575229119\
     404  479029130050663564889172093067341444164942736885872753984012\
     405  865743421266470861425283889134636885790293235727017788606167\
     406  560012477186697069994213912998550931078617189790771376702549\
     407  055361745205232419031423044366971378594392952093464046441667\
     408  117613906203494872209149396518971207279263883566606774353236\
     409  255473603377861613942239543893894460581170658088042083661404\
     410  937465706659424639301296621963906278930754459296017486063079\
     411  582024995485338893699574289806529424673393810217577605952909\
     412  491283123179789154639057105774960699934999681018155749261864\
     413  012821574480758746632022143860041252142846691648490809250856\
     414  327057133540568617791625295314357533564192304930155735301757\
     415  457531580062662693966772497728335047637869054460240023262262\
     416  260698443946964564691259441706490611176164305693669515767804\
     417  836460521205954731752583848846525153811934541997962775215961\
     418  180346397456122329133421016560406277159258781706172834569862\
     419  946953007793254152187010227976038449980797987728559041018441\
     420  590564594738308310579014597893182017151615208050090318483536\
     421  106249131918576316944251537092347119867433735046169725181104\
     422  507590928834713669184230634083190791725243913641206256399101\
     423  550966117564795555149420011152858441084271411289366093158722\
     424  254752761637144762690747726313899449121995142565661043193165\
     425  353010677613760383307839362361625628371456344409245507081913\
     426  518237257141164239966660785903970075181826808229440731778746\
     427  830751045427285945936163931997929399708401851740705527023711\
     428  492262489476846435969872480702228386506357017948329114555484\
     429  164760105906717855684788039081591713778852802032849601308169\
     430  832017420608399347713424218434541771868442189843417628618330\
     431  607429739733739437863581804003482214082370567967330530446020\
     432  897773385726872912189813323094415093143437550397556262780011\
     433  208941731420098754319961419532567861629590267320403217607660\
     434  774125374101195389953895035347940170148097810952083736798564\
     435  420421622607993390894450932047257403433908665884124601384175\
     436  012387617430467934818665777122459487877479257747635172691688\
     437  471574765285820096075133353869554987216398800026453207557923\
     438  535966131756358352198875705382763163680830588056974671628368\
     439  719411827591592806044707764658145625683998557872894583705117\
     440  936257144994734815912058252772021032081682437093280526665192\
     441  728869800954748014250481042845426151143544474372887617562791\
     442  409866964806319608280819816846942058817381943129762034507591\
     443  367065185343216917751414811188645979508942996964383255432999\
     444  246119971295726296202396921903289017490293595312645036697141\
     445  581149988784499288560584613793415358537364677872496224892098\
     446  940856692342358755626519304557946447004033186014602147449599\
     447  351317079758304444877174136521487256811625263467410007624215\
     448  856145392339552689565690577293133060124853654497575571509576\
     449  408069646196646757505249296126372820539234090564691695806544\
     450  715766025588258581902342311480969412221466852421842650484494\
     451  063894865891424563992751226230317059592413191308470146226366\
     452  458233536657973376067140793776369412191789801225320255079444\
     453  592709005698858098716107025188986428347407279053266600044521\
     454  079987989879536957560131070100060050673537683871138182387904\
     455  590837539252425985326631955455857258818756188063697492342550\
     456  045277400125480079927908846850898283905756532829762950509886\
     457  991675925213188409911532242068610889478326451513981115020992\
     458  630395715520350039372702741107911736947893709538471200363740\
     459  669304116845653259038102180504837110789645359520309929381266\
     460  271463740502507456882882255788069710715770802338317704510793\
     461  279398576163709512326095306022330346997717688118726634628650\
     462  675984237916551201500684504118483305560295744746257951860545\
     463  390826531622290588364837980034428055971370065573420370270905\
     464  592141420051502465016793525150950140243606137664910359769114\
     465  512792293426708006440346732679574519594848136194781488696994\
     466  267355775509666977187349644291823026624985531726865131782364\
     467  428380093055155988532106121916567178604128111080322761213573\
     468  781334480667563871257352254033032675246444238637990062075058\
     469  819854494711379915549313390179300091783493496822950479766923\
     470  983305064901026858870340863556799948310622536592472509634484\
     471  910640735459644047154918467543140024764605449756679450446473\
     472  048922824617117723876384637412932380635306714345354710568410\
     473  140587435077620501285599837051978855056335305570615129711860\
     474  309387503970812843734718712815925040263182888714533431137355\
     475  255722368962836390856001176889513153529416105504464217522618\
     476  741534232432067776306691118141998014985541610448993152948945\
     477  865983354717289054861249734477980864059509622993770525110616\
     478  313865830823478927462500895844216364365499438449134659145333\
     479  799994034010282254566331595018205841080487728993632798168070\
     480  476921205941768965021887178681810499301253039335978279707627\
     481  295287697256489961179958946847840431902105306618594831078534\
     482  622089641993900896756734276531931450266972752637997248151974\
     483  2277811246822238899767398834228515624999e-4951L;
     484  static const long double ld1b =
     485  1.8225997659412373012642029668097099081995254078467816718604\
     486  902435141858443166988684047803543129136025986236736736017655\
     487  509834928163110160849867540377949045027419112905889658392846\
     488  126319028167798783107812829917053644701598967767636342956203\
     489  999770864055077592691915230273843577112246476529298591341071\
     490  313110337661777304220340396298768698441131694859514066773321\
     491  059786469060001083813361460161387168195154228027648977594276\
     492  496061276605855817438145692314650177569263750801566422892936\
     493  732834290416745265618525969943519916542939199731612507343012\
     494  297331882934352282118173551211985973294301787840335672389913\
     495  821098681464088756477802684228806339233239542587316254618680\
     496  197563613907079766830481997222017010585267442240109888818022\
     497  189543438116245170584546472752661417773021275082355242554950\
     498  776248474101880875363872607989624146320823364146896124171892\
     499  610744237622308266702265704492674694505399997330424978964704\
     500  335411125839490463131661420668167686151828553033363555080508\
     501  484934542727634080467233927879117726432283352324546435315312\
     502  937809651095964197873430398662003709663353962932921239516263\
     503  008572512558260093668527782388349282015308359304941505110445\
     504  043762021191469060607078792635897736408141163554429972292873\
     505  575169264387977130124003958599909776720759582995017519144111\
     506  001778329839793855454688442046155253818724410472281602421363\
     507  580613990749181808302947976045417884436271162664776148749463\
     508  202753814797191206392480969096910387729527305862739806702349\
     509  088455828380471306603628636563037414688265702108098430515297\
     510  645997107159687247830496686980315376091511219227376708389862\
     511  310190633134517040835432587726931910775044780329777051964574\
     512  763119639404235797665922677433332402402817037657141926646502\
     513  612388421085254756323737273178774331073924707711575555193153\
     514  421957126062196520952920611871114861423032687425262323243276\
     515  848595495133802591437804984986053892365334900647137137197585\
     516  161954823956838391108748154877098567190695813394392779995887\
     517  642254413740232692940887236351533691174492514884514265006822\
     518  752026136435469700291628942927286843274959781329315250417360\
     519  438115330104516894597449604875954147108010051910197388860417\
     520  003307595774863477182911525109554542883460240867674794470854\
     521  883815424039187014069246137704710366577005576311674384079810\
     522  437206511282792194562503036151028910065418370565117488062226\
     523  073975854919243439941741016447206284543777826080409075756028\
     524  194465562812076645422284670475730922346454505830553174377950\
     525  824178034708147037448871898963699023373821217419560423459358\
     526  846127232531421552826545954362386431279626917642725181802754\
     527  271134597856231805666129524101509582941585421888561296839474\
     528  232056474112935379177434928227554149402642893913492062781246\
     529  372611175305462271711931011635602039137701669573065960945871\
     530  579420683440097179831368317352157202215160682058878025153007\
     531  184185319863451652087375936651004559837502483808090613073982\
     532  264685620351993519454344577635257452328683726988824705474397\
     533  398247190812883071734743260426540123481791283782928972842466\
     534  595210269414219040901793935553872090377394005932597887081359\
     535  481915849178541128182923272843218513093012167744690818603663\
     536  862691727272565325057703378827553284852502067686026850339624\
     537  401046086817036618366842240024522042069888708534827471235203\
     538  998932259309110942367856287784097166420437430118381247339347\
     539  418156902369282431197735078016591613063918260343498992697002\
     540  033186558413655576703389208301203552157755701852051877927864\
     541  696515420369217703510602759815252574799728706795849558382877\
     542  392016396900560101736741462690753991602263974212137632508984\
     543  264559315540891383192361601189350414311358816980975697568561\
     544  515680971830107704152657284552920241862730125888825702301035\
     545  564615759615882010733764341109834449576907982406265803484111\
     546  303615971297609065271517286111839839646343815364461776394273\
     547  571391219315553915335300622295196577640884201524657614065743\
     548  729121754460652975075990012786021662416077757235487562550381\
     549  116824006014440438178253273174734436163638119532295383351135\
     550  543170811596051785036366846773285937845231974424475418970517\
     551  659179798069972876889488877627309887323737590814875050457317\
     552  809625163713227973229002908003491739085115971899606986738405\
     553  752463436186745107821032315480693516006251388789902053863235\
     554  071957895722121876262598833823352290042576488238120724072267\
     555  480348425637199003147760378463243043407534395221882144887315\
     556  875876025907739792297575795373506429192468470170038312050500\
     557  917665707583420927303790875332407805094505665159755210495266\
     558  485594187244922216154283213688032393939401426499517609275128\
     559  062067355172333120857796045387692492375534056470145301671359\
     560  016602832469675123108598588424022216759334733452626330303791\
     561  660952659036162827509451468771297954737165701921676834866994\
     562  084496268491510599580714458155026746676860790028899722645883\
     563  679435969902046442373108472951515492761911884847211825930115\
     564  654927539118088350255959445076757398298893380662248358210075\
     565  297702191186519614515280395341723177201383862827129721649638\
     566  274531314762377778754560119397123180107310216608157141828379\
     567  259328274508467371717057031104537750450228447941619684073375\
     568  630517322006118640290925241602376256334414376495602911265450\
     569  165889418372161719063670619610214632774542741157366426747861\
     570  054811449449004970132668146607323502760146957586465275981090\
     571  328336256381187450646030492071694516054712444513961269623339\
     572  705411366337817643269316717217432478812002049894979925260411\
     573  553651385384826214231392012841425936827944383266227115236029\
     574  717393064659821056467446870597828757433936024422511537561864\
     575  619865595955628070343780472634463916608440151554502790128417\
     576  277259492437005696576453717387309605129939526661181496994297\
     577  244693710437436581443653555343763817246961834486181294985455\
     578  884981266421533438177271809310897035958260776218253097858601\
     579  160643120653927024652834025146166356877731266566437231429061\
     580  099807825113272551869352908241073955695854354852545370793609\
     581  838167127357752579007490955536081388103461735071174567636929\
     582  060824172375010035497010614957197713919909924635906503348016\
     583  450952475530978921242656498701313530533991692867619886826204\
     584  706468476070943378163577235406861262755114909606255628375659\
     585  196050370661430148107216310635729360112021571291096278032076\
     586  401092225373270173950575377792566872113768085940991929655824\
     587  050914085013970861399015141010432835406337266746706727481946\
     588  196898882472095111505210339933002505227334750020285673634670\
     589  738458390159933494226851499935336922036551687169140582574153\
     590  726872453800858360764892975201757027862632615130256075468549\
     591  502839367841926212872731925042838691319757663382746471782087\
     592  828988857978192483595747889021081459460627705275735868618724\
     593  958783348362295106875556443770626864591972089881215465141073\
     594  516646930158996569747675806719463602045230325049794904894739\
     595  988312727573320971310488326486213061839843830003145873279435\
     596  454121817918269218294901387830156432148142381592864575229119\
     597  479029130050663564889172093067341444164942736885872753984012\
     598  865743421266470861425283889134636885790293235727017788606167\
     599  560012477186697069994213912998550931078617189790771376702549\
     600  055361745205232419031423044366971378594392952093464046441667\
     601  117613906203494872209149396518971207279263883566606774353236\
     602  255473603377861613942239543893894460581170658088042083661404\
     603  937465706659424639301296621963906278930754459296017486063079\
     604  582024995485338893699574289806529424673393810217577605952909\
     605  491283123179789154639057105774960699934999681018155749261864\
     606  012821574480758746632022143860041252142846691648490809250856\
     607  327057133540568617791625295314357533564192304930155735301757\
     608  457531580062662693966772497728335047637869054460240023262262\
     609  260698443946964564691259441706490611176164305693669515767804\
     610  836460521205954731752583848846525153811934541997962775215961\
     611  180346397456122329133421016560406277159258781706172834569862\
     612  946953007793254152187010227976038449980797987728559041018441\
     613  590564594738308310579014597893182017151615208050090318483536\
     614  106249131918576316944251537092347119867433735046169725181104\
     615  507590928834713669184230634083190791725243913641206256399101\
     616  550966117564795555149420011152858441084271411289366093158722\
     617  254752761637144762690747726313899449121995142565661043193165\
     618  353010677613760383307839362361625628371456344409245507081913\
     619  518237257141164239966660785903970075181826808229440731778746\
     620  830751045427285945936163931997929399708401851740705527023711\
     621  492262489476846435969872480702228386506357017948329114555484\
     622  164760105906717855684788039081591713778852802032849601308169\
     623  832017420608399347713424218434541771868442189843417628618330\
     624  607429739733739437863581804003482214082370567967330530446020\
     625  897773385726872912189813323094415093143437550397556262780011\
     626  208941731420098754319961419532567861629590267320403217607660\
     627  774125374101195389953895035347940170148097810952083736798564\
     628  420421622607993390894450932047257403433908665884124601384175\
     629  012387617430467934818665777122459487877479257747635172691688\
     630  471574765285820096075133353869554987216398800026453207557923\
     631  535966131756358352198875705382763163680830588056974671628368\
     632  719411827591592806044707764658145625683998557872894583705117\
     633  936257144994734815912058252772021032081682437093280526665192\
     634  728869800954748014250481042845426151143544474372887617562791\
     635  409866964806319608280819816846942058817381943129762034507591\
     636  367065185343216917751414811188645979508942996964383255432999\
     637  246119971295726296202396921903289017490293595312645036697141\
     638  581149988784499288560584613793415358537364677872496224892098\
     639  940856692342358755626519304557946447004033186014602147449599\
     640  351317079758304444877174136521487256811625263467410007624215\
     641  856145392339552689565690577293133060124853654497575571509576\
     642  408069646196646757505249296126372820539234090564691695806544\
     643  715766025588258581902342311480969412221466852421842650484494\
     644  063894865891424563992751226230317059592413191308470146226366\
     645  458233536657973376067140793776369412191789801225320255079444\
     646  592709005698858098716107025188986428347407279053266600044521\
     647  079987989879536957560131070100060050673537683871138182387904\
     648  590837539252425985326631955455857258818756188063697492342550\
     649  045277400125480079927908846850898283905756532829762950509886\
     650  991675925213188409911532242068610889478326451513981115020992\
     651  630395715520350039372702741107911736947893709538471200363740\
     652  669304116845653259038102180504837110789645359520309929381266\
     653  271463740502507456882882255788069710715770802338317704510793\
     654  279398576163709512326095306022330346997717688118726634628650\
     655  675984237916551201500684504118483305560295744746257951860545\
     656  390826531622290588364837980034428055971370065573420370270905\
     657  592141420051502465016793525150950140243606137664910359769114\
     658  512792293426708006440346732679574519594848136194781488696994\
     659  267355775509666977187349644291823026624985531726865131782364\
     660  428380093055155988532106121916567178604128111080322761213573\
     661  781334480667563871257352254033032675246444238637990062075058\
     662  819854494711379915549313390179300091783493496822950479766923\
     663  983305064901026858870340863556799948310622536592472509634484\
     664  910640735459644047154918467543140024764605449756679450446473\
     665  048922824617117723876384637412932380635306714345354710568410\
     666  140587435077620501285599837051978855056335305570615129711860\
     667  309387503970812843734718712815925040263182888714533431137355\
     668  255722368962836390856001176889513153529416105504464217522618\
     669  741534232432067776306691118141998014985541610448993152948945\
     670  865983354717289054861249734477980864059509622993770525110616\
     671  313865830823478927462500895844216364365499438449134659145333\
     672  799994034010282254566331595018205841080487728993632798168070\
     673  476921205941768965021887178681810499301253039335978279707627\
     674  295287697256489961179958946847840431902105306618594831078534\
     675  622089641993900896756734276531931450266972752637997248151974\
     676  2277811246822238899767398834228515625e-4951L;
     677  static const long double ld1c =
     678  1.8225997659412373012642029668097099081995254078467816718604\
     679  902435141858443166988684047803543129136025986236736736017655\
     680  509834928163110160849867540377949045027419112905889658392846\
     681  126319028167798783107812829917053644701598967767636342956203\
     682  999770864055077592691915230273843577112246476529298591341071\
     683  313110337661777304220340396298768698441131694859514066773321\
     684  059786469060001083813361460161387168195154228027648977594276\
     685  496061276605855817438145692314650177569263750801566422892936\
     686  732834290416745265618525969943519916542939199731612507343012\
     687  297331882934352282118173551211985973294301787840335672389913\
     688  821098681464088756477802684228806339233239542587316254618680\
     689  197563613907079766830481997222017010585267442240109888818022\
     690  189543438116245170584546472752661417773021275082355242554950\
     691  776248474101880875363872607989624146320823364146896124171892\
     692  610744237622308266702265704492674694505399997330424978964704\
     693  335411125839490463131661420668167686151828553033363555080508\
     694  484934542727634080467233927879117726432283352324546435315312\
     695  937809651095964197873430398662003709663353962932921239516263\
     696  008572512558260093668527782388349282015308359304941505110445\
     697  043762021191469060607078792635897736408141163554429972292873\
     698  575169264387977130124003958599909776720759582995017519144111\
     699  001778329839793855454688442046155253818724410472281602421363\
     700  580613990749181808302947976045417884436271162664776148749463\
     701  202753814797191206392480969096910387729527305862739806702349\
     702  088455828380471306603628636563037414688265702108098430515297\
     703  645997107159687247830496686980315376091511219227376708389862\
     704  310190633134517040835432587726931910775044780329777051964574\
     705  763119639404235797665922677433332402402817037657141926646502\
     706  612388421085254756323737273178774331073924707711575555193153\
     707  421957126062196520952920611871114861423032687425262323243276\
     708  848595495133802591437804984986053892365334900647137137197585\
     709  161954823956838391108748154877098567190695813394392779995887\
     710  642254413740232692940887236351533691174492514884514265006822\
     711  752026136435469700291628942927286843274959781329315250417360\
     712  438115330104516894597449604875954147108010051910197388860417\
     713  003307595774863477182911525109554542883460240867674794470854\
     714  883815424039187014069246137704710366577005576311674384079810\
     715  437206511282792194562503036151028910065418370565117488062226\
     716  073975854919243439941741016447206284543777826080409075756028\
     717  194465562812076645422284670475730922346454505830553174377950\
     718  824178034708147037448871898963699023373821217419560423459358\
     719  846127232531421552826545954362386431279626917642725181802754\
     720  271134597856231805666129524101509582941585421888561296839474\
     721  232056474112935379177434928227554149402642893913492062781246\
     722  372611175305462271711931011635602039137701669573065960945871\
     723  579420683440097179831368317352157202215160682058878025153007\
     724  184185319863451652087375936651004559837502483808090613073982\
     725  264685620351993519454344577635257452328683726988824705474397\
     726  398247190812883071734743260426540123481791283782928972842466\
     727  595210269414219040901793935553872090377394005932597887081359\
     728  481915849178541128182923272843218513093012167744690818603663\
     729  862691727272565325057703378827553284852502067686026850339624\
     730  401046086817036618366842240024522042069888708534827471235203\
     731  998932259309110942367856287784097166420437430118381247339347\
     732  418156902369282431197735078016591613063918260343498992697002\
     733  033186558413655576703389208301203552157755701852051877927864\
     734  696515420369217703510602759815252574799728706795849558382877\
     735  392016396900560101736741462690753991602263974212137632508984\
     736  264559315540891383192361601189350414311358816980975697568561\
     737  515680971830107704152657284552920241862730125888825702301035\
     738  564615759615882010733764341109834449576907982406265803484111\
     739  303615971297609065271517286111839839646343815364461776394273\
     740  571391219315553915335300622295196577640884201524657614065743\
     741  729121754460652975075990012786021662416077757235487562550381\
     742  116824006014440438178253273174734436163638119532295383351135\
     743  543170811596051785036366846773285937845231974424475418970517\
     744  659179798069972876889488877627309887323737590814875050457317\
     745  809625163713227973229002908003491739085115971899606986738405\
     746  752463436186745107821032315480693516006251388789902053863235\
     747  071957895722121876262598833823352290042576488238120724072267\
     748  480348425637199003147760378463243043407534395221882144887315\
     749  875876025907739792297575795373506429192468470170038312050500\
     750  917665707583420927303790875332407805094505665159755210495266\
     751  485594187244922216154283213688032393939401426499517609275128\
     752  062067355172333120857796045387692492375534056470145301671359\
     753  016602832469675123108598588424022216759334733452626330303791\
     754  660952659036162827509451468771297954737165701921676834866994\
     755  084496268491510599580714458155026746676860790028899722645883\
     756  679435969902046442373108472951515492761911884847211825930115\
     757  654927539118088350255959445076757398298893380662248358210075\
     758  297702191186519614515280395341723177201383862827129721649638\
     759  274531314762377778754560119397123180107310216608157141828379\
     760  259328274508467371717057031104537750450228447941619684073375\
     761  630517322006118640290925241602376256334414376495602911265450\
     762  165889418372161719063670619610214632774542741157366426747861\
     763  054811449449004970132668146607323502760146957586465275981090\
     764  328336256381187450646030492071694516054712444513961269623339\
     765  705411366337817643269316717217432478812002049894979925260411\
     766  553651385384826214231392012841425936827944383266227115236029\
     767  717393064659821056467446870597828757433936024422511537561864\
     768  619865595955628070343780472634463916608440151554502790128417\
     769  277259492437005696576453717387309605129939526661181496994297\
     770  244693710437436581443653555343763817246961834486181294985455\
     771  884981266421533438177271809310897035958260776218253097858601\
     772  160643120653927024652834025146166356877731266566437231429061\
     773  099807825113272551869352908241073955695854354852545370793609\
     774  838167127357752579007490955536081388103461735071174567636929\
     775  060824172375010035497010614957197713919909924635906503348016\
     776  450952475530978921242656498701313530533991692867619886826204\
     777  706468476070943378163577235406861262755114909606255628375659\
     778  196050370661430148107216310635729360112021571291096278032076\
     779  401092225373270173950575377792566872113768085940991929655824\
     780  050914085013970861399015141010432835406337266746706727481946\
     781  196898882472095111505210339933002505227334750020285673634670\
     782  738458390159933494226851499935336922036551687169140582574153\
     783  726872453800858360764892975201757027862632615130256075468549\
     784  502839367841926212872731925042838691319757663382746471782087\
     785  828988857978192483595747889021081459460627705275735868618724\
     786  958783348362295106875556443770626864591972089881215465141073\
     787  516646930158996569747675806719463602045230325049794904894739\
     788  988312727573320971310488326486213061839843830003145873279435\
     789  454121817918269218294901387830156432148142381592864575229119\
     790  479029130050663564889172093067341444164942736885872753984012\
     791  865743421266470861425283889134636885790293235727017788606167\
     792  560012477186697069994213912998550931078617189790771376702549\
     793  055361745205232419031423044366971378594392952093464046441667\
     794  117613906203494872209149396518971207279263883566606774353236\
     795  255473603377861613942239543893894460581170658088042083661404\
     796  937465706659424639301296621963906278930754459296017486063079\
     797  582024995485338893699574289806529424673393810217577605952909\
     798  491283123179789154639057105774960699934999681018155749261864\
     799  012821574480758746632022143860041252142846691648490809250856\
     800  327057133540568617791625295314357533564192304930155735301757\
     801  457531580062662693966772497728335047637869054460240023262262\
     802  260698443946964564691259441706490611176164305693669515767804\
     803  836460521205954731752583848846525153811934541997962775215961\
     804  180346397456122329133421016560406277159258781706172834569862\
     805  946953007793254152187010227976038449980797987728559041018441\
     806  590564594738308310579014597893182017151615208050090318483536\
     807  106249131918576316944251537092347119867433735046169725181104\
     808  507590928834713669184230634083190791725243913641206256399101\
     809  550966117564795555149420011152858441084271411289366093158722\
     810  254752761637144762690747726313899449121995142565661043193165\
     811  353010677613760383307839362361625628371456344409245507081913\
     812  518237257141164239966660785903970075181826808229440731778746\
     813  830751045427285945936163931997929399708401851740705527023711\
     814  492262489476846435969872480702228386506357017948329114555484\
     815  164760105906717855684788039081591713778852802032849601308169\
     816  832017420608399347713424218434541771868442189843417628618330\
     817  607429739733739437863581804003482214082370567967330530446020\
     818  897773385726872912189813323094415093143437550397556262780011\
     819  208941731420098754319961419532567861629590267320403217607660\
     820  774125374101195389953895035347940170148097810952083736798564\
     821  420421622607993390894450932047257403433908665884124601384175\
     822  012387617430467934818665777122459487877479257747635172691688\
     823  471574765285820096075133353869554987216398800026453207557923\
     824  535966131756358352198875705382763163680830588056974671628368\
     825  719411827591592806044707764658145625683998557872894583705117\
     826  936257144994734815912058252772021032081682437093280526665192\
     827  728869800954748014250481042845426151143544474372887617562791\
     828  409866964806319608280819816846942058817381943129762034507591\
     829  367065185343216917751414811188645979508942996964383255432999\
     830  246119971295726296202396921903289017490293595312645036697141\
     831  581149988784499288560584613793415358537364677872496224892098\
     832  940856692342358755626519304557946447004033186014602147449599\
     833  351317079758304444877174136521487256811625263467410007624215\
     834  856145392339552689565690577293133060124853654497575571509576\
     835  408069646196646757505249296126372820539234090564691695806544\
     836  715766025588258581902342311480969412221466852421842650484494\
     837  063894865891424563992751226230317059592413191308470146226366\
     838  458233536657973376067140793776369412191789801225320255079444\
     839  592709005698858098716107025188986428347407279053266600044521\
     840  079987989879536957560131070100060050673537683871138182387904\
     841  590837539252425985326631955455857258818756188063697492342550\
     842  045277400125480079927908846850898283905756532829762950509886\
     843  991675925213188409911532242068610889478326451513981115020992\
     844  630395715520350039372702741107911736947893709538471200363740\
     845  669304116845653259038102180504837110789645359520309929381266\
     846  271463740502507456882882255788069710715770802338317704510793\
     847  279398576163709512326095306022330346997717688118726634628650\
     848  675984237916551201500684504118483305560295744746257951860545\
     849  390826531622290588364837980034428055971370065573420370270905\
     850  592141420051502465016793525150950140243606137664910359769114\
     851  512792293426708006440346732679574519594848136194781488696994\
     852  267355775509666977187349644291823026624985531726865131782364\
     853  428380093055155988532106121916567178604128111080322761213573\
     854  781334480667563871257352254033032675246444238637990062075058\
     855  819854494711379915549313390179300091783493496822950479766923\
     856  983305064901026858870340863556799948310622536592472509634484\
     857  910640735459644047154918467543140024764605449756679450446473\
     858  048922824617117723876384637412932380635306714345354710568410\
     859  140587435077620501285599837051978855056335305570615129711860\
     860  309387503970812843734718712815925040263182888714533431137355\
     861  255722368962836390856001176889513153529416105504464217522618\
     862  741534232432067776306691118141998014985541610448993152948945\
     863  865983354717289054861249734477980864059509622993770525110616\
     864  313865830823478927462500895844216364365499438449134659145333\
     865  799994034010282254566331595018205841080487728993632798168070\
     866  476921205941768965021887178681810499301253039335978279707627\
     867  295287697256489961179958946847840431902105306618594831078534\
     868  622089641993900896756734276531931450266972752637997248151974\
     869  2277811246822238899767398834228515625001e-4951L;
     870  /* 0x1.8p-16445 */
     871  static const long double ld2ae = 0x1p-16445L, ld2be = 0x2p-16445L, ld2ce = 0x2p-16445L;
     872  static const long double ld2a =
     873  5.4677992978237119037926089004291297245985762235403450155814\
     874  707305425575329500966052143410629387408077958710210208052966\
     875  529504784489330482549602621133847135082257338717668975178538\
     876  378957084503396349323438489751160934104796903302909028868611\
     877  999312592165232778075745690821530731336739429587895774023213\
     878  939331012985331912661021188896306095323395084578542200319963\
     879  179359407180003251440084380484161504585462684082946932782829\
     880  488183829817567452314437076943950532707791252404699268678810\
     881  198502871250235796855577909830559749628817599194837522029036\
     882  891995648803056846354520653635957919882905363521007017169741\
     883  463296044392266269433408052686419017699718627761948763856040\
     884  592690841721239300491445991666051031755802326720329666454066\
     885  568630314348735511753639418257984253319063825247065727664852\
     886  328745422305642626091617823968872438962470092440688372515677\
     887  832232712866924800106797113478024083516199991991274936894113\
     888  006233377518471389394984262004503058455485659100090665241525\
     889  454803628182902241401701783637353179296850056973639305945938\
     890  813428953287892593620291195986011128990061888798763718548789\
     891  025717537674780281005583347165047846045925077914824515331335\
     892  131286063574407181821236377907693209224423490663289916878620\
     893  725507793163931390372011875799729330162278748985052557432333\
     894  005334989519381566364065326138465761456173231416844807264090\
     895  741841972247545424908843928136253653308813487994328446248389\
     896  608261444391573619177442907290731163188581917588219420107047\
     897  265367485141413919810885909689112244064797106324295291545892\
     898  937991321479061743491490060940946128274533657682130125169586\
     899  930571899403551122506297763180795732325134340989331155893724\
     900  289358918212707392997768032299997207208451112971425779939507\
     901  837165263255764268971211819536322993221774123134726665579460\
     902  265871378186589562858761835613344584269098062275786969729830\
     903  545786485401407774313414954958161677096004701941411411592755\
     904  485864471870515173326244464631295701572087440183178339987662\
     905  926763241220698078822661709054601073523477544653542795020468\
     906  256078409306409100874886828781860529824879343987945751252081\
     907  314345990313550683792348814627862441324030155730592166581251\
     908  009922787324590431548734575328663628650380722603024383412564\
     909  651446272117561042207738413114131099731016728935023152239431\
     910  311619533848376583687509108453086730196255111695352464186678\
     911  221927564757730319825223049341618853631333478241227227268084\
     912  583396688436229936266854011427192767039363517491659523133852\
     913  472534104124441112346615696891097070121463652258681270378076\
     914  538381697594264658479637863087159293838880752928175545408262\
     915  813403793568695416998388572304528748824756265665683890518422\
     916  696169422338806137532304784682662448207928681740476188343739\
     917  117833525916386815135793034906806117413105008719197882837614\
     918  738262050320291539494104952056471606645482046176634075459021\
     919  552555959590354956262127809953013679512507451424271839221946\
     920  794056861055980558363033732905772356986051180966474116423192\
     921  194741572438649215204229781279620370445373851348786918527399\
     922  785630808242657122705381806661616271132182017797793661244078\
     923  445747547535623384548769818529655539279036503234072455810991\
     924  588075181817695975173110136482659854557506203058080551018873\
     925  203138260451109855100526720073566126209666125604482413705611\
     926  996796777927332827103568863352291499261312290355143742018042\
     927  254470707107847293593205234049774839191754781030496978091006\
     928  099559675240966730110167624903610656473267105556155633783594\
     929  089546261107653110531808279445757724399186120387548675148632\
     930  176049190701680305210224388072261974806791922636412897526952\
     931  793677946622674149577084803568051242934076450942927092705684\
     932  547042915490323112457971853658760725588190377666477106903106\
     933  693847278847646032201293023329503348730723947218797410452333\
     934  910847913892827195814551858335519518939031446093385329182820\
     935  714173657946661746005901866885589732922652604573972842197231\
     936  187365263381958925227970038358064987248233271706462687651143\
     937  350472018043321314534759819524203308490914358596886150053406\
     938  629512434788155355109100540319857813535695923273426256911552\
     939  977539394209918630668466632881929661971212772444625151371953\
     940  428875491139683919687008724010475217255347915698820960215217\
     941  257390308560235323463096946442080548018754166369706161589705\
     942  215873687166365628787796501470056870127729464714362172216802\
     943  441045276911597009443281135389729130222603185665646434661947\
     944  627628077723219376892727386120519287577405410510114936151502\
     945  752997122750262781911372625997223415283516995479265631485799\
     946  456782561734766648462849641064097181818204279498552827825384\
     947  186202065516999362573388136163077477126602169410435905014077\
     948  049808497409025369325795765272066650278004200357878990911374\
     949  982857977108488482528354406313893864211497105765030504600982\
     950  253488805474531798742143374465080240030582370086699167937651\
     951  038307909706139327119325418854546478285735654541635477790346\
     952  964782617354265050767878335230272194896680141986745074630225\
     953  893106573559558843545841186025169531604151588481389164948914\
     954  823593944287133336263680358191369540321930649824471425485137\
     955  777984823525402115151171093313613251350685343824859052220126\
     956  891551966018355920872775724807128769003243129486808733796350\
     957  497668255116485157191011858830643898323628223472099280243583\
     958  164434348347014910398004439821970508280440872759395827943270\
     959  985008769143562351938091476215083548164137333541883808870019\
     960  116234099013452929807950151652297436436006149684939775781234\
     961  660954156154478642694176038524277810483833149798681345708089\
     962  152179193979463169402340611793486272301808073267534612685593\
     963  859596787866884211031341417903391749825320454663508370385251\
     964  831778477311017089729361152161928815389818579983544490982891\
     965  734081131312309744330960666031291451740885503458543884956367\
     966  654943799264600314531815427932691107874782328654759293575803\
     967  481929361961781073958502075438499070633193799699311694287183\
     968  299423475339817655608058724723221867087563064557636112380829\
     969  514501382073257737022472866608244164310385205213523702910787\
     970  182472517125030106491031844871593141759729773907719510044049\
     971  352857426592936763727969496103940591601975078602859660478614\
     972  119405428212830134490731706220583788265344728818766885126977\
     973  588151111984290444321648931907188080336064713873288834096229\
     974  203276676119810521851726133377700616341304257822975788967472\
     975  152742255041912584197045423031298506219011800240120182445838\
     976  590696647416285334515631019799007515682004250060857020904012\
     977  215375170479800482680554499806010766109655061507421747722461\
     978  180617361402575082294678925605271083587897845390768226405648\
     979  508518103525778638618195775128516073959272990148239415346263\
     980  486966573934577450787243667063244378381883115827207605856174\
     981  876350045086885320626669331311880593775916269643646395423220\
     982  549940790476989709243027420158390806135690975149384714684219\
     983  964938182719962913931464979458639185519531490009437619838306\
     984  362365453754807654884704163490469296444427144778593725687358\
     985  437087390151990694667516279202024332494828210657618261952038\
     986  597230263799412584275851667403910657370879707181053365818502\
     987  680037431560091209982641738995652793235851569372314130107647\
     988  166085235615697257094269133100914135783178856280392139325001\
     989  352841718610484616627448189556913621837791650699820323059708\
     990  766420810133584841826718631681683381743511974264126250984214\
     991  812397119978273917903889865891718836792263377888052458189238\
     992  746074986456016681098722869419588274020181430652732817858728\
     993  473849369539367463917171317324882099804999043054467247785592\
     994  038464723442276239896066431580123756428540074945472427752568\
     995  981171400621705853374875885943072600692576914790467205905272\
     996  372594740187988081900317493185005142913607163380720069786786\
     997  782095331840893694073778325119471833528492917081008547303414\
     998  509381563617864195257751546539575461435803625993888325647883\
     999  541039192368366987400263049681218831477776345118518503709588\
    1000  840859023379762456561030683928115349942393963185677123055324\
    1001  771693784214924931737043793679546051454845624150270955450608\
    1002  318747395755728950832754611277041359602301205138509175543313\
    1003  522772786504141007552691902249572375175731740923618769197304\
    1004  652898352694386665448260033458575323252814233868098279476166\
    1005  764258284911434288072243178941698347365985427696983129579496\
    1006  059032032841281149923518087084876885114369033227736521245740\
    1007  554711771423492719899982357711910225545480424688322195336240\
    1008  492253136281857837808491795993788199125205555222116581071134\
    1009  476787468430539307909617442106685159519071053844987343666452\
    1010  494280317720153567054364117244775141336558406098548803924509\
    1011  496052261825198043140272655303625315605326569530252885854991\
    1012  822289219201218313590745412010446642247111703901991591338062\
    1013  693320157180618736569439969283245279430312651192668788340033\
    1014  626825194260296262959884258597703584888770801961209652822982\
    1015  322376122303586169861685106043820510444293432856251210395693\
    1016  261264867823980172683352796141772210301725997652373804152525\
    1017  037162852291403804455997331367378463632437773242905518075065\
    1018  414724295857460288225400061608664961649196400079359622673770\
    1019  607898395269075056596627116148289491042491764170924014885106\
    1020  158235482774778418134123293974436877051995673618683751115353\
    1021  808771434984204447736174758316063096245047311279841579995578\
    1022  186609402864244042751443128536278453430633423118662852688374\
    1023  229600894418958824842459450540826176452145829389286103522774\
    1024  101195556029650753254244433565937938526828990893149766298997\
    1025  738359913887178888607190765709867052470880785937935110091424\
    1026  743449966353497865681753841380246075612094033617488674676296\
    1027  822570077027076266879557913673839341012099558043806442348798\
    1028  053951239274913334631522409564461770434875790402230022872647\
    1029  568436177018658068697071731879399180374560963492726714528729\
    1030  224208938589940272515747888379118461617702271694075087419634\
    1031  147298076764775745707026934442908236664400557265527951453482\
    1032  191684597674273691978253678690951178777239573925410438679099\
    1033  374700609973920128201422381329108236575369403675960765238333\
    1034  778127017096574296148321075566959285042221837159799800133563\
    1035  239963969638610872680393210300180152020613051613414547163713\
    1036  772512617757277955979895866367571776456268564191092477027650\
    1037  135832200376440239783726540552694851717269598489288851529660\
    1038  975027775639565229734596726205832668434979354541943345062977\
    1039  891187146561050118118108223323735210843681128615413601091222\
    1040  007912350536959777114306541514511332368936078560929788143798\
    1041  814391221507522370648646767364209132147312407014953113532379\
    1042  838195728491128536978285918066991040993153064356179903885952\
    1043  027952713749653604502053512355449916680887234238773855581636\
    1044  172479594866871765094513940103284167914110196720261110812716\
    1045  776424260154507395050380575452850420730818412994731079307343\
    1046  538376880280124019321040198038723558784544408584344466090982\
    1047  802067326529000931562048932875469079874956595180595395347093\
    1048  285140279165467965596318365749701535812384333240968283640721\
    1049  344003442002691613772056762099098025739332715913970186225176\
    1050  459563484134139746647940170537900275350480490468851439300771\
    1051  949915194703080576611022590670399844931867609777417528903454\
    1052  731922206378932141464755402629420074293816349270038351339419\
    1053  146768473851353171629153912238797141905920143036064131705230\
    1054  421762305232861503856799511155936565169005916711845389135580\
    1055  928162511912438531204156138447775120789548666143600293412065\
    1056  767167106888509172568003530668539460588248316513392652567856\
    1057  224602697296203328920073354425994044956624831346979458846837\
    1058  597950064151867164583749203433942592178528868981311575331848\
    1059  941597492470436782387502687532649093096498315347403977436001\
    1060  399982102030846763698994785054617523241463186980898394504211\
    1061  430763617825306895065661536045431497903759118007934839122881\
    1062  885863091769469883539876840543521295706315919855784493235603\
    1063  866268925981702690270202829595794350800918257913991744455922\
    1064  6833433740466716699302196502685546874999e-4951L;
    1065  static const long double ld2b =
    1066  5.4677992978237119037926089004291297245985762235403450155814\
    1067  707305425575329500966052143410629387408077958710210208052966\
    1068  529504784489330482549602621133847135082257338717668975178538\
    1069  378957084503396349323438489751160934104796903302909028868611\
    1070  999312592165232778075745690821530731336739429587895774023213\
    1071  939331012985331912661021188896306095323395084578542200319963\
    1072  179359407180003251440084380484161504585462684082946932782829\
    1073  488183829817567452314437076943950532707791252404699268678810\
    1074  198502871250235796855577909830559749628817599194837522029036\
    1075  891995648803056846354520653635957919882905363521007017169741\
    1076  463296044392266269433408052686419017699718627761948763856040\
    1077  592690841721239300491445991666051031755802326720329666454066\
    1078  568630314348735511753639418257984253319063825247065727664852\
    1079  328745422305642626091617823968872438962470092440688372515677\
    1080  832232712866924800106797113478024083516199991991274936894113\
    1081  006233377518471389394984262004503058455485659100090665241525\
    1082  454803628182902241401701783637353179296850056973639305945938\
    1083  813428953287892593620291195986011128990061888798763718548789\
    1084  025717537674780281005583347165047846045925077914824515331335\
    1085  131286063574407181821236377907693209224423490663289916878620\
    1086  725507793163931390372011875799729330162278748985052557432333\
    1087  005334989519381566364065326138465761456173231416844807264090\
    1088  741841972247545424908843928136253653308813487994328446248389\
    1089  608261444391573619177442907290731163188581917588219420107047\
    1090  265367485141413919810885909689112244064797106324295291545892\
    1091  937991321479061743491490060940946128274533657682130125169586\
    1092  930571899403551122506297763180795732325134340989331155893724\
    1093  289358918212707392997768032299997207208451112971425779939507\
    1094  837165263255764268971211819536322993221774123134726665579460\
    1095  265871378186589562858761835613344584269098062275786969729830\
    1096  545786485401407774313414954958161677096004701941411411592755\
    1097  485864471870515173326244464631295701572087440183178339987662\
    1098  926763241220698078822661709054601073523477544653542795020468\
    1099  256078409306409100874886828781860529824879343987945751252081\
    1100  314345990313550683792348814627862441324030155730592166581251\
    1101  009922787324590431548734575328663628650380722603024383412564\
    1102  651446272117561042207738413114131099731016728935023152239431\
    1103  311619533848376583687509108453086730196255111695352464186678\
    1104  221927564757730319825223049341618853631333478241227227268084\
    1105  583396688436229936266854011427192767039363517491659523133852\
    1106  472534104124441112346615696891097070121463652258681270378076\
    1107  538381697594264658479637863087159293838880752928175545408262\
    1108  813403793568695416998388572304528748824756265665683890518422\
    1109  696169422338806137532304784682662448207928681740476188343739\
    1110  117833525916386815135793034906806117413105008719197882837614\
    1111  738262050320291539494104952056471606645482046176634075459021\
    1112  552555959590354956262127809953013679512507451424271839221946\
    1113  794056861055980558363033732905772356986051180966474116423192\
    1114  194741572438649215204229781279620370445373851348786918527399\
    1115  785630808242657122705381806661616271132182017797793661244078\
    1116  445747547535623384548769818529655539279036503234072455810991\
    1117  588075181817695975173110136482659854557506203058080551018873\
    1118  203138260451109855100526720073566126209666125604482413705611\
    1119  996796777927332827103568863352291499261312290355143742018042\
    1120  254470707107847293593205234049774839191754781030496978091006\
    1121  099559675240966730110167624903610656473267105556155633783594\
    1122  089546261107653110531808279445757724399186120387548675148632\
    1123  176049190701680305210224388072261974806791922636412897526952\
    1124  793677946622674149577084803568051242934076450942927092705684\
    1125  547042915490323112457971853658760725588190377666477106903106\
    1126  693847278847646032201293023329503348730723947218797410452333\
    1127  910847913892827195814551858335519518939031446093385329182820\
    1128  714173657946661746005901866885589732922652604573972842197231\
    1129  187365263381958925227970038358064987248233271706462687651143\
    1130  350472018043321314534759819524203308490914358596886150053406\
    1131  629512434788155355109100540319857813535695923273426256911552\
    1132  977539394209918630668466632881929661971212772444625151371953\
    1133  428875491139683919687008724010475217255347915698820960215217\
    1134  257390308560235323463096946442080548018754166369706161589705\
    1135  215873687166365628787796501470056870127729464714362172216802\
    1136  441045276911597009443281135389729130222603185665646434661947\
    1137  627628077723219376892727386120519287577405410510114936151502\
    1138  752997122750262781911372625997223415283516995479265631485799\
    1139  456782561734766648462849641064097181818204279498552827825384\
    1140  186202065516999362573388136163077477126602169410435905014077\
    1141  049808497409025369325795765272066650278004200357878990911374\
    1142  982857977108488482528354406313893864211497105765030504600982\
    1143  253488805474531798742143374465080240030582370086699167937651\
    1144  038307909706139327119325418854546478285735654541635477790346\
    1145  964782617354265050767878335230272194896680141986745074630225\
    1146  893106573559558843545841186025169531604151588481389164948914\
    1147  823593944287133336263680358191369540321930649824471425485137\
    1148  777984823525402115151171093313613251350685343824859052220126\
    1149  891551966018355920872775724807128769003243129486808733796350\
    1150  497668255116485157191011858830643898323628223472099280243583\
    1151  164434348347014910398004439821970508280440872759395827943270\
    1152  985008769143562351938091476215083548164137333541883808870019\
    1153  116234099013452929807950151652297436436006149684939775781234\
    1154  660954156154478642694176038524277810483833149798681345708089\
    1155  152179193979463169402340611793486272301808073267534612685593\
    1156  859596787866884211031341417903391749825320454663508370385251\
    1157  831778477311017089729361152161928815389818579983544490982891\
    1158  734081131312309744330960666031291451740885503458543884956367\
    1159  654943799264600314531815427932691107874782328654759293575803\
    1160  481929361961781073958502075438499070633193799699311694287183\
    1161  299423475339817655608058724723221867087563064557636112380829\
    1162  514501382073257737022472866608244164310385205213523702910787\
    1163  182472517125030106491031844871593141759729773907719510044049\
    1164  352857426592936763727969496103940591601975078602859660478614\
    1165  119405428212830134490731706220583788265344728818766885126977\
    1166  588151111984290444321648931907188080336064713873288834096229\
    1167  203276676119810521851726133377700616341304257822975788967472\
    1168  152742255041912584197045423031298506219011800240120182445838\
    1169  590696647416285334515631019799007515682004250060857020904012\
    1170  215375170479800482680554499806010766109655061507421747722461\
    1171  180617361402575082294678925605271083587897845390768226405648\
    1172  508518103525778638618195775128516073959272990148239415346263\
    1173  486966573934577450787243667063244378381883115827207605856174\
    1174  876350045086885320626669331311880593775916269643646395423220\
    1175  549940790476989709243027420158390806135690975149384714684219\
    1176  964938182719962913931464979458639185519531490009437619838306\
    1177  362365453754807654884704163490469296444427144778593725687358\
    1178  437087390151990694667516279202024332494828210657618261952038\
    1179  597230263799412584275851667403910657370879707181053365818502\
    1180  680037431560091209982641738995652793235851569372314130107647\
    1181  166085235615697257094269133100914135783178856280392139325001\
    1182  352841718610484616627448189556913621837791650699820323059708\
    1183  766420810133584841826718631681683381743511974264126250984214\
    1184  812397119978273917903889865891718836792263377888052458189238\
    1185  746074986456016681098722869419588274020181430652732817858728\
    1186  473849369539367463917171317324882099804999043054467247785592\
    1187  038464723442276239896066431580123756428540074945472427752568\
    1188  981171400621705853374875885943072600692576914790467205905272\
    1189  372594740187988081900317493185005142913607163380720069786786\
    1190  782095331840893694073778325119471833528492917081008547303414\
    1191  509381563617864195257751546539575461435803625993888325647883\
    1192  541039192368366987400263049681218831477776345118518503709588\
    1193  840859023379762456561030683928115349942393963185677123055324\
    1194  771693784214924931737043793679546051454845624150270955450608\
    1195  318747395755728950832754611277041359602301205138509175543313\
    1196  522772786504141007552691902249572375175731740923618769197304\
    1197  652898352694386665448260033458575323252814233868098279476166\
    1198  764258284911434288072243178941698347365985427696983129579496\
    1199  059032032841281149923518087084876885114369033227736521245740\
    1200  554711771423492719899982357711910225545480424688322195336240\
    1201  492253136281857837808491795993788199125205555222116581071134\
    1202  476787468430539307909617442106685159519071053844987343666452\
    1203  494280317720153567054364117244775141336558406098548803924509\
    1204  496052261825198043140272655303625315605326569530252885854991\
    1205  822289219201218313590745412010446642247111703901991591338062\
    1206  693320157180618736569439969283245279430312651192668788340033\
    1207  626825194260296262959884258597703584888770801961209652822982\
    1208  322376122303586169861685106043820510444293432856251210395693\
    1209  261264867823980172683352796141772210301725997652373804152525\
    1210  037162852291403804455997331367378463632437773242905518075065\
    1211  414724295857460288225400061608664961649196400079359622673770\
    1212  607898395269075056596627116148289491042491764170924014885106\
    1213  158235482774778418134123293974436877051995673618683751115353\
    1214  808771434984204447736174758316063096245047311279841579995578\
    1215  186609402864244042751443128536278453430633423118662852688374\
    1216  229600894418958824842459450540826176452145829389286103522774\
    1217  101195556029650753254244433565937938526828990893149766298997\
    1218  738359913887178888607190765709867052470880785937935110091424\
    1219  743449966353497865681753841380246075612094033617488674676296\
    1220  822570077027076266879557913673839341012099558043806442348798\
    1221  053951239274913334631522409564461770434875790402230022872647\
    1222  568436177018658068697071731879399180374560963492726714528729\
    1223  224208938589940272515747888379118461617702271694075087419634\
    1224  147298076764775745707026934442908236664400557265527951453482\
    1225  191684597674273691978253678690951178777239573925410438679099\
    1226  374700609973920128201422381329108236575369403675960765238333\
    1227  778127017096574296148321075566959285042221837159799800133563\
    1228  239963969638610872680393210300180152020613051613414547163713\
    1229  772512617757277955979895866367571776456268564191092477027650\
    1230  135832200376440239783726540552694851717269598489288851529660\
    1231  975027775639565229734596726205832668434979354541943345062977\
    1232  891187146561050118118108223323735210843681128615413601091222\
    1233  007912350536959777114306541514511332368936078560929788143798\
    1234  814391221507522370648646767364209132147312407014953113532379\
    1235  838195728491128536978285918066991040993153064356179903885952\
    1236  027952713749653604502053512355449916680887234238773855581636\
    1237  172479594866871765094513940103284167914110196720261110812716\
    1238  776424260154507395050380575452850420730818412994731079307343\
    1239  538376880280124019321040198038723558784544408584344466090982\
    1240  802067326529000931562048932875469079874956595180595395347093\
    1241  285140279165467965596318365749701535812384333240968283640721\
    1242  344003442002691613772056762099098025739332715913970186225176\
    1243  459563484134139746647940170537900275350480490468851439300771\
    1244  949915194703080576611022590670399844931867609777417528903454\
    1245  731922206378932141464755402629420074293816349270038351339419\
    1246  146768473851353171629153912238797141905920143036064131705230\
    1247  421762305232861503856799511155936565169005916711845389135580\
    1248  928162511912438531204156138447775120789548666143600293412065\
    1249  767167106888509172568003530668539460588248316513392652567856\
    1250  224602697296203328920073354425994044956624831346979458846837\
    1251  597950064151867164583749203433942592178528868981311575331848\
    1252  941597492470436782387502687532649093096498315347403977436001\
    1253  399982102030846763698994785054617523241463186980898394504211\
    1254  430763617825306895065661536045431497903759118007934839122881\
    1255  885863091769469883539876840543521295706315919855784493235603\
    1256  866268925981702690270202829595794350800918257913991744455922\
    1257  6833433740466716699302196502685546875e-4951L;
    1258  static const long double ld2c =
    1259  5.4677992978237119037926089004291297245985762235403450155814\
    1260  707305425575329500966052143410629387408077958710210208052966\
    1261  529504784489330482549602621133847135082257338717668975178538\
    1262  378957084503396349323438489751160934104796903302909028868611\
    1263  999312592165232778075745690821530731336739429587895774023213\
    1264  939331012985331912661021188896306095323395084578542200319963\
    1265  179359407180003251440084380484161504585462684082946932782829\
    1266  488183829817567452314437076943950532707791252404699268678810\
    1267  198502871250235796855577909830559749628817599194837522029036\
    1268  891995648803056846354520653635957919882905363521007017169741\
    1269  463296044392266269433408052686419017699718627761948763856040\
    1270  592690841721239300491445991666051031755802326720329666454066\
    1271  568630314348735511753639418257984253319063825247065727664852\
    1272  328745422305642626091617823968872438962470092440688372515677\
    1273  832232712866924800106797113478024083516199991991274936894113\
    1274  006233377518471389394984262004503058455485659100090665241525\
    1275  454803628182902241401701783637353179296850056973639305945938\
    1276  813428953287892593620291195986011128990061888798763718548789\
    1277  025717537674780281005583347165047846045925077914824515331335\
    1278  131286063574407181821236377907693209224423490663289916878620\
    1279  725507793163931390372011875799729330162278748985052557432333\
    1280  005334989519381566364065326138465761456173231416844807264090\
    1281  741841972247545424908843928136253653308813487994328446248389\
    1282  608261444391573619177442907290731163188581917588219420107047\
    1283  265367485141413919810885909689112244064797106324295291545892\
    1284  937991321479061743491490060940946128274533657682130125169586\
    1285  930571899403551122506297763180795732325134340989331155893724\
    1286  289358918212707392997768032299997207208451112971425779939507\
    1287  837165263255764268971211819536322993221774123134726665579460\
    1288  265871378186589562858761835613344584269098062275786969729830\
    1289  545786485401407774313414954958161677096004701941411411592755\
    1290  485864471870515173326244464631295701572087440183178339987662\
    1291  926763241220698078822661709054601073523477544653542795020468\
    1292  256078409306409100874886828781860529824879343987945751252081\
    1293  314345990313550683792348814627862441324030155730592166581251\
    1294  009922787324590431548734575328663628650380722603024383412564\
    1295  651446272117561042207738413114131099731016728935023152239431\
    1296  311619533848376583687509108453086730196255111695352464186678\
    1297  221927564757730319825223049341618853631333478241227227268084\
    1298  583396688436229936266854011427192767039363517491659523133852\
    1299  472534104124441112346615696891097070121463652258681270378076\
    1300  538381697594264658479637863087159293838880752928175545408262\
    1301  813403793568695416998388572304528748824756265665683890518422\
    1302  696169422338806137532304784682662448207928681740476188343739\
    1303  117833525916386815135793034906806117413105008719197882837614\
    1304  738262050320291539494104952056471606645482046176634075459021\
    1305  552555959590354956262127809953013679512507451424271839221946\
    1306  794056861055980558363033732905772356986051180966474116423192\
    1307  194741572438649215204229781279620370445373851348786918527399\
    1308  785630808242657122705381806661616271132182017797793661244078\
    1309  445747547535623384548769818529655539279036503234072455810991\
    1310  588075181817695975173110136482659854557506203058080551018873\
    1311  203138260451109855100526720073566126209666125604482413705611\
    1312  996796777927332827103568863352291499261312290355143742018042\
    1313  254470707107847293593205234049774839191754781030496978091006\
    1314  099559675240966730110167624903610656473267105556155633783594\
    1315  089546261107653110531808279445757724399186120387548675148632\
    1316  176049190701680305210224388072261974806791922636412897526952\
    1317  793677946622674149577084803568051242934076450942927092705684\
    1318  547042915490323112457971853658760725588190377666477106903106\
    1319  693847278847646032201293023329503348730723947218797410452333\
    1320  910847913892827195814551858335519518939031446093385329182820\
    1321  714173657946661746005901866885589732922652604573972842197231\
    1322  187365263381958925227970038358064987248233271706462687651143\
    1323  350472018043321314534759819524203308490914358596886150053406\
    1324  629512434788155355109100540319857813535695923273426256911552\
    1325  977539394209918630668466632881929661971212772444625151371953\
    1326  428875491139683919687008724010475217255347915698820960215217\
    1327  257390308560235323463096946442080548018754166369706161589705\
    1328  215873687166365628787796501470056870127729464714362172216802\
    1329  441045276911597009443281135389729130222603185665646434661947\
    1330  627628077723219376892727386120519287577405410510114936151502\
    1331  752997122750262781911372625997223415283516995479265631485799\
    1332  456782561734766648462849641064097181818204279498552827825384\
    1333  186202065516999362573388136163077477126602169410435905014077\
    1334  049808497409025369325795765272066650278004200357878990911374\
    1335  982857977108488482528354406313893864211497105765030504600982\
    1336  253488805474531798742143374465080240030582370086699167937651\
    1337  038307909706139327119325418854546478285735654541635477790346\
    1338  964782617354265050767878335230272194896680141986745074630225\
    1339  893106573559558843545841186025169531604151588481389164948914\
    1340  823593944287133336263680358191369540321930649824471425485137\
    1341  777984823525402115151171093313613251350685343824859052220126\
    1342  891551966018355920872775724807128769003243129486808733796350\
    1343  497668255116485157191011858830643898323628223472099280243583\
    1344  164434348347014910398004439821970508280440872759395827943270\
    1345  985008769143562351938091476215083548164137333541883808870019\
    1346  116234099013452929807950151652297436436006149684939775781234\
    1347  660954156154478642694176038524277810483833149798681345708089\
    1348  152179193979463169402340611793486272301808073267534612685593\
    1349  859596787866884211031341417903391749825320454663508370385251\
    1350  831778477311017089729361152161928815389818579983544490982891\
    1351  734081131312309744330960666031291451740885503458543884956367\
    1352  654943799264600314531815427932691107874782328654759293575803\
    1353  481929361961781073958502075438499070633193799699311694287183\
    1354  299423475339817655608058724723221867087563064557636112380829\
    1355  514501382073257737022472866608244164310385205213523702910787\
    1356  182472517125030106491031844871593141759729773907719510044049\
    1357  352857426592936763727969496103940591601975078602859660478614\
    1358  119405428212830134490731706220583788265344728818766885126977\
    1359  588151111984290444321648931907188080336064713873288834096229\
    1360  203276676119810521851726133377700616341304257822975788967472\
    1361  152742255041912584197045423031298506219011800240120182445838\
    1362  590696647416285334515631019799007515682004250060857020904012\
    1363  215375170479800482680554499806010766109655061507421747722461\
    1364  180617361402575082294678925605271083587897845390768226405648\
    1365  508518103525778638618195775128516073959272990148239415346263\
    1366  486966573934577450787243667063244378381883115827207605856174\
    1367  876350045086885320626669331311880593775916269643646395423220\
    1368  549940790476989709243027420158390806135690975149384714684219\
    1369  964938182719962913931464979458639185519531490009437619838306\
    1370  362365453754807654884704163490469296444427144778593725687358\
    1371  437087390151990694667516279202024332494828210657618261952038\
    1372  597230263799412584275851667403910657370879707181053365818502\
    1373  680037431560091209982641738995652793235851569372314130107647\
    1374  166085235615697257094269133100914135783178856280392139325001\
    1375  352841718610484616627448189556913621837791650699820323059708\
    1376  766420810133584841826718631681683381743511974264126250984214\
    1377  812397119978273917903889865891718836792263377888052458189238\
    1378  746074986456016681098722869419588274020181430652732817858728\
    1379  473849369539367463917171317324882099804999043054467247785592\
    1380  038464723442276239896066431580123756428540074945472427752568\
    1381  981171400621705853374875885943072600692576914790467205905272\
    1382  372594740187988081900317493185005142913607163380720069786786\
    1383  782095331840893694073778325119471833528492917081008547303414\
    1384  509381563617864195257751546539575461435803625993888325647883\
    1385  541039192368366987400263049681218831477776345118518503709588\
    1386  840859023379762456561030683928115349942393963185677123055324\
    1387  771693784214924931737043793679546051454845624150270955450608\
    1388  318747395755728950832754611277041359602301205138509175543313\
    1389  522772786504141007552691902249572375175731740923618769197304\
    1390  652898352694386665448260033458575323252814233868098279476166\
    1391  764258284911434288072243178941698347365985427696983129579496\
    1392  059032032841281149923518087084876885114369033227736521245740\
    1393  554711771423492719899982357711910225545480424688322195336240\
    1394  492253136281857837808491795993788199125205555222116581071134\
    1395  476787468430539307909617442106685159519071053844987343666452\
    1396  494280317720153567054364117244775141336558406098548803924509\
    1397  496052261825198043140272655303625315605326569530252885854991\
    1398  822289219201218313590745412010446642247111703901991591338062\
    1399  693320157180618736569439969283245279430312651192668788340033\
    1400  626825194260296262959884258597703584888770801961209652822982\
    1401  322376122303586169861685106043820510444293432856251210395693\
    1402  261264867823980172683352796141772210301725997652373804152525\
    1403  037162852291403804455997331367378463632437773242905518075065\
    1404  414724295857460288225400061608664961649196400079359622673770\
    1405  607898395269075056596627116148289491042491764170924014885106\
    1406  158235482774778418134123293974436877051995673618683751115353\
    1407  808771434984204447736174758316063096245047311279841579995578\
    1408  186609402864244042751443128536278453430633423118662852688374\
    1409  229600894418958824842459450540826176452145829389286103522774\
    1410  101195556029650753254244433565937938526828990893149766298997\
    1411  738359913887178888607190765709867052470880785937935110091424\
    1412  743449966353497865681753841380246075612094033617488674676296\
    1413  822570077027076266879557913673839341012099558043806442348798\
    1414  053951239274913334631522409564461770434875790402230022872647\
    1415  568436177018658068697071731879399180374560963492726714528729\
    1416  224208938589940272515747888379118461617702271694075087419634\
    1417  147298076764775745707026934442908236664400557265527951453482\
    1418  191684597674273691978253678690951178777239573925410438679099\
    1419  374700609973920128201422381329108236575369403675960765238333\
    1420  778127017096574296148321075566959285042221837159799800133563\
    1421  239963969638610872680393210300180152020613051613414547163713\
    1422  772512617757277955979895866367571776456268564191092477027650\
    1423  135832200376440239783726540552694851717269598489288851529660\
    1424  975027775639565229734596726205832668434979354541943345062977\
    1425  891187146561050118118108223323735210843681128615413601091222\
    1426  007912350536959777114306541514511332368936078560929788143798\
    1427  814391221507522370648646767364209132147312407014953113532379\
    1428  838195728491128536978285918066991040993153064356179903885952\
    1429  027952713749653604502053512355449916680887234238773855581636\
    1430  172479594866871765094513940103284167914110196720261110812716\
    1431  776424260154507395050380575452850420730818412994731079307343\
    1432  538376880280124019321040198038723558784544408584344466090982\
    1433  802067326529000931562048932875469079874956595180595395347093\
    1434  285140279165467965596318365749701535812384333240968283640721\
    1435  344003442002691613772056762099098025739332715913970186225176\
    1436  459563484134139746647940170537900275350480490468851439300771\
    1437  949915194703080576611022590670399844931867609777417528903454\
    1438  731922206378932141464755402629420074293816349270038351339419\
    1439  146768473851353171629153912238797141905920143036064131705230\
    1440  421762305232861503856799511155936565169005916711845389135580\
    1441  928162511912438531204156138447775120789548666143600293412065\
    1442  767167106888509172568003530668539460588248316513392652567856\
    1443  224602697296203328920073354425994044956624831346979458846837\
    1444  597950064151867164583749203433942592178528868981311575331848\
    1445  941597492470436782387502687532649093096498315347403977436001\
    1446  399982102030846763698994785054617523241463186980898394504211\
    1447  430763617825306895065661536045431497903759118007934839122881\
    1448  885863091769469883539876840543521295706315919855784493235603\
    1449  866268925981702690270202829595794350800918257913991744455922\
    1450  6833433740466716699302196502685546875001e-4951L;
    1451  /* 0x1.0000000000000001p16383 */
    1452  static const long double ld3ae = 0x1p16383L, ld3be = 0x1p16383L, ld3ce = 0x1.0000000000000002p16383L;
    1453  static const long double ld3a =
    1454  5.9486574767861588257512740011252202817891302594919813725251\
    1455  295428739285541899832559628345030434759848834258858109152060\
    1456  168394580447354320917546191141469316674407503401251826592118\
    1457  529247805068466318759038608659253988075214874609536526621357\
    1458  456531393890166762179915866732524251539065872543957371571521\
    1459  983821811625262362379785274802094595537134203491628334800642\
    1460  100552410980148340419844099304716014319891796892117978584065\
    1461  642215994189779833796388294931075153217985342401232585488548\
    1462  183499573356819649604353341808627018653300000165159821533158\
    1463  398534762310007133107769480816106094590754928301890268526601\
    1464  948012303315011492834812113743989351274355589970363438128551\
    1465  573643438403526566620300559126131289478114044934210031633528\
    1466  263569989916613277150372804081100885766846923338387335735275\
    1467  815690693627425316500993091757924061275520326543377826484801\
    1468  260850814410014200240706874882235908793464063722267631785502\
    1469  588978890438298369667014685160756795261293064179236782450102\
    1470  879817506411379585551974343148401888001113058696688771238532\
    1471  123329163319380775763389985796856252232367435778523577763581\
    1472  076318820356483011816956309162306010784749642144593052844981\
    1473  144455778303480881727480293033710826466852650686573284449164\
    1474  971550815761322623554550767170481569400661823142075309755585\
    1475  825399262942161733431916879499819498306470556518202895225167\
    1476  570891857833504708712937447726161123901897152190727519098753\
    1477  173091256107155059564163182449945325514965354563242034921715\
    1478  085079669416064946957897843700525314730377964740286745952320\
    1479  848539618361767466769711132391357232984948881905511016501295\
    1480  373458116601070538750219227472880922074079367616789330713051\
    1481  392796054620611196686398104309732110578180612371988986941283\
    1482  463409571752839755060102940634838880149410521082372514146698\
    1483  949690555298417297141754693386954049385392552489950059242099\
    1484  158790234260937921119976211248531759522503364724271154732450\
    1485  580204158756703065275680503502538215181617861403909609765438\
    1486  459404741896379126766756324776550060890489522385655907004761\
    1487  103760380176704738464932582597767398552360992261748200224552\
    1488  499221197984163362555822765637968034280918669504609870586242\
    1489  062170049756721980421608552698712778507151233315121277695507\
    1490  694932304894125095195395002291537339548463471343544834535084\
    1491  385597125111888342671654244935921073610595930775193595237994\
    1492  484405470453247603596164707279142831292696020597352513459682\
    1493  982542490819269161229107183625537754125393689567083050306972\
    1494  299472451409351528024124972676859164822379702549840869992122\
    1495  109088558738008051503238314435613116752657081607929379237268\
    1496  685258548361696557803717952234859306922044575896046034219495\
    1497  078937310258307531674502149231702180717812559299741279722940\
    1498  331553164095430990867607708187092707603492795672693661579813\
    1499  722297206006600340954221573260854019342039503980256096723323\
    1500  974619210941227998945120494044519820953637210732374225869479\
    1501  681431453077746347270062554307578221973966755682727685671115\
    1502  104598487346465589917255152859638133529840253249441154093766\
    1503  468296435228729803156904942774237478111621919125582394448948\
    1504  295406406844691902789160843785892192212760482854142616066966\
    1505  061436483840059374641455624686877579416182709686546132337333\
    1506  180030729666859995573465620394353524944034503194887839608451\
    1507  069029644904642077575045157730600577875158390703330602738631\
    1508  860629283284285902868412268522486164537842820453011183015531\
    1509  669082023505889165928251243784395957824980999247118276540195\
    1510  068956031183236585108415603897481193085040746824934727777986\
    1511  761703484626902903260925660927239810711484175954901422619731\
    1512  922057229492660554293614771979793133433085936212830723862399\
    1513  334585740422370252249982159238980361966177481883090934546250\
    1514  903836442278836769393445168381535656636696931116641217099763\
    1515  249205106142470169654056239769609880390474141835446455366216\
    1516  163044493526155530766380018725181852858797332884069215206429\
    1517  253933800732703242020102754246055713369281324885855415528125\
    1518  659581759080256206862639693790603663547070031814664699862085\
    1519  124026740519096394950750536940374610036575208929959836461615\
    1520  919280191863569472772191938255564055565023733812663112274784\
    1521  824733213440763947293874467915896768018331324730250697015099\
    1522  463062533087218087488410166157459583569488345783974179340987\
    1523  151815108212218686575226398710276498737521494877861721916239\
    1524  286780194943271811625644415312213945242110591353818534254974\
    1525  082884162962499579444882831630967263044313008877192427542802\
    1526  154833385005287431176015973444837288763406349559772586733139\
    1527  508290944276618724455216038372331277739377332938820061159422\
    1528  131545699737995079186343848189545551446309662717473667598998\
    1529  332988069951307480469935653061211574846012803370905284012473\
    1530  025318540210297839541696998136885534223864988557670674501375\
    1531  244470147903967779423817060038384764935662497442963759653206\
    1532  786432859777470896394181997456033131032688720696203667198626\
    1533  404895099030068466008555612541561023366202324622483939422567\
    1534  021914882845352467305687811236417567525816955182834161603932\
    1535  993065869465459807593704095390354125514253872107415823725124\
    1536  7263969181695999e+4931L;
    1537  static const long double ld3b =
    1538  5.9486574767861588257512740011252202817891302594919813725251\
    1539  295428739285541899832559628345030434759848834258858109152060\
    1540  168394580447354320917546191141469316674407503401251826592118\
    1541  529247805068466318759038608659253988075214874609536526621357\
    1542  456531393890166762179915866732524251539065872543957371571521\
    1543  983821811625262362379785274802094595537134203491628334800642\
    1544  100552410980148340419844099304716014319891796892117978584065\
    1545  642215994189779833796388294931075153217985342401232585488548\
    1546  183499573356819649604353341808627018653300000165159821533158\
    1547  398534762310007133107769480816106094590754928301890268526601\
    1548  948012303315011492834812113743989351274355589970363438128551\
    1549  573643438403526566620300559126131289478114044934210031633528\
    1550  263569989916613277150372804081100885766846923338387335735275\
    1551  815690693627425316500993091757924061275520326543377826484801\
    1552  260850814410014200240706874882235908793464063722267631785502\
    1553  588978890438298369667014685160756795261293064179236782450102\
    1554  879817506411379585551974343148401888001113058696688771238532\
    1555  123329163319380775763389985796856252232367435778523577763581\
    1556  076318820356483011816956309162306010784749642144593052844981\
    1557  144455778303480881727480293033710826466852650686573284449164\
    1558  971550815761322623554550767170481569400661823142075309755585\
    1559  825399262942161733431916879499819498306470556518202895225167\
    1560  570891857833504708712937447726161123901897152190727519098753\
    1561  173091256107155059564163182449945325514965354563242034921715\
    1562  085079669416064946957897843700525314730377964740286745952320\
    1563  848539618361767466769711132391357232984948881905511016501295\
    1564  373458116601070538750219227472880922074079367616789330713051\
    1565  392796054620611196686398104309732110578180612371988986941283\
    1566  463409571752839755060102940634838880149410521082372514146698\
    1567  949690555298417297141754693386954049385392552489950059242099\
    1568  158790234260937921119976211248531759522503364724271154732450\
    1569  580204158756703065275680503502538215181617861403909609765438\
    1570  459404741896379126766756324776550060890489522385655907004761\
    1571  103760380176704738464932582597767398552360992261748200224552\
    1572  499221197984163362555822765637968034280918669504609870586242\
    1573  062170049756721980421608552698712778507151233315121277695507\
    1574  694932304894125095195395002291537339548463471343544834535084\
    1575  385597125111888342671654244935921073610595930775193595237994\
    1576  484405470453247603596164707279142831292696020597352513459682\
    1577  982542490819269161229107183625537754125393689567083050306972\
    1578  299472451409351528024124972676859164822379702549840869992122\
    1579  109088558738008051503238314435613116752657081607929379237268\
    1580  685258548361696557803717952234859306922044575896046034219495\
    1581  078937310258307531674502149231702180717812559299741279722940\
    1582  331553164095430990867607708187092707603492795672693661579813\
    1583  722297206006600340954221573260854019342039503980256096723323\
    1584  974619210941227998945120494044519820953637210732374225869479\
    1585  681431453077746347270062554307578221973966755682727685671115\
    1586  104598487346465589917255152859638133529840253249441154093766\
    1587  468296435228729803156904942774237478111621919125582394448948\
    1588  295406406844691902789160843785892192212760482854142616066966\
    1589  061436483840059374641455624686877579416182709686546132337333\
    1590  180030729666859995573465620394353524944034503194887839608451\
    1591  069029644904642077575045157730600577875158390703330602738631\
    1592  860629283284285902868412268522486164537842820453011183015531\
    1593  669082023505889165928251243784395957824980999247118276540195\
    1594  068956031183236585108415603897481193085040746824934727777986\
    1595  761703484626902903260925660927239810711484175954901422619731\
    1596  922057229492660554293614771979793133433085936212830723862399\
    1597  334585740422370252249982159238980361966177481883090934546250\
    1598  903836442278836769393445168381535656636696931116641217099763\
    1599  249205106142470169654056239769609880390474141835446455366216\
    1600  163044493526155530766380018725181852858797332884069215206429\
    1601  253933800732703242020102754246055713369281324885855415528125\
    1602  659581759080256206862639693790603663547070031814664699862085\
    1603  124026740519096394950750536940374610036575208929959836461615\
    1604  919280191863569472772191938255564055565023733812663112274784\
    1605  824733213440763947293874467915896768018331324730250697015099\
    1606  463062533087218087488410166157459583569488345783974179340987\
    1607  151815108212218686575226398710276498737521494877861721916239\
    1608  286780194943271811625644415312213945242110591353818534254974\
    1609  082884162962499579444882831630967263044313008877192427542802\
    1610  154833385005287431176015973444837288763406349559772586733139\
    1611  508290944276618724455216038372331277739377332938820061159422\
    1612  131545699737995079186343848189545551446309662717473667598998\
    1613  332988069951307480469935653061211574846012803370905284012473\
    1614  025318540210297839541696998136885534223864988557670674501375\
    1615  244470147903967779423817060038384764935662497442963759653206\
    1616  786432859777470896394181997456033131032688720696203667198626\
    1617  404895099030068466008555612541561023366202324622483939422567\
    1618  021914882845352467305687811236417567525816955182834161603932\
    1619  993065869465459807593704095390354125514253872107415823725124\
    1620  7263969181696e+4931L;
    1621  static const long double ld3c =
    1622  5.9486574767861588257512740011252202817891302594919813725251\
    1623  295428739285541899832559628345030434759848834258858109152060\
    1624  168394580447354320917546191141469316674407503401251826592118\
    1625  529247805068466318759038608659253988075214874609536526621357\
    1626  456531393890166762179915866732524251539065872543957371571521\
    1627  983821811625262362379785274802094595537134203491628334800642\
    1628  100552410980148340419844099304716014319891796892117978584065\
    1629  642215994189779833796388294931075153217985342401232585488548\
    1630  183499573356819649604353341808627018653300000165159821533158\
    1631  398534762310007133107769480816106094590754928301890268526601\
    1632  948012303315011492834812113743989351274355589970363438128551\
    1633  573643438403526566620300559126131289478114044934210031633528\
    1634  263569989916613277150372804081100885766846923338387335735275\
    1635  815690693627425316500993091757924061275520326543377826484801\
    1636  260850814410014200240706874882235908793464063722267631785502\
    1637  588978890438298369667014685160756795261293064179236782450102\
    1638  879817506411379585551974343148401888001113058696688771238532\
    1639  123329163319380775763389985796856252232367435778523577763581\
    1640  076318820356483011816956309162306010784749642144593052844981\
    1641  144455778303480881727480293033710826466852650686573284449164\
    1642  971550815761322623554550767170481569400661823142075309755585\
    1643  825399262942161733431916879499819498306470556518202895225167\
    1644  570891857833504708712937447726161123901897152190727519098753\
    1645  173091256107155059564163182449945325514965354563242034921715\
    1646  085079669416064946957897843700525314730377964740286745952320\
    1647  848539618361767466769711132391357232984948881905511016501295\
    1648  373458116601070538750219227472880922074079367616789330713051\
    1649  392796054620611196686398104309732110578180612371988986941283\
    1650  463409571752839755060102940634838880149410521082372514146698\
    1651  949690555298417297141754693386954049385392552489950059242099\
    1652  158790234260937921119976211248531759522503364724271154732450\
    1653  580204158756703065275680503502538215181617861403909609765438\
    1654  459404741896379126766756324776550060890489522385655907004761\
    1655  103760380176704738464932582597767398552360992261748200224552\
    1656  499221197984163362555822765637968034280918669504609870586242\
    1657  062170049756721980421608552698712778507151233315121277695507\
    1658  694932304894125095195395002291537339548463471343544834535084\
    1659  385597125111888342671654244935921073610595930775193595237994\
    1660  484405470453247603596164707279142831292696020597352513459682\
    1661  982542490819269161229107183625537754125393689567083050306972\
    1662  299472451409351528024124972676859164822379702549840869992122\
    1663  109088558738008051503238314435613116752657081607929379237268\
    1664  685258548361696557803717952234859306922044575896046034219495\
    1665  078937310258307531674502149231702180717812559299741279722940\
    1666  331553164095430990867607708187092707603492795672693661579813\
    1667  722297206006600340954221573260854019342039503980256096723323\
    1668  974619210941227998945120494044519820953637210732374225869479\
    1669  681431453077746347270062554307578221973966755682727685671115\
    1670  104598487346465589917255152859638133529840253249441154093766\
    1671  468296435228729803156904942774237478111621919125582394448948\
    1672  295406406844691902789160843785892192212760482854142616066966\
    1673  061436483840059374641455624686877579416182709686546132337333\
    1674  180030729666859995573465620394353524944034503194887839608451\
    1675  069029644904642077575045157730600577875158390703330602738631\
    1676  860629283284285902868412268522486164537842820453011183015531\
    1677  669082023505889165928251243784395957824980999247118276540195\
    1678  068956031183236585108415603897481193085040746824934727777986\
    1679  761703484626902903260925660927239810711484175954901422619731\
    1680  922057229492660554293614771979793133433085936212830723862399\
    1681  334585740422370252249982159238980361966177481883090934546250\
    1682  903836442278836769393445168381535656636696931116641217099763\
    1683  249205106142470169654056239769609880390474141835446455366216\
    1684  163044493526155530766380018725181852858797332884069215206429\
    1685  253933800732703242020102754246055713369281324885855415528125\
    1686  659581759080256206862639693790603663547070031814664699862085\
    1687  124026740519096394950750536940374610036575208929959836461615\
    1688  919280191863569472772191938255564055565023733812663112274784\
    1689  824733213440763947293874467915896768018331324730250697015099\
    1690  463062533087218087488410166157459583569488345783974179340987\
    1691  151815108212218686575226398710276498737521494877861721916239\
    1692  286780194943271811625644415312213945242110591353818534254974\
    1693  082884162962499579444882831630967263044313008877192427542802\
    1694  154833385005287431176015973444837288763406349559772586733139\
    1695  508290944276618724455216038372331277739377332938820061159422\
    1696  131545699737995079186343848189545551446309662717473667598998\
    1697  332988069951307480469935653061211574846012803370905284012473\
    1698  025318540210297839541696998136885534223864988557670674501375\
    1699  244470147903967779423817060038384764935662497442963759653206\
    1700  786432859777470896394181997456033131032688720696203667198626\
    1701  404895099030068466008555612541561023366202324622483939422567\
    1702  021914882845352467305687811236417567525816955182834161603932\
    1703  993065869465459807593704095390354125514253872107415823725124\
    1704  7263969181696001e+4931L;
    1705  #endif
    1706  
    1707  #if LDBL_MANT_DIG == 113 \
    1708    && LDBL_MIN_EXP == -16381 \
    1709    && LDBL_MAX_EXP == 16384
    1710  # define LDBL_OK
    1711  /* 0x0.8p-16494 */
    1712  static const long double ld1ae = 0, ld1be = 0, ld1ce = 0x1p-16494L;
    1713  static const long double ld1a =
    1714  3.2375875597190125554622194791138232762497846690173405048449\
    1715  421945985197700620596855088357456383249701279390707384240598\
    1716  382936099431912710233425550359863089915213963553756674672083\
    1717  673128192358701197242632527769951957277781260855740340354110\
    1718  173441284912381364143945515141786687806740155311932822963199\
    1719  131134959539539338316310328556057915323285980341541664226172\
    1720  265348802632447238304822896568757017013159021750199744350376\
    1721  278243566840330589397015778833566517337174685312047058426075\
    1722  688036665697114219175258344917835835984013214761767520398571\
    1723  735519302688914468501077605843338555214753050109407568139932\
    1724  147308502166696009676987494125921676927574464221699654264839\
    1725  192243410627511520570610765229732327315423820550872393685221\
    1726  676561948307418196052769717057382723931306989375320957256133\
    1727  838073129463951849807075348034900035402513943244599879584009\
    1728  391110011261908615236154859382854977144106096407982738165117\
    1729  693915685918231984764157652755343417097983676870433731452629\
    1730  339981084526616826599425863049784138127555181662391766144738\
    1731  159400253422795753041594932607700680306368857466952063923782\
    1732  760519487592638820793893796669403574411398166619131986561877\
    1733  034635197232626532239192571857518274939275861531537920777299\
    1734  133535479548088762634002006634954143608168633852204577195463\
    1735  389533233992867620995583241321034602255800668175356808869060\
    1736  608582640890741203603916133682748118680676374951545690715916\
    1737  241859799379894025137504643469040366684778763795442214328000\
    1738  375999444991619403217748350277527106812175542863660436614910\
    1739  135938862296156144947361864759321605496309393905421651264941\
    1740  669606814994816518612155298709843817262034769175075602668866\
    1741  926449523554218142013501373514352370369126244144449924971423\
    1742  038024236058971106053649565799145071085840022305247663313482\
    1743  714565918140785997808209749619683146844964283106915422726638\
    1744  184861327711776708749278315100024436584176080783836115268999\
    1745  055336294569042349971163039294272620322160728879610722678506\
    1746  182344928526064885227397447578450046944618127903428943538029\
    1747  386719288345854473283987116842451647036255801966780244103035\
    1748  425445345127067921349083698736056197567752071915587544133815\
    1749  717564310032485290205726480489464589999677885266171263493459\
    1750  668963623768410922688414177814149693150024191921819721215688\
    1751  114324591287371281400636455584825253000890602388603923710921\
    1752  026880979879158388608823700222683123228822356907857261909150\
    1753  626993825760416437415551396973489279578569909699853422995997\
    1754  974315036153120383930698087773157253674975950409660938084071\
    1755  173163693891122166282318691732176374528554627905530306369204\
    1756  877964658806333996327938827344733821685425961846791581492287\
    1757  250044047142934607523718654369478552373072400018635730811749\
    1758  291666457582760812726851561001954207941547404866373158231367\
    1759  986951247388733285659455982411993350593989550494594498447410\
    1760  984783303191128659803467713819821511544998464785455306500918\
    1761  241648925913966507036336000231915215026183799886938007038845\
    1762  551916478649593272604688927931953165785101738164060543643192\
    1763  949066412847647883846835866623820426428526541564774787007791\
    1764  235843699657232847114093617412355486871810526396392792853731\
    1765  390841657984518997639795008374280777823099107035223998600103\
    1766  103211166230289241182380237703814248941627178152962100972452\
    1767  217697144954497443279450919433943252592977710901289696002698\
    1768  225209041938801190947812141758873162203113090284565687499100\
    1769  109623665868340184032428667217835198069330185880779776269137\
    1770  742366802202585247113480377505916462865316253065105837519292\
    1771  805411191872195967066157363040364443666632564266439033866945\
    1772  366496486863801221986778957510023272290593640187551645170603\
    1773  215150911733580059874983597994671388176488814794186236946834\
    1774  548816837468411497151813344980969677026131105901402313456769\
    1775  561412278508799050185582199844418197980544632067644131002512\
    1776  557755358307705356209461595354064971347590431926479961905129\
    1777  785864961996560707071051177738535042777950247546470241655891\
    1778  294428226271478689174637951663865529219133988782700199051475\
    1779  108495188941141025360733690471601309904116260484264378352956\
    1780  830972782977747351810451586166745640802378131466232692150196\
    1781  132319386267589275314909450293562079332893638471814389025392\
    1782  970579695249613486078445695214422379148991006996109216699215\
    1783  721671648754881325271879493185438097033881789311707997697928\
    1784  860866812849648616086569281093053695399558469641977866770538\
    1785  476039621947215238679930485285585513808236992918733520331110\
    1786  962448142457896209307561142289713638388281085340301520317159\
    1787  297224995464365477734040179470355969363384621039467975256670\
    1788  339354334892926205316491997244008324897517881293654265688813\
    1789  283579663372924392043825371743576754041055802440187836850412\
    1790  247984570221893156921757872572872036331343007592090605703195\
    1791  088864753777199111760713027328198781654685927174063882187275\
    1792  850263521274368447629947228263907797373221137688424821608129\
    1793  731003236738630502344377228987961455961818623205503012858619\
    1794  800521948637807438081069469400793496307826769301971342062597\
    1795  391253779410607511754278887744936774785938056823221738917303\
    1796  119592848951788560393540150358649310736020595310015728915288\
    1797  289821678102453433273888879288862086153270028346900686360943\
    1798  250522514297816412678213672667152836436597491522644579383191\
    1799  851483036048273636234050603745735057899230038434384361744893\
    1800  838050985090837220507663282503497932038372021626246900935334\
    1801  781144388106031405650705176699646299475436084049881780196520\
    1802  881623075256119318210664937469946410480660118598143375898298\
    1803  965497205621170906772915413181530577151676241283182977713765\
    1804  317889730886996471681592298058774155948285325398399674640645\
    1805  566475947058303746531133735308766583802401453804232106737787\
    1806  768035926272312574958173945816077962772826443125107145322971\
    1807  087220172175473177449006473180221085709470643042801004189714\
    1808  505520073568915195232936144169440163547568663500508335014169\
    1809  425050712038101167190534305435310279534374364467455668392421\
    1810  298604104431988622194699721632249712583483143417550152131186\
    1811  288827131347662976240916448058011869761525369135147129192405\
    1812  037216807405860168320999468074663117771890506566769628495813\
    1813  837909047220874786467663205170561835819702362482274133227483\
    1814  041342457179876653773960112367066273208176545656826800069574\
    1815  547599816180234764485446735080683694920665668954370505715843\
    1816  455110709594838989387382250502925336743830916124954071268053\
    1817  817964873658921319164268375226716232666274830656557657055342\
    1818  393552148933959057023293404027940528842591460490646295820755\
    1819  765633076707491896621769767253619370462005760078938144396953\
    1820  018925287611875441613896820035092167912718365454954166761481\
    1821  511451950826683236776211829914518353242818636196417736206010\
    1822  145109509967467266157037719712666871515644277723594273405669\
    1823  093518586548079997818085130346801040781966074621669280188633\
    1824  856299289656492439545033914935979634179552686396067914528336\
    1825  924678729357419403624798426886422277256625046946795576781709\
    1826  298737741510378578072199383561520569978396254537274419476511\
    1827  983161908266152660163477408756159700314280122283281906103567\
    1828  067156627222418787671312246698375736071215395722993294041012\
    1829  744631560602983489316782773611740570974847045870362276861106\
    1830  774130949410119612624380274679529647271294627526939490197641\
    1831  645383447755544661714281218489998189691140343327976729279891\
    1832  077101372792811842951182338559423852563331641533781432796742\
    1833  873181364582071661749961126386895359760476172215209100274274\
    1834  851619657020388051618654944574445941780637669570374280535432\
    1835  399157923698778110534174856844986671232161320063786308144771\
    1836  068130888985636449091787794632959555876880672773686838364706\
    1837  122084832995722603440165161942472322987408003421165899848443\
    1838  566885769845535074102932500939450142098799833145629484519298\
    1839  622410092757836842296697186410137365818568152771850732591405\
    1840  340248509247875448717161746544246407280913725135059228268131\
    1841  453903691495906528862410006254958805237716723952273129715780\
    1842  425223305517882562616830806755498203755676925741529569939445\
    1843  043490046171854709456730491532189688306135861932534903184518\
    1844  717706426178028900836080044604143054210332610482947502104703\
    1845  032028463320549525316174330585387581543470878545616097381416\
    1846  151451037487775797335749896735101048367502483255117772375025\
    1847  269956476872153642623856062175536913321594213515989059505375\
    1848  135183515207096576145781316398544325320022366962008554087665\
    1849  201050763789833457082359181807492731245904330245198691471329\
    1850  319324627030678762142685799400660305214140453863665517807185\
    1851  105354694177602424937823924511789133225030926924236498557565\
    1852  212794565582753399214908928688568628950225640472058381324292\
    1853  866007645368390366981937596341868992912741319342960598330486\
    1854  905946276235953206760977215407164729909506118583728562718724\
    1855  235732515062300426080741679038098122641980345051854359908213\
    1856  563779664847422505775922437272989231878912994048540484468227\
    1857  199282393172540734295329890896755037903724644870572648941076\
    1858  132423009124870700536763793881894969000042397318202298868940\
    1859  530196108237639578098191879486398269734335286831689173606327\
    1860  500405178476864790935386838169242131756729797688220656276969\
    1861  434749140204830563840068728357383111109865861495106613619153\
    1862  421725274090787422508800568671498311491210197298472420373359\
    1863  044400631309819996507004167876832936101195902219429743174557\
    1864  163362274547892397934880322990633165889175059124060202200452\
    1865  648684577182821651588921716304707095995039972827781680978274\
    1866  973838841958209215836456212939412000456040621743349981715350\
    1867  305133662772937143899882197561295808685181679238411733642697\
    1868  748892466944352640514849114619882270112386610376024527101889\
    1869  119004382703622803911212700216792471528793241950356942780714\
    1870  774957204475130171711488773121937363663487116301055073658645\
    1871  980695862570269762957141239436916216723776945522480189876803\
    1872  386123827956059851911061129713987960026363403936931196519733\
    1873  447116468545744829997003979525368783485129837821983305137448\
    1874  031689360764270759437872004895754351479890333865299565515706\
    1875  690471030702230767978923298480584997256328135245813726407464\
    1876  159230169328539541524724878662873185450510653764301207480799\
    1877  488602832618557388369552461881286225098286358672257087829660\
    1878  174231705350465091313887538950130611513878400895128618426154\
    1879  417299623157313010877679890009181366178705821415173309356192\
    1880  686429159835537275875876767919535369607142366878476025895389\
    1881  279625854409611312402187942369446302119309705461187450803468\
    1882  606366203101933821675974655441744883993796837164178911391575\
    1883  751463591650231265941242686108002052587760190005508737394014\
    1884  453031299745602214380618917954427803281262300931789525045703\
    1885  809571995929933387196864877982754748535701000330924817431298\
    1886  365273697561943437891318220691072831562717726798635382168915\
    1887  187137325209768346284183473712613689334546294053718697897526\
    1888  843398053681374508250012035211936425982389543291022583173280\
    1889  985811169783438836113209408147936547458073361625570571955232\
    1890  746103236016857123149307991441916732438322836596693687161268\
    1891  151183603534413030099360835441935243365729307681545065674775\
    1892  655582111435085683962037818795920337874290127531069511296530\
    1893  746308404963763022896682861683252995925040540038039172626001\
    1894  958340013361801588367655990575379797454237110701588716509764\
    1895  759243657077584013289594787913434812509790293636440469725564\
    1896  222946985585616708175959944099853232059130350099233608207347\
    1897  955460820122006976717445739825352919058005528371183277021250\
    1898  186916447745609162301667393077050176560656798672598371789181\
    1899  232542195795945358691713761483976100058707499929103557275695\
    1900  937295677892604799308353051124627278706035295473126217205599\
    1901  530746756205492173148619619059839609108464715691924592576481\
    1902  382126740168148453274964955074129767533813576349605298268179\
    1903  068244338581354855186516322703199278802275718580352103754433\
    1904  240982354636196477238624205575823556321375833700666021556412\
    1905  182358152808745703724362178773168996492870519432472065091133\
    1906  11767578124999e-4966L;
    1907  static const long double ld1b =
    1908  3.2375875597190125554622194791138232762497846690173405048449\
    1909  421945985197700620596855088357456383249701279390707384240598\
    1910  382936099431912710233425550359863089915213963553756674672083\
    1911  673128192358701197242632527769951957277781260855740340354110\
    1912  173441284912381364143945515141786687806740155311932822963199\
    1913  131134959539539338316310328556057915323285980341541664226172\
    1914  265348802632447238304822896568757017013159021750199744350376\
    1915  278243566840330589397015778833566517337174685312047058426075\
    1916  688036665697114219175258344917835835984013214761767520398571\
    1917  735519302688914468501077605843338555214753050109407568139932\
    1918  147308502166696009676987494125921676927574464221699654264839\
    1919  192243410627511520570610765229732327315423820550872393685221\
    1920  676561948307418196052769717057382723931306989375320957256133\
    1921  838073129463951849807075348034900035402513943244599879584009\
    1922  391110011261908615236154859382854977144106096407982738165117\
    1923  693915685918231984764157652755343417097983676870433731452629\
    1924  339981084526616826599425863049784138127555181662391766144738\
    1925  159400253422795753041594932607700680306368857466952063923782\
    1926  760519487592638820793893796669403574411398166619131986561877\
    1927  034635197232626532239192571857518274939275861531537920777299\
    1928  133535479548088762634002006634954143608168633852204577195463\
    1929  389533233992867620995583241321034602255800668175356808869060\
    1930  608582640890741203603916133682748118680676374951545690715916\
    1931  241859799379894025137504643469040366684778763795442214328000\
    1932  375999444991619403217748350277527106812175542863660436614910\
    1933  135938862296156144947361864759321605496309393905421651264941\
    1934  669606814994816518612155298709843817262034769175075602668866\
    1935  926449523554218142013501373514352370369126244144449924971423\
    1936  038024236058971106053649565799145071085840022305247663313482\
    1937  714565918140785997808209749619683146844964283106915422726638\
    1938  184861327711776708749278315100024436584176080783836115268999\
    1939  055336294569042349971163039294272620322160728879610722678506\
    1940  182344928526064885227397447578450046944618127903428943538029\
    1941  386719288345854473283987116842451647036255801966780244103035\
    1942  425445345127067921349083698736056197567752071915587544133815\
    1943  717564310032485290205726480489464589999677885266171263493459\
    1944  668963623768410922688414177814149693150024191921819721215688\
    1945  114324591287371281400636455584825253000890602388603923710921\
    1946  026880979879158388608823700222683123228822356907857261909150\
    1947  626993825760416437415551396973489279578569909699853422995997\
    1948  974315036153120383930698087773157253674975950409660938084071\
    1949  173163693891122166282318691732176374528554627905530306369204\
    1950  877964658806333996327938827344733821685425961846791581492287\
    1951  250044047142934607523718654369478552373072400018635730811749\
    1952  291666457582760812726851561001954207941547404866373158231367\
    1953  986951247388733285659455982411993350593989550494594498447410\
    1954  984783303191128659803467713819821511544998464785455306500918\
    1955  241648925913966507036336000231915215026183799886938007038845\
    1956  551916478649593272604688927931953165785101738164060543643192\
    1957  949066412847647883846835866623820426428526541564774787007791\
    1958  235843699657232847114093617412355486871810526396392792853731\
    1959  390841657984518997639795008374280777823099107035223998600103\
    1960  103211166230289241182380237703814248941627178152962100972452\
    1961  217697144954497443279450919433943252592977710901289696002698\
    1962  225209041938801190947812141758873162203113090284565687499100\
    1963  109623665868340184032428667217835198069330185880779776269137\
    1964  742366802202585247113480377505916462865316253065105837519292\
    1965  805411191872195967066157363040364443666632564266439033866945\
    1966  366496486863801221986778957510023272290593640187551645170603\
    1967  215150911733580059874983597994671388176488814794186236946834\
    1968  548816837468411497151813344980969677026131105901402313456769\
    1969  561412278508799050185582199844418197980544632067644131002512\
    1970  557755358307705356209461595354064971347590431926479961905129\
    1971  785864961996560707071051177738535042777950247546470241655891\
    1972  294428226271478689174637951663865529219133988782700199051475\
    1973  108495188941141025360733690471601309904116260484264378352956\
    1974  830972782977747351810451586166745640802378131466232692150196\
    1975  132319386267589275314909450293562079332893638471814389025392\
    1976  970579695249613486078445695214422379148991006996109216699215\
    1977  721671648754881325271879493185438097033881789311707997697928\
    1978  860866812849648616086569281093053695399558469641977866770538\
    1979  476039621947215238679930485285585513808236992918733520331110\
    1980  962448142457896209307561142289713638388281085340301520317159\
    1981  297224995464365477734040179470355969363384621039467975256670\
    1982  339354334892926205316491997244008324897517881293654265688813\
    1983  283579663372924392043825371743576754041055802440187836850412\
    1984  247984570221893156921757872572872036331343007592090605703195\
    1985  088864753777199111760713027328198781654685927174063882187275\
    1986  850263521274368447629947228263907797373221137688424821608129\
    1987  731003236738630502344377228987961455961818623205503012858619\
    1988  800521948637807438081069469400793496307826769301971342062597\
    1989  391253779410607511754278887744936774785938056823221738917303\
    1990  119592848951788560393540150358649310736020595310015728915288\
    1991  289821678102453433273888879288862086153270028346900686360943\
    1992  250522514297816412678213672667152836436597491522644579383191\
    1993  851483036048273636234050603745735057899230038434384361744893\
    1994  838050985090837220507663282503497932038372021626246900935334\
    1995  781144388106031405650705176699646299475436084049881780196520\
    1996  881623075256119318210664937469946410480660118598143375898298\
    1997  965497205621170906772915413181530577151676241283182977713765\
    1998  317889730886996471681592298058774155948285325398399674640645\
    1999  566475947058303746531133735308766583802401453804232106737787\
    2000  768035926272312574958173945816077962772826443125107145322971\
    2001  087220172175473177449006473180221085709470643042801004189714\
    2002  505520073568915195232936144169440163547568663500508335014169\
    2003  425050712038101167190534305435310279534374364467455668392421\
    2004  298604104431988622194699721632249712583483143417550152131186\
    2005  288827131347662976240916448058011869761525369135147129192405\
    2006  037216807405860168320999468074663117771890506566769628495813\
    2007  837909047220874786467663205170561835819702362482274133227483\
    2008  041342457179876653773960112367066273208176545656826800069574\
    2009  547599816180234764485446735080683694920665668954370505715843\
    2010  455110709594838989387382250502925336743830916124954071268053\
    2011  817964873658921319164268375226716232666274830656557657055342\
    2012  393552148933959057023293404027940528842591460490646295820755\
    2013  765633076707491896621769767253619370462005760078938144396953\
    2014  018925287611875441613896820035092167912718365454954166761481\
    2015  511451950826683236776211829914518353242818636196417736206010\
    2016  145109509967467266157037719712666871515644277723594273405669\
    2017  093518586548079997818085130346801040781966074621669280188633\
    2018  856299289656492439545033914935979634179552686396067914528336\
    2019  924678729357419403624798426886422277256625046946795576781709\
    2020  298737741510378578072199383561520569978396254537274419476511\
    2021  983161908266152660163477408756159700314280122283281906103567\
    2022  067156627222418787671312246698375736071215395722993294041012\
    2023  744631560602983489316782773611740570974847045870362276861106\
    2024  774130949410119612624380274679529647271294627526939490197641\
    2025  645383447755544661714281218489998189691140343327976729279891\
    2026  077101372792811842951182338559423852563331641533781432796742\
    2027  873181364582071661749961126386895359760476172215209100274274\
    2028  851619657020388051618654944574445941780637669570374280535432\
    2029  399157923698778110534174856844986671232161320063786308144771\
    2030  068130888985636449091787794632959555876880672773686838364706\
    2031  122084832995722603440165161942472322987408003421165899848443\
    2032  566885769845535074102932500939450142098799833145629484519298\
    2033  622410092757836842296697186410137365818568152771850732591405\
    2034  340248509247875448717161746544246407280913725135059228268131\
    2035  453903691495906528862410006254958805237716723952273129715780\
    2036  425223305517882562616830806755498203755676925741529569939445\
    2037  043490046171854709456730491532189688306135861932534903184518\
    2038  717706426178028900836080044604143054210332610482947502104703\
    2039  032028463320549525316174330585387581543470878545616097381416\
    2040  151451037487775797335749896735101048367502483255117772375025\
    2041  269956476872153642623856062175536913321594213515989059505375\
    2042  135183515207096576145781316398544325320022366962008554087665\
    2043  201050763789833457082359181807492731245904330245198691471329\
    2044  319324627030678762142685799400660305214140453863665517807185\
    2045  105354694177602424937823924511789133225030926924236498557565\
    2046  212794565582753399214908928688568628950225640472058381324292\
    2047  866007645368390366981937596341868992912741319342960598330486\
    2048  905946276235953206760977215407164729909506118583728562718724\
    2049  235732515062300426080741679038098122641980345051854359908213\
    2050  563779664847422505775922437272989231878912994048540484468227\
    2051  199282393172540734295329890896755037903724644870572648941076\
    2052  132423009124870700536763793881894969000042397318202298868940\
    2053  530196108237639578098191879486398269734335286831689173606327\
    2054  500405178476864790935386838169242131756729797688220656276969\
    2055  434749140204830563840068728357383111109865861495106613619153\
    2056  421725274090787422508800568671498311491210197298472420373359\
    2057  044400631309819996507004167876832936101195902219429743174557\
    2058  163362274547892397934880322990633165889175059124060202200452\
    2059  648684577182821651588921716304707095995039972827781680978274\
    2060  973838841958209215836456212939412000456040621743349981715350\
    2061  305133662772937143899882197561295808685181679238411733642697\
    2062  748892466944352640514849114619882270112386610376024527101889\
    2063  119004382703622803911212700216792471528793241950356942780714\
    2064  774957204475130171711488773121937363663487116301055073658645\
    2065  980695862570269762957141239436916216723776945522480189876803\
    2066  386123827956059851911061129713987960026363403936931196519733\
    2067  447116468545744829997003979525368783485129837821983305137448\
    2068  031689360764270759437872004895754351479890333865299565515706\
    2069  690471030702230767978923298480584997256328135245813726407464\
    2070  159230169328539541524724878662873185450510653764301207480799\
    2071  488602832618557388369552461881286225098286358672257087829660\
    2072  174231705350465091313887538950130611513878400895128618426154\
    2073  417299623157313010877679890009181366178705821415173309356192\
    2074  686429159835537275875876767919535369607142366878476025895389\
    2075  279625854409611312402187942369446302119309705461187450803468\
    2076  606366203101933821675974655441744883993796837164178911391575\
    2077  751463591650231265941242686108002052587760190005508737394014\
    2078  453031299745602214380618917954427803281262300931789525045703\
    2079  809571995929933387196864877982754748535701000330924817431298\
    2080  365273697561943437891318220691072831562717726798635382168915\
    2081  187137325209768346284183473712613689334546294053718697897526\
    2082  843398053681374508250012035211936425982389543291022583173280\
    2083  985811169783438836113209408147936547458073361625570571955232\
    2084  746103236016857123149307991441916732438322836596693687161268\
    2085  151183603534413030099360835441935243365729307681545065674775\
    2086  655582111435085683962037818795920337874290127531069511296530\
    2087  746308404963763022896682861683252995925040540038039172626001\
    2088  958340013361801588367655990575379797454237110701588716509764\
    2089  759243657077584013289594787913434812509790293636440469725564\
    2090  222946985585616708175959944099853232059130350099233608207347\
    2091  955460820122006976717445739825352919058005528371183277021250\
    2092  186916447745609162301667393077050176560656798672598371789181\
    2093  232542195795945358691713761483976100058707499929103557275695\
    2094  937295677892604799308353051124627278706035295473126217205599\
    2095  530746756205492173148619619059839609108464715691924592576481\
    2096  382126740168148453274964955074129767533813576349605298268179\
    2097  068244338581354855186516322703199278802275718580352103754433\
    2098  240982354636196477238624205575823556321375833700666021556412\
    2099  182358152808745703724362178773168996492870519432472065091133\
    2100  11767578125e-4966L;
    2101  static const long double ld1c =
    2102  3.2375875597190125554622194791138232762497846690173405048449\
    2103  421945985197700620596855088357456383249701279390707384240598\
    2104  382936099431912710233425550359863089915213963553756674672083\
    2105  673128192358701197242632527769951957277781260855740340354110\
    2106  173441284912381364143945515141786687806740155311932822963199\
    2107  131134959539539338316310328556057915323285980341541664226172\
    2108  265348802632447238304822896568757017013159021750199744350376\
    2109  278243566840330589397015778833566517337174685312047058426075\
    2110  688036665697114219175258344917835835984013214761767520398571\
    2111  735519302688914468501077605843338555214753050109407568139932\
    2112  147308502166696009676987494125921676927574464221699654264839\
    2113  192243410627511520570610765229732327315423820550872393685221\
    2114  676561948307418196052769717057382723931306989375320957256133\
    2115  838073129463951849807075348034900035402513943244599879584009\
    2116  391110011261908615236154859382854977144106096407982738165117\
    2117  693915685918231984764157652755343417097983676870433731452629\
    2118  339981084526616826599425863049784138127555181662391766144738\
    2119  159400253422795753041594932607700680306368857466952063923782\
    2120  760519487592638820793893796669403574411398166619131986561877\
    2121  034635197232626532239192571857518274939275861531537920777299\
    2122  133535479548088762634002006634954143608168633852204577195463\
    2123  389533233992867620995583241321034602255800668175356808869060\
    2124  608582640890741203603916133682748118680676374951545690715916\
    2125  241859799379894025137504643469040366684778763795442214328000\
    2126  375999444991619403217748350277527106812175542863660436614910\
    2127  135938862296156144947361864759321605496309393905421651264941\
    2128  669606814994816518612155298709843817262034769175075602668866\
    2129  926449523554218142013501373514352370369126244144449924971423\
    2130  038024236058971106053649565799145071085840022305247663313482\
    2131  714565918140785997808209749619683146844964283106915422726638\
    2132  184861327711776708749278315100024436584176080783836115268999\
    2133  055336294569042349971163039294272620322160728879610722678506\
    2134  182344928526064885227397447578450046944618127903428943538029\
    2135  386719288345854473283987116842451647036255801966780244103035\
    2136  425445345127067921349083698736056197567752071915587544133815\
    2137  717564310032485290205726480489464589999677885266171263493459\
    2138  668963623768410922688414177814149693150024191921819721215688\
    2139  114324591287371281400636455584825253000890602388603923710921\
    2140  026880979879158388608823700222683123228822356907857261909150\
    2141  626993825760416437415551396973489279578569909699853422995997\
    2142  974315036153120383930698087773157253674975950409660938084071\
    2143  173163693891122166282318691732176374528554627905530306369204\
    2144  877964658806333996327938827344733821685425961846791581492287\
    2145  250044047142934607523718654369478552373072400018635730811749\
    2146  291666457582760812726851561001954207941547404866373158231367\
    2147  986951247388733285659455982411993350593989550494594498447410\
    2148  984783303191128659803467713819821511544998464785455306500918\
    2149  241648925913966507036336000231915215026183799886938007038845\
    2150  551916478649593272604688927931953165785101738164060543643192\
    2151  949066412847647883846835866623820426428526541564774787007791\
    2152  235843699657232847114093617412355486871810526396392792853731\
    2153  390841657984518997639795008374280777823099107035223998600103\
    2154  103211166230289241182380237703814248941627178152962100972452\
    2155  217697144954497443279450919433943252592977710901289696002698\
    2156  225209041938801190947812141758873162203113090284565687499100\
    2157  109623665868340184032428667217835198069330185880779776269137\
    2158  742366802202585247113480377505916462865316253065105837519292\
    2159  805411191872195967066157363040364443666632564266439033866945\
    2160  366496486863801221986778957510023272290593640187551645170603\
    2161  215150911733580059874983597994671388176488814794186236946834\
    2162  548816837468411497151813344980969677026131105901402313456769\
    2163  561412278508799050185582199844418197980544632067644131002512\
    2164  557755358307705356209461595354064971347590431926479961905129\
    2165  785864961996560707071051177738535042777950247546470241655891\
    2166  294428226271478689174637951663865529219133988782700199051475\
    2167  108495188941141025360733690471601309904116260484264378352956\
    2168  830972782977747351810451586166745640802378131466232692150196\
    2169  132319386267589275314909450293562079332893638471814389025392\
    2170  970579695249613486078445695214422379148991006996109216699215\
    2171  721671648754881325271879493185438097033881789311707997697928\
    2172  860866812849648616086569281093053695399558469641977866770538\
    2173  476039621947215238679930485285585513808236992918733520331110\
    2174  962448142457896209307561142289713638388281085340301520317159\
    2175  297224995464365477734040179470355969363384621039467975256670\
    2176  339354334892926205316491997244008324897517881293654265688813\
    2177  283579663372924392043825371743576754041055802440187836850412\
    2178  247984570221893156921757872572872036331343007592090605703195\
    2179  088864753777199111760713027328198781654685927174063882187275\
    2180  850263521274368447629947228263907797373221137688424821608129\
    2181  731003236738630502344377228987961455961818623205503012858619\
    2182  800521948637807438081069469400793496307826769301971342062597\
    2183  391253779410607511754278887744936774785938056823221738917303\
    2184  119592848951788560393540150358649310736020595310015728915288\
    2185  289821678102453433273888879288862086153270028346900686360943\
    2186  250522514297816412678213672667152836436597491522644579383191\
    2187  851483036048273636234050603745735057899230038434384361744893\
    2188  838050985090837220507663282503497932038372021626246900935334\
    2189  781144388106031405650705176699646299475436084049881780196520\
    2190  881623075256119318210664937469946410480660118598143375898298\
    2191  965497205621170906772915413181530577151676241283182977713765\
    2192  317889730886996471681592298058774155948285325398399674640645\
    2193  566475947058303746531133735308766583802401453804232106737787\
    2194  768035926272312574958173945816077962772826443125107145322971\
    2195  087220172175473177449006473180221085709470643042801004189714\
    2196  505520073568915195232936144169440163547568663500508335014169\
    2197  425050712038101167190534305435310279534374364467455668392421\
    2198  298604104431988622194699721632249712583483143417550152131186\
    2199  288827131347662976240916448058011869761525369135147129192405\
    2200  037216807405860168320999468074663117771890506566769628495813\
    2201  837909047220874786467663205170561835819702362482274133227483\
    2202  041342457179876653773960112367066273208176545656826800069574\
    2203  547599816180234764485446735080683694920665668954370505715843\
    2204  455110709594838989387382250502925336743830916124954071268053\
    2205  817964873658921319164268375226716232666274830656557657055342\
    2206  393552148933959057023293404027940528842591460490646295820755\
    2207  765633076707491896621769767253619370462005760078938144396953\
    2208  018925287611875441613896820035092167912718365454954166761481\
    2209  511451950826683236776211829914518353242818636196417736206010\
    2210  145109509967467266157037719712666871515644277723594273405669\
    2211  093518586548079997818085130346801040781966074621669280188633\
    2212  856299289656492439545033914935979634179552686396067914528336\
    2213  924678729357419403624798426886422277256625046946795576781709\
    2214  298737741510378578072199383561520569978396254537274419476511\
    2215  983161908266152660163477408756159700314280122283281906103567\
    2216  067156627222418787671312246698375736071215395722993294041012\
    2217  744631560602983489316782773611740570974847045870362276861106\
    2218  774130949410119612624380274679529647271294627526939490197641\
    2219  645383447755544661714281218489998189691140343327976729279891\
    2220  077101372792811842951182338559423852563331641533781432796742\
    2221  873181364582071661749961126386895359760476172215209100274274\
    2222  851619657020388051618654944574445941780637669570374280535432\
    2223  399157923698778110534174856844986671232161320063786308144771\
    2224  068130888985636449091787794632959555876880672773686838364706\
    2225  122084832995722603440165161942472322987408003421165899848443\
    2226  566885769845535074102932500939450142098799833145629484519298\
    2227  622410092757836842296697186410137365818568152771850732591405\
    2228  340248509247875448717161746544246407280913725135059228268131\
    2229  453903691495906528862410006254958805237716723952273129715780\
    2230  425223305517882562616830806755498203755676925741529569939445\
    2231  043490046171854709456730491532189688306135861932534903184518\
    2232  717706426178028900836080044604143054210332610482947502104703\
    2233  032028463320549525316174330585387581543470878545616097381416\
    2234  151451037487775797335749896735101048367502483255117772375025\
    2235  269956476872153642623856062175536913321594213515989059505375\
    2236  135183515207096576145781316398544325320022366962008554087665\
    2237  201050763789833457082359181807492731245904330245198691471329\
    2238  319324627030678762142685799400660305214140453863665517807185\
    2239  105354694177602424937823924511789133225030926924236498557565\
    2240  212794565582753399214908928688568628950225640472058381324292\
    2241  866007645368390366981937596341868992912741319342960598330486\
    2242  905946276235953206760977215407164729909506118583728562718724\
    2243  235732515062300426080741679038098122641980345051854359908213\
    2244  563779664847422505775922437272989231878912994048540484468227\
    2245  199282393172540734295329890896755037903724644870572648941076\
    2246  132423009124870700536763793881894969000042397318202298868940\
    2247  530196108237639578098191879486398269734335286831689173606327\
    2248  500405178476864790935386838169242131756729797688220656276969\
    2249  434749140204830563840068728357383111109865861495106613619153\
    2250  421725274090787422508800568671498311491210197298472420373359\
    2251  044400631309819996507004167876832936101195902219429743174557\
    2252  163362274547892397934880322990633165889175059124060202200452\
    2253  648684577182821651588921716304707095995039972827781680978274\
    2254  973838841958209215836456212939412000456040621743349981715350\
    2255  305133662772937143899882197561295808685181679238411733642697\
    2256  748892466944352640514849114619882270112386610376024527101889\
    2257  119004382703622803911212700216792471528793241950356942780714\
    2258  774957204475130171711488773121937363663487116301055073658645\
    2259  980695862570269762957141239436916216723776945522480189876803\
    2260  386123827956059851911061129713987960026363403936931196519733\
    2261  447116468545744829997003979525368783485129837821983305137448\
    2262  031689360764270759437872004895754351479890333865299565515706\
    2263  690471030702230767978923298480584997256328135245813726407464\
    2264  159230169328539541524724878662873185450510653764301207480799\
    2265  488602832618557388369552461881286225098286358672257087829660\
    2266  174231705350465091313887538950130611513878400895128618426154\
    2267  417299623157313010877679890009181366178705821415173309356192\
    2268  686429159835537275875876767919535369607142366878476025895389\
    2269  279625854409611312402187942369446302119309705461187450803468\
    2270  606366203101933821675974655441744883993796837164178911391575\
    2271  751463591650231265941242686108002052587760190005508737394014\
    2272  453031299745602214380618917954427803281262300931789525045703\
    2273  809571995929933387196864877982754748535701000330924817431298\
    2274  365273697561943437891318220691072831562717726798635382168915\
    2275  187137325209768346284183473712613689334546294053718697897526\
    2276  843398053681374508250012035211936425982389543291022583173280\
    2277  985811169783438836113209408147936547458073361625570571955232\
    2278  746103236016857123149307991441916732438322836596693687161268\
    2279  151183603534413030099360835441935243365729307681545065674775\
    2280  655582111435085683962037818795920337874290127531069511296530\
    2281  746308404963763022896682861683252995925040540038039172626001\
    2282  958340013361801588367655990575379797454237110701588716509764\
    2283  759243657077584013289594787913434812509790293636440469725564\
    2284  222946985585616708175959944099853232059130350099233608207347\
    2285  955460820122006976717445739825352919058005528371183277021250\
    2286  186916447745609162301667393077050176560656798672598371789181\
    2287  232542195795945358691713761483976100058707499929103557275695\
    2288  937295677892604799308353051124627278706035295473126217205599\
    2289  530746756205492173148619619059839609108464715691924592576481\
    2290  382126740168148453274964955074129767533813576349605298268179\
    2291  068244338581354855186516322703199278802275718580352103754433\
    2292  240982354636196477238624205575823556321375833700666021556412\
    2293  182358152808745703724362178773168996492870519432472065091133\
    2294  11767578125001e-4966L;
    2295  /* 0x1.8p-16494 */
    2296  static const long double ld2ae = 0x1p-16494L, ld2be = 0x2p-16494L, ld2ce = 0x2p-16494L;
    2297  static const long double ld2a =
    2298  9.7127626791570376663866584373414698287493540070520215145348\
    2299  265837955593101861790565265072369149749103838172122152721795\
    2300  148808298295738130700276651079589269745641890661270024016251\
    2301  019384577076103591727897583309855871833343782567221021062330\
    2302  520323854737144092431836545425360063420220465935798468889597\
    2303  393404878618618014948930985668173745969857941024624992678516\
    2304  796046407897341714914468689706271051039477065250599233051128\
    2305  834730700520991768191047336500699552011524055936141175278227\
    2306  064109997091342657525775034753507507952039644285302561195715\
    2307  206557908066743405503232817530015665644259150328222704419796\
    2308  441925506500088029030962482377765030782723392665098962794517\
    2309  576730231882534561711832295689196981946271461652617181055665\
    2310  029685844922254588158309151172148171793920968125962871768401\
    2311  514219388391855549421226044104700106207541829733799638752028\
    2312  173330033785725845708464578148564931432318289223948214495353\
    2313  081747057754695954292472958266030251293951030611301194357888\
    2314  019943253579850479798277589149352414382665544987175298434214\
    2315  478200760268387259124784797823102040919106572400856191771348\
    2316  281558462777916462381681390008210723234194499857395959685631\
    2317  103905591697879596717577715572554824817827584594613762331897\
    2318  400606438644266287902006019904862430824505901556613731586390\
    2319  168599701978602862986749723963103806767402004526070426607181\
    2320  825747922672223610811748401048244356042029124854637072147748\
    2321  725579398139682075412513930407121100054336291386326642984001\
    2322  127998334974858209653245050832581320436526628590981309844730\
    2323  407816586888468434842085594277964816488928181716264953794825\
    2324  008820444984449555836465896129531451786104307525226808006600\
    2325  779348570662654426040504120543057111107378732433349774914269\
    2326  114072708176913318160948697397435213257520066915742989940448\
    2327  143697754422357993424629248859049440534892849320746268179914\
    2328  554583983135330126247834945300073309752528242351508345806997\
    2329  166008883707127049913489117882817860966482186638832168035518\
    2330  547034785578194655682192342735350140833854383710286830614088\
    2331  160157865037563419851961350527354941108767405900340732309106\
    2332  276336035381203764047251096208168592703256215746762632401447\
    2333  152692930097455870617179441468393769999033655798513790480379\
    2334  006890871305232768065242533442449079450072575765459163647064\
    2335  342973773862113844201909366754475759002671807165811771132763\
    2336  080642939637475165826471100668049369686467070723571785727451\
    2337  880981477281249312246654190920467838735709729099560268987993\
    2338  922945108459361151792094263319471761024927851228982814252213\
    2339  519491081673366498846956075196529123585663883716590919107614\
    2340  633893976419001988983816482034201465056277885540374744476861\
    2341  750132141428803822571155963108435657119217200055907192435247\
    2342  874999372748282438180554683005862623824642214599119474694103\
    2343  960853742166199856978367947235980051781968651483783495342232\
    2344  954349909573385979410403141459464534634995394356365919502754\
    2345  724946777741899521109008000695745645078551399660814021116536\
    2346  655749435948779817814066783795859497355305214492181630929578\
    2347  847199238542943651540507599871461279285579624694324361023373\
    2348  707531098971698541342280852237066460615431579189178378561194\
    2349  172524973953556992919385025122842333469297321105671995800309\
    2350  309633498690867723547140713111442746824881534458886302917356\
    2351  653091434863492329838352758301829757778933132703869088008094\
    2352  675627125816403572843436425276619486609339270853697062497300\
    2353  328870997605020552097286001653505594207990557642339328807413\
    2354  227100406607755741340441132517749388595948759195317512557878\
    2355  416233575616587901198472089121093330999897692799317101600836\
    2356  099489460591403665960336872530069816871780920562654935511809\
    2357  645452735200740179624950793984014164529466444382558710840503\
    2358  646450512405234491455440034942909031078393317704206940370308\
    2359  684236835526397150556746599533254593941633896202932393007537\
    2360  673266074923116068628384786062194914042771295779439885715389\
    2361  357594885989682121213153533215605128333850742639410724967673\
    2362  883284678814436067523913854991596587657401966348100597154425\
    2363  325485566823423076082201071414803929712348781452793135058870\
    2364  492918348933242055431354758500236922407134394398698076450588\
    2365  396958158802767825944728350880686237998680915415443167076178\
    2366  911739085748840458235337085643267137446973020988327650097647\
    2367  165014946264643975815638479556314291101645367935123993093786\
    2368  582600438548945848259707843279161086198675408925933600311615\
    2369  428118865841645716039791455856756541424710978756200560993332\
    2370  887344427373688627922683426869140915164843256020904560951477\
    2371  891674986393096433202120538411067908090153863118403925770011\
    2372  018063004678778615949475991732024974692553643880962797066439\
    2373  850738990118773176131476115230730262123167407320563510551236\
    2374  743953710665679470765273617718616108994029022776271817109585\
    2375  266594261331597335282139081984596344964057781522191646561827\
    2376  550790563823105342889841684791723392119663413065274464824389\
    2377  193009710215891507033131686963884367885455869616509038575859\
    2378  401565845913422314243208408202380488923480307905914026187792\
    2379  173761338231822535262836663234810324357814170469665216751909\
    2380  358778546855365681180620451075947932208061785930047186745864\
    2381  869465034307360299821666637866586258459810085040702059082829\
    2382  751567542893449238034641018001458509309792474567933738149575\
    2383  554449108144820908702151811237205173697690115303153085234681\
    2384  514152955272511661522989847510493796115116064878740702806004\
    2385  343433164318094216952115530098938898426308252149645340589562\
    2386  644869225768357954631994812409839231441980355794430127694896\
    2387  896491616863512720318746239544591731455028723849548933141295\
    2388  953669192660989415044776894176322467844855976195199023921936\
    2389  699427841174911239593401205926299751407204361412696320213363\
    2390  304107778816937724874521837448233888318479329375321435968913\
    2391  261660516526419532347019419540663257128411929128403012569143\
    2392  516560220706745585698808432508320490642705990501525005042508\
    2393  275152136114303501571602916305930838603123093402367005177263\
    2394  895812313295965866584099164896749137750449430252650456393558\
    2395  866481394042988928722749344174035609284576107405441387577215\
    2396  111650422217580504962998404223989353315671519700308885487441\
    2397  513727141662624359402989615511685507459107087446822399682449\
    2398  124027371539629961321880337101198819624529636970480400208723\
    2399  642799448540704293456340205242051084761997006863111517147530\
    2400  365332128784516968162146751508776010231492748374862213804161\
    2401  453894620976763957492805125680148697998824491969672971166027\
    2402  180656446801877171069880212083821586527774381471938887462267\
    2403  296899230122475689865309301760858111386017280236814433190859\
    2404  056775862835626324841690460105276503738155096364862500284444\
    2405  534355852480049710328635489743555059728455908589253208618030\
    2406  435328529902401798471113159138000614546932833170782820217007\
    2407  280555759644239993454255391040403122345898223865007840565901\
    2408  568897868969477318635101744807938902538658059188203743585010\
    2409  774036188072258210874395280659266831769875140840386730345127\
    2410  896213224531135734216598150684561709935188763611823258429535\
    2411  949485724798457980490432226268479100942840366849845718310701\
    2412  201469881667256363013936740095127208213646187168979882123038\
    2413  233894681808950467950348320835221712924541137611086830583320\
    2414  322392848230358837873140824038588941813883882580818470592924\
    2415  936150343266633985142843655469994569073421029983930187839673\
    2416  231304118378435528853547015678271557689994924601344298390228\
    2417  619544093746214985249883379160686079281428516645627300822824\
    2418  554858971061164154855964833723337825341913008711122841606297\
    2419  197473771096334331602524570534960013696483960191358924434313\
    2420  204392666956909347275363383898878667630642018321060515094118\
    2421  366254498987167810320495485827416968962224010263497699545330\
    2422  700657309536605222308797502818350426296399499436888453557895\
    2423  867230278273510526890091559230412097455704458315552197774216\
    2424  020745527743626346151485239632739221842741175405177684804394\
    2425  361711074487719586587230018764876415713150171856819389147341\
    2426  275669916553647687850492420266494611267030777224588709818335\
    2427  130470138515564128370191474596569064918407585797604709553556\
    2428  153119278534086702508240133812429162630997831448842506314109\
    2429  096085389961648575948522991756162744630412635636848292144248\
    2430  454353112463327392007249690205303145102507449765353317125075\
    2431  809869430616460927871568186526610739964782640547967178516125\
    2432  405550545621289728437343949195632975960067100886025662262995\
    2433  603152291369500371247077545422478193737712990735596074413987\
    2434  957973881092036286428057398201980915642421361590996553421555\
    2435  316064082532807274813471773535367399675092780772709495672695\
    2436  638383696748260197644726786065705886850676921416175143972878\
    2437  598022936105171100945812789025606978738223958028881794991460\
    2438  717838828707859620282931646221494189728518355751185688156172\
    2439  707197545186901278242225037114294367925941035155563079724640\
    2440  691338994542267517327767311818967695636738982145621453404681\
    2441  597847179517622202885989672690265113711173934611717946823228\
    2442  397269027374612101610291381645684907000127191954606896606821\
    2443  590588324712918734294575638459194809203005860495067520818982\
    2444  501215535430594372806160514507726395270189393064661968830908\
    2445  304247420614491691520206185072149333329597584485319840857460\
    2446  265175822272362267526401706014494934473630591895417261120077\
    2447  133201893929459989521012503630498808303587706658289229523671\
    2448  490086823643677193804640968971899497667525177372180606601357\
    2449  946053731548464954766765148914121287985119918483345042934824\
    2450  921516525874627647509368638818236001368121865230049945146050\
    2451  915400988318811431699646592683887426055545037715235200928093\
    2452  246677400833057921544547343859646810337159831128073581305667\
    2453  357013148110868411733638100650377414586379725851070828342144\
    2454  324871613425390515134466319365812090990461348903165220975937\
    2455  942087587710809288871423718310748650171330836567440569630410\
    2456  158371483868179555733183389141963880079090211810793589559200\
    2457  341349405637234489991011938576106350455389513465949915412344\
    2458  095068082292812278313616014687263054439671001595898696547120\
    2459  071413092106692303936769895441754991768984405737441179222392\
    2460  477690507985618624574174635988619556351531961292903622442398\
    2461  465808497855672165108657385643858675294859076016771263488980\
    2462  522695116051395273941662616850391834541635202685385855278463\
    2463  251898869471939032633039670027544098536117464245519928068578\
    2464  059287479506611827627630303758606108821427100635428077686167\
    2465  838877563228833937206563827108338906357929116383562352410405\
    2466  819098609305801465027923966325234651981390511492536734174727\
    2467  254390774950693797823728058324006157763280570016526212182043\
    2468  359093899236806643141856753863283409843786902795368575137111\
    2469  428715987789800161590594633948264245607103000992774452293895\
    2470  095821092685830313673954662073218494688153180395906146506745\
    2471  561411975629305038852550421137841068003638882161156093692580\
    2472  530194161044123524750036105635809277947168629873067749519842\
    2473  957433509350316508339628224443809642374220084876711715865698\
    2474  238309708050571369447923974325750197314968509790081061483804\
    2475  453550810603239090298082506325805730097187923044635197024326\
    2476  966746334305257051886113456387761013622870382593208533889592\
    2477  238925214891289068690048585049758987775121620114117517878005\
    2478  875020040085404765102967971726139392362711332104766149529294\
    2479  277730971232752039868784363740304437529370880909321409176692\
    2480  668840956756850124527879832299559696177391050297700824622043\
    2481  866382460366020930152337219476058757174016585113549831063750\
    2482  560749343236827486905002179231150529681970396017795115367543\
    2483  697626587387836076075141284451928300176122499787310671827087\
    2484  811887033677814397925059153373881836118105886419378651616798\
    2485  592240268616476519445858857179518827325394147075773777729444\
    2486  146380220504445359824894865222389302601440729048815894804537\
    2487  204733015744064565559548968109597836406827155741056311263299\
    2488  722947063908589431715872616727470668964127501101998064669236\
    2489  547074458426237111173086536319506989478611558297416195273399\
    2490  35302734374999e-4966L;
    2491  static const long double ld2b =
    2492  9.7127626791570376663866584373414698287493540070520215145348\
    2493  265837955593101861790565265072369149749103838172122152721795\
    2494  148808298295738130700276651079589269745641890661270024016251\
    2495  019384577076103591727897583309855871833343782567221021062330\
    2496  520323854737144092431836545425360063420220465935798468889597\
    2497  393404878618618014948930985668173745969857941024624992678516\
    2498  796046407897341714914468689706271051039477065250599233051128\
    2499  834730700520991768191047336500699552011524055936141175278227\
    2500  064109997091342657525775034753507507952039644285302561195715\
    2501  206557908066743405503232817530015665644259150328222704419796\
    2502  441925506500088029030962482377765030782723392665098962794517\
    2503  576730231882534561711832295689196981946271461652617181055665\
    2504  029685844922254588158309151172148171793920968125962871768401\
    2505  514219388391855549421226044104700106207541829733799638752028\
    2506  173330033785725845708464578148564931432318289223948214495353\
    2507  081747057754695954292472958266030251293951030611301194357888\
    2508  019943253579850479798277589149352414382665544987175298434214\
    2509  478200760268387259124784797823102040919106572400856191771348\
    2510  281558462777916462381681390008210723234194499857395959685631\
    2511  103905591697879596717577715572554824817827584594613762331897\
    2512  400606438644266287902006019904862430824505901556613731586390\
    2513  168599701978602862986749723963103806767402004526070426607181\
    2514  825747922672223610811748401048244356042029124854637072147748\
    2515  725579398139682075412513930407121100054336291386326642984001\
    2516  127998334974858209653245050832581320436526628590981309844730\
    2517  407816586888468434842085594277964816488928181716264953794825\
    2518  008820444984449555836465896129531451786104307525226808006600\
    2519  779348570662654426040504120543057111107378732433349774914269\
    2520  114072708176913318160948697397435213257520066915742989940448\
    2521  143697754422357993424629248859049440534892849320746268179914\
    2522  554583983135330126247834945300073309752528242351508345806997\
    2523  166008883707127049913489117882817860966482186638832168035518\
    2524  547034785578194655682192342735350140833854383710286830614088\
    2525  160157865037563419851961350527354941108767405900340732309106\
    2526  276336035381203764047251096208168592703256215746762632401447\
    2527  152692930097455870617179441468393769999033655798513790480379\
    2528  006890871305232768065242533442449079450072575765459163647064\
    2529  342973773862113844201909366754475759002671807165811771132763\
    2530  080642939637475165826471100668049369686467070723571785727451\
    2531  880981477281249312246654190920467838735709729099560268987993\
    2532  922945108459361151792094263319471761024927851228982814252213\
    2533  519491081673366498846956075196529123585663883716590919107614\
    2534  633893976419001988983816482034201465056277885540374744476861\
    2535  750132141428803822571155963108435657119217200055907192435247\
    2536  874999372748282438180554683005862623824642214599119474694103\
    2537  960853742166199856978367947235980051781968651483783495342232\
    2538  954349909573385979410403141459464534634995394356365919502754\
    2539  724946777741899521109008000695745645078551399660814021116536\
    2540  655749435948779817814066783795859497355305214492181630929578\
    2541  847199238542943651540507599871461279285579624694324361023373\
    2542  707531098971698541342280852237066460615431579189178378561194\
    2543  172524973953556992919385025122842333469297321105671995800309\
    2544  309633498690867723547140713111442746824881534458886302917356\
    2545  653091434863492329838352758301829757778933132703869088008094\
    2546  675627125816403572843436425276619486609339270853697062497300\
    2547  328870997605020552097286001653505594207990557642339328807413\
    2548  227100406607755741340441132517749388595948759195317512557878\
    2549  416233575616587901198472089121093330999897692799317101600836\
    2550  099489460591403665960336872530069816871780920562654935511809\
    2551  645452735200740179624950793984014164529466444382558710840503\
    2552  646450512405234491455440034942909031078393317704206940370308\
    2553  684236835526397150556746599533254593941633896202932393007537\
    2554  673266074923116068628384786062194914042771295779439885715389\
    2555  357594885989682121213153533215605128333850742639410724967673\
    2556  883284678814436067523913854991596587657401966348100597154425\
    2557  325485566823423076082201071414803929712348781452793135058870\
    2558  492918348933242055431354758500236922407134394398698076450588\
    2559  396958158802767825944728350880686237998680915415443167076178\
    2560  911739085748840458235337085643267137446973020988327650097647\
    2561  165014946264643975815638479556314291101645367935123993093786\
    2562  582600438548945848259707843279161086198675408925933600311615\
    2563  428118865841645716039791455856756541424710978756200560993332\
    2564  887344427373688627922683426869140915164843256020904560951477\
    2565  891674986393096433202120538411067908090153863118403925770011\
    2566  018063004678778615949475991732024974692553643880962797066439\
    2567  850738990118773176131476115230730262123167407320563510551236\
    2568  743953710665679470765273617718616108994029022776271817109585\
    2569  266594261331597335282139081984596344964057781522191646561827\
    2570  550790563823105342889841684791723392119663413065274464824389\
    2571  193009710215891507033131686963884367885455869616509038575859\
    2572  401565845913422314243208408202380488923480307905914026187792\
    2573  173761338231822535262836663234810324357814170469665216751909\
    2574  358778546855365681180620451075947932208061785930047186745864\
    2575  869465034307360299821666637866586258459810085040702059082829\
    2576  751567542893449238034641018001458509309792474567933738149575\
    2577  554449108144820908702151811237205173697690115303153085234681\
    2578  514152955272511661522989847510493796115116064878740702806004\
    2579  343433164318094216952115530098938898426308252149645340589562\
    2580  644869225768357954631994812409839231441980355794430127694896\
    2581  896491616863512720318746239544591731455028723849548933141295\
    2582  953669192660989415044776894176322467844855976195199023921936\
    2583  699427841174911239593401205926299751407204361412696320213363\
    2584  304107778816937724874521837448233888318479329375321435968913\
    2585  261660516526419532347019419540663257128411929128403012569143\
    2586  516560220706745585698808432508320490642705990501525005042508\
    2587  275152136114303501571602916305930838603123093402367005177263\
    2588  895812313295965866584099164896749137750449430252650456393558\
    2589  866481394042988928722749344174035609284576107405441387577215\
    2590  111650422217580504962998404223989353315671519700308885487441\
    2591  513727141662624359402989615511685507459107087446822399682449\
    2592  124027371539629961321880337101198819624529636970480400208723\
    2593  642799448540704293456340205242051084761997006863111517147530\
    2594  365332128784516968162146751508776010231492748374862213804161\
    2595  453894620976763957492805125680148697998824491969672971166027\
    2596  180656446801877171069880212083821586527774381471938887462267\
    2597  296899230122475689865309301760858111386017280236814433190859\
    2598  056775862835626324841690460105276503738155096364862500284444\
    2599  534355852480049710328635489743555059728455908589253208618030\
    2600  435328529902401798471113159138000614546932833170782820217007\
    2601  280555759644239993454255391040403122345898223865007840565901\
    2602  568897868969477318635101744807938902538658059188203743585010\
    2603  774036188072258210874395280659266831769875140840386730345127\
    2604  896213224531135734216598150684561709935188763611823258429535\
    2605  949485724798457980490432226268479100942840366849845718310701\
    2606  201469881667256363013936740095127208213646187168979882123038\
    2607  233894681808950467950348320835221712924541137611086830583320\
    2608  322392848230358837873140824038588941813883882580818470592924\
    2609  936150343266633985142843655469994569073421029983930187839673\
    2610  231304118378435528853547015678271557689994924601344298390228\
    2611  619544093746214985249883379160686079281428516645627300822824\
    2612  554858971061164154855964833723337825341913008711122841606297\
    2613  197473771096334331602524570534960013696483960191358924434313\
    2614  204392666956909347275363383898878667630642018321060515094118\
    2615  366254498987167810320495485827416968962224010263497699545330\
    2616  700657309536605222308797502818350426296399499436888453557895\
    2617  867230278273510526890091559230412097455704458315552197774216\
    2618  020745527743626346151485239632739221842741175405177684804394\
    2619  361711074487719586587230018764876415713150171856819389147341\
    2620  275669916553647687850492420266494611267030777224588709818335\
    2621  130470138515564128370191474596569064918407585797604709553556\
    2622  153119278534086702508240133812429162630997831448842506314109\
    2623  096085389961648575948522991756162744630412635636848292144248\
    2624  454353112463327392007249690205303145102507449765353317125075\
    2625  809869430616460927871568186526610739964782640547967178516125\
    2626  405550545621289728437343949195632975960067100886025662262995\
    2627  603152291369500371247077545422478193737712990735596074413987\
    2628  957973881092036286428057398201980915642421361590996553421555\
    2629  316064082532807274813471773535367399675092780772709495672695\
    2630  638383696748260197644726786065705886850676921416175143972878\
    2631  598022936105171100945812789025606978738223958028881794991460\
    2632  717838828707859620282931646221494189728518355751185688156172\
    2633  707197545186901278242225037114294367925941035155563079724640\
    2634  691338994542267517327767311818967695636738982145621453404681\
    2635  597847179517622202885989672690265113711173934611717946823228\
    2636  397269027374612101610291381645684907000127191954606896606821\
    2637  590588324712918734294575638459194809203005860495067520818982\
    2638  501215535430594372806160514507726395270189393064661968830908\
    2639  304247420614491691520206185072149333329597584485319840857460\
    2640  265175822272362267526401706014494934473630591895417261120077\
    2641  133201893929459989521012503630498808303587706658289229523671\
    2642  490086823643677193804640968971899497667525177372180606601357\
    2643  946053731548464954766765148914121287985119918483345042934824\
    2644  921516525874627647509368638818236001368121865230049945146050\
    2645  915400988318811431699646592683887426055545037715235200928093\
    2646  246677400833057921544547343859646810337159831128073581305667\
    2647  357013148110868411733638100650377414586379725851070828342144\
    2648  324871613425390515134466319365812090990461348903165220975937\
    2649  942087587710809288871423718310748650171330836567440569630410\
    2650  158371483868179555733183389141963880079090211810793589559200\
    2651  341349405637234489991011938576106350455389513465949915412344\
    2652  095068082292812278313616014687263054439671001595898696547120\
    2653  071413092106692303936769895441754991768984405737441179222392\
    2654  477690507985618624574174635988619556351531961292903622442398\
    2655  465808497855672165108657385643858675294859076016771263488980\
    2656  522695116051395273941662616850391834541635202685385855278463\
    2657  251898869471939032633039670027544098536117464245519928068578\
    2658  059287479506611827627630303758606108821427100635428077686167\
    2659  838877563228833937206563827108338906357929116383562352410405\
    2660  819098609305801465027923966325234651981390511492536734174727\
    2661  254390774950693797823728058324006157763280570016526212182043\
    2662  359093899236806643141856753863283409843786902795368575137111\
    2663  428715987789800161590594633948264245607103000992774452293895\
    2664  095821092685830313673954662073218494688153180395906146506745\
    2665  561411975629305038852550421137841068003638882161156093692580\
    2666  530194161044123524750036105635809277947168629873067749519842\
    2667  957433509350316508339628224443809642374220084876711715865698\
    2668  238309708050571369447923974325750197314968509790081061483804\
    2669  453550810603239090298082506325805730097187923044635197024326\
    2670  966746334305257051886113456387761013622870382593208533889592\
    2671  238925214891289068690048585049758987775121620114117517878005\
    2672  875020040085404765102967971726139392362711332104766149529294\
    2673  277730971232752039868784363740304437529370880909321409176692\
    2674  668840956756850124527879832299559696177391050297700824622043\
    2675  866382460366020930152337219476058757174016585113549831063750\
    2676  560749343236827486905002179231150529681970396017795115367543\
    2677  697626587387836076075141284451928300176122499787310671827087\
    2678  811887033677814397925059153373881836118105886419378651616798\
    2679  592240268616476519445858857179518827325394147075773777729444\
    2680  146380220504445359824894865222389302601440729048815894804537\
    2681  204733015744064565559548968109597836406827155741056311263299\
    2682  722947063908589431715872616727470668964127501101998064669236\
    2683  547074458426237111173086536319506989478611558297416195273399\
    2684  35302734375e-4966L;
    2685  static const long double ld2c =
    2686  9.7127626791570376663866584373414698287493540070520215145348\
    2687  265837955593101861790565265072369149749103838172122152721795\
    2688  148808298295738130700276651079589269745641890661270024016251\
    2689  019384577076103591727897583309855871833343782567221021062330\
    2690  520323854737144092431836545425360063420220465935798468889597\
    2691  393404878618618014948930985668173745969857941024624992678516\
    2692  796046407897341714914468689706271051039477065250599233051128\
    2693  834730700520991768191047336500699552011524055936141175278227\
    2694  064109997091342657525775034753507507952039644285302561195715\
    2695  206557908066743405503232817530015665644259150328222704419796\
    2696  441925506500088029030962482377765030782723392665098962794517\
    2697  576730231882534561711832295689196981946271461652617181055665\
    2698  029685844922254588158309151172148171793920968125962871768401\
    2699  514219388391855549421226044104700106207541829733799638752028\
    2700  173330033785725845708464578148564931432318289223948214495353\
    2701  081747057754695954292472958266030251293951030611301194357888\
    2702  019943253579850479798277589149352414382665544987175298434214\
    2703  478200760268387259124784797823102040919106572400856191771348\
    2704  281558462777916462381681390008210723234194499857395959685631\
    2705  103905591697879596717577715572554824817827584594613762331897\
    2706  400606438644266287902006019904862430824505901556613731586390\
    2707  168599701978602862986749723963103806767402004526070426607181\
    2708  825747922672223610811748401048244356042029124854637072147748\
    2709  725579398139682075412513930407121100054336291386326642984001\
    2710  127998334974858209653245050832581320436526628590981309844730\
    2711  407816586888468434842085594277964816488928181716264953794825\
    2712  008820444984449555836465896129531451786104307525226808006600\
    2713  779348570662654426040504120543057111107378732433349774914269\
    2714  114072708176913318160948697397435213257520066915742989940448\
    2715  143697754422357993424629248859049440534892849320746268179914\
    2716  554583983135330126247834945300073309752528242351508345806997\
    2717  166008883707127049913489117882817860966482186638832168035518\
    2718  547034785578194655682192342735350140833854383710286830614088\
    2719  160157865037563419851961350527354941108767405900340732309106\
    2720  276336035381203764047251096208168592703256215746762632401447\
    2721  152692930097455870617179441468393769999033655798513790480379\
    2722  006890871305232768065242533442449079450072575765459163647064\
    2723  342973773862113844201909366754475759002671807165811771132763\
    2724  080642939637475165826471100668049369686467070723571785727451\
    2725  880981477281249312246654190920467838735709729099560268987993\
    2726  922945108459361151792094263319471761024927851228982814252213\
    2727  519491081673366498846956075196529123585663883716590919107614\
    2728  633893976419001988983816482034201465056277885540374744476861\
    2729  750132141428803822571155963108435657119217200055907192435247\
    2730  874999372748282438180554683005862623824642214599119474694103\
    2731  960853742166199856978367947235980051781968651483783495342232\
    2732  954349909573385979410403141459464534634995394356365919502754\
    2733  724946777741899521109008000695745645078551399660814021116536\
    2734  655749435948779817814066783795859497355305214492181630929578\
    2735  847199238542943651540507599871461279285579624694324361023373\
    2736  707531098971698541342280852237066460615431579189178378561194\
    2737  172524973953556992919385025122842333469297321105671995800309\
    2738  309633498690867723547140713111442746824881534458886302917356\
    2739  653091434863492329838352758301829757778933132703869088008094\
    2740  675627125816403572843436425276619486609339270853697062497300\
    2741  328870997605020552097286001653505594207990557642339328807413\
    2742  227100406607755741340441132517749388595948759195317512557878\
    2743  416233575616587901198472089121093330999897692799317101600836\
    2744  099489460591403665960336872530069816871780920562654935511809\
    2745  645452735200740179624950793984014164529466444382558710840503\
    2746  646450512405234491455440034942909031078393317704206940370308\
    2747  684236835526397150556746599533254593941633896202932393007537\
    2748  673266074923116068628384786062194914042771295779439885715389\
    2749  357594885989682121213153533215605128333850742639410724967673\
    2750  883284678814436067523913854991596587657401966348100597154425\
    2751  325485566823423076082201071414803929712348781452793135058870\
    2752  492918348933242055431354758500236922407134394398698076450588\
    2753  396958158802767825944728350880686237998680915415443167076178\
    2754  911739085748840458235337085643267137446973020988327650097647\
    2755  165014946264643975815638479556314291101645367935123993093786\
    2756  582600438548945848259707843279161086198675408925933600311615\
    2757  428118865841645716039791455856756541424710978756200560993332\
    2758  887344427373688627922683426869140915164843256020904560951477\
    2759  891674986393096433202120538411067908090153863118403925770011\
    2760  018063004678778615949475991732024974692553643880962797066439\
    2761  850738990118773176131476115230730262123167407320563510551236\
    2762  743953710665679470765273617718616108994029022776271817109585\
    2763  266594261331597335282139081984596344964057781522191646561827\
    2764  550790563823105342889841684791723392119663413065274464824389\
    2765  193009710215891507033131686963884367885455869616509038575859\
    2766  401565845913422314243208408202380488923480307905914026187792\
    2767  173761338231822535262836663234810324357814170469665216751909\
    2768  358778546855365681180620451075947932208061785930047186745864\
    2769  869465034307360299821666637866586258459810085040702059082829\
    2770  751567542893449238034641018001458509309792474567933738149575\
    2771  554449108144820908702151811237205173697690115303153085234681\
    2772  514152955272511661522989847510493796115116064878740702806004\
    2773  343433164318094216952115530098938898426308252149645340589562\
    2774  644869225768357954631994812409839231441980355794430127694896\
    2775  896491616863512720318746239544591731455028723849548933141295\
    2776  953669192660989415044776894176322467844855976195199023921936\
    2777  699427841174911239593401205926299751407204361412696320213363\
    2778  304107778816937724874521837448233888318479329375321435968913\
    2779  261660516526419532347019419540663257128411929128403012569143\
    2780  516560220706745585698808432508320490642705990501525005042508\
    2781  275152136114303501571602916305930838603123093402367005177263\
    2782  895812313295965866584099164896749137750449430252650456393558\
    2783  866481394042988928722749344174035609284576107405441387577215\
    2784  111650422217580504962998404223989353315671519700308885487441\
    2785  513727141662624359402989615511685507459107087446822399682449\
    2786  124027371539629961321880337101198819624529636970480400208723\
    2787  642799448540704293456340205242051084761997006863111517147530\
    2788  365332128784516968162146751508776010231492748374862213804161\
    2789  453894620976763957492805125680148697998824491969672971166027\
    2790  180656446801877171069880212083821586527774381471938887462267\
    2791  296899230122475689865309301760858111386017280236814433190859\
    2792  056775862835626324841690460105276503738155096364862500284444\
    2793  534355852480049710328635489743555059728455908589253208618030\
    2794  435328529902401798471113159138000614546932833170782820217007\
    2795  280555759644239993454255391040403122345898223865007840565901\
    2796  568897868969477318635101744807938902538658059188203743585010\
    2797  774036188072258210874395280659266831769875140840386730345127\
    2798  896213224531135734216598150684561709935188763611823258429535\
    2799  949485724798457980490432226268479100942840366849845718310701\
    2800  201469881667256363013936740095127208213646187168979882123038\
    2801  233894681808950467950348320835221712924541137611086830583320\
    2802  322392848230358837873140824038588941813883882580818470592924\
    2803  936150343266633985142843655469994569073421029983930187839673\
    2804  231304118378435528853547015678271557689994924601344298390228\
    2805  619544093746214985249883379160686079281428516645627300822824\
    2806  554858971061164154855964833723337825341913008711122841606297\
    2807  197473771096334331602524570534960013696483960191358924434313\
    2808  204392666956909347275363383898878667630642018321060515094118\
    2809  366254498987167810320495485827416968962224010263497699545330\
    2810  700657309536605222308797502818350426296399499436888453557895\
    2811  867230278273510526890091559230412097455704458315552197774216\
    2812  020745527743626346151485239632739221842741175405177684804394\
    2813  361711074487719586587230018764876415713150171856819389147341\
    2814  275669916553647687850492420266494611267030777224588709818335\
    2815  130470138515564128370191474596569064918407585797604709553556\
    2816  153119278534086702508240133812429162630997831448842506314109\
    2817  096085389961648575948522991756162744630412635636848292144248\
    2818  454353112463327392007249690205303145102507449765353317125075\
    2819  809869430616460927871568186526610739964782640547967178516125\
    2820  405550545621289728437343949195632975960067100886025662262995\
    2821  603152291369500371247077545422478193737712990735596074413987\
    2822  957973881092036286428057398201980915642421361590996553421555\
    2823  316064082532807274813471773535367399675092780772709495672695\
    2824  638383696748260197644726786065705886850676921416175143972878\
    2825  598022936105171100945812789025606978738223958028881794991460\
    2826  717838828707859620282931646221494189728518355751185688156172\
    2827  707197545186901278242225037114294367925941035155563079724640\
    2828  691338994542267517327767311818967695636738982145621453404681\
    2829  597847179517622202885989672690265113711173934611717946823228\
    2830  397269027374612101610291381645684907000127191954606896606821\
    2831  590588324712918734294575638459194809203005860495067520818982\
    2832  501215535430594372806160514507726395270189393064661968830908\
    2833  304247420614491691520206185072149333329597584485319840857460\
    2834  265175822272362267526401706014494934473630591895417261120077\
    2835  133201893929459989521012503630498808303587706658289229523671\
    2836  490086823643677193804640968971899497667525177372180606601357\
    2837  946053731548464954766765148914121287985119918483345042934824\
    2838  921516525874627647509368638818236001368121865230049945146050\
    2839  915400988318811431699646592683887426055545037715235200928093\
    2840  246677400833057921544547343859646810337159831128073581305667\
    2841  357013148110868411733638100650377414586379725851070828342144\
    2842  324871613425390515134466319365812090990461348903165220975937\
    2843  942087587710809288871423718310748650171330836567440569630410\
    2844  158371483868179555733183389141963880079090211810793589559200\
    2845  341349405637234489991011938576106350455389513465949915412344\
    2846  095068082292812278313616014687263054439671001595898696547120\
    2847  071413092106692303936769895441754991768984405737441179222392\
    2848  477690507985618624574174635988619556351531961292903622442398\
    2849  465808497855672165108657385643858675294859076016771263488980\
    2850  522695116051395273941662616850391834541635202685385855278463\
    2851  251898869471939032633039670027544098536117464245519928068578\
    2852  059287479506611827627630303758606108821427100635428077686167\
    2853  838877563228833937206563827108338906357929116383562352410405\
    2854  819098609305801465027923966325234651981390511492536734174727\
    2855  254390774950693797823728058324006157763280570016526212182043\
    2856  359093899236806643141856753863283409843786902795368575137111\
    2857  428715987789800161590594633948264245607103000992774452293895\
    2858  095821092685830313673954662073218494688153180395906146506745\
    2859  561411975629305038852550421137841068003638882161156093692580\
    2860  530194161044123524750036105635809277947168629873067749519842\
    2861  957433509350316508339628224443809642374220084876711715865698\
    2862  238309708050571369447923974325750197314968509790081061483804\
    2863  453550810603239090298082506325805730097187923044635197024326\
    2864  966746334305257051886113456387761013622870382593208533889592\
    2865  238925214891289068690048585049758987775121620114117517878005\
    2866  875020040085404765102967971726139392362711332104766149529294\
    2867  277730971232752039868784363740304437529370880909321409176692\
    2868  668840956756850124527879832299559696177391050297700824622043\
    2869  866382460366020930152337219476058757174016585113549831063750\
    2870  560749343236827486905002179231150529681970396017795115367543\
    2871  697626587387836076075141284451928300176122499787310671827087\
    2872  811887033677814397925059153373881836118105886419378651616798\
    2873  592240268616476519445858857179518827325394147075773777729444\
    2874  146380220504445359824894865222389302601440729048815894804537\
    2875  204733015744064565559548968109597836406827155741056311263299\
    2876  722947063908589431715872616727470668964127501101998064669236\
    2877  547074458426237111173086536319506989478611558297416195273399\
    2878  35302734375001e-4966L;
    2879  /* 0x1.00000000000000000000000000008p16383 */
    2880  static const long double ld3ae = 0x1p16383L, ld3be = 0x1p16383L, ld3ce = 0x1.0000000000000000000000000001p16383L;
    2881  static const long double ld3a =
    2882  5.9486574767861588254287966331400362266521016077566321470782\
    2883  537912717956830282749074200158904838100315216442070246474582\
    2884  902003466452178519493817532236893426065414065500349426609921\
    2885  035191682920005861156266113904955955975156868485667432573303\
    2886  878926292023832306985858165533616318247459636179261303962505\
    2887  904914506095247123433601806274279678546351097459236573913920\
    2888  031119173565521719790447288258729779003490433862818295682642\
    2889  966216118764004792730459319737327354906008978235133081179386\
    2890  661103577408353480771246949457853166617701522167422003413661\
    2891  284349262437896929014552545611813747697933241007066137144800\
    2892  742052491919942298834913628182656296203230288447275444631994\
    2893  418174246363265098248611943128819168942591708210157385631417\
    2894  956400560296628065072016801065604053356267458749418972817500\
    2895  860163920552394032596390414022010839803056885484295371329659\
    2896  344624001094572196271168792142488910586863048428263135994222\
    2897  918660801863635503541746352435642903327106245556596971697306\
    2898  154375736529491499973297647239267168544491542059174479409314\
    2899  453930981788080813637734358380528957486229480817553751111130\
    2900  404254432007093360403147894746265072027252334199618554793914\
    2901  408408563073872776198001518686536858983411123156743992398602\
    2902  085226973929708268146742705557350571330511483380748376403472\
    2903  416543579901056379914358020396036857647833383066531875675143\
    2904  906511120597222727322243981995901699031025427175941279288823\
    2905  868963521340475095965307606235778429805072284801680535137734\
    2906  383642104178041358430293569208331406005130704155581295151191\
    2907  023575851522079817808333970280354640050199344622016227349001\
    2908  158400930280667186488774262251890453600109065837537684194570\
    2909  764422774923245437306731669764159584659798151950637627762794\
    2910  773771743234047950402370403351226180108444229650943701626484\
    2911  199813157683590670152514287926030050893275989087988431157294\
    2912  053225152320381185461962202878894704210605536874860744635921\
    2913  856800920799848781308318732102232154544901177747472418520161\
    2914  539850654183977571241391795912749098112352006092865789718049\
    2915  308722403022684428414862730635213534446271587083620368851394\
    2916  539053886621230946713996355227159995125430034494483477708852\
    2917  290917108703653719242299789100268057863851224567265334616704\
    2918  172517852701300018859009181286438758473871366303386211559752\
    2919  189988549719766361306120241141163757479824826687017385967199\
    2920  730649217746155593260923125994938678356692052428393066501806\
    2921  030161358556419313420716683771612548240263459903320490075985\
    2922  482955242306590857238462197972208846146747634114611463194143\
    2923  127229709932188005016692926586196070737427116881065809283735\
    2924  578248117685225847553587906225824731173075427424421056682930\
    2925  008434666477496431516691881829440430197100204332606435934395\
    2926  919650053069892524027974091575173698894803107552411683630872\
    2927  565514028274910395383420510115859479233531504702656455261624\
    2928  525121293886827716275308028935388238178963278225114817400178\
    2929  138358373030159940110845417191798464503817960506134575572552\
    2930  914585335913528444536373142082490326061583126796147603336390\
    2931  503084982226891516248370317420733394038771780044922478150880\
    2932  480334844447412365553656029955296322473008695074712792828366\
    2933  405738282245039545396582938290818627301780773130202921675326\
    2934  417583673495241569334204568141534153408474297319168484568799\
    2935  451491133718839097374713416523361939237171154953070144389353\
    2936  699828605993755613252573941610133829557167740458222617685028\
    2937  690018342727148122013513056358815140027414679795450105000784\
    2938  206522215604435223172005007036171570530334304897008809135848\
    2939  675229547083561399988252552429769084290516103080260036003448\
    2940  294799988351419108088251107290628711358276092795741489822211\
    2941  879153727229891058795497426373608319405317602924241055836665\
    2942  412584135657242160003706626205312971822953452930840783143003\
    2943  733239017808969394445195220787737174218027747221253900890536\
    2944  730326425051240764874006627032589076376990325467270006751475\
    2945  463920721323985366812116303998245085483206258613663624851716\
    2946  293180303624443281556295689730668616708901429287181381627670\
    2947  203893651414675005136379365959571811951919653635887567699289\
    2948  348324076406793991923217469674198904524716009847788439650157\
    2949  995310043698774137542541699134940585662745702625097983274489\
    2950  141416414789061652098131796728731652650516767112149192122453\
    2951  562328802846445391417036742140146906572447511494124473885963\
    2952  235217227016424204095604485308686968373890645296189932416571\
    2953  281295736247619241329068636405743573306087991776733585972793\
    2954  132869616481671565021096885870153734254648327143225051745267\
    2955  530463119926261147612098111086806545372953526471421579845285\
    2956  862975776235466663857936867536855924718593170503922894779577\
    2957  706239977813334283740751103082483280516469722321753891088699\
    2958  714361755511843803441649441302693703577359971743834932539197\
    2959  595873998629500074441134301810890941848881837426270390549007\
    2960  490141375766653241037340192392236932759127069111401216220596\
    2961  540958515892047794438580629374176225297401789362125586732528\
    2962  367695144980519774116001979888033796577336271850743828263427\
    2963  598863925843301048044096576340652808516459551933515596083641\
    2964  0468395384831999e+4931L;
    2965  static const long double ld3b =
    2966  5.9486574767861588254287966331400362266521016077566321470782\
    2967  537912717956830282749074200158904838100315216442070246474582\
    2968  902003466452178519493817532236893426065414065500349426609921\
    2969  035191682920005861156266113904955955975156868485667432573303\
    2970  878926292023832306985858165533616318247459636179261303962505\
    2971  904914506095247123433601806274279678546351097459236573913920\
    2972  031119173565521719790447288258729779003490433862818295682642\
    2973  966216118764004792730459319737327354906008978235133081179386\
    2974  661103577408353480771246949457853166617701522167422003413661\
    2975  284349262437896929014552545611813747697933241007066137144800\
    2976  742052491919942298834913628182656296203230288447275444631994\
    2977  418174246363265098248611943128819168942591708210157385631417\
    2978  956400560296628065072016801065604053356267458749418972817500\
    2979  860163920552394032596390414022010839803056885484295371329659\
    2980  344624001094572196271168792142488910586863048428263135994222\
    2981  918660801863635503541746352435642903327106245556596971697306\
    2982  154375736529491499973297647239267168544491542059174479409314\
    2983  453930981788080813637734358380528957486229480817553751111130\
    2984  404254432007093360403147894746265072027252334199618554793914\
    2985  408408563073872776198001518686536858983411123156743992398602\
    2986  085226973929708268146742705557350571330511483380748376403472\
    2987  416543579901056379914358020396036857647833383066531875675143\
    2988  906511120597222727322243981995901699031025427175941279288823\
    2989  868963521340475095965307606235778429805072284801680535137734\
    2990  383642104178041358430293569208331406005130704155581295151191\
    2991  023575851522079817808333970280354640050199344622016227349001\
    2992  158400930280667186488774262251890453600109065837537684194570\
    2993  764422774923245437306731669764159584659798151950637627762794\
    2994  773771743234047950402370403351226180108444229650943701626484\
    2995  199813157683590670152514287926030050893275989087988431157294\
    2996  053225152320381185461962202878894704210605536874860744635921\
    2997  856800920799848781308318732102232154544901177747472418520161\
    2998  539850654183977571241391795912749098112352006092865789718049\
    2999  308722403022684428414862730635213534446271587083620368851394\
    3000  539053886621230946713996355227159995125430034494483477708852\
    3001  290917108703653719242299789100268057863851224567265334616704\
    3002  172517852701300018859009181286438758473871366303386211559752\
    3003  189988549719766361306120241141163757479824826687017385967199\
    3004  730649217746155593260923125994938678356692052428393066501806\
    3005  030161358556419313420716683771612548240263459903320490075985\
    3006  482955242306590857238462197972208846146747634114611463194143\
    3007  127229709932188005016692926586196070737427116881065809283735\
    3008  578248117685225847553587906225824731173075427424421056682930\
    3009  008434666477496431516691881829440430197100204332606435934395\
    3010  919650053069892524027974091575173698894803107552411683630872\
    3011  565514028274910395383420510115859479233531504702656455261624\
    3012  525121293886827716275308028935388238178963278225114817400178\
    3013  138358373030159940110845417191798464503817960506134575572552\
    3014  914585335913528444536373142082490326061583126796147603336390\
    3015  503084982226891516248370317420733394038771780044922478150880\
    3016  480334844447412365553656029955296322473008695074712792828366\
    3017  405738282245039545396582938290818627301780773130202921675326\
    3018  417583673495241569334204568141534153408474297319168484568799\
    3019  451491133718839097374713416523361939237171154953070144389353\
    3020  699828605993755613252573941610133829557167740458222617685028\
    3021  690018342727148122013513056358815140027414679795450105000784\
    3022  206522215604435223172005007036171570530334304897008809135848\
    3023  675229547083561399988252552429769084290516103080260036003448\
    3024  294799988351419108088251107290628711358276092795741489822211\
    3025  879153727229891058795497426373608319405317602924241055836665\
    3026  412584135657242160003706626205312971822953452930840783143003\
    3027  733239017808969394445195220787737174218027747221253900890536\
    3028  730326425051240764874006627032589076376990325467270006751475\
    3029  463920721323985366812116303998245085483206258613663624851716\
    3030  293180303624443281556295689730668616708901429287181381627670\
    3031  203893651414675005136379365959571811951919653635887567699289\
    3032  348324076406793991923217469674198904524716009847788439650157\
    3033  995310043698774137542541699134940585662745702625097983274489\
    3034  141416414789061652098131796728731652650516767112149192122453\
    3035  562328802846445391417036742140146906572447511494124473885963\
    3036  235217227016424204095604485308686968373890645296189932416571\
    3037  281295736247619241329068636405743573306087991776733585972793\
    3038  132869616481671565021096885870153734254648327143225051745267\
    3039  530463119926261147612098111086806545372953526471421579845285\
    3040  862975776235466663857936867536855924718593170503922894779577\
    3041  706239977813334283740751103082483280516469722321753891088699\
    3042  714361755511843803441649441302693703577359971743834932539197\
    3043  595873998629500074441134301810890941848881837426270390549007\
    3044  490141375766653241037340192392236932759127069111401216220596\
    3045  540958515892047794438580629374176225297401789362125586732528\
    3046  367695144980519774116001979888033796577336271850743828263427\
    3047  598863925843301048044096576340652808516459551933515596083641\
    3048  0468395384832e+4931L;
    3049  static const long double ld3c =
    3050  5.9486574767861588254287966331400362266521016077566321470782\
    3051  537912717956830282749074200158904838100315216442070246474582\
    3052  902003466452178519493817532236893426065414065500349426609921\
    3053  035191682920005861156266113904955955975156868485667432573303\
    3054  878926292023832306985858165533616318247459636179261303962505\
    3055  904914506095247123433601806274279678546351097459236573913920\
    3056  031119173565521719790447288258729779003490433862818295682642\
    3057  966216118764004792730459319737327354906008978235133081179386\
    3058  661103577408353480771246949457853166617701522167422003413661\
    3059  284349262437896929014552545611813747697933241007066137144800\
    3060  742052491919942298834913628182656296203230288447275444631994\
    3061  418174246363265098248611943128819168942591708210157385631417\
    3062  956400560296628065072016801065604053356267458749418972817500\
    3063  860163920552394032596390414022010839803056885484295371329659\
    3064  344624001094572196271168792142488910586863048428263135994222\
    3065  918660801863635503541746352435642903327106245556596971697306\
    3066  154375736529491499973297647239267168544491542059174479409314\
    3067  453930981788080813637734358380528957486229480817553751111130\
    3068  404254432007093360403147894746265072027252334199618554793914\
    3069  408408563073872776198001518686536858983411123156743992398602\
    3070  085226973929708268146742705557350571330511483380748376403472\
    3071  416543579901056379914358020396036857647833383066531875675143\
    3072  906511120597222727322243981995901699031025427175941279288823\
    3073  868963521340475095965307606235778429805072284801680535137734\
    3074  383642104178041358430293569208331406005130704155581295151191\
    3075  023575851522079817808333970280354640050199344622016227349001\
    3076  158400930280667186488774262251890453600109065837537684194570\
    3077  764422774923245437306731669764159584659798151950637627762794\
    3078  773771743234047950402370403351226180108444229650943701626484\
    3079  199813157683590670152514287926030050893275989087988431157294\
    3080  053225152320381185461962202878894704210605536874860744635921\
    3081  856800920799848781308318732102232154544901177747472418520161\
    3082  539850654183977571241391795912749098112352006092865789718049\
    3083  308722403022684428414862730635213534446271587083620368851394\
    3084  539053886621230946713996355227159995125430034494483477708852\
    3085  290917108703653719242299789100268057863851224567265334616704\
    3086  172517852701300018859009181286438758473871366303386211559752\
    3087  189988549719766361306120241141163757479824826687017385967199\
    3088  730649217746155593260923125994938678356692052428393066501806\
    3089  030161358556419313420716683771612548240263459903320490075985\
    3090  482955242306590857238462197972208846146747634114611463194143\
    3091  127229709932188005016692926586196070737427116881065809283735\
    3092  578248117685225847553587906225824731173075427424421056682930\
    3093  008434666477496431516691881829440430197100204332606435934395\
    3094  919650053069892524027974091575173698894803107552411683630872\
    3095  565514028274910395383420510115859479233531504702656455261624\
    3096  525121293886827716275308028935388238178963278225114817400178\
    3097  138358373030159940110845417191798464503817960506134575572552\
    3098  914585335913528444536373142082490326061583126796147603336390\
    3099  503084982226891516248370317420733394038771780044922478150880\
    3100  480334844447412365553656029955296322473008695074712792828366\
    3101  405738282245039545396582938290818627301780773130202921675326\
    3102  417583673495241569334204568141534153408474297319168484568799\
    3103  451491133718839097374713416523361939237171154953070144389353\
    3104  699828605993755613252573941610133829557167740458222617685028\
    3105  690018342727148122013513056358815140027414679795450105000784\
    3106  206522215604435223172005007036171570530334304897008809135848\
    3107  675229547083561399988252552429769084290516103080260036003448\
    3108  294799988351419108088251107290628711358276092795741489822211\
    3109  879153727229891058795497426373608319405317602924241055836665\
    3110  412584135657242160003706626205312971822953452930840783143003\
    3111  733239017808969394445195220787737174218027747221253900890536\
    3112  730326425051240764874006627032589076376990325467270006751475\
    3113  463920721323985366812116303998245085483206258613663624851716\
    3114  293180303624443281556295689730668616708901429287181381627670\
    3115  203893651414675005136379365959571811951919653635887567699289\
    3116  348324076406793991923217469674198904524716009847788439650157\
    3117  995310043698774137542541699134940585662745702625097983274489\
    3118  141416414789061652098131796728731652650516767112149192122453\
    3119  562328802846445391417036742140146906572447511494124473885963\
    3120  235217227016424204095604485308686968373890645296189932416571\
    3121  281295736247619241329068636405743573306087991776733585972793\
    3122  132869616481671565021096885870153734254648327143225051745267\
    3123  530463119926261147612098111086806545372953526471421579845285\
    3124  862975776235466663857936867536855924718593170503922894779577\
    3125  706239977813334283740751103082483280516469722321753891088699\
    3126  714361755511843803441649441302693703577359971743834932539197\
    3127  595873998629500074441134301810890941848881837426270390549007\
    3128  490141375766653241037340192392236932759127069111401216220596\
    3129  540958515892047794438580629374176225297401789362125586732528\
    3130  367695144980519774116001979888033796577336271850743828263427\
    3131  598863925843301048044096576340652808516459551933515596083641\
    3132  0468395384832001e+4931L;
    3133  #endif
    3134  
    3135  extern void abort (void);
    3136  extern void exit (int);
    3137  
    3138  int
    3139  main (void)
    3140  {
    3141  #ifdef FLT_OK
    3142    if (f1a != f1ae
    3143        || f1b != f1be
    3144        || f1c != f1ce
    3145        || f2a != f2ae
    3146        || f2b != f2be
    3147        || f2c != f2ce
    3148        || f3a != f3ae
    3149        || f3b != f3be
    3150        || f3c != f3ce)
    3151      abort ();
    3152  #endif
    3153  #ifdef DBL_OK
    3154    if (d1a != d1ae
    3155        || d1b != d1be
    3156        || d1c != d1ce
    3157        || d2a != d2ae
    3158        || d2b != d2be
    3159        || d2c != d2ce
    3160        || d3a != d3ae
    3161        || d3b != d3be
    3162        || d3c != d3ce)
    3163      abort ();
    3164  #endif
    3165  #ifdef LDBL_OK
    3166    if (ld1a != ld1ae
    3167        || ld1b != ld1be
    3168        || ld1c != ld1ce
    3169        || ld2a != ld2ae
    3170        || ld2b != ld2be
    3171        || ld2c != ld2ce
    3172        || ld3a != ld3ae
    3173        || ld3b != ld3be
    3174        || ld3c != ld3ce)
    3175      abort ();
    3176  #endif
    3177    exit (0);
    3178  }