/* * parseFloat() tests. */ var WHITESPACE_CODEPOINTS = [ // from WhiteSpace production 0x0009, // 0x000B, // 0x000C, // 0x0020, // 0x00A0, // 0xFEFF, // // WhiteSpace production also has , which means any other Unicode // space separator (category Zs), which needs to be checked from (up to // date) Unicode data. The WhiteSpace-Z.txt file, created as part of // the build, currently contains (duplicates eliminated): // 0x0020, // 0020;SPACE;Zs;0;WS;;;;;N;;;;; // 0x00A0, // 00A0;NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;NON-BREAKING SPACE;;;; 0x1680, // 1680;OGHAM SPACE MARK;Zs;0;WS;;;;;N;;;;; 0x180E, // 180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;; 0x2000, // 2000;EN QUAD;Zs;0;WS;2002;;;;N;;;;; 0x2001, // 2001;EM QUAD;Zs;0;WS;2003;;;;N;;;;; 0x2002, // 2002;EN SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2003, // 2003;EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2004, // 2004;THREE-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2005, // 2005;FOUR-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2006, // 2006;SIX-PER-EM SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2007, // 2007;FIGURE SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2008, // 2008;PUNCTUATION SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x2009, // 2009;THIN SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x200A, // 200A;HAIR SPACE;Zs;0;WS; 0020;;;;N;;;;; // 0x2028, // 2028;LINE SEPARATOR;Zl;0;WS;;;;;N;;;;; // 0x2029, // 2029;PARAGRAPH SEPARATOR;Zp;0;B;;;;;N;;;;; 0x202F, // 202F;NARROW NO-BREAK SPACE;Zs;0;CS; 0020;;;;N;;;;; 0x205F, // 205F;MEDIUM MATHEMATICAL SPACE;Zs;0;WS; 0020;;;;N;;;;; 0x3000, // 3000;IDEOGRAPHIC SPACE;Zs;0;WS; 0020;;;;N;;;;; // from LineTerminator production 0x000a, // 0x000d, // 0x2028, // 0x2029, // ]; // indirect eval -> this is bound to the global object, E5 Section 10.4.2, step 1.a. var g = (function () { var e = eval; return e('this'); } )(); /*=== basic cases Infinity number Infinity +Infinity number Infinity -Infinity number -Infinity Infinity number Infinity +Infinity number Infinity -Infinity number -Infinity Infinityxyz number Infinity +Infinityxyz number Infinity -Infinityxyz number -Infinity 123. number 123 +123. number 123 -123. number -123 123. number 123 +123. number 123 -123. number -123 123.xyz number 123 +123.xyz number 123 -123.xyz number -123 123.e1 number 1230 +123.e1 number 1230 -123.e1 number -1230 123.e1 number 1230 +123.e1 number 1230 -123.e1 number -1230 123.e1xyz number 1230 +123.e1xyz number 1230 -123.e1xyz number -1230 123.+e1 number 123 +123.+e1 number 123 -123.+e1 number -123 123.+e1 number 123 +123.+e1 number 123 -123.+e1 number -123 123.+e1xyz number 123 +123.+e1xyz number 123 -123.+e1xyz number -123 123.-e1 number 123 +123.-e1 number 123 -123.-e1 number -123 123.-e1 number 123 +123.-e1 number 123 -123.-e1 number -123 123.-e1xyz number 123 +123.-e1xyz number 123 -123.-e1xyz number -123 123.4 number 123.4 +123.4 number 123.4 -123.4 number -123.4 123.4 number 123.4 +123.4 number 123.4 -123.4 number -123.4 123.4xyz number 123.4 +123.4xyz number 123.4 -123.4xyz number -123.4 123.4e1 number 1234 +123.4e1 number 1234 -123.4e1 number -1234 123.4e1 number 1234 +123.4e1 number 1234 -123.4e1 number -1234 123.4e1xyz number 1234 +123.4e1xyz number 1234 -123.4e1xyz number -1234 123.4e+1 number 1234 +123.4e+1 number 1234 -123.4e+1 number -1234 123.4e+1 number 1234 +123.4e+1 number 1234 -123.4e+1 number -1234 123.4e+1xyz number 1234 +123.4e+1xyz number 1234 -123.4e+1xyz number -1234 123.4e-1 number 12.34 +123.4e-1 number 12.34 -123.4e-1 number -12.34 123.4e-1 number 12.34 +123.4e-1 number 12.34 -123.4e-1 number -12.34 123.4e-1xyz number 12.34 +123.4e-1xyz number 12.34 -123.4e-1xyz number -12.34 .123 number 0.123 +.123 number 0.123 -.123 number -0.123 .123 number 0.123 +.123 number 0.123 -.123 number -0.123 .123xyz number 0.123 +.123xyz number 0.123 -.123xyz number -0.123 .123e1 number 1.23 +.123e1 number 1.23 -.123e1 number -1.23 .123e1 number 1.23 +.123e1 number 1.23 -.123e1 number -1.23 .123e1xyz number 1.23 +.123e1xyz number 1.23 -.123e1xyz number -1.23 .123e+1 number 1.23 +.123e+1 number 1.23 -.123e+1 number -1.23 .123e+1 number 1.23 +.123e+1 number 1.23 -.123e+1 number -1.23 .123e+1xyz number 1.23 +.123e+1xyz number 1.23 -.123e+1xyz number -1.23 .123e-1 number 0.0123 +.123e-1 number 0.0123 -.123e-1 number -0.0123 .123e-1 number 0.0123 +.123e-1 number 0.0123 -.123e-1 number -0.0123 .123e-1xyz number 0.0123 +.123e-1xyz number 0.0123 -.123e-1xyz number -0.0123 123 number 123 +123 number 123 -123 number -123 123 number 123 +123 number 123 -123 number -123 123xyz number 123 +123xyz number 123 -123xyz number -123 123e1 number 1230 +123e1 number 1230 -123e1 number -1230 123e1 number 1230 +123e1 number 1230 -123e1 number -1230 123e1xyz number 1230 +123e1xyz number 1230 -123e1xyz number -1230 123e+1 number 1230 +123e+1 number 1230 -123e+1 number -1230 123e+1 number 1230 +123e+1 number 1230 -123e+1 number -1230 123e+1xyz number 1230 +123e+1xyz number 1230 -123e+1xyz number -1230 123e-1 number 12.3 +123e-1 number 12.3 -123e-1 number -12.3 123e-1 number 12.3 +123e-1 number 12.3 -123e-1 number -12.3 123e-1xyz number 12.3 +123e-1xyz number 12.3 -123e-1xyz number -12.3 not-a-number number NaN +not-a-number number NaN -not-a-number number NaN not-a-number number NaN +not-a-number number NaN -not-a-number number NaN not-a-numberxyz number NaN +not-a-numberxyz number NaN -not-a-numberxyz number NaN ===*/ /* Test basic grammar cases. The relevant grammar rule is StrDecimalLiteral. */ print('basic cases'); function basicTest() { var base_values = [ 'Infinity', '123.', '123.e1', '123.+e1', '123.-e1', '123.4', '123.4e1', '123.4e+1', '123.4e-1', '.123', '.123e1', '.123e+1', '.123e-1', '123', '123e1', '123e+1', '123e-1', 'not-a-number', ]; var tests = []; var i; var t; for (i = 0; i < base_values.length; i++) { t = base_values[i]; tests.push('' + t); tests.push('+' + t); tests.push('-' + t); tests.push(' ' + t); tests.push(' +' + t); tests.push(' -' + t); tests.push(' ' + t + 'xyz'); tests.push(' +' + t + 'xyz'); tests.push(' -' + t + 'xyz'); } for (i = 0; i < tests.length; i++) { t = g.parseFloat(tests[i]); print(tests[i], typeof t, t); } } try { basicTest(); } catch (e) { print(e.name); } /*=== coercion toString() 123.4 ===*/ /* parseFloat coercion: ToString() followed by string parsing. */ print('coercion'); try { print(g.parseFloat( { toString: function() { print('toString()'); return '123.4'; }, valueOf: function() { print('valueOf()'); return 123.4; } } )); } catch (e) { print(e.name); } /*=== whitespace strip test 321.4 123.4 123.4 ===*/ /* White space trimming. */ print('whitespace strip test'); function whiteSpaceStripTest() { var t = []; var i; var txt; // a simple test with only ASCII whitespace txt = '\u0009\u000b\u000c\u0020\u00a0\u000a\u000d321.4'; print(g.parseFloat(txt)); // txt will contain every whitespace codepoint followed by the number for (i = 0; i < WHITESPACE_CODEPOINTS.length; i++) { t.push(String.fromCharCode(WHITESPACE_CODEPOINTS[i])); } t.push('123.4'); txt = t.join(''); print(g.parseFloat(txt)); // try with trailing garbage, should be allowed print(g.parseFloat(txt + 'xyz')); } try { whiteSpaceStripTest(); } catch (e) { print(e.name); } /*=== trailing garbage 123 1230 1230 123.4 123.4 123.4 123.4 ===*/ /* Trailing garbage is ignored. */ print('trailing garbage'); function trailingGarbageTest() { print(g.parseFloat('123xxx')); print(g.parseFloat('123e1')); print(g.parseFloat('123e1e2')); // second 'e' is garbage print(g.parseFloat('123.4')); print(g.parseFloat('123.4.5')); // second '.' is garbage print(g.parseFloat('123.4\u0000')); print(g.parseFloat('123.4\ufedc')); // XXX: more cases } try { trailingGarbageTest(); } catch (e) { print(e.name); } /*=== infinity number Infinity number Infinity number Infinity number -Infinity number NaN number NaN ===*/ /* 'Infinity' is parsed; case sensitive. Don't parse 'inf'. */ print('infinity'); function infinityTest() { var t; t = g.parseFloat('Infinity'); print(typeof t, t); t = g.parseFloat(' InfinityXXX'); print(typeof t, t); t = g.parseFloat(' +InfinityXXX'); print(typeof t, t); t = g.parseFloat(' -InfinityXXX'); print(typeof t, t); t = g.parseFloat('infinity'); print(typeof t, t); t = g.parseFloat('inf'); print(typeof t, t); } try { infinityTest(); } catch (e) { print(e.name); } /* Leading plus/minus sign is accepted. */ /*=== hex/oct number 0 number 0 number 0 number 0 number 77 number 88 number 99 ===*/ /* Hex/oct is not accepted. * * If a number begins with '0x' or '0X' it gets parsed as a zero. The 'x'/'X' * character will be considered garbage and terminates the number. * * If a number has leading zeroes, they will be accepted as part of the decimal * value. StrDecimalLiteral (unlike DecimalLiteral) accepts leading zeroes. */ print('hex/oct'); function hexOctTest() { var t; t = g.parseFloat('0x1234'); print(typeof t, t); t = g.parseFloat('0xcafe'); print(typeof t, t); t = g.parseFloat('0X1234'); print(typeof t, t); t = g.parseFloat('0Xcafe'); print(typeof t, t); t = g.parseFloat('077'); print(typeof t, t); t = g.parseFloat('088'); print(typeof t, t); t = g.parseFloat('099'); print(typeof t, t); } try { hexOctTest(); } catch (e) { print(e.name); } /*=== exactness 0 1 1 true 1 2 2 true 2 4 4 true 3 8 8 true 4 16 16 true 5 32 32 true 6 64 64 true 7 128 128 true 8 256 256 true 9 512 512 true 10 1024 1024 true 11 2048 2048 true 12 4096 4096 true 13 8192 8192 true 14 16384 16384 true 15 32768 32768 true 16 65536 65536 true 17 131072 131072 true 18 262144 262144 true 19 524288 524288 true 20 1048576 1048576 true 21 2097152 2097152 true 22 4194304 4194304 true 23 8388608 8388608 true 24 16777216 16777216 true 25 33554432 33554432 true 26 67108864 67108864 true 27 134217728 134217728 true 28 268435456 268435456 true 29 536870912 536870912 true 30 1073741824 1073741824 true 31 2147483648 2147483648 true 32 4294967296 4294967296 true 33 8589934592 8589934592 true 34 17179869184 17179869184 true 35 34359738368 34359738368 true 36 68719476736 68719476736 true 37 137438953472 137438953472 true 38 274877906944 274877906944 true 39 549755813888 549755813888 true 40 1099511627776 1099511627776 true 41 2199023255552 2199023255552 true 42 4398046511104 4398046511104 true 43 8796093022208 8796093022208 true 44 17592186044416 17592186044416 true 45 35184372088832 35184372088832 true 46 70368744177664 70368744177664 true 47 140737488355328 140737488355328 true 48 281474976710656 281474976710656 true 49 562949953421312 562949953421312 true 50 1125899906842624 1125899906842624 true 51 2251799813685248 2251799813685248 true 52 4503599627370496 4503599627370496 true 53 9007199254740992 9007199254740992 true 54 18014398509481984 18014398509481984 true 55 36028797018963970 36028797018963970 true 56 72057594037927940 72057594037927940 true 57 144115188075855870 144115188075855870 true 58 288230376151711740 288230376151711740 true 59 576460752303423500 576460752303423500 true 60 1152921504606847000 1152921504606847000 true 61 2305843009213694000 2305843009213694000 true 62 4611686018427388000 4611686018427388000 true 63 9223372036854776000 9223372036854776000 true 64 18446744073709552000 18446744073709552000 true 65 36893488147419103000 36893488147419103000 true 66 73786976294838210000 73786976294838210000 true 67 147573952589676410000 147573952589676410000 true 68 295147905179352830000 295147905179352830000 true 69 590295810358705700000 590295810358705700000 true 70 1.1805916207174113e+21 1.1805916207174113e+21 true 71 2.3611832414348226e+21 2.3611832414348226e+21 true 72 4.722366482869645e+21 4.722366482869645e+21 true 73 9.44473296573929e+21 9.44473296573929e+21 true 74 1.888946593147858e+22 1.888946593147858e+22 true 75 3.777893186295716e+22 3.777893186295716e+22 true 76 7.555786372591432e+22 7.555786372591432e+22 true 77 1.5111572745182865e+23 1.5111572745182865e+23 true 78 3.022314549036573e+23 3.022314549036573e+23 true 79 6.044629098073146e+23 6.044629098073146e+23 true 80 1.2089258196146292e+24 1.2089258196146292e+24 true 81 2.4178516392292583e+24 2.4178516392292583e+24 true 82 4.835703278458517e+24 4.835703278458517e+24 true 83 9.671406556917033e+24 9.671406556917033e+24 true 84 1.9342813113834067e+25 1.9342813113834067e+25 true 85 3.8685626227668134e+25 3.8685626227668134e+25 true 86 7.737125245533627e+25 7.737125245533627e+25 true 87 1.5474250491067253e+26 1.5474250491067253e+26 true 88 3.094850098213451e+26 3.094850098213451e+26 true 89 6.189700196426902e+26 6.189700196426902e+26 true 90 1.2379400392853803e+27 1.2379400392853803e+27 true 91 2.4758800785707605e+27 2.4758800785707605e+27 true 92 4.951760157141521e+27 4.951760157141521e+27 true 93 9.903520314283042e+27 9.903520314283042e+27 true 94 1.9807040628566084e+28 1.9807040628566084e+28 true 95 3.961408125713217e+28 3.961408125713217e+28 true 96 7.922816251426434e+28 7.922816251426434e+28 true 97 1.5845632502852868e+29 1.5845632502852868e+29 true 98 3.1691265005705735e+29 3.1691265005705735e+29 true 99 6.338253001141147e+29 6.338253001141147e+29 true 100 1.2676506002282294e+30 1.2676506002282294e+30 true 101 2.535301200456459e+30 2.535301200456459e+30 true 102 5.070602400912918e+30 5.070602400912918e+30 true 103 1.0141204801825835e+31 1.0141204801825835e+31 true 104 2.028240960365167e+31 2.028240960365167e+31 true 105 4.056481920730334e+31 4.056481920730334e+31 true 106 8.112963841460668e+31 8.112963841460668e+31 true 107 1.6225927682921336e+32 1.6225927682921336e+32 true 108 3.2451855365842673e+32 3.2451855365842673e+32 true 109 6.490371073168535e+32 6.490371073168535e+32 true 110 1.298074214633707e+33 1.298074214633707e+33 true 111 2.596148429267414e+33 2.596148429267414e+33 true 112 5.192296858534828e+33 5.192296858534828e+33 true 113 1.0384593717069655e+34 1.0384593717069655e+34 true 114 2.076918743413931e+34 2.076918743413931e+34 true 115 4.153837486827862e+34 4.153837486827862e+34 true 116 8.307674973655724e+34 8.307674973655724e+34 true 117 1.661534994731145e+35 1.661534994731145e+35 true 118 3.32306998946229e+35 3.32306998946229e+35 true 119 6.64613997892458e+35 6.64613997892458e+35 true 120 1.329227995784916e+36 1.329227995784916e+36 true 121 2.658455991569832e+36 2.658455991569832e+36 true 122 5.316911983139664e+36 5.316911983139664e+36 true 123 1.0633823966279327e+37 1.0633823966279327e+37 true 124 2.1267647932558654e+37 2.1267647932558654e+37 true 125 4.253529586511731e+37 4.253529586511731e+37 true 126 8.507059173023462e+37 8.507059173023462e+37 true 127 1.7014118346046923e+38 1.7014118346046923e+38 true 128 3.402823669209385e+38 3.402823669209385e+38 true 129 6.80564733841877e+38 6.80564733841877e+38 true 130 1.361129467683754e+39 1.361129467683754e+39 true 131 2.722258935367508e+39 2.722258935367508e+39 true 132 5.444517870735016e+39 5.444517870735016e+39 true 133 1.0889035741470031e+40 1.0889035741470031e+40 true 134 2.1778071482940062e+40 2.1778071482940062e+40 true 135 4.3556142965880123e+40 4.3556142965880123e+40 true 136 8.711228593176025e+40 8.711228593176025e+40 true 137 1.742245718635205e+41 1.742245718635205e+41 true 138 3.48449143727041e+41 3.48449143727041e+41 true 139 6.96898287454082e+41 6.96898287454082e+41 true 140 1.393796574908164e+42 1.393796574908164e+42 true 141 2.787593149816328e+42 2.787593149816328e+42 true 142 5.575186299632656e+42 5.575186299632656e+42 true 143 1.1150372599265312e+43 1.1150372599265312e+43 true 144 2.2300745198530623e+43 2.2300745198530623e+43 true 145 4.460149039706125e+43 4.460149039706125e+43 true 146 8.92029807941225e+43 8.92029807941225e+43 true 147 1.78405961588245e+44 1.78405961588245e+44 true 148 3.5681192317649e+44 3.5681192317649e+44 true 149 7.1362384635298e+44 7.1362384635298e+44 true 150 1.42724769270596e+45 1.42724769270596e+45 true 151 2.85449538541192e+45 2.85449538541192e+45 true 152 5.70899077082384e+45 5.70899077082384e+45 true 153 1.141798154164768e+46 1.141798154164768e+46 true 154 2.283596308329536e+46 2.283596308329536e+46 true 155 4.567192616659072e+46 4.567192616659072e+46 true 156 9.134385233318143e+46 9.134385233318143e+46 true 157 1.8268770466636286e+47 1.8268770466636286e+47 true 158 3.6537540933272573e+47 3.6537540933272573e+47 true 159 7.307508186654515e+47 7.307508186654515e+47 true 160 1.461501637330903e+48 1.461501637330903e+48 true 161 2.923003274661806e+48 2.923003274661806e+48 true 162 5.846006549323612e+48 5.846006549323612e+48 true 163 1.1692013098647223e+49 1.1692013098647223e+49 true 164 2.3384026197294447e+49 2.3384026197294447e+49 true 165 4.6768052394588893e+49 4.6768052394588893e+49 true 166 9.353610478917779e+49 9.353610478917779e+49 true 167 1.8707220957835557e+50 1.8707220957835557e+50 true 168 3.7414441915671115e+50 3.7414441915671115e+50 true 169 7.482888383134223e+50 7.482888383134223e+50 true 170 1.4965776766268446e+51 1.4965776766268446e+51 true 171 2.9931553532536892e+51 2.9931553532536892e+51 true 172 5.986310706507379e+51 5.986310706507379e+51 true 173 1.1972621413014757e+52 1.1972621413014757e+52 true 174 2.3945242826029513e+52 2.3945242826029513e+52 true 175 4.789048565205903e+52 4.789048565205903e+52 true 176 9.578097130411805e+52 9.578097130411805e+52 true 177 1.915619426082361e+53 1.915619426082361e+53 true 178 3.831238852164722e+53 3.831238852164722e+53 true 179 7.662477704329444e+53 7.662477704329444e+53 true 180 1.532495540865889e+54 1.532495540865889e+54 true 181 3.064991081731778e+54 3.064991081731778e+54 true 182 6.129982163463556e+54 6.129982163463556e+54 true 183 1.2259964326927111e+55 1.2259964326927111e+55 true 184 2.4519928653854222e+55 2.4519928653854222e+55 true 185 4.9039857307708443e+55 4.9039857307708443e+55 true 186 9.807971461541689e+55 9.807971461541689e+55 true 187 1.9615942923083377e+56 1.9615942923083377e+56 true 188 3.9231885846166755e+56 3.9231885846166755e+56 true 189 7.846377169233351e+56 7.846377169233351e+56 true 190 1.5692754338466702e+57 1.5692754338466702e+57 true 191 3.1385508676933404e+57 3.1385508676933404e+57 true 192 6.277101735386681e+57 6.277101735386681e+57 true 193 1.2554203470773362e+58 1.2554203470773362e+58 true 194 2.5108406941546723e+58 2.5108406941546723e+58 true 195 5.021681388309345e+58 5.021681388309345e+58 true 196 1.004336277661869e+59 1.004336277661869e+59 true 197 2.008672555323738e+59 2.008672555323738e+59 true 198 4.017345110647476e+59 4.017345110647476e+59 true 199 8.034690221294951e+59 8.034690221294951e+59 true 200 1.6069380442589903e+60 1.6069380442589903e+60 true 201 3.2138760885179806e+60 3.2138760885179806e+60 true 202 6.427752177035961e+60 6.427752177035961e+60 true 203 1.2855504354071922e+61 1.2855504354071922e+61 true 204 2.5711008708143844e+61 2.5711008708143844e+61 true 205 5.142201741628769e+61 5.142201741628769e+61 true 206 1.0284403483257538e+62 1.0284403483257538e+62 true 207 2.0568806966515076e+62 2.0568806966515076e+62 true 208 4.113761393303015e+62 4.113761393303015e+62 true 209 8.22752278660603e+62 8.22752278660603e+62 true 210 1.645504557321206e+63 1.645504557321206e+63 true 211 3.291009114642412e+63 3.291009114642412e+63 true 212 6.582018229284824e+63 6.582018229284824e+63 true 213 1.3164036458569648e+64 1.3164036458569648e+64 true 214 2.6328072917139297e+64 2.6328072917139297e+64 true 215 5.2656145834278593e+64 5.2656145834278593e+64 true 216 1.0531229166855719e+65 1.0531229166855719e+65 true 217 2.1062458333711437e+65 2.1062458333711437e+65 true 218 4.2124916667422875e+65 4.2124916667422875e+65 true 219 8.424983333484575e+65 8.424983333484575e+65 true 220 1.684996666696915e+66 1.684996666696915e+66 true 221 3.36999333339383e+66 3.36999333339383e+66 true 222 6.73998666678766e+66 6.73998666678766e+66 true 223 1.347997333357532e+67 1.347997333357532e+67 true 224 2.695994666715064e+67 2.695994666715064e+67 true 225 5.391989333430128e+67 5.391989333430128e+67 true 226 1.0783978666860256e+68 1.0783978666860256e+68 true 227 2.1567957333720512e+68 2.1567957333720512e+68 true 228 4.3135914667441024e+68 4.3135914667441024e+68 true 229 8.627182933488205e+68 8.627182933488205e+68 true 230 1.725436586697641e+69 1.725436586697641e+69 true 231 3.450873173395282e+69 3.450873173395282e+69 true 232 6.901746346790564e+69 6.901746346790564e+69 true 233 1.3803492693581128e+70 1.3803492693581128e+70 true 234 2.7606985387162255e+70 2.7606985387162255e+70 true 235 5.521397077432451e+70 5.521397077432451e+70 true 236 1.1042794154864902e+71 1.1042794154864902e+71 true 237 2.2085588309729804e+71 2.2085588309729804e+71 true 238 4.417117661945961e+71 4.417117661945961e+71 true 239 8.834235323891922e+71 8.834235323891922e+71 true 240 1.7668470647783843e+72 1.7668470647783843e+72 true 241 3.533694129556769e+72 3.533694129556769e+72 true 242 7.067388259113537e+72 7.067388259113537e+72 true 243 1.4134776518227075e+73 1.4134776518227075e+73 true 244 2.826955303645415e+73 2.826955303645415e+73 true 245 5.65391060729083e+73 5.65391060729083e+73 true 246 1.130782121458166e+74 1.130782121458166e+74 true 247 2.261564242916332e+74 2.261564242916332e+74 true 248 4.523128485832664e+74 4.523128485832664e+74 true 249 9.046256971665328e+74 9.046256971665328e+74 true 250 1.8092513943330656e+75 1.8092513943330656e+75 true 251 3.618502788666131e+75 3.618502788666131e+75 true 252 7.237005577332262e+75 7.237005577332262e+75 true 253 1.4474011154664524e+76 1.4474011154664524e+76 true 254 2.894802230932905e+76 2.894802230932905e+76 true 255 5.78960446186581e+76 5.78960446186581e+76 true 256 1.157920892373162e+77 1.157920892373162e+77 true 257 2.315841784746324e+77 2.315841784746324e+77 true 258 4.631683569492648e+77 4.631683569492648e+77 true 259 9.263367138985296e+77 9.263367138985296e+77 true 260 1.8526734277970591e+78 1.8526734277970591e+78 true 261 3.7053468555941183e+78 3.7053468555941183e+78 true 262 7.410693711188237e+78 7.410693711188237e+78 true 263 1.4821387422376473e+79 1.4821387422376473e+79 true 264 2.9642774844752946e+79 2.9642774844752946e+79 true 265 5.928554968950589e+79 5.928554968950589e+79 true 266 1.1857109937901178e+80 1.1857109937901178e+80 true 267 2.3714219875802357e+80 2.3714219875802357e+80 true 268 4.7428439751604714e+80 4.7428439751604714e+80 true 269 9.485687950320943e+80 9.485687950320943e+80 true 270 1.8971375900641885e+81 1.8971375900641885e+81 true 271 3.794275180128377e+81 3.794275180128377e+81 true 272 7.588550360256754e+81 7.588550360256754e+81 true 273 1.517710072051351e+82 1.517710072051351e+82 true 274 3.035420144102702e+82 3.035420144102702e+82 true 275 6.070840288205404e+82 6.070840288205404e+82 true 276 1.2141680576410807e+83 1.2141680576410807e+83 true 277 2.4283361152821613e+83 2.4283361152821613e+83 true 278 4.856672230564323e+83 4.856672230564323e+83 true 279 9.713344461128645e+83 9.713344461128645e+83 true 280 1.942668892225729e+84 1.942668892225729e+84 true 281 3.885337784451458e+84 3.885337784451458e+84 true 282 7.770675568902916e+84 7.770675568902916e+84 true 283 1.5541351137805833e+85 1.5541351137805833e+85 true 284 3.1082702275611665e+85 3.1082702275611665e+85 true 285 6.216540455122333e+85 6.216540455122333e+85 true 286 1.2433080910244666e+86 1.2433080910244666e+86 true 287 2.4866161820489332e+86 2.4866161820489332e+86 true 288 4.9732323640978664e+86 4.9732323640978664e+86 true 289 9.946464728195733e+86 9.946464728195733e+86 true 290 1.9892929456391466e+87 1.9892929456391466e+87 true 291 3.978585891278293e+87 3.978585891278293e+87 true 292 7.957171782556586e+87 7.957171782556586e+87 true 293 1.5914343565113173e+88 1.5914343565113173e+88 true 294 3.1828687130226345e+88 3.1828687130226345e+88 true 295 6.365737426045269e+88 6.365737426045269e+88 true 296 1.2731474852090538e+89 1.2731474852090538e+89 true 297 2.5462949704181076e+89 2.5462949704181076e+89 true 298 5.092589940836215e+89 5.092589940836215e+89 true 299 1.018517988167243e+90 1.018517988167243e+90 true 300 2.037035976334486e+90 2.037035976334486e+90 true 301 4.074071952668972e+90 4.074071952668972e+90 true 302 8.148143905337944e+90 8.148143905337944e+90 true 303 1.629628781067589e+91 1.629628781067589e+91 true 304 3.259257562135178e+91 3.259257562135178e+91 true 305 6.518515124270356e+91 6.518515124270356e+91 true 306 1.3037030248540711e+92 1.3037030248540711e+92 true 307 2.6074060497081422e+92 2.6074060497081422e+92 true 308 5.2148120994162844e+92 5.2148120994162844e+92 true 309 1.0429624198832569e+93 1.0429624198832569e+93 true 310 2.0859248397665138e+93 2.0859248397665138e+93 true 311 4.1718496795330275e+93 4.1718496795330275e+93 true 312 8.343699359066055e+93 8.343699359066055e+93 true 313 1.668739871813211e+94 1.668739871813211e+94 true 314 3.337479743626422e+94 3.337479743626422e+94 true 315 6.674959487252844e+94 6.674959487252844e+94 true 316 1.3349918974505688e+95 1.3349918974505688e+95 true 317 2.6699837949011376e+95 2.6699837949011376e+95 true 318 5.339967589802275e+95 5.339967589802275e+95 true 319 1.067993517960455e+96 1.067993517960455e+96 true 320 2.13598703592091e+96 2.13598703592091e+96 true 321 4.27197407184182e+96 4.27197407184182e+96 true 322 8.54394814368364e+96 8.54394814368364e+96 true 323 1.708789628736728e+97 1.708789628736728e+97 true 324 3.417579257473456e+97 3.417579257473456e+97 true 325 6.835158514946912e+97 6.835158514946912e+97 true 326 1.3670317029893825e+98 1.3670317029893825e+98 true 327 2.734063405978765e+98 2.734063405978765e+98 true 328 5.46812681195753e+98 5.46812681195753e+98 true 329 1.093625362391506e+99 1.093625362391506e+99 true 330 2.187250724783012e+99 2.187250724783012e+99 true 331 4.374501449566024e+99 4.374501449566024e+99 true 332 8.749002899132048e+99 8.749002899132048e+99 true 333 1.7498005798264095e+100 1.7498005798264095e+100 true 334 3.499601159652819e+100 3.499601159652819e+100 true 335 6.999202319305638e+100 6.999202319305638e+100 true 336 1.3998404638611276e+101 1.3998404638611276e+101 true 337 2.7996809277222553e+101 2.7996809277222553e+101 true 338 5.599361855444511e+101 5.599361855444511e+101 true 339 1.1198723710889021e+102 1.1198723710889021e+102 true 340 2.2397447421778042e+102 2.2397447421778042e+102 true 341 4.4794894843556084e+102 4.4794894843556084e+102 true 342 8.958978968711217e+102 8.958978968711217e+102 true 343 1.7917957937422434e+103 1.7917957937422434e+103 true 344 3.583591587484487e+103 3.583591587484487e+103 true 345 7.167183174968974e+103 7.167183174968974e+103 true 346 1.4334366349937947e+104 1.4334366349937947e+104 true 347 2.8668732699875894e+104 2.8668732699875894e+104 true 348 5.733746539975179e+104 5.733746539975179e+104 true 349 1.1467493079950358e+105 1.1467493079950358e+105 true 350 2.2934986159900715e+105 2.2934986159900715e+105 true 351 4.586997231980143e+105 4.586997231980143e+105 true 352 9.173994463960286e+105 9.173994463960286e+105 true 353 1.8347988927920572e+106 1.8347988927920572e+106 true 354 3.6695977855841144e+106 3.6695977855841144e+106 true 355 7.339195571168229e+106 7.339195571168229e+106 true 356 1.4678391142336458e+107 1.4678391142336458e+107 true 357 2.9356782284672915e+107 2.9356782284672915e+107 true 358 5.871356456934583e+107 5.871356456934583e+107 true 359 1.1742712913869166e+108 1.1742712913869166e+108 true 360 2.3485425827738332e+108 2.3485425827738332e+108 true 361 4.6970851655476665e+108 4.6970851655476665e+108 true 362 9.394170331095333e+108 9.394170331095333e+108 true 363 1.8788340662190666e+109 1.8788340662190666e+109 true 364 3.757668132438133e+109 3.757668132438133e+109 true 365 7.515336264876266e+109 7.515336264876266e+109 true 366 1.5030672529752533e+110 1.5030672529752533e+110 true 367 3.0061345059505065e+110 3.0061345059505065e+110 true 368 6.012269011901013e+110 6.012269011901013e+110 true 369 1.2024538023802026e+111 1.2024538023802026e+111 true 370 2.4049076047604052e+111 2.4049076047604052e+111 true 371 4.8098152095208105e+111 4.8098152095208105e+111 true 372 9.619630419041621e+111 9.619630419041621e+111 true 373 1.9239260838083242e+112 1.9239260838083242e+112 true 374 3.8478521676166484e+112 3.8478521676166484e+112 true 375 7.695704335233297e+112 7.695704335233297e+112 true 376 1.5391408670466593e+113 1.5391408670466593e+113 true 377 3.078281734093319e+113 3.078281734093319e+113 true 378 6.156563468186638e+113 6.156563468186638e+113 true 379 1.2313126936373275e+114 1.2313126936373275e+114 true 380 2.462625387274655e+114 2.462625387274655e+114 true 381 4.92525077454931e+114 4.92525077454931e+114 true 382 9.85050154909862e+114 9.85050154909862e+114 true 383 1.970100309819724e+115 1.970100309819724e+115 true 384 3.940200619639448e+115 3.940200619639448e+115 true 385 7.880401239278896e+115 7.880401239278896e+115 true 386 1.5760802478557792e+116 1.5760802478557792e+116 true 387 3.1521604957115583e+116 3.1521604957115583e+116 true 388 6.304320991423117e+116 6.304320991423117e+116 true 389 1.2608641982846233e+117 1.2608641982846233e+117 true 390 2.5217283965692467e+117 2.5217283965692467e+117 true 391 5.0434567931384933e+117 5.0434567931384933e+117 true 392 1.0086913586276987e+118 1.0086913586276987e+118 true 393 2.0173827172553973e+118 2.0173827172553973e+118 true 394 4.034765434510795e+118 4.034765434510795e+118 true 395 8.06953086902159e+118 8.06953086902159e+118 true 396 1.613906173804318e+119 1.613906173804318e+119 true 397 3.227812347608636e+119 3.227812347608636e+119 true 398 6.455624695217272e+119 6.455624695217272e+119 true 399 1.2911249390434543e+120 1.2911249390434543e+120 true 400 2.5822498780869086e+120 2.5822498780869086e+120 true 401 5.164499756173817e+120 5.164499756173817e+120 true 402 1.0328999512347634e+121 1.0328999512347634e+121 true 403 2.065799902469527e+121 2.065799902469527e+121 true 404 4.131599804939054e+121 4.131599804939054e+121 true 405 8.263199609878108e+121 8.263199609878108e+121 true 406 1.6526399219756215e+122 1.6526399219756215e+122 true 407 3.305279843951243e+122 3.305279843951243e+122 true 408 6.610559687902486e+122 6.610559687902486e+122 true 409 1.3221119375804972e+123 1.3221119375804972e+123 true 410 2.6442238751609944e+123 2.6442238751609944e+123 true 411 5.288447750321989e+123 5.288447750321989e+123 true 412 1.0576895500643978e+124 1.0576895500643978e+124 true 413 2.1153791001287955e+124 2.1153791001287955e+124 true 414 4.230758200257591e+124 4.230758200257591e+124 true 415 8.461516400515182e+124 8.461516400515182e+124 true 416 1.6923032801030364e+125 1.6923032801030364e+125 true 417 3.384606560206073e+125 3.384606560206073e+125 true 418 6.769213120412146e+125 6.769213120412146e+125 true 419 1.3538426240824291e+126 1.3538426240824291e+126 true 420 2.7076852481648583e+126 2.7076852481648583e+126 true 421 5.415370496329717e+126 5.415370496329717e+126 true 422 1.0830740992659433e+127 1.0830740992659433e+127 true 423 2.1661481985318866e+127 2.1661481985318866e+127 true 424 4.332296397063773e+127 4.332296397063773e+127 true 425 8.664592794127546e+127 8.664592794127546e+127 true 426 1.7329185588255093e+128 1.7329185588255093e+128 true 427 3.4658371176510186e+128 3.4658371176510186e+128 true 428 6.931674235302037e+128 6.931674235302037e+128 true 429 1.3863348470604074e+129 1.3863348470604074e+129 true 430 2.772669694120815e+129 2.772669694120815e+129 true 431 5.54533938824163e+129 5.54533938824163e+129 true 432 1.109067877648326e+130 1.109067877648326e+130 true 433 2.218135755296652e+130 2.218135755296652e+130 true 434 4.436271510593304e+130 4.436271510593304e+130 true 435 8.872543021186608e+130 8.872543021186608e+130 true 436 1.7745086042373215e+131 1.7745086042373215e+131 true 437 3.549017208474643e+131 3.549017208474643e+131 true 438 7.098034416949286e+131 7.098034416949286e+131 true 439 1.4196068833898572e+132 1.4196068833898572e+132 true 440 2.8392137667797144e+132 2.8392137667797144e+132 true 441 5.678427533559429e+132 5.678427533559429e+132 true 442 1.1356855067118858e+133 1.1356855067118858e+133 true 443 2.2713710134237715e+133 2.2713710134237715e+133 true 444 4.542742026847543e+133 4.542742026847543e+133 true 445 9.085484053695086e+133 9.085484053695086e+133 true 446 1.8170968107390172e+134 1.8170968107390172e+134 true 447 3.6341936214780345e+134 3.6341936214780345e+134 true 448 7.268387242956069e+134 7.268387242956069e+134 true 449 1.4536774485912138e+135 1.4536774485912138e+135 true 450 2.9073548971824276e+135 2.9073548971824276e+135 true 451 5.814709794364855e+135 5.814709794364855e+135 true 452 1.162941958872971e+136 1.162941958872971e+136 true 453 2.325883917745942e+136 2.325883917745942e+136 true 454 4.651767835491884e+136 4.651767835491884e+136 true 455 9.303535670983768e+136 9.303535670983768e+136 true 456 1.8607071341967536e+137 1.8607071341967536e+137 true 457 3.7214142683935073e+137 3.7214142683935073e+137 true 458 7.442828536787015e+137 7.442828536787015e+137 true 459 1.488565707357403e+138 1.488565707357403e+138 true 460 2.977131414714806e+138 2.977131414714806e+138 true 461 5.954262829429612e+138 5.954262829429612e+138 true 462 1.1908525658859223e+139 1.1908525658859223e+139 true 463 2.3817051317718447e+139 2.3817051317718447e+139 true 464 4.7634102635436893e+139 4.7634102635436893e+139 true 465 9.526820527087379e+139 9.526820527087379e+139 true 466 1.9053641054174757e+140 1.9053641054174757e+140 true 467 3.8107282108349515e+140 3.8107282108349515e+140 true 468 7.621456421669903e+140 7.621456421669903e+140 true 469 1.5242912843339806e+141 1.5242912843339806e+141 true 470 3.048582568667961e+141 3.048582568667961e+141 true 471 6.097165137335922e+141 6.097165137335922e+141 true 472 1.2194330274671845e+142 1.2194330274671845e+142 true 473 2.438866054934369e+142 2.438866054934369e+142 true 474 4.877732109868738e+142 4.877732109868738e+142 true 475 9.755464219737476e+142 9.755464219737476e+142 true 476 1.9510928439474951e+143 1.9510928439474951e+143 true 477 3.9021856878949903e+143 3.9021856878949903e+143 true 478 7.804371375789981e+143 7.804371375789981e+143 true 479 1.5608742751579961e+144 1.5608742751579961e+144 true 480 3.1217485503159922e+144 3.1217485503159922e+144 true 481 6.243497100631985e+144 6.243497100631985e+144 true 482 1.248699420126397e+145 1.248699420126397e+145 true 483 2.497398840252794e+145 2.497398840252794e+145 true 484 4.994797680505588e+145 4.994797680505588e+145 true 485 9.989595361011175e+145 9.989595361011175e+145 true 486 1.997919072202235e+146 1.997919072202235e+146 true 487 3.99583814440447e+146 3.99583814440447e+146 true 488 7.99167628880894e+146 7.99167628880894e+146 true 489 1.598335257761788e+147 1.598335257761788e+147 true 490 3.196670515523576e+147 3.196670515523576e+147 true 491 6.393341031047152e+147 6.393341031047152e+147 true 492 1.2786682062094304e+148 1.2786682062094304e+148 true 493 2.557336412418861e+148 2.557336412418861e+148 true 494 5.114672824837722e+148 5.114672824837722e+148 true 495 1.0229345649675443e+149 1.0229345649675443e+149 true 496 2.0458691299350887e+149 2.0458691299350887e+149 true 497 4.0917382598701773e+149 4.0917382598701773e+149 true 498 8.183476519740355e+149 8.183476519740355e+149 true 499 1.636695303948071e+150 1.636695303948071e+150 true 500 3.273390607896142e+150 3.273390607896142e+150 true 501 6.546781215792284e+150 6.546781215792284e+150 true 502 1.3093562431584567e+151 1.3093562431584567e+151 true 503 2.6187124863169135e+151 2.6187124863169135e+151 true 504 5.237424972633827e+151 5.237424972633827e+151 true 505 1.0474849945267654e+152 1.0474849945267654e+152 true 506 2.094969989053531e+152 2.094969989053531e+152 true 507 4.189939978107062e+152 4.189939978107062e+152 true 508 8.379879956214123e+152 8.379879956214123e+152 true 509 1.6759759912428246e+153 1.6759759912428246e+153 true 510 3.3519519824856493e+153 3.3519519824856493e+153 true 511 6.703903964971299e+153 6.703903964971299e+153 true 512 1.3407807929942597e+154 1.3407807929942597e+154 true ===*/ /* Exactness tests. Floating point value parsing is required to be bit * exact. * * How to test for exact numbers? Base 2 operations are easy to rely on * being correct (even parseInt()) so we can create comparison values in * many cases that way. */ print('exactness'); /* # repr() apparently ensures enough decimals are printed to guarantee # exact reconstruction of IEEE double print('['); for i in xrange(512+1): v1 = 2**i # exact in python v2 = float(v1) print('{ exp: %d, dbl: "%r" },' % (i, v2)) print(']'); */ function exactnessTest() { var two_to_n = [ { exp: 0, dbl: "1.0" }, { exp: 1, dbl: "2.0" }, { exp: 2, dbl: "4.0" }, { exp: 3, dbl: "8.0" }, { exp: 4, dbl: "16.0" }, { exp: 5, dbl: "32.0" }, { exp: 6, dbl: "64.0" }, { exp: 7, dbl: "128.0" }, { exp: 8, dbl: "256.0" }, { exp: 9, dbl: "512.0" }, { exp: 10, dbl: "1024.0" }, { exp: 11, dbl: "2048.0" }, { exp: 12, dbl: "4096.0" }, { exp: 13, dbl: "8192.0" }, { exp: 14, dbl: "16384.0" }, { exp: 15, dbl: "32768.0" }, { exp: 16, dbl: "65536.0" }, { exp: 17, dbl: "131072.0" }, { exp: 18, dbl: "262144.0" }, { exp: 19, dbl: "524288.0" }, { exp: 20, dbl: "1048576.0" }, { exp: 21, dbl: "2097152.0" }, { exp: 22, dbl: "4194304.0" }, { exp: 23, dbl: "8388608.0" }, { exp: 24, dbl: "16777216.0" }, { exp: 25, dbl: "33554432.0" }, { exp: 26, dbl: "67108864.0" }, { exp: 27, dbl: "134217728.0" }, { exp: 28, dbl: "268435456.0" }, { exp: 29, dbl: "536870912.0" }, { exp: 30, dbl: "1073741824.0" }, { exp: 31, dbl: "2147483648.0" }, { exp: 32, dbl: "4294967296.0" }, { exp: 33, dbl: "8589934592.0" }, { exp: 34, dbl: "17179869184.0" }, { exp: 35, dbl: "34359738368.0" }, { exp: 36, dbl: "68719476736.0" }, { exp: 37, dbl: "137438953472.0" }, { exp: 38, dbl: "274877906944.0" }, { exp: 39, dbl: "549755813888.0" }, { exp: 40, dbl: "1099511627776.0" }, { exp: 41, dbl: "2199023255552.0" }, { exp: 42, dbl: "4398046511104.0" }, { exp: 43, dbl: "8796093022208.0" }, { exp: 44, dbl: "17592186044416.0" }, { exp: 45, dbl: "35184372088832.0" }, { exp: 46, dbl: "70368744177664.0" }, { exp: 47, dbl: "140737488355328.0" }, { exp: 48, dbl: "281474976710656.0" }, { exp: 49, dbl: "562949953421312.0" }, { exp: 50, dbl: "1125899906842624.0" }, { exp: 51, dbl: "2251799813685248.0" }, { exp: 52, dbl: "4503599627370496.0" }, { exp: 53, dbl: "9007199254740992.0" }, { exp: 54, dbl: "1.8014398509481984e+16" }, { exp: 55, dbl: "3.602879701896397e+16" }, { exp: 56, dbl: "7.205759403792794e+16" }, { exp: 57, dbl: "1.4411518807585587e+17" }, { exp: 58, dbl: "2.8823037615171174e+17" }, { exp: 59, dbl: "5.764607523034235e+17" }, { exp: 60, dbl: "1.152921504606847e+18" }, { exp: 61, dbl: "2.305843009213694e+18" }, { exp: 62, dbl: "4.611686018427388e+18" }, { exp: 63, dbl: "9.223372036854776e+18" }, { exp: 64, dbl: "1.8446744073709552e+19" }, { exp: 65, dbl: "3.6893488147419103e+19" }, { exp: 66, dbl: "7.378697629483821e+19" }, { exp: 67, dbl: "1.4757395258967641e+20" }, { exp: 68, dbl: "2.9514790517935283e+20" }, { exp: 69, dbl: "5.902958103587057e+20" }, { exp: 70, dbl: "1.1805916207174113e+21" }, { exp: 71, dbl: "2.3611832414348226e+21" }, { exp: 72, dbl: "4.722366482869645e+21" }, { exp: 73, dbl: "9.44473296573929e+21" }, { exp: 74, dbl: "1.888946593147858e+22" }, { exp: 75, dbl: "3.777893186295716e+22" }, { exp: 76, dbl: "7.555786372591432e+22" }, { exp: 77, dbl: "1.5111572745182865e+23" }, { exp: 78, dbl: "3.022314549036573e+23" }, { exp: 79, dbl: "6.044629098073146e+23" }, { exp: 80, dbl: "1.2089258196146292e+24" }, { exp: 81, dbl: "2.4178516392292583e+24" }, { exp: 82, dbl: "4.835703278458517e+24" }, { exp: 83, dbl: "9.671406556917033e+24" }, { exp: 84, dbl: "1.9342813113834067e+25" }, { exp: 85, dbl: "3.8685626227668134e+25" }, { exp: 86, dbl: "7.737125245533627e+25" }, { exp: 87, dbl: "1.5474250491067253e+26" }, { exp: 88, dbl: "3.094850098213451e+26" }, { exp: 89, dbl: "6.189700196426902e+26" }, { exp: 90, dbl: "1.2379400392853803e+27" }, { exp: 91, dbl: "2.4758800785707605e+27" }, { exp: 92, dbl: "4.951760157141521e+27" }, { exp: 93, dbl: "9.903520314283042e+27" }, { exp: 94, dbl: "1.9807040628566084e+28" }, { exp: 95, dbl: "3.961408125713217e+28" }, { exp: 96, dbl: "7.922816251426434e+28" }, { exp: 97, dbl: "1.5845632502852868e+29" }, { exp: 98, dbl: "3.1691265005705735e+29" }, { exp: 99, dbl: "6.338253001141147e+29" }, { exp: 100, dbl: "1.2676506002282294e+30" }, { exp: 101, dbl: "2.535301200456459e+30" }, { exp: 102, dbl: "5.070602400912918e+30" }, { exp: 103, dbl: "1.0141204801825835e+31" }, { exp: 104, dbl: "2.028240960365167e+31" }, { exp: 105, dbl: "4.056481920730334e+31" }, { exp: 106, dbl: "8.112963841460668e+31" }, { exp: 107, dbl: "1.6225927682921336e+32" }, { exp: 108, dbl: "3.2451855365842673e+32" }, { exp: 109, dbl: "6.490371073168535e+32" }, { exp: 110, dbl: "1.298074214633707e+33" }, { exp: 111, dbl: "2.596148429267414e+33" }, { exp: 112, dbl: "5.192296858534828e+33" }, { exp: 113, dbl: "1.0384593717069655e+34" }, { exp: 114, dbl: "2.076918743413931e+34" }, { exp: 115, dbl: "4.153837486827862e+34" }, { exp: 116, dbl: "8.307674973655724e+34" }, { exp: 117, dbl: "1.661534994731145e+35" }, { exp: 118, dbl: "3.32306998946229e+35" }, { exp: 119, dbl: "6.64613997892458e+35" }, { exp: 120, dbl: "1.329227995784916e+36" }, { exp: 121, dbl: "2.658455991569832e+36" }, { exp: 122, dbl: "5.316911983139664e+36" }, { exp: 123, dbl: "1.0633823966279327e+37" }, { exp: 124, dbl: "2.1267647932558654e+37" }, { exp: 125, dbl: "4.253529586511731e+37" }, { exp: 126, dbl: "8.507059173023462e+37" }, { exp: 127, dbl: "1.7014118346046923e+38" }, { exp: 128, dbl: "3.402823669209385e+38" }, { exp: 129, dbl: "6.80564733841877e+38" }, { exp: 130, dbl: "1.361129467683754e+39" }, { exp: 131, dbl: "2.722258935367508e+39" }, { exp: 132, dbl: "5.444517870735016e+39" }, { exp: 133, dbl: "1.0889035741470031e+40" }, { exp: 134, dbl: "2.1778071482940062e+40" }, { exp: 135, dbl: "4.3556142965880123e+40" }, { exp: 136, dbl: "8.711228593176025e+40" }, { exp: 137, dbl: "1.742245718635205e+41" }, { exp: 138, dbl: "3.48449143727041e+41" }, { exp: 139, dbl: "6.96898287454082e+41" }, { exp: 140, dbl: "1.393796574908164e+42" }, { exp: 141, dbl: "2.787593149816328e+42" }, { exp: 142, dbl: "5.575186299632656e+42" }, { exp: 143, dbl: "1.1150372599265312e+43" }, { exp: 144, dbl: "2.2300745198530623e+43" }, { exp: 145, dbl: "4.460149039706125e+43" }, { exp: 146, dbl: "8.92029807941225e+43" }, { exp: 147, dbl: "1.78405961588245e+44" }, { exp: 148, dbl: "3.5681192317649e+44" }, { exp: 149, dbl: "7.1362384635298e+44" }, { exp: 150, dbl: "1.42724769270596e+45" }, { exp: 151, dbl: "2.85449538541192e+45" }, { exp: 152, dbl: "5.70899077082384e+45" }, { exp: 153, dbl: "1.141798154164768e+46" }, { exp: 154, dbl: "2.283596308329536e+46" }, { exp: 155, dbl: "4.567192616659072e+46" }, { exp: 156, dbl: "9.134385233318143e+46" }, { exp: 157, dbl: "1.8268770466636286e+47" }, { exp: 158, dbl: "3.6537540933272573e+47" }, { exp: 159, dbl: "7.307508186654515e+47" }, { exp: 160, dbl: "1.461501637330903e+48" }, { exp: 161, dbl: "2.923003274661806e+48" }, { exp: 162, dbl: "5.846006549323612e+48" }, { exp: 163, dbl: "1.1692013098647223e+49" }, { exp: 164, dbl: "2.3384026197294447e+49" }, { exp: 165, dbl: "4.6768052394588893e+49" }, { exp: 166, dbl: "9.353610478917779e+49" }, { exp: 167, dbl: "1.8707220957835557e+50" }, { exp: 168, dbl: "3.7414441915671115e+50" }, { exp: 169, dbl: "7.482888383134223e+50" }, { exp: 170, dbl: "1.4965776766268446e+51" }, { exp: 171, dbl: "2.9931553532536892e+51" }, { exp: 172, dbl: "5.986310706507379e+51" }, { exp: 173, dbl: "1.1972621413014757e+52" }, { exp: 174, dbl: "2.3945242826029513e+52" }, { exp: 175, dbl: "4.789048565205903e+52" }, { exp: 176, dbl: "9.578097130411805e+52" }, { exp: 177, dbl: "1.915619426082361e+53" }, { exp: 178, dbl: "3.831238852164722e+53" }, { exp: 179, dbl: "7.662477704329444e+53" }, { exp: 180, dbl: "1.532495540865889e+54" }, { exp: 181, dbl: "3.064991081731778e+54" }, { exp: 182, dbl: "6.129982163463556e+54" }, { exp: 183, dbl: "1.2259964326927111e+55" }, { exp: 184, dbl: "2.4519928653854222e+55" }, { exp: 185, dbl: "4.9039857307708443e+55" }, { exp: 186, dbl: "9.807971461541689e+55" }, { exp: 187, dbl: "1.9615942923083377e+56" }, { exp: 188, dbl: "3.9231885846166755e+56" }, { exp: 189, dbl: "7.846377169233351e+56" }, { exp: 190, dbl: "1.5692754338466702e+57" }, { exp: 191, dbl: "3.1385508676933404e+57" }, { exp: 192, dbl: "6.277101735386681e+57" }, { exp: 193, dbl: "1.2554203470773362e+58" }, { exp: 194, dbl: "2.5108406941546723e+58" }, { exp: 195, dbl: "5.021681388309345e+58" }, { exp: 196, dbl: "1.004336277661869e+59" }, { exp: 197, dbl: "2.008672555323738e+59" }, { exp: 198, dbl: "4.017345110647476e+59" }, { exp: 199, dbl: "8.034690221294951e+59" }, { exp: 200, dbl: "1.6069380442589903e+60" }, { exp: 201, dbl: "3.2138760885179806e+60" }, { exp: 202, dbl: "6.427752177035961e+60" }, { exp: 203, dbl: "1.2855504354071922e+61" }, { exp: 204, dbl: "2.5711008708143844e+61" }, { exp: 205, dbl: "5.142201741628769e+61" }, { exp: 206, dbl: "1.0284403483257538e+62" }, { exp: 207, dbl: "2.0568806966515076e+62" }, { exp: 208, dbl: "4.113761393303015e+62" }, { exp: 209, dbl: "8.22752278660603e+62" }, { exp: 210, dbl: "1.645504557321206e+63" }, { exp: 211, dbl: "3.291009114642412e+63" }, { exp: 212, dbl: "6.582018229284824e+63" }, { exp: 213, dbl: "1.3164036458569648e+64" }, { exp: 214, dbl: "2.6328072917139297e+64" }, { exp: 215, dbl: "5.2656145834278593e+64" }, { exp: 216, dbl: "1.0531229166855719e+65" }, { exp: 217, dbl: "2.1062458333711437e+65" }, { exp: 218, dbl: "4.2124916667422875e+65" }, { exp: 219, dbl: "8.424983333484575e+65" }, { exp: 220, dbl: "1.684996666696915e+66" }, { exp: 221, dbl: "3.36999333339383e+66" }, { exp: 222, dbl: "6.73998666678766e+66" }, { exp: 223, dbl: "1.347997333357532e+67" }, { exp: 224, dbl: "2.695994666715064e+67" }, { exp: 225, dbl: "5.391989333430128e+67" }, { exp: 226, dbl: "1.0783978666860256e+68" }, { exp: 227, dbl: "2.1567957333720512e+68" }, { exp: 228, dbl: "4.3135914667441024e+68" }, { exp: 229, dbl: "8.627182933488205e+68" }, { exp: 230, dbl: "1.725436586697641e+69" }, { exp: 231, dbl: "3.450873173395282e+69" }, { exp: 232, dbl: "6.901746346790564e+69" }, { exp: 233, dbl: "1.3803492693581128e+70" }, { exp: 234, dbl: "2.7606985387162255e+70" }, { exp: 235, dbl: "5.521397077432451e+70" }, { exp: 236, dbl: "1.1042794154864902e+71" }, { exp: 237, dbl: "2.2085588309729804e+71" }, { exp: 238, dbl: "4.417117661945961e+71" }, { exp: 239, dbl: "8.834235323891922e+71" }, { exp: 240, dbl: "1.7668470647783843e+72" }, { exp: 241, dbl: "3.533694129556769e+72" }, { exp: 242, dbl: "7.067388259113537e+72" }, { exp: 243, dbl: "1.4134776518227075e+73" }, { exp: 244, dbl: "2.826955303645415e+73" }, { exp: 245, dbl: "5.65391060729083e+73" }, { exp: 246, dbl: "1.130782121458166e+74" }, { exp: 247, dbl: "2.261564242916332e+74" }, { exp: 248, dbl: "4.523128485832664e+74" }, { exp: 249, dbl: "9.046256971665328e+74" }, { exp: 250, dbl: "1.8092513943330656e+75" }, { exp: 251, dbl: "3.618502788666131e+75" }, { exp: 252, dbl: "7.237005577332262e+75" }, { exp: 253, dbl: "1.4474011154664524e+76" }, { exp: 254, dbl: "2.894802230932905e+76" }, { exp: 255, dbl: "5.78960446186581e+76" }, { exp: 256, dbl: "1.157920892373162e+77" }, { exp: 257, dbl: "2.315841784746324e+77" }, { exp: 258, dbl: "4.631683569492648e+77" }, { exp: 259, dbl: "9.263367138985296e+77" }, { exp: 260, dbl: "1.8526734277970591e+78" }, { exp: 261, dbl: "3.7053468555941183e+78" }, { exp: 262, dbl: "7.410693711188237e+78" }, { exp: 263, dbl: "1.4821387422376473e+79" }, { exp: 264, dbl: "2.9642774844752946e+79" }, { exp: 265, dbl: "5.928554968950589e+79" }, { exp: 266, dbl: "1.1857109937901178e+80" }, { exp: 267, dbl: "2.3714219875802357e+80" }, { exp: 268, dbl: "4.7428439751604714e+80" }, { exp: 269, dbl: "9.485687950320943e+80" }, { exp: 270, dbl: "1.8971375900641885e+81" }, { exp: 271, dbl: "3.794275180128377e+81" }, { exp: 272, dbl: "7.588550360256754e+81" }, { exp: 273, dbl: "1.517710072051351e+82" }, { exp: 274, dbl: "3.035420144102702e+82" }, { exp: 275, dbl: "6.070840288205404e+82" }, { exp: 276, dbl: "1.2141680576410807e+83" }, { exp: 277, dbl: "2.4283361152821613e+83" }, { exp: 278, dbl: "4.856672230564323e+83" }, { exp: 279, dbl: "9.713344461128645e+83" }, { exp: 280, dbl: "1.942668892225729e+84" }, { exp: 281, dbl: "3.885337784451458e+84" }, { exp: 282, dbl: "7.770675568902916e+84" }, { exp: 283, dbl: "1.5541351137805833e+85" }, { exp: 284, dbl: "3.1082702275611665e+85" }, { exp: 285, dbl: "6.216540455122333e+85" }, { exp: 286, dbl: "1.2433080910244666e+86" }, { exp: 287, dbl: "2.4866161820489332e+86" }, { exp: 288, dbl: "4.9732323640978664e+86" }, { exp: 289, dbl: "9.946464728195733e+86" }, { exp: 290, dbl: "1.9892929456391466e+87" }, { exp: 291, dbl: "3.978585891278293e+87" }, { exp: 292, dbl: "7.957171782556586e+87" }, { exp: 293, dbl: "1.5914343565113173e+88" }, { exp: 294, dbl: "3.1828687130226345e+88" }, { exp: 295, dbl: "6.365737426045269e+88" }, { exp: 296, dbl: "1.2731474852090538e+89" }, { exp: 297, dbl: "2.5462949704181076e+89" }, { exp: 298, dbl: "5.092589940836215e+89" }, { exp: 299, dbl: "1.018517988167243e+90" }, { exp: 300, dbl: "2.037035976334486e+90" }, { exp: 301, dbl: "4.074071952668972e+90" }, { exp: 302, dbl: "8.148143905337944e+90" }, { exp: 303, dbl: "1.629628781067589e+91" }, { exp: 304, dbl: "3.259257562135178e+91" }, { exp: 305, dbl: "6.518515124270356e+91" }, { exp: 306, dbl: "1.3037030248540711e+92" }, { exp: 307, dbl: "2.6074060497081422e+92" }, { exp: 308, dbl: "5.2148120994162844e+92" }, { exp: 309, dbl: "1.0429624198832569e+93" }, { exp: 310, dbl: "2.0859248397665138e+93" }, { exp: 311, dbl: "4.1718496795330275e+93" }, { exp: 312, dbl: "8.343699359066055e+93" }, { exp: 313, dbl: "1.668739871813211e+94" }, { exp: 314, dbl: "3.337479743626422e+94" }, { exp: 315, dbl: "6.674959487252844e+94" }, { exp: 316, dbl: "1.3349918974505688e+95" }, { exp: 317, dbl: "2.6699837949011376e+95" }, { exp: 318, dbl: "5.339967589802275e+95" }, { exp: 319, dbl: "1.067993517960455e+96" }, { exp: 320, dbl: "2.13598703592091e+96" }, { exp: 321, dbl: "4.27197407184182e+96" }, { exp: 322, dbl: "8.54394814368364e+96" }, { exp: 323, dbl: "1.708789628736728e+97" }, { exp: 324, dbl: "3.417579257473456e+97" }, { exp: 325, dbl: "6.835158514946912e+97" }, { exp: 326, dbl: "1.3670317029893825e+98" }, { exp: 327, dbl: "2.734063405978765e+98" }, { exp: 328, dbl: "5.46812681195753e+98" }, { exp: 329, dbl: "1.093625362391506e+99" }, { exp: 330, dbl: "2.187250724783012e+99" }, { exp: 331, dbl: "4.374501449566024e+99" }, { exp: 332, dbl: "8.749002899132048e+99" }, { exp: 333, dbl: "1.7498005798264095e+100" }, { exp: 334, dbl: "3.499601159652819e+100" }, { exp: 335, dbl: "6.999202319305638e+100" }, { exp: 336, dbl: "1.3998404638611276e+101" }, { exp: 337, dbl: "2.7996809277222553e+101" }, { exp: 338, dbl: "5.599361855444511e+101" }, { exp: 339, dbl: "1.1198723710889021e+102" }, { exp: 340, dbl: "2.2397447421778042e+102" }, { exp: 341, dbl: "4.4794894843556084e+102" }, { exp: 342, dbl: "8.958978968711217e+102" }, { exp: 343, dbl: "1.7917957937422434e+103" }, { exp: 344, dbl: "3.583591587484487e+103" }, { exp: 345, dbl: "7.167183174968974e+103" }, { exp: 346, dbl: "1.4334366349937947e+104" }, { exp: 347, dbl: "2.8668732699875894e+104" }, { exp: 348, dbl: "5.733746539975179e+104" }, { exp: 349, dbl: "1.1467493079950358e+105" }, { exp: 350, dbl: "2.2934986159900715e+105" }, { exp: 351, dbl: "4.586997231980143e+105" }, { exp: 352, dbl: "9.173994463960286e+105" }, { exp: 353, dbl: "1.8347988927920572e+106" }, { exp: 354, dbl: "3.6695977855841144e+106" }, { exp: 355, dbl: "7.339195571168229e+106" }, { exp: 356, dbl: "1.4678391142336458e+107" }, { exp: 357, dbl: "2.9356782284672915e+107" }, { exp: 358, dbl: "5.871356456934583e+107" }, { exp: 359, dbl: "1.1742712913869166e+108" }, { exp: 360, dbl: "2.3485425827738332e+108" }, { exp: 361, dbl: "4.6970851655476665e+108" }, { exp: 362, dbl: "9.394170331095333e+108" }, { exp: 363, dbl: "1.8788340662190666e+109" }, { exp: 364, dbl: "3.757668132438133e+109" }, { exp: 365, dbl: "7.515336264876266e+109" }, { exp: 366, dbl: "1.5030672529752533e+110" }, { exp: 367, dbl: "3.0061345059505065e+110" }, { exp: 368, dbl: "6.012269011901013e+110" }, { exp: 369, dbl: "1.2024538023802026e+111" }, { exp: 370, dbl: "2.4049076047604052e+111" }, { exp: 371, dbl: "4.8098152095208105e+111" }, { exp: 372, dbl: "9.619630419041621e+111" }, { exp: 373, dbl: "1.9239260838083242e+112" }, { exp: 374, dbl: "3.8478521676166484e+112" }, { exp: 375, dbl: "7.695704335233297e+112" }, { exp: 376, dbl: "1.5391408670466593e+113" }, { exp: 377, dbl: "3.078281734093319e+113" }, { exp: 378, dbl: "6.156563468186638e+113" }, { exp: 379, dbl: "1.2313126936373275e+114" }, { exp: 380, dbl: "2.462625387274655e+114" }, { exp: 381, dbl: "4.92525077454931e+114" }, { exp: 382, dbl: "9.85050154909862e+114" }, { exp: 383, dbl: "1.970100309819724e+115" }, { exp: 384, dbl: "3.940200619639448e+115" }, { exp: 385, dbl: "7.880401239278896e+115" }, { exp: 386, dbl: "1.5760802478557792e+116" }, { exp: 387, dbl: "3.1521604957115583e+116" }, { exp: 388, dbl: "6.304320991423117e+116" }, { exp: 389, dbl: "1.2608641982846233e+117" }, { exp: 390, dbl: "2.5217283965692467e+117" }, { exp: 391, dbl: "5.0434567931384933e+117" }, { exp: 392, dbl: "1.0086913586276987e+118" }, { exp: 393, dbl: "2.0173827172553973e+118" }, { exp: 394, dbl: "4.034765434510795e+118" }, { exp: 395, dbl: "8.06953086902159e+118" }, { exp: 396, dbl: "1.613906173804318e+119" }, { exp: 397, dbl: "3.227812347608636e+119" }, { exp: 398, dbl: "6.455624695217272e+119" }, { exp: 399, dbl: "1.2911249390434543e+120" }, { exp: 400, dbl: "2.5822498780869086e+120" }, { exp: 401, dbl: "5.164499756173817e+120" }, { exp: 402, dbl: "1.0328999512347634e+121" }, { exp: 403, dbl: "2.065799902469527e+121" }, { exp: 404, dbl: "4.131599804939054e+121" }, { exp: 405, dbl: "8.263199609878108e+121" }, { exp: 406, dbl: "1.6526399219756215e+122" }, { exp: 407, dbl: "3.305279843951243e+122" }, { exp: 408, dbl: "6.610559687902486e+122" }, { exp: 409, dbl: "1.3221119375804972e+123" }, { exp: 410, dbl: "2.6442238751609944e+123" }, { exp: 411, dbl: "5.288447750321989e+123" }, { exp: 412, dbl: "1.0576895500643978e+124" }, { exp: 413, dbl: "2.1153791001287955e+124" }, { exp: 414, dbl: "4.230758200257591e+124" }, { exp: 415, dbl: "8.461516400515182e+124" }, { exp: 416, dbl: "1.6923032801030364e+125" }, { exp: 417, dbl: "3.384606560206073e+125" }, { exp: 418, dbl: "6.769213120412146e+125" }, { exp: 419, dbl: "1.3538426240824291e+126" }, { exp: 420, dbl: "2.7076852481648583e+126" }, { exp: 421, dbl: "5.415370496329717e+126" }, { exp: 422, dbl: "1.0830740992659433e+127" }, { exp: 423, dbl: "2.1661481985318866e+127" }, { exp: 424, dbl: "4.332296397063773e+127" }, { exp: 425, dbl: "8.664592794127546e+127" }, { exp: 426, dbl: "1.7329185588255093e+128" }, { exp: 427, dbl: "3.4658371176510186e+128" }, { exp: 428, dbl: "6.931674235302037e+128" }, { exp: 429, dbl: "1.3863348470604074e+129" }, { exp: 430, dbl: "2.772669694120815e+129" }, { exp: 431, dbl: "5.54533938824163e+129" }, { exp: 432, dbl: "1.109067877648326e+130" }, { exp: 433, dbl: "2.218135755296652e+130" }, { exp: 434, dbl: "4.436271510593304e+130" }, { exp: 435, dbl: "8.872543021186608e+130" }, { exp: 436, dbl: "1.7745086042373215e+131" }, { exp: 437, dbl: "3.549017208474643e+131" }, { exp: 438, dbl: "7.098034416949286e+131" }, { exp: 439, dbl: "1.4196068833898572e+132" }, { exp: 440, dbl: "2.8392137667797144e+132" }, { exp: 441, dbl: "5.678427533559429e+132" }, { exp: 442, dbl: "1.1356855067118858e+133" }, { exp: 443, dbl: "2.2713710134237715e+133" }, { exp: 444, dbl: "4.542742026847543e+133" }, { exp: 445, dbl: "9.085484053695086e+133" }, { exp: 446, dbl: "1.8170968107390172e+134" }, { exp: 447, dbl: "3.6341936214780345e+134" }, { exp: 448, dbl: "7.268387242956069e+134" }, { exp: 449, dbl: "1.4536774485912138e+135" }, { exp: 450, dbl: "2.9073548971824276e+135" }, { exp: 451, dbl: "5.814709794364855e+135" }, { exp: 452, dbl: "1.162941958872971e+136" }, { exp: 453, dbl: "2.325883917745942e+136" }, { exp: 454, dbl: "4.651767835491884e+136" }, { exp: 455, dbl: "9.303535670983768e+136" }, { exp: 456, dbl: "1.8607071341967536e+137" }, { exp: 457, dbl: "3.7214142683935073e+137" }, { exp: 458, dbl: "7.442828536787015e+137" }, { exp: 459, dbl: "1.488565707357403e+138" }, { exp: 460, dbl: "2.977131414714806e+138" }, { exp: 461, dbl: "5.954262829429612e+138" }, { exp: 462, dbl: "1.1908525658859223e+139" }, { exp: 463, dbl: "2.3817051317718447e+139" }, { exp: 464, dbl: "4.7634102635436893e+139" }, { exp: 465, dbl: "9.526820527087379e+139" }, { exp: 466, dbl: "1.9053641054174757e+140" }, { exp: 467, dbl: "3.8107282108349515e+140" }, { exp: 468, dbl: "7.621456421669903e+140" }, { exp: 469, dbl: "1.5242912843339806e+141" }, { exp: 470, dbl: "3.048582568667961e+141" }, { exp: 471, dbl: "6.097165137335922e+141" }, { exp: 472, dbl: "1.2194330274671845e+142" }, { exp: 473, dbl: "2.438866054934369e+142" }, { exp: 474, dbl: "4.877732109868738e+142" }, { exp: 475, dbl: "9.755464219737476e+142" }, { exp: 476, dbl: "1.9510928439474951e+143" }, { exp: 477, dbl: "3.9021856878949903e+143" }, { exp: 478, dbl: "7.804371375789981e+143" }, { exp: 479, dbl: "1.5608742751579961e+144" }, { exp: 480, dbl: "3.1217485503159922e+144" }, { exp: 481, dbl: "6.243497100631985e+144" }, { exp: 482, dbl: "1.248699420126397e+145" }, { exp: 483, dbl: "2.497398840252794e+145" }, { exp: 484, dbl: "4.994797680505588e+145" }, { exp: 485, dbl: "9.989595361011175e+145" }, { exp: 486, dbl: "1.997919072202235e+146" }, { exp: 487, dbl: "3.99583814440447e+146" }, { exp: 488, dbl: "7.99167628880894e+146" }, { exp: 489, dbl: "1.598335257761788e+147" }, { exp: 490, dbl: "3.196670515523576e+147" }, { exp: 491, dbl: "6.393341031047152e+147" }, { exp: 492, dbl: "1.2786682062094304e+148" }, { exp: 493, dbl: "2.557336412418861e+148" }, { exp: 494, dbl: "5.114672824837722e+148" }, { exp: 495, dbl: "1.0229345649675443e+149" }, { exp: 496, dbl: "2.0458691299350887e+149" }, { exp: 497, dbl: "4.0917382598701773e+149" }, { exp: 498, dbl: "8.183476519740355e+149" }, { exp: 499, dbl: "1.636695303948071e+150" }, { exp: 500, dbl: "3.273390607896142e+150" }, { exp: 501, dbl: "6.546781215792284e+150" }, { exp: 502, dbl: "1.3093562431584567e+151" }, { exp: 503, dbl: "2.6187124863169135e+151" }, { exp: 504, dbl: "5.237424972633827e+151" }, { exp: 505, dbl: "1.0474849945267654e+152" }, { exp: 506, dbl: "2.094969989053531e+152" }, { exp: 507, dbl: "4.189939978107062e+152" }, { exp: 508, dbl: "8.379879956214123e+152" }, { exp: 509, dbl: "1.6759759912428246e+153" }, { exp: 510, dbl: "3.3519519824856493e+153" }, { exp: 511, dbl: "6.703903964971299e+153" }, { exp: 512, dbl: "1.3407807929942597e+154" }, ]; var i, j; var t; var o; var d1; var d2; for (i = 0; i < two_to_n.length; i++) { o = two_to_n[i]; t = '1'; for (j = 0; j < o.exp; j++) { t = t + '0'; } d1 = g.parseInt(t, 2); d2 = g.parseFloat(o.dbl); print(i, d1, d2, d1 === d2); } } try { exactnessTest(); } catch (e) { print(e.name); } /* XXX: more tests */