"posit: thin triangle other tricks (REVEALED!)" article

404 views
Skip to first unread message

Zoltán Lehóczky (Lombiq Technologies)

unread,
Feb 6, 2019, 9:55:37 AM2/6/19
to Unum Computing
Here's an article critiquing some examples previously used in posit resources: http://marc-b-reynolds.github.io/math/2019/02/06/Posit1.html And the tweet about it which may contain some replies in the future: https://twitter.com/marc_b_reynolds/status/1092926482631049219

Would somebody reflect on these?

Theodore Omtzigt

unread,
Feb 6, 2019, 11:44:46 AM2/6/19
to Unum Computing
That is a wonderful post, and a must read for anyone that is playing with number systems. It high-lights the rounding dynamics of the examples that demonstrate catastrophic cancellation. 

This is my take on the issue of comparing rounding dynamics between posits and IEEE floats: The rounding of intermediate results is the cause of catastrophic cancellation in both systems. This idea that rounding the intermediate results is the culprit has been known since Ulrich, who also demonstrated solutions to counter it: the super-accumulator.

The size of that super accumulator is proportional to the dynamic range of the square of the minimum number and the square of the maximum number of the number representation. The intuition behind it is that the super-accumulator needs to capture all the bits of the result of a multiply.

The goodness of posits comes from the fact that they offer a much better control of that dynamic range than IEEE floating point, and that makes the practical implementation of that super-accumulator cost effective.

Unfortunately, that article does not highly that aspect between posits and IEEE floating point. The article makes an unfortunately derogatory remark towards the super-accumulator, but in my mind that is where the value-add of posits reside, especially for custom computing machinery that needs to optimize performance per Watt.

Zoltán Lehóczky (Lombiq Technologies)

unread,
Feb 6, 2019, 11:56:08 AM2/6/19
to Unum Computing
While I don't have enough understanding of the topic to comment too much on any other parts of the article, the remark about the quire surprised me too. I don't see having an accumulator an issue, especially since the posit standards makes it explicit.

marc.b....@gmail.com

unread,
Feb 6, 2019, 4:13:45 PM2/6/19
to Unum Computing
Blog post author here.

I'm not at all negative about wide-accumulators and in fact think that they are interesting. To be of real use you'd really need a register file of them. This is a huge topic with many pros and cons.  On " unfortunately derogatory remark" about them I assume that's from the Stanford dot product example.  I'm taking exception to "The fused dot product is 3 to 6 times faster than the float method" and Mathematica notebook is more explicit:

"Perhaps the biggest surprise is this: Using a quire can make a code faster, not slower. And not by just a little bit: the most recent hardware tests by Koenig and Biancolin at the ASPIRE lab at Berkeley show that quire operations are about 3 to 6 times faster than rounding after every operation. If an approach makes code that much faster and also makes it much more accurate, why would anyone not want to adopt it?"

You see my problem with this?  We know that a naive dot product is memory bound. Specialized execution units cannot speed it up.  And the quoted author(s) make no such claim:


But wide-accumulator don't have any bearing on the question of "which distribution of points is a better choice for X" where X is general purpose or some app/domain specific computation.

William Tanksley, Jr

unread,
Feb 6, 2019, 5:52:46 PM2/6/19
to marc.b....@gmail.com, Unum Computing
marc.b....@gmail.com> wrote:
> Blog post author here.

Fun post, it made me think a bit harder. Are you also going to address
the claims in the posit paper regarding their overall accuracy?
Specifically, sections 4.3 and 4.4, Single- and Multiple-Argument
Operation Comparisons of
http://www.johngustafson.net/pdfs/BeatingFloatingPoint.pdf ? (Or the
similar section 7.6 and on from https://posithub.org/docs/Posits4.pdf
?)

I agree with the above posters pointing out that posits remain useful
for their design to work with a wide accumulator (although I'd like to
hear more about why you think such a thing is only useful with a bank
of wide registers). However, this is almost a trivial consequence of
the older design goal of posits, ever since the original book: they
allow for (nearly) independent tuning of both range and precision.
This is precisely what makes it possible to provide that wide
accumulator, and it's also made their use in machine learning somewhat
obvious (Facebook's use of modified posits being a case in point, but
of course this was noticed early in their development).

With all that said, though, I do wonder at the use of such a
catastrophic cancelation in the demos. It's good to catch people's
attention with conspicuous claims, but it's not good to use narrowly
chosen values when slightly different ones would give a very different
result, as you've shown.

-Wm

Theodore Omtzigt

unread,
Feb 6, 2019, 7:26:15 PM2/6/19
to Unum Computing
Marc:

You and I are in total agreement. We (Stillwater) described the requirements of the quire in our SC'17 paper "Adaptive posit tensor processing for error-free linear algebra". For blocking linear algebra algorithms, you would need a register file of quires as you need to accumulate partial quires as you are progressing through the blocks, and needing ISA extensions that can both address the quire register file AND make them part of a fused multiply accumulate instruction. However, for distributed data flow machines these requirements change to just needing the ISA extensions to use quire partials. We are waiting for NVIDIA to tells us what it would do for GPU CUDA.

 In that paper there is a table of quire sizes for the different IEEE floating point sizes and standard posit sizes. That is the key IMHO to our discussion. Ulrich's super-accumulator is the unifying mechanism to defer rounding error, but the cost of that accumulator both in terms of silicon and in terms of power is non-trivial. We have a quire sizer program in the universal library, so folks can see for themselves what type of resources are required to implement user-controlled rounding. By having more control over the dynamic range of your number system we can dial in the minimum performance per Watt for specific applications.

Recap of the point I am trying to make: the strength of posits is that the required super-accumulator is more cost effective than for IEEE and thus you can implement reproducible computations with better performance per Watt as compared to IEEE floating point. There is still quite a sizable design space to further optimize what you need. I am referring to the work that FAIR has done for DL, and what Huawei has done for 5G.

John Gustafson

unread,
Feb 6, 2019, 11:55:27 PM2/6/19
to marc.b....@gmail.com, Unum Computing
Marc,

Thank you for the most entertaining and insightful blog post I've ever seen regarding my work. You have a hilarious writing style!

I'm preparing an example for the thin triangle to show how a single quire register can be used to obtain the triangle area correct to within 0.5 ULP, but while I'm getting that done I have some general comments.

The analogy with card tricks is amusing but it breaks down quickly when you realize that the performers of card tricks never show how they're done. With calculations, the way the trick works is always there for everyone to see and I always strive to explain exactly why errors form or can be avoided. When an example is contrived (and most of them are, in this business), I point that out. Bailey, Kahan, Rump, Muller, and others have all gone to great lengths to construct examples that exaggerate how bad rounding errors can be. Those examples are very useful as "acid tests" of any proposed number system, but once they get past those (or fail no worse than IEEE floats, at least), it's time to try the system out on real applications and find out how they actually perform. When posits outperform floats at weather modeling, shock hydrodynamics, deep learning and inference, and signal processing with FFTs, it's not a card trick.

I'm seeing some interesting and predictable reactions from IEEE 754 defenders. One paper submitted to CoNGA says, for example, that floats have theorems proving lower bounds on accuracy for multiplication and division for the range of values where overflow and underflow cannot occur, but that posits lack such theorems because of tapered accuracy. The theorems they refer to fall apart if results fall into the region with subnormal numbers, however, because those have the same tapered accuracy as posits! Ah, so the fix is to exclude those as well. Just how many floats are we exempting from these theorems? Half of them! For IEEE binary32, say, we can only use numbers in the range of about 1E–19 to 1E19, since outside that range there can be catastrophic overflow and underflow.

If you can throw out half of your bit patterns when claiming a theorem, posits can do that as well. Interesting fact: Half of all posit bit patterns are at maximum accuracy! That's because half of all posits only use two bits for the regime, either 01 or 10, leaving plenty of room for fraction bits. For that half of all posit bit patterns, the accuracy of multiplication and division is always superior to IEEE binary with the same number of bits.

Lastly, about the speed of a fused dot product in hardware. The statement appears in an early form of the ASPIRE paper but seems to have been taken out in the final publication, probably because it caused confusion like it did for you. I had email communication with the authors in which they explained what they meant, and it was for dot products that are NOT communication bound. Fused dot products pipeline perfectly, without unrolling and without having to do multiple dot products at once. The latency of a floating point adder is three to six clock cycles on most modern processors, and it's pipelined but to do a single dot product accumulation sum := sum + a[i] * b[i] means obtaining the sum before proceeding to the next value of i. Why is the latency so high? Because floating-point addition/subtraction requires operand alignment, possible renormalization in the result, and rounding. When you do a fused dot product, the operand alignment is replaced with a shift that looks more like a direct address operation, and the renormalization and rounding are eliminated. Until you finally convert the exact sum back to a float or posit, that is. The ASPIRE people were able to keep the multiplier pipeline completely populated, with integer accumulation of the products happening once per clock.

The Berkeley people were certainly not the first to discover this. Ulrich Kulisch did this as far back as the 1980s, and the techniques are described in detail in his book, Computer Arithmetic and Validity, 2nd Edition.

John G.

--
You received this message because you are subscribed to the Google Groups "Unum Computing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unum-computin...@googlegroups.com.
To post to this group, send email to unum-co...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/unum-computing/dd3f94dd-843b-46f4-9dec-de6fbd6413a9%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Theodore Omtzigt

unread,
Feb 7, 2019, 11:05:21 AM2/7/19
to Unum Computing
Hi John:

I programmed up the Goldberg triangle comparisions as Marc laid out in his article in the HPR-BLAS library with the idea to apply the quire to Heron's formula, but that requires new semantics of the quire as each layer in the multiplication chain doubles the mantissa bits.

How where you planning to deal with this? 

Theodore Omtzigt

unread,
Feb 7, 2019, 4:09:07 PM2/7/19
to Unum Computing
@marc

Trying to reproduce your calculations but do not find how you calculate your ulp deltas for the different number systems so I am unable to reproduce your examples:

here are my results of your first example: I am trying to quantify which value you use for the ulp of 7 using a single precision floating point number. Can you clarify what your value for ulp(a) is?

posit<32, 2>
    a  = 0|10|10|110000000000000000000000000 +1.110000000000000000000000000e2^+2 : +7
    b  = 0|10|01|110000000000000000000000011 +1.110000000000000000000000011e2^+1 : +3.5
    c  = 0|10|01|110000000000000000000000011 +1.110000000000000000000000011e2^+1 : +3.5
ulp(a) = 0|00000001|11|000000000000000000000 +1.000000000000000000000000000e2^-25 : +2.9802322e-08
    s  = 0|10|10|110000000000000000000000010 +1.110000000000000000000000010e2^+2 : +7.0000001
    A  = 0|10|10|110000000000000000000000010 +1.001010000101001011111011100e2^-9 : +0.0022607739
Area = +0.0022607739
IEEE single precision float
    a  = 0|01000000|11100000000000000000000 +1.11000000000000000000000e2^+2 : +7
    b  = 0|01000000|01100000000000000000001 +1.11000000000000000000011e2^+1 : +3.5000007
    c  = 0|01000000|01100000000000000000001 +1.11000000000000000000011e2^+1 : +3.5000007
ulp(a) = 0|00110101|00000000000000000000000 +1.00000000000000000000000e2^-21 : 4.7683716e-07
    s  = 0|01000000|11100000000000000000001 +1.11000000000000000000010e2^+2 : +7.000001
    A  = 0|01000000|11100000000000000000001 +1.00101000010100101111111e2^-7 : +0.0090430966
Area = 0.0090430966
IEEE double precision float
    a  = 0|01000000000|1110000000000000000000000000000000000000000000000000 +1.0000000000000000000000000000011000000000000000000000e2^+2 : +7
    b  = 0|01000000000|0110000000000000000000000000000000000000000000000001 +1.0000000000000000000000000000011000000000000000000000e2^+1 : +3.5
    c  = 0|01000000000|0110000000000000000000000000000000000000000000000001 +1.0000000000000000000000000000011000000000000000000000e2^+1 : +3.5
ulp(a) = 0|00111100110|1000000000000000000000000000000000000000000000000000 +1.0000000000000000000000000000000000000000000000000000e2^-50 : 8.8817842e-16
    s  = 0|01000000000|1110000000000000000000000000000000000000000000000001 +1.0000000000000000000000000000011000000000000000000000e2^+2 : +7
    A  = 0|01000000000|1110000000000000000000000000000000000000000000000001 +1.0000000000000000000000000000010100011000100001100110e2^-22 : +3.9028528e-07
Area = 3.9028528e-07

marc.b....@gmail.com

unread,
Feb 7, 2019, 4:17:40 PM2/7/19
to Unum Computing
If you have mathematica I can just put up my notebook.  That way everything I've said can be cross-checked.

marc.b....@gmail.com

unread,
Feb 7, 2019, 4:47:19 PM2/7/19
to Unum Computing
These are using heron's method so they will explode.  Was that the intent?

Theodore Omtzigt

unread,
Feb 7, 2019, 4:59:27 PM2/7/19
to Unum Computing
yep, notebook is great

Theodore Omtzigt

unread,
Feb 7, 2019, 5:08:02 PM2/7/19
to Unum Computing
I am trying to capture your treatise with the posit library that has hardware support so that folks that are interested in this topic can follow along in a working high-performance posit environment.

As you are show-casing the fact that posits have the same numerical ulp gotchas as any other floating point system, the mechanisms to counter those, either through sorting, rewriting, special instructions, or super-accumulators is good to have in ready to use and education form. 

We are building high-performance reproducible computation libraries for different verticals, so any of these educational materials to show-case the problem and their possible solutions is valuable, and that is my intent.

marc.b....@gmail.com

unread,
Feb 7, 2019, 5:14:19 PM2/7/19
to Unum Computing
This directory: https://github.com/Marc-B-Reynolds/Stand-alone-junk/tree/master/src/Posts/posits

Two notebooks. One for has John's def chopped out of his notebook (plus some hacky helpers) and the other is post related.  Sorry it's a big mess and one reason I haven't publically released it yet.

marc.b....@gmail.com

unread,
Feb 7, 2019, 5:19:21 PM2/7/19
to Unum Computing
There's also promotion to wider types (when avail) + floating point expansion constructs.  Just to state the obvious.

Theodore Omtzigt

unread,
Feb 7, 2019, 5:49:33 PM2/7/19
to Unum Computing
thank you, I will try to follow that notebook's flow, so we can collaborate more easily.

marc.b....@gmail.com

unread,
Feb 7, 2019, 6:27:41 PM2/7/19
to Unum Computing
Backing up and responding to earlier posts.

Theodore: It's interesting to see that someone that's actually thought about the problem agrees about needing a register file. Is the paper publically available (search-foo failed me)?  My (not well informed) option on wide-accumulators is the big upside is needing less iterations to converge. I have not seen anything that compares how much of an improvement on that front one might expect vs. various weaker error bound methods.

William: On "scaled model" comparison of unary & binary ops. Performing the comparison itself is fine but attempting to draw conclusions even at the bit size in question is crazy hard. Let say we were attempting to guess if some base-2 logarithmic number system (LNS) outperformed some other model X. What might see the LNS drastically outperform model X in all operations (whoa! 50% of square roots are exact!)..except addition/subtraction. What do we conclude?  The correct answer is..it depends.  What breaks down for attempting to compare an IEEE style format (with special values) vs. anything at 8-bit is...the IEEE model doesn't scale down well.  Posits will have about 6% more finite values it can represent in that case. For 32-bit it's about 0.4% more and ~0.05% for 64-bit.

John: Thanks for not being offended. It would certainly be understandable if you were. In no particular order. One reason I stated at the beginning that I would only focus on general purpose computation is I'm perfect willing to believe that there are applications where it will outperform IEEE. This explicit statement didn't make the cut for post one since I was focusing on a specific topic. AI/Deep-learning and weather modeling where the two examples I intended on mentioning (for whatever that's worth...esp since I know approximately zero about these topics).  On contrived "acid test" examples: yeah that's why I ran rather heavy with the Trefethen quote. Their merit is mostly educational. On proofs & 754 defenders: Personally I'd rather have a proof on a limited range than no proof at all.  I'll admit I like NaNs...but I hate denormals.  On ASPIRE paper: Okay gotcha.

marc.b....@gmail.com

unread,
Feb 7, 2019, 6:44:31 PM2/7/19
to Unum Computing
John. On your mathematica notebook:  the posit heron equation is missing the rounding step on the sqrt and the LINPACK example isn't reproducible in ver 11.3.  I'm assuming the the default PRNG has been changed.

John L. Gustafson

unread,
Feb 7, 2019, 10:06:57 PM2/7/19
to marc.b....@gmail.com, Unum Computing
Marc,

Thanks for catching the error of missing the rounding step on the sqrt for the posit heron equation. I fixed it just now and it changed the last three decimals to 170, so now the answer is correct to 36 decimals instead of 37. Please note that the title of that section is "Thin triangle area with posits: an unfair fight" to warn the reader. Perhaps I should explain more explicitly why the fight is unfair, but I thought it was obvious.

My Mathematica version is 11.0.0.0, and I'm surprised they would change the PRNG in a way that spoils backward compatibility. Notice that I specified the seed of the generator, specifically to make sure the results would be reproducible! I'm also surprised the example fails with a different PRNG. I was able to get perfect LINPACK solutions on hundreds of different cases, so maybe the Wolfram folks broke something else. It wouldn't be the first time. I've sent them a dozen bug reports as long ago as Version 8, and only one has ever been fixed. Instead they keep adding new web-based features.

I'm still working on the quire version of the thin triangle example; it does not require multiplying the quire by anything, so Theo should stop thinking along those lines! You use the quire by formulating the algorithm as a sparse lower triangular system Lx where the t vector is all the temporary values computed along the way; then the quire can compute the residual.

John

On Feb 8, 2019, at 7:44 AM, marc.b....@gmail.com wrote:

John. On your mathematica notebook:  the posit heron equation is missing the rounding step on the sqrt and the LINPACK example isn't reproducible in ver 11.3.  I'm assuming the the default PRNG has been changed.

--
You received this message because you are subscribed to the Google Groups "Unum Computing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unum-computin...@googlegroups.com.
To post to this group, send email to unum-co...@googlegroups.com.

For more options, visit https://groups.google.com/d/optout.




Important: This email is confidential and may be privileged. If you are not the intended recipient, please delete it and notify us immediately; you should not copy or use it for any purpose, nor disclose its contents to any other person. Thank you.

marc.b....@gmail.com

unread,
Feb 8, 2019, 12:53:45 AM2/8/19
to Unum Computing
Pastebin the random matrix and I can tell you if it then matches.

johngustafson

unread,
Feb 8, 2019, 1:26:47 AM2/8/19
to Unum Computing
{{1549/4096, -(467/2048), 1197/2048, 57/128, 827/4096, -(573/1024), 
  281/8192, 1655/32768, 1547/2048, -(1063/4096), 681/
  1024, -(233/256), -(273/512), 341/512, 1781/4096, 1703/
  2048, -(309/512), 1707/2048, 1091/
  4096, -(267/2048), -(865/1024), -(1339/2048), -(535/2048), -(25/
   128), -(1453/8192), 881/2048, -(317/512), 1903/
  2048, -(1513/4096), -(845/1024), -(1987/8192), 1823/2048, 1777/
  2048, -(1601/4096), -(963/1024), 41/64, 1153/2048, -(581/2048), 
  1801/2048, -(1109/2048), 1203/4096, -(643/1024), 235/2048, 1517/
  2048, 1489/2048, -(1573/2048), 1609/32768, 1209/2048, 1805/2048, 
  1215/2048, -(1247/2048), -(1189/2048), -(767/1024), -(503/512), 953/
  32768, -(247/2048), 1263/2048, 1603/4096, 333/512, -(87/256), 569/
  4096, 1793/8192, -(1793/2048), -(1917/2048), 869/1024, -(1267/2048),
   1707/2048, -(1945/2048), -(985/2048), -(1071/32768), -(1079/
   2048), -(1697/4096), -(1529/8192), -(777/1024), -(809/2048), -(661/
   1024), 1883/
  4096, -(1009/2048), -(945/2048), -(663/16384), -(903/1024), -(1119/
   2048), -(1389/2048), -(497/1024), -(1167/2048), 1721/
  2048, -(1421/2048), -(813/8192), 1601/2048, -(1455/2048), 1115/4096,
   179/512, 89/512, 1489/2048, -(1403/2048), -(141/2048), -(221/1024),
   951/2048, 933/4096, 643/8192}, {449/2048, 1613/
  2048, -(229/512), -(967/1024), 851/2048, 1287/2048, 925/4096, 259/
  512, 1497/2048, -(599/1024), -(1999/4096), 357/1024, 45/512, 1405/
  2048, 225/1024, -(33/1024), 997/2048, 1731/4096, 75/
  128, -(441/2048), -(35/128), 1207/2048, -(539/1024), 1493/
  2048, -(133/4096), -(1451/8192), -(363/8192), -(809/1024), -(369/
   512), -(1345/2048), 7/8, 535/32768, -(1777/2048), 339/
  2048, -(621/1024), -(1451/8192), 1469/
  4096, -(1529/8192), -(1215/4096), -(465/2048), -(813/2048), -(1133/
   8192), -(723/4096), 253/256, 487/512, 809/1024, -(811/1024), 485/
  512, -(1751/2048), -(1405/2048), 1805/16384, 625/2048, -(1409/4096),
   595/1024, -(953/2048), 719/8192, 1299/2048, -(1757/2048), 39/64, 
  1367/4096, 655/1024, -(1561/2048), 101/512, 115/2048, 1601/
  8192, -(263/2048), 19/64, 1635/2048, -(1241/4096), -(907/2048), 
  1559/4096, 891/1024, 1857/2048, 175/
  512, -(1719/2048), -(1745/4096), -(1151/2048), 83/128, 1103/
  2048, -(1727/8192), 1121/2048, -(485/512), 829/1024, -(397/512), 
  1939/2048, -(1773/2048), 1051/
  8192, -(1509/4096), -(1443/4096), -(119/256), 723/4096, 1913/
  2048, -(1609/32768), 399/8192, 1345/2048, -(1067/2048), 1751/2048, 
  1465/2048, -(163/512), -(183/512)}, {-(889/1024), -(793/1024), -(
   185/1024), -(929/2048), -(13/512), -(1923/2048), -(339/1024), 535/
  4096, -(795/1024), -(989/2048), -(1777/4096), -(391/4096), -(519/
   1024), -(2035/2048), -(1993/2048), 979/
  2048, -(1639/2048), -(1361/2048), -(75/128), 1775/
  8192, -(1801/2048), 1711/4096, -(71/8192), 1113/2048, -(47/256), 
  499/16384, -(1661/2048), 65/256, -(51/64), -(755/2048), -(103/128), 
  1597/8192, -(311/4096), -(1671/4096), 1669/2048, 463/
  512, -(707/4096), -(933/2048), -(779/2048), 105/128, -(1725/2048), 
  1347/8192, 587/1024, -(1467/65536), -(1997/16384), -(1079/8192), 
  1401/4096, -(1737/2048), 1493/
  4096, -(1835/16384), -(1611/2048), -(1511/4096), -(579/2048), -(617/
   1024), 1817/2048, 339/
  512, -(1841/2048), -(2041/2048), -(85/256), -(493/512), -(231/256), 
  1571/4096, 1621/8192, -(1555/2048), 369/
  512, -(19/32), -(5/16), -(2003/4096), -(507/1024), -(785/1024), 
  1731/16384, 1825/65536, -(1603/4096), -(1955/4096), -(1929/4096), 
  703/1024, -(1417/2048), 1541/
  2048, -(1073/2048), -(1833/2048), -(1981/4096), -(97/256), -(933/
   2048), 1047/4096, -(637/2048), 1765/
  8192, -(587/1024), -(2037/4096), 989/2048, -(883/1024), 1515/2048, 
  369/512, 1697/16384, -(927/16384), -(1903/4096), 193/
  256, -(1407/2048), 107/256, -(1533/2048), -(117/512)}, {371/1024, 
  617/8192, 1355/4096, -(327/2048), 889/65536, 1425/2048, 1443/4096, 
  875/4096, 1481/
  4096, -(445/8192), -(1451/2048), -(1571/2048), -(49/128), -(153/
   256), -(601/1024), 1973/8192, 1709/2048, 1651/2048, 465/512, 1423/
  2048, 1837/2048, -(509/512), 1321/
  2048, -(1215/4096), -(1077/2048), -(837/2048), 931/
  1024, -(375/1024), -(19/32), 1055/32768, 169/256, 1257/4096, 127/
  128, -(193/1024), -(1419/4096), 581/
  4096, -(1139/2048), -(1729/4096), 219/
  1024, -(323/512), -(1993/4096), 1253/4096, 161/
  512, -(1555/2048), -(757/2048), 459/512, -(1483/4096), 1389/8192, 
  1281/8192, 1831/2048, -(33/256), 1639/2048, 39/64, 2027/16384, 889/
  4096, -(1447/2048), 1311/2048, 1353/2048, 317/512, 1633/2048, 59/
  64, -(1227/2048), 1167/4096, 1923/8192, 309/512, 1403/
  16384, -(463/512), -(1785/2048), 1055/
  2048, -(511/2048), -(169/1024), -(755/2048), 19/64, -(1567/4096), 
  1097/2048, 1219/4096, 275/2048, -(159/4096), -(693/2048), 455/512, 
  145/256, 137/256, -(761/1024), -(223/1024), 1463/
  65536, -(1203/16384), 1633/
  2048, -(1191/32768), -(763/2048), -(1253/2048), 1717/
  16384, -(63/64), 1025/2048, 1309/
  16384, -(1971/8192), -(1603/2048), -(213/4096), 137/256, 1929/16384,
   1763/4096}, {-(91/512), 1785/2048, -(1/2), 1327/4096, 547/
  1024, -(1707/2048), 165/8192, -(447/1024), 1197/2048, 2025/
  8192, -(909/8192), 1841/4096, 403/
  2048, -(1037/2048), -(1477/2048), -(131/512), -(1845/2048), 1561/
  8192, -(1403/8192), -(165/256), 1691/8192, 125/256, 1561/
  2048, -(137/256), -(1611/4096), 1275/4096, -(47/2048), 1317/4096, 
  863/2048, -(1925/2048), 189/256, -(1149/4096), -(23/32), 333/512, 
  505/512, -(1917/2048), 701/32768, -(1459/8192), 81/
  1024, -(1559/4096), 1581/4096, -(977/1024), 1743/32768, 675/
  4096, -(623/2048), 1025/4096, 155/256, -(1505/2048), 1595/2048, 651/
  1024, 253/1024, -(1417/2048), -(1543/16384), 411/512, -(805/1024), 
  425/1024, -(1665/8192), -(1409/2048), 855/1024, 349/
  512, -(1365/4096), 1465/2048, -(877/1024), 1075/
  2048, -(1387/2048), -(1815/2048), -(553/1024), -(745/2048), -(793/
   2048), -(1323/8192), 1781/4096, 19/
  128, -(555/2048), -(779/1024), -(893/1024), 1991/8192, 401/
  16384, -(983/1024), 1593/8192, 675/2048, -(1669/32768), 299/2048, 
  733/4096, -(541/1024), 237/2048, 29/32, 1509/4096, -(57/64), 1801/
  2048, -(353/512), 639/1024, 1689/8192, -(799/1024), 1795/
  16384, -(303/1024), -(217/512), 883/1024, 1475/4096, 707/
  1024, -(57/64)}, {-(533/1024), 79/256, -(185/512), 323/1024, 1825/
  2048, -(865/2048), 1399/2048, -(639/1024), 1201/4096, 1585/
  32768, -(211/256), 395/512, 1613/2048, 409/512, -(1903/2048), 817/
  4096, 1367/
  2048, -(1821/8192), -(1129/2048), -(543/2048), -(761/1024), -(1787/
   4096), 1777/2048, 1397/2048, 139/1024, 193/512, 635/
  1024, -(113/512), -(181/256), -(1627/2048), 417/512, 655/2048, 1473/
  2048, 165/512, -(91/1024), -(1471/2048), 953/1024, -(683/2048), 805/
  2048, -(1855/2048), 67/128, -(17/128), -(881/16384), 187/256, 727/
  1024, -(947/1024), 1459/2048, 1689/4096, 2027/8192, 781/2048, 115/
  512, 397/1024, -(883/2048), -(347/512), 993/1024, -(631/8192), 1053/
  65536, -(1549/2048), 1869/2048, 1741/
  4096, -(1663/2048), -(1117/16384), 1039/
  2048, -(1277/2048), -(109/128), -(363/1024), -(1539/2048), 1793/
  16384, -(1977/4096), -(837/16384), 887/1024, 1607/4096, 75/
  128, -(1345/8192), 1665/4096, -(1435/65536), 141/
  256, -(873/1024), -(373/512), 1351/2048, 799/2048, -(869/1024), 361/
  4096, 815/8192, 959/2048, 505/1024, 2017/
  2048, -(1815/8192), -(915/2048), 531/16384, -(35/64), 1999/
  2048, -(123/128), 1369/4096, -(1845/2048), 1761/2048, 713/8192, 779/
  1024, -(1507/2048), 949/2048}, {-(913/1024), 1969/16384, 1011/2048, 
  641/8192, -(1091/4096), -(157/512), -(1819/2048), -(1179/2048), -(
   793/1024), 133/8192, -(1445/65536), -(53/64), 1079/4096, 2011/2048,
   1345/2048, 1109/131072, 969/
  2048, -(45/512), -(1015/1024), -(1441/65536), 67/128, 19/
  32, -(1253/4096), 827/1024, 181/2048, 455/1024, 557/
  2048, -(1967/4096), 1751/4096, 1789/
  2048, -(803/4096), -(257/1024), -(863/2048), 1905/2048, 1449/8192, 
  1955/16384, 1877/4096, 407/
  512, -(739/1024), -(1061/4096), -(1371/8192), 1635/8192, 1761/32768,
   1039/4096, -(2005/4096), 269/
  2048, -(111/128), -(1175/2048), -(1021/2048), -(545/2048), -(867/
   1024), -(353/2048), -(1177/8192), -(1743/4096), 1643/4096, 351/
  512, -(195/256), -(2019/2048), 1287/8192, 515/
  8192, -(1443/2048), -(1809/2048), -(1099/2048), 535/2048, 1177/4096,
   2021/2048, 729/1024, -(271/512), -(77/16384), -(1135/8192), 1201/
  4096, -(1277/4096), -(1307/32768), 31/32, 473/1024, -(1005/4096), 
  207/256, 515/1024, 1841/4096, 805/4096, -(1873/4096), -(1483/32768),
   829/2048, -(575/1024), 1799/2048, 221/256, 81/128, -(937/1024), 
  1507/2048, -(1391/4096), -(1665/2048), 1009/
  2048, -(313/512), -(1049/2048), 385/512, -(1021/2048), -(1871/2048),
   721/2048, 207/1024, 1585/2048}, {27/32, 1771/2048, 1721/
  2048, -(1651/2048), 1475/
  2048, -(1945/4096), -(95/256), -(343/2048), -(629/2048), 167/
  256, -(11/512), 1383/2048, 877/1024, 1649/2048, 1003/4096, 1753/
  2048, -(121/128), -(749/1024), 1015/1024, -(1565/2048), 561/8192, 
  67/32768, 97/256, 1109/2048, 1159/16384, 1561/2048, 273/
  1024, -(1087/4096), -(357/1024), -(1273/2048), 931/1024, 975/1024, 
  1179/2048, 59/64, -(111/256), 1985/16384, 71/
  128, -(241/512), -(1401/4096), 1963/8192, 63/128, -(171/256), 1037/
  8192, 705/2048, -(1895/2048), 205/512, 249/2048, 595/
  1024, -(1109/2048), 441/512, -(1545/2048), -(227/256), -(1857/4096),
   1355/2048, 569/8192, 659/32768, 1787/2048, -(85/256), -(263/1024), 
  1047/16384, 673/1024, -(931/8192), -(967/1024), 2043/
  2048, -(201/256), 1435/8192, 75/128, -(185/256), -(93/128), 1531/
  2048, -(983/1024), 1383/2048, -(1091/8192), 1995/
  2048, -(727/4096), -(1579/2048), -(987/2048), 1405/4096, 203/512, 
  1515/2048, 601/4096, -(1897/2048), -(1675/4096), -(1831/2048), 1829/
  4096, -(939/2048), 41/1024, -(1401/2048), -(157/256), 1057/16384, 
  1291/4096, 139/256, 897/2048, 493/4096, -(33/64), 1525/
  2048, -(801/4096), 1839/
  16384, -(973/4096), -(1699/2048)}, {-(43/64), -(261/32768), 229/256,
   919/1024, 1669/4096, -(313/1024), 493/512, -(869/4096), 87/256, 
  961/1024, 675/1024, 695/2048, 289/512, 1409/2048, 893/1024, 1909/
  2048, 1067/8192, -(283/1024), -(189/256), -(1205/2048), 1957/
  8192, -(821/2048), -(1345/65536), -(563/1024), 1507/32768, 1267/
  2048, -(941/2048), -(695/1024), 949/1024, 1849/
  8192, -(269/512), -(2023/2048), 1507/
  16384, -(1275/8192), -(1811/2048), 385/1024, 621/2048, -(1355/8192),
   1643/2048, 259/512, 1881/2048, -(383/512), 839/2048, 259/512, 1465/
  32768, 1267/4096, 1413/
  2048, -(627/1024), -(1377/8192), -(1105/4096), 395/2048, 743/
  4096, -(1971/4096), -(247/256), -(873/2048), -(275/8192), -(875/
   1024), -(167/256), -(497/512), -(87/512), -(905/4096), 91/
  65536, -(1435/16384), -(1945/2048), 771/1024, 1445/2048, 27/64, 835/
  1024, -(999/2048), 439/512, 1177/16384, 1157/2048, -(1933/2048), 
  1865/32768, 1635/8192, 1671/2048, -(449/1024), 1081/2048, 125/128, 
  731/1024, 1897/2048, -(1519/8192), -(1643/2048), 757/2048, 583/2048,
   111/256, -(195/512), -(469/512), -(1231/4096), 921/
  2048, -(555/1024), -(1073/2048), 1957/
  4096, -(801/16384), -(827/1024), 1101/16384, 1901/
  8192, -(1303/32768), -(1157/4096), 1181/2048}, {-(313/2048), 5/
  16, -(203/256), 397/2048, 817/1024, -(513/2048), 921/
  32768, -(1213/2048), -(801/1024), 1801/4096, -(259/1024), 511/
  2048, -(73/128), 1721/
  4096, -(1719/32768), -(1581/2048), -(557/1024), -(1057/2048), -(689/
   4096), 947/2048, -(389/512), -(873/2048), 249/
  256, -(1669/2048), -(1357/2048), -(865/2048), -(685/4096), 547/
  2048, -(927/4096), 295/
  512, -(645/1024), -(553/1024), -(179/256), -(1347/2048), -(835/
   2048), -(767/2048), -(1149/8192), 1379/16384, 1601/
  32768, -(205/256), 1167/
  2048, -(499/1024), -(1747/16384), -(591/4096), -(669/1024), -(1233/
   4096), -(1015/2048), 385/1024, -(393/512), 381/2048, 1909/
  2048, -(781/1024), 1215/4096, -(1907/2048), 1555/2048, 639/
  1024, -(11/128), -(1459/2048), -(661/4096), 1939/2048, 1755/
  2048, -(133/2048), -(1585/2048), -(495/1024), 1913/2048, 659/1024, 
  1657/4096, 1581/2048, -(237/256), -(1899/2048), 871/2048, 1889/2048,
   1925/2048, 1477/4096, -(1123/2048), 319/512, 1245/4096, 1679/8192, 
  1819/16384, 1495/32768, -(515/1024), 727/
  4096, -(1521/2048), -(1715/2048), 921/1024, 1719/4096, 1267/
  2048, -(1523/2048), -(1719/2048), -(605/1024), -(7/8), 631/1024, 
  413/512, 375/512, -(1991/2048), 1655/4096, 1169/2048, 1879/2048, 
  1207/32768, 825/1024}, {937/2048, -(237/2048), 1331/
  8192, -(843/2048), -(1735/2048), -(1023/8192), -(1951/2048), -(1069/
   2048), -(1485/2048), -(1349/8192), -(1413/4096), -(1153/8192), 
  1235/2048, 735/1024, -(601/1024), -(1619/8192), 1857/
  2048, -(305/4096), 887/1024, 1169/
  2048, -(265/1024), -(1953/2048), -(1393/2048), 395/512, 1101/2048, 
  1329/2048, -(2037/2048), 1337/2048, -(1119/4096), 1693/8192, 1183/
  8192, -(595/1024), -(581/4096), 63/8192, 1753/16384, 131/2048, 1313/
  2048, -(781/1024), -(1629/2048), 1329/
  2048, -(963/4096), -(315/512), -(1271/2048), 581/
  8192, -(29/256), -(1779/2048), 1681/2048, 1797/2048, 1959/
  4096, -(1115/8192), 1995/4096, 1751/2048, 833/2048, 673/
  1024, -(2019/2048), 1731/2048, 669/1024, 601/2048, -(1675/4096), 
  543/1024, -(537/16384), -(179/512), 1483/4096, -(1311/4096), 701/
  2048, -(757/2048), 1449/
  2048, -(789/16384), -(1201/32768), -(1833/16384), -(1289/2048), 465/
  512, -(1427/2048), 1317/2048, 1065/4096, 1461/
  2048, -(1565/8192), -(2001/4096), -(1097/2048), 1259/2048, 1097/
  8192, 251/256, -(1357/2048), 475/4096, 179/
  256, -(461/512), -(1163/2048), -(255/256), 227/256, -(1365/32768), 
  249/256, 1765/2048, -(1399/4096), 1017/1024, 1959/4096, 949/
  4096, -(1729/2048), 1195/
  2048, -(1099/2048), -(1327/16384)}, {-(1845/2048), 1281/
  8192, -(1793/2048), -(23/32), -(1347/4096), -(93/512), -(1265/
   2048), -(967/1024), -(1025/2048), -(489/512), 1377/
  8192, -(1537/4096), 973/1024, 1035/2048, -(261/512), 1773/4096, 503/
  512, 1211/2048, -(755/1024), 681/2048, 899/1024, 1507/2048, 2003/
  4096, -(179/256), -(889/1024), -(1473/2048), 213/512, 1115/
  4096, -(1715/2048), -(859/1024), -(1539/16384), 801/
  4096, -(131/1024), -(1977/2048), -(573/32768), -(423/512), -(1349/
   4096), -(107/128), 1157/4096, 961/
  1024, -(691/2048), -(1735/2048), -(225/256), 1899/
  2048, -(1219/8192), 1329/4096, 1211/
  2048, -(733/1024), -(1939/2048), -(1977/8192), 553/1024, 1757/2048, 
  2013/2048, -(111/256), -(1349/2048), 1415/
  16384, -(587/2048), -(405/512), -(535/2048), -(959/2048), -(51/
   128), -(575/16384), 1387/2048, 1315/4096, -(375/512), 1845/
  2048, -(801/2048), -(513/1024), -(1041/4096), -(137/8192), 255/
  256, -(1207/4096), -(43/128), 1273/2048, -(603/8192), 1509/
  2048, -(1257/4096), -(1525/4096), -(1001/32768), -(433/8192), 261/
  4096, 1727/8192, 195/
  512, -(1039/4096), -(581/1024), -(1077/2048), -(721/2048), -(1631/
   2048), -(921/1024), 1217/8192, -(313/512), 1985/2048, 1589/
  4096, -(653/2048), -(1937/2048), -(921/8192), -(743/1024), 1137/
  8192, 729/2048, -(241/256)}, {465/512, 91/
  512, -(497/512), -(1225/16384), -(1213/2048), 1285/
  2048, -(1621/16384), 1141/
  4096, -(1271/2048), -(671/1024), -(807/8192), 179/16384, -(173/512),
   1359/8192, 1711/8192, -(151/256), -(141/512), 947/
  16384, -(1205/2048), -(1157/4096), -(1507/4096), -(993/2048), -(
   1143/4096), -(437/512), -(75/1024), 675/
  2048, -(261/2048), -(203/512), 257/512, 381/8192, -(655/1024), 1685/
  2048, -(835/2048), -(211/1024), -(57/128), -(125/256), 687/
  1024, -(1163/16384), 1773/
  2048, -(1703/2048), -(497/512), -(943/2048), 185/256, 39/256, 1213/
  4096, 1755/2048, 479/2048, 935/1024, -(1131/2048), -(607/1024), 993/
  4096, 1619/16384, 1251/2048, 397/512, 1563/32768, 1661/
  16384, -(1451/8192), -(2001/2048), 741/2048, -(409/1024), 1621/
  2048, -(571/4096), -(841/2048), 1573/8192, -(327/512), 987/
  1024, -(1383/65536), 1327/
  8192, -(2047/2048), -(1821/2048), -(351/1024), -(1749/2048), -(225/
   512), 1639/2048, 1001/
  1024, -(1239/2048), -(391/4096), -(1319/16384), -(1865/2048), -(
   1875/4096), -(749/2048), 1153/8192, 201/256, 911/2048, -(319/1024),
   1677/8192, -(1615/2048), 1339/2048, 439/2048, 887/
  1024, -(1261/4096), -(405/1024), -(2045/2048), 759/
  1024, -(1261/8192), -(1847/16384), -(137/256), 229/2048, -(31/32), 
  1307/2048}, {1001/4096, 1381/32768, -(1937/32768), 533/2048, 1169/
  4096, 823/1024, -(1381/32768), 1311/
  8192, -(1743/8192), -(1879/16384), 873/
  1024, -(891/2048), -(1427/8192), 1203/
  2048, -(395/512), -(969/8192), -(261/1024), -(91/128), 1137/
  2048, -(647/1024), -(1305/8192), -(715/1024), 1829/2048, 1987/2048, 
  2031/2048, -(2041/2048), -(185/1024), 687/2048, 1521/
  2048, -(1573/2048), -(1575/4096), 543/1024, 1165/16384, 1543/
  2048, -(469/1024), 319/512, -(641/1024), 523/
  1024, -(85/128), -(519/1024), -(1493/2048), 1607/2048, 115/256, 153/
  8192, 409/512, 1293/16384, 823/1024, 235/
  512, -(1445/2048), -(97/128), -(353/1024), -(143/1024), 517/1024, 
  975/1024, 361/4096, -(177/32768), 1003/1024, 1551/
  4096, -(1705/2048), 841/2048, -(1473/2048), -(1061/32768), 1999/
  4096, 1411/2048, -(739/1024), -(543/1024), 455/1024, 125/256, 1055/
  2048, -(1295/4096), 361/32768, -(261/8192), 571/1024, -(295/4096), 
  951/1024, -(1821/4096), 1799/2048, 595/2048, 997/1024, 1985/
  2048, -(587/4096), -(1501/16384), -(1061/4096), 2033/4096, 1729/
  2048, 1341/4096, 605/4096, 1555/16384, -(679/1024), -(677/16384), 
  95/128, 1901/32768, -(607/8192), 1821/
  32768, -(1463/4096), -(1645/2048), 1345/2048, -(387/4096), 769/2048,
   1759/8192}, {-(1861/8192), -(1341/4096), 449/512, -(1483/2048), 
  763/1024, -(373/2048), -(1617/2048), 495/512, 1497/
  2048, -(837/2048), -(287/512), 413/4096, 1031/
  2048, -(1139/2048), -(1151/2048), 1951/2048, 1767/
  2048, -(1711/4096), -(297/2048), -(621/16384), -(621/1024), 141/
  256, -(1633/8192), -(101/2048), -(1063/2048), 1287/4096, 229/
  512, -(1513/4096), -(781/4096), 1099/2048, 59/
  128, -(763/1024), -(1133/2048), 999/1024, -(49/64), 107/128, 115/
  32768, 1553/8192, -(75/128), -(865/131072), 1797/4096, -(1969/2048),
   1973/8192, -(187/256), 721/1024, -(833/1024), 667/1024, 1941/4096, 
  3/1024, 1197/2048, -(547/2048), 1711/2048, 211/256, 2013/
  2048, -(1057/32768), -(1257/2048), 1497/4096, -(1239/4096), 1699/
  2048, 279/4096, 393/512, 1439/4096, -(255/256), 1055/
  4096, -(895/2048), -(653/2048), 1095/4096, 1433/2048, -(199/256), 
  1291/4096, -(165/256), 1299/2048, 575/1024, -(1627/2048), 1381/
  32768, 643/4096, -(1703/16384), 1213/
  2048, -(333/512), -(131/4096), -(1539/16384), -(1767/4096), -(929/
   1024), 135/256, -(11/32), 1737/2048, 635/
  1024, -(1283/2048), -(147/256), -(793/65536), 1441/
  2048, -(401/2048), -(271/512), -(533/1024), -(87/256), 1439/2048, 
  447/131072, 1151/2048, 1161/8192, 1579/4096}, {441/1024, 555/
  8192, -(1945/4096), 1135/4096, -(519/1024), -(1397/2048), 139/1024, 
  945/1024, -(959/1024), -(1671/16384), -(659/1024), 1185/8192, 593/
  1024, 529/8192, 1299/2048, -(329/512), 577/1024, -(219/1024), 967/
  1024, 1047/4096, -(1661/4096), -(1367/2048), 543/2048, 123/512, 613/
  2048, 755/4096, -(1341/16384), -(389/512), -(1901/4096), 661/1024, 
  681/1024, 45/64, -(1871/2048), 1845/
  2048, -(1355/2048), -(1279/8192), -(623/1024), -(37/64), -(53/
   128), -(287/1024), 465/512, -(51/128), 1003/1024, 1665/
  8192, -(1803/8192), 845/4096, 557/
  1024, -(693/1024), -(749/1024), -(1577/4096), 719/2048, -(909/1024),
   1135/2048, -(429/512), -(311/512), 2043/4096, 623/
  1024, -(1731/4096), 593/32768, 1313/2048, -(1049/2048), 1485/2048, 
  1605/32768, 1951/4096, 1109/4096, -(1907/2048), 1509/
  2048, -(1739/4096), -(1081/16384), -(845/2048), 49/
  128, -(2023/4096), -(947/1024), -(839/1024), -(1099/4096), -(611/
   4096), 5/4096, 455/4096, 873/1024, -(563/8192), 1257/
  2048, -(183/512), -(1275/2048), -(1537/2048), -(1725/4096), 175/
  8192, -(419/2048), 1551/2048, -(1205/16384), -(215/256), 97/128, 
  1311/2048, -(47/64), -(1707/2048), -(1591/4096), 1893/
  2048, -(1279/65536), 503/512, -(619/2048), -(1273/4096)}, {37/256, 
  491/512, 825/1024, -(1061/4096), 929/1024, -(1943/4096), 1221/2048, 
  1913/2048, 1613/
  4096, -(99/256), -(295/512), -(1761/2048), -(779/1024), -(131/
   512), -(1067/4096), -(1545/4096), 661/1024, 1729/2048, 1123/2048, 
  1/4, -(621/8192), -(191/16384), 1351/8192, 1127/
  8192, -(1745/8192), -(1039/2048), -(1925/16384), -(619/2048), 3/32, 
  1607/2048, 349/512, 297/512, 677/2048, -(265/1024), -(1467/4096), 
  103/512, 1871/4096, -(145/8192), 615/1024, 1369/2048, 1747/8192, 
  181/256, 2015/2048, 1759/2048, 757/131072, -(2021/2048), 1103/
  2048, -(101/256), 1979/4096, -(53/64), -(195/256), -(943/2048), 
  1541/2048, -(265/512), -(477/512), 739/
  4096, -(1637/16384), -(437/512), -(779/2048), -(1607/4096), 219/512,
   1885/8192, -(427/1024), -(779/4096), 597/2048, -(1973/4096), 179/
  256, 461/512, 557/2048, -(189/256), -(1207/65536), -(1213/8192), 
  1961/8192, -(505/1024), 921/1024, -(1201/2048), -(1295/4096), 803/
  1024, -(1979/2048), 1771/2048, 1867/8192, 635/1024, -(611/1024), 
  1235/4096, -(977/1024), 1059/4096, -(827/2048), 295/
  512, -(523/2048), 893/1024, 707/1024, 359/512, -(125/128), 383/
  2048, -(87/128), -(1887/131072), 1319/
  4096, -(409/512), -(1537/4096), 1435/
  4096}, {-(561/1024), -(309/512), 381/2048, 513/
  4096, -(1399/2048), -(51/4096), 1525/2048, 229/
  512, -(1327/4096), -(995/2048), 1647/2048, -(1501/2048), 295/2048, 
  219/1024, 189/256, -(1997/16384), 1619/4096, 931/2048, 683/
  2048, -(1121/4096), 945/1024, -(1259/4096), 1067/2048, 1063/4096, 
  663/4096, -(193/256), 487/512, -(211/256), 1949/4096, -(1253/2048), 
  387/512, -(675/2048), -(2025/2048), 1185/
  16384, -(1403/32768), -(1047/2048), 1729/8192, -(839/1024), 547/
  8192, -(1901/2048), 1703/2048, 2013/4096, -(15/32), 717/
  1024, -(1511/4096), -(237/2048), -(1839/4096), 1375/8192, 927/1024, 
  141/2048, -(1203/4096), -(1709/16384), 1061/8192, 173/
  256, -(515/4096), -(339/512), 1765/
  2048, -(821/2048), -(1185/8192), -(677/2048), 2007/
  2048, -(243/512), -(1159/16384), -(1019/1024), 923/32768, 79/
  256, -(943/4096), -(1811/4096), -(1491/4096), -(1291/2048), -(1683/
   2048), 1389/4096, -(1421/4096), -(1327/2048), 1605/4096, 1159/
  32768, 1953/16384, -(1873/8192), 755/
  1024, -(2035/4096), -(1583/2048), 1467/2048, -(899/1024), 1585/
  16384, -(421/1024), -(775/1024), 2019/4096, 373/
  4096, -(479/512), -(81/128), -(715/1024), 1349/2048, -(1477/2048), 
  881/1024, -(167/2048), 1579/2048, -(1639/16384), 837/1024, 651/2048,
   1677/2048}, {569/2048, -(633/8192), -(397/2048), -(2033/4096), 
  1539/4096, -(357/512), 1289/2048, 923/1024, 1301/8192, 1139/4096, 
  251/512, 571/16384, 657/4096, -(445/512), 637/1024, 1633/
  4096, -(1529/2048), 915/2048, -(967/4096), 1745/4096, 613/1024, 721/
  1024, -(927/4096), -(25/256), -(317/512), -(1165/2048), 1303/16384, 
  417/512, 265/512, 1505/
  2048, -(259/1024), -(923/2048), -(1943/4096), -(2013/4096), -(63/
   128), 31/
  32, -(2011/16384), -(1639/32768), -(1083/4096), -(1843/4096), 1387/
  2048, 161/4096, -(121/1024), 739/1024, 1293/4096, 1999/8192, 95/
  128, -(285/512), 1683/4096, -(1837/4096), 1125/2048, 1691/8192, 473/
  2048, -(3/4), -(599/1024), -(1091/8192), 1757/8192, 423/512, 231/
  8192, -(2003/8192), -(271/1024), -(661/4096), -(1613/2048), 941/
  4096, -(467/512), 1259/2048, -(279/512), -(1749/4096), 1847/
  2048, -(369/512), 1353/2048, -(1891/2048), 73/8192, 613/
  2048, -(1847/4096), -(1943/4096), 2005/8192, 1563/
  2048, -(1367/2048), 1337/2048, -(1929/4096), 1617/4096, 253/256, 
  1733/2048, -(511/2048), 1351/2048, -(1695/2048), 1469/4096, 189/
  256, -(773/4096), 1169/4096, 1279/2048, 553/16384, 1933/
  2048, -(1787/4096), 1407/
  4096, -(1559/2048), -(1857/16384), -(2039/32768), -(1593/4096)}, {-(
   1501/4096), 1109/2048, 1059/2048, 1765/2048, 225/
  256, -(2001/2048), -(193/512), -(715/4096), -(583/4096), 1945/
  4096, -(917/2048), -(1925/4096), -(205/1024), 829/
  8192, -(1045/2048), -(1691/2048), -(447/1024), 89/256, 335/
  8192, -(1481/2048), 407/512, -(449/512), -(1087/2048), -(391/512), 
  839/2048, 545/2048, -(1811/2048), -(1971/4096), 1091/4096, 769/1024,
   1271/2048, 15/
  16, -(883/2048), -(1065/2048), -(31/32), -(103/512), -(1463/2048), 
  423/512, -(339/512), -(531/2048), 23/128, -(959/4096), 921/
  4096, -(179/512), -(1203/2048), -(957/16384), 1495/8192, 1879/
  2048, -(361/16384), 27/32, 339/1024, -(1243/2048), 1735/2048, 453/
  512, 1241/2048, -(177/4096), -(1727/2048), -(1681/2048), 1779/
  2048, -(1445/4096), 1427/2048, 213/1024, 249/256, -(1611/4096), 
  1063/2048, 249/4096, 513/1024, 1327/
  4096, -(1359/8192), -(879/1024), -(419/8192), 127/128, -(751/4096), 
  1647/4096, 661/1024, 841/4096, -(837/2048), -(277/4096), 1823/
  2048, -(875/4096), 1981/2048, 1311/2048, -(1005/4096), 661/1024, 
  683/1024, -(611/2048), -(615/1024), -(1077/2048), -(507/1024), 189/
  1024, -(811/1024), -(1013/1024), -(207/256), -(51/128), 331/
  512, -(1577/4096), 881/1024, 1653/2048, 201/256, 357/
  1024}, {-(77/256), -(1403/4096), -(69/256), 169/32768, 1607/
  4096, -(601/4096), -(1269/2048), 1035/8192, 533/1024, -(759/1024), 
  1683/2048, -(39/64), 1499/2048, 1915/2048, 699/1024, 1765/2048, 
  1499/4096, 1401/2048, 1213/
  4096, -(1639/4096), -(1927/2048), -(69/128), -(1401/2048), 1347/
  32768, 809/2048, -(387/512), 1363/2048, -(381/512), 1573/
  4096, -(427/4096), -(1949/2048), 1565/
  4096, -(1613/2048), -(625/1024), -(825/2048), -(1239/8192), 999/
  8192, -(453/2048), 1235/
  32768, -(249/256), -(171/256), -(897/1024), -(1721/16384), 1083/
  2048, -(1935/2048), -(647/1024), 1423/4096, 103/
  128, -(1407/4096), -(487/2048), 1349/2048, 1693/2048, 1565/
  16384, -(1861/32768), -(251/256), 913/1024, -(1127/2048), -(87/256),
   409/2048, -(1425/2048), -(619/8192), 841/1024, 195/256, 907/16384, 
  501/1024, -(1971/4096), 737/32768, 691/4096, 1305/
  4096, -(1819/2048), 1553/2048, 611/1024, -(1469/4096), -(1031/2048),
   1613/2048, -(1155/2048), -(853/32768), -(535/2048), -(1453/4096), 
  185/2048, 111/128, -(587/2048), -(543/2048), 1421/2048, 1867/2048, 
  1821/2048, 1549/8192, 1755/16384, -(105/4096), -(117/256), 933/1024,
   191/256, -(1017/4096), 1395/2048, -(909/8192), -(371/512), 723/
  1024, -(7/8), -(1595/16384), 1195/8192}, {1315/
  4096, -(29/32), -(577/2048), 1393/
  2048, -(1293/16384), -(1729/32768), 861/
  1024, -(1793/4096), -(1249/32768), 1939/
  4096, -(1637/32768), -(675/2048), 391/1024, 413/512, 1531/
  2048, -(1661/2048), 1543/2048, 1129/8192, -(311/512), -(1141/2048), 
  987/1024, -(41/64), -(1175/4096), 1143/2048, -(207/1024), 2043/2048,
   479/4096, 1243/8192, 817/1024, -(1101/4096), 1199/
  8192, -(1753/2048), -(1643/2048), 1547/2048, -(221/256), 1061/4096, 
  177/1024, 27/64, 447/512, -(165/512), -(411/512), -(491/1024), 449/
  512, 97/256, 857/1024, -(559/2048), 421/512, 1703/2048, -(811/1024),
   377/1024, 1165/2048, 417/1024, -(1747/2048), -(157/8192), 1995/
  4096, 1543/2048, -(385/1024), 1051/8192, -(2013/2048), 53/
  512, -(1703/4096), 1275/2048, -(1025/2048), -(1633/4096), 517/1024, 
  541/1024, 47/2048, 1913/2048, 939/4096, 483/512, 1859/2048, 1181/
  2048, -(875/8192), 2041/2048, -(197/32768), -(1517/4096), 531/1024, 
  1633/2048, 1261/4096, 1293/8192, 1995/8192, -(871/4096), 1425/
  2048, -(1107/2048), 955/2048, -(793/1024), 1157/2048, 1453/
  32768, -(223/256), 993/1024, -(613/1024), 1153/
  2048, -(761/1024), -(413/512), 773/32768, 997/8192, 1893/2048, 1791/
  4096, 1877/2048, -(211/512)}, {-(111/128), 509/
  4096, -(1845/2048), -(1297/2048), -(1175/2048), -(1887/2048), -(137/
   2048), 887/
  1024, -(1049/65536), -(245/256), -(617/1024), -(1777/4096), -(329/
   512), -(161/512), -(1555/8192), 1511/8192, -(29/32), -(1201/4096), 
  1401/4096, 149/256, 1589/2048, 285/512, 203/256, 1235/
  2048, -(941/2048), 505/2048, 731/1024, 1287/
  2048, -(1267/2048), -(745/1024), -(1723/2048), 587/
  1024, -(1487/2048), 905/1024, 1531/2048, 73/256, 643/2048, 313/
  4096, -(221/2048), -(1319/4096), 1087/4096, -(675/2048), 265/
  2048, -(1067/2048), -(1797/2048), 1669/2048, 717/1024, -(805/2048), 
  913/8192, 161/256, 1857/2048, 2027/4096, 1845/4096, 719/1024, 763/
  1024, -(1329/4096), -(1449/8192), -(137/16384), 1825/
  4096, -(687/1024), 1387/2048, -(309/1024), 1081/32768, 1287/4096, 
  1895/4096, -(1253/4096), 799/4096, 1593/
  8192, -(1557/2048), -(869/1024), -(137/256), 1605/
  2048, -(839/2048), -(879/1024), 1863/2048, 891/
  4096, -(1211/2048), -(293/1024), 897/8192, -(1605/4096), 569/
  1024, -(1113/16384), 1195/2048, 473/4096, -(221/1024), 251/
  1024, -(211/512), 1529/8192, -(339/512), -(1039/8192), 1713/2048, 
  1073/2048, -(279/512), -(2039/2048), 1367/4096, -(2033/2048), 1863/
  2048, -(43/64), 1699/2048, 1561/32768}, {-(91/128), -(1573/8192), 
  1737/8192, 17/64, 1165/4096, 1415/4096, 395/512, 637/
  1024, -(915/1024), 149/256, -(1713/16384), 869/1024, 589/1024, 553/
  2048, 1183/4096, 1513/2048, 947/1024, -(367/512), -(1397/4096), 
  1837/4096, 395/8192, 1127/
  4096, -(597/1024), -(1123/2048), -(1189/2048), 1341/2048, 885/4096, 
  1179/4096, -(1349/4096), -(165/512), -(103/256), 611/16384, 1329/
  4096, 133/512, 425/512, 1957/2048, -(1867/2048), 139/
  512, -(667/8192), 965/1024, 125/128, -(1327/8192), 1345/4096, 873/
  16384, -(1471/2048), -(1775/2048), 127/128, 245/1024, 971/2048, 221/
  2048, -(1721/4096), -(531/1024), 437/512, -(697/1024), 1635/2048, 
  339/2048, 495/512, 1789/8192, -(227/16384), -(1819/4096), 1531/
  2048, -(1545/8192), 1863/2048, -(1101/4096), -(239/256), 1649/4096, 
  369/1024, 21/64, 167/256, 967/2048, -(295/512), 39/
  128, -(1101/16384), -(403/512), 1849/4096, 1239/2048, 2041/
  2048, -(1515/2048), 1363/2048, 1255/2048, 89/512, -(1187/8192), 
  1717/8192, -(1283/2048), -(1871/2048), -(57/2048), -(863/1024), 369/
  1024, 1359/4096, 1377/4096, -(1411/2048), 3/64, 1905/2048, 1693/
  2048, 799/1024, 1179/4096, -(365/512), -(1985/16384), -(51/128), 
  1395/4096}, {99/
  32768, -(887/1024), -(941/2048), -(1613/2048), -(1619/2048), -(239/
   256), 787/1024, 1635/2048, 1609/16384, 821/4096, -(531/1024), 569/
  1024, -(1511/2048), -(843/2048), 1285/2048, -(415/2048), 1391/2048, 
  555/1024, -(427/4096), -(137/256), 727/4096, 1843/4096, 501/
  512, -(325/512), 1913/16384, -(1103/2048), 79/128, 953/1024, 1491/
  4096, 1361/2048, 1885/2048, 185/256, 1289/
  16384, -(1353/2048), -(1497/4096), -(401/512), 1155/2048, 1659/8192,
   1733/2048, 129/256, 1767/2048, -(1517/2048), 1955/
  4096, -(1353/8192), 1601/2048, 249/512, -(1945/2048), 1193/131072, 
  1105/4096, 1015/1024, -(661/1024), -(391/4096), 1505/
  4096, -(2013/2048), 1793/4096, -(1893/2048), 2017/
  8192, -(1201/2048), -(1083/4096), -(1411/2048), 349/512, 1049/
  2048, -(141/256), -(1909/2048), 551/1024, -(37/128), 1003/1024, 275/
  512, -(1311/8192), -(165/512), -(1655/4096), 79/128, -(1723/4096), 
  447/512, 1203/2048, 2035/4096, 273/131072, -(2047/65536), 379/512, 
  165/512, -(1555/4096), -(459/2048), 1177/2048, -(1581/8192), 1581/
  2048, 783/1024, -(535/1024), -(1185/2048), -(469/512), 861/
  1024, -(2007/2048), 1663/2048, 925/
  2048, -(471/512), -(1867/2048), -(1791/8192), 705/4096, 21/
  128, -(1187/2048), -(417/1024)}, {-(965/1024), 217/
  2048, -(1705/4096), -(551/1024), -(341/2048), -(261/512), -(729/
   1024), -(1045/2048), 739/1024, 1663/4096, 1099/4096, 1751/
  2048, -(423/1024), -(1013/1024), -(835/8192), 1493/
  2048, -(1185/2048), -(233/2048), 1515/2048, 541/
  1024, -(1765/2048), -(679/1024), -(1091/16384), 1317/4096, 683/1024,
   1469/4096, -(1535/4096), -(683/1024), 123/128, -(1079/4096), 1789/
  2048, -(883/2048), -(1027/2048), -(1157/2048), 1265/2048, 1143/8192,
   355/131072, -(1623/2048), 1165/
  16384, -(577/2048), -(731/2048), -(95/128), -(2023/8192), -(853/
   1024), -(297/4096), 709/2048, 391/
  512, -(781/2048), -(1919/2048), -(509/512), 467/
  2048, -(1913/16384), -(1493/4096), -(613/2048), 957/8192, 299/512, 
  303/1024, 561/2048, -(1623/2048), -(181/256), -(1403/2048), 737/
  1024, 407/2048, 683/4096, -(389/4096), -(165/512), 1497/32768, 1051/
  2048, 1511/4096, -(1937/8192), -(481/512), 1943/4096, -(1985/2048), 
  1719/8192, -(209/256), 809/1024, 453/1024, -(1597/16384), 877/
  1024, -(1809/4096), 383/
  512, -(489/512), -(1213/2048), -(149/256), -(1935/8192), 1527/
  8192, -(609/1024), 285/512, 247/512, 61/128, 1401/2048, 1751/
  2048, -(1469/16384), -(1541/2048), -(685/2048), 1369/2048, 1827/
  8192, -(859/1024), -(453/1024), 541/
  4096}, {-(1539/65536), -(709/2048), 1355/
  4096, -(1679/2048), -(1991/16384), -(1043/4096), 757/
  1024, -(707/1024), 355/1024, -(441/512), 1093/2048, 447/
  512, -(1147/2048), 723/2048, -(1441/4096), 1713/8192, -(1049/2048), 
  465/512, -(1189/4096), -(1875/2048), -(1089/2048), -(851/1024), 307/
  32768, -(527/8192), -(217/512), -(1455/2048), 1861/8192, 1973/
  4096, -(237/2048), -(93/128), 1229/32768, -(529/1024), 1755/2048, 
  1723/8192, 1859/16384, 275/2048, 1129/2048, -(865/1024), 101/
  512, -(1539/8192), 1573/8192, -(943/16384), -(575/1024), 285/512, 
  871/1024, -(1473/2048), -(951/8192), 663/1024, 985/
  1024, -(1887/2048), -(1835/2048), 1107/2048, -(395/4096), 1827/4096,
   1141/2048, 1637/8192, 1703/4096, 1477/2048, -(1149/2048), 1439/
  8192, -(1509/2048), -(2039/4096), 1421/4096, 1663/4096, 1695/
  4096, -(1521/16384), -(1913/4096), -(1689/4096), 1671/2048, 1623/
  2048, -(1363/2048), 1577/2048, 201/8192, 463/512, -(1011/1024), 
  1675/2048, 763/2048, -(1331/4096), 11/
  16, -(947/1024), -(1961/2048), -(245/512), -(805/2048), -(1797/
   2048), -(1857/2048), -(715/4096), -(1191/32768), 807/
  2048, -(637/2048), -(809/4096), 855/1024, 629/
  1024, -(877/2048), -(1017/1024), 1723/
  4096, -(1713/2048), -(987/1024), -(687/1024), 43/
  128, -(1665/2048)}, {57/64, 1245/4096, 575/8192, 961/1024, 1927/
  8192, 1049/4096, 1085/8192, -(145/256), 515/1024, 1443/
  2048, -(23/32), -(903/2048), 1979/
  4096, -(937/1024), -(2021/2048), -(1255/2048), -(281/512), 47/64, 
  739/1024, -(147/512), -(1833/2048), 963/
  4096, -(1187/2048), -(1501/2048), 191/512, 235/256, -(615/1024), 
  405/2048, -(1861/2048), 1567/2048, 793/65536, 1719/2048, 489/4096, 
  1223/2048, 1555/2048, 1777/2048, 519/2048, -(1547/65536), 1173/
  2048, -(541/1024), -(697/4096), 473/512, 1589/
  16384, -(921/1024), -(543/1024), 1753/
  16384, -(663/1024), -(1443/2048), -(1259/2048), -(1635/2048), -(935/
   4096), -(1129/2048), 569/8192, 1411/2048, 1767/8192, -(137/256), 
  1643/2048, 1801/2048, 265/512, -(1903/2048), 291/512, 1983/
  16384, -(1087/4096), 231/512, 1621/65536, -(1307/2048), -(245/1024),
   211/256, 893/2048, -(577/1024), 193/
  512, -(1627/4096), -(437/512), -(277/1024), 1111/
  2048, -(1401/2048), -(459/512), -(1891/4096), -(765/1024), 749/
  4096, -(887/1024), 619/1024, -(767/1024), 1523/4096, 1335/
  2048, -(1691/8192), 211/512, -(53/64), 77/1024, 1695/
  2048, -(1097/2048), 1347/4096, -(145/512), 1805/4096, -(1959/2048), 
  833/1024, 1313/
  4096, -(133/512), -(1487/8192), -(1533/16384)}, {-(425/2048), -(63/
   64), 1685/2048, -(869/1024), -(377/8192), 1997/4096, 1005/2048, 
  971/2048, 1261/2048, 481/
  512, -(1283/2048), -(1055/4096), -(2035/8192), 591/4096, 1137/2048, 
  1823/4096, 1553/32768, 129/256, 913/1024, 1621/2048, 1299/
  2048, -(1865/2048), 739/4096, 1305/4096, 1389/2048, 1379/
  8192, -(189/1024), 465/512, -(211/256), 843/2048, -(1415/4096), 
  1987/8192, 983/4096, -(1955/2048), 819/
  1024, -(1957/4096), -(1493/4096), -(1619/4096), -(1337/4096), 2039/
  2048, -(477/512), 151/256, -(975/1024), 579/1024, 1517/2048, 997/
  4096, -(275/512), 549/4096, -(25/1024), -(1199/4096), 21/32, 281/
  1024, 1087/2048, 217/1024, -(1773/4096), -(1183/4096), 137/
  256, -(621/1024), 1515/4096, 783/2048, -(1057/8192), -(909/1024), 
  289/512, -(527/1024), 105/128, -(131/256), -(681/1024), 1911/2048, 
  991/4096, 441/65536, 153/512, 1797/4096, 827/
  2048, -(555/2048), -(645/1024), 201/2048, -(881/1024), -(1505/2048),
   -(159/256), -(1103/2048), -(861/1024), 1637/2048, 777/1024, 25/32, 
  137/256, -(1591/2048), 369/1024, -(289/512), 585/
  1024, -(1625/32768), -(359/8192), -(261/1024), 1647/
  65536, -(1105/2048), 1775/2048, -(1125/4096), 1163/
  2048, -(1577/2048), -(1647/8192), 359/1024}, {1409/
  2048, -(1689/2048), 49/64, 61/128, -(245/1024), 1519/
  2048, -(799/4096), 1777/2048, -(1365/2048), -(1355/2048), 1391/
  4096, -(463/1024), 631/1024, -(1287/2048), -(1089/4096), 1103/2048, 
  1091/2048, -(991/2048), 1703/2048, -(795/1024), 461/4096, 281/
  512, -(145/2048), 719/
  1024, -(735/4096), -(515/1024), -(1791/4096), -(339/2048), 225/
  1024, -(369/1024), 1775/2048, 2045/2048, -(83/128), 439/
  4096, -(185/512), 69/4096, 1195/4096, -(1149/2048), -(1671/4096), 
  1663/4096, -(79/1024), -(1857/2048), 1225/2048, 1311/
  4096, -(1527/2048), -(497/1024), 389/
  1024, -(1565/2048), -(703/1024), 1817/2048, 1523/
  2048, -(295/2048), -(1591/4096), -(1093/2048), 1093/2048, 1405/
  16384, 1941/2048, 1605/2048, -(1985/4096), -(1163/2048), 1699/
  16384, -(777/1024), -(291/512), 197/256, -(1401/2048), 55/64, 273/
  1024, 507/512, 187/256, -(783/1024), 1673/4096, 1499/
  8192, -(361/2048), 147/256, 729/4096, 815/2048, -(1681/4096), 1903/
  8192, -(829/1024), 739/1024, -(1547/2048), 1865/2048, 837/8192, 797/
  1024, 1729/2048, 1553/2048, -(1985/8192), -(381/2048), -(79/128), 
  1135/4096, -(917/1024), 1701/4096, 369/512, -(945/2048), 1627/2048, 
  963/2048, 1327/2048, 847/
  1024, -(1697/2048), -(1961/2048)}, {-(761/2048), -(789/2048), 1461/
  4096, -(1273/2048), -(439/32768), 1973/
  8192, -(1577/4096), -(1717/2048), 85/1024, -(1757/4096), -(3/4), 
  605/1024, 349/1024, 897/1024, -(347/512), 1419/2048, 295/
  512, -(187/256), -(95/512), 375/1024, -(255/256), 847/1024, 1127/
  2048, 217/256, -(797/1024), -(995/1024), 1273/
  2048, -(1171/4096), -(153/256), 535/2048, -(777/2048), -(265/512), 
  1213/2048, -(1163/2048), 1225/8192, -(629/2048), 921/1024, 1461/
  2048, 1641/4096, -(1859/16384), 2003/2048, 1355/4096, -(1325/2048), 
  247/1024, -(1319/2048), 353/1024, 1475/2048, 1815/4096, -(409/512), 
  275/512, -(737/1024), 1131/8192, 559/4096, 73/128, 1651/
  4096, -(89/128), -(311/512), 1305/2048, 1343/2048, -(1953/4096), 
  585/2048, -(1573/2048), 515/2048, -(1503/8192), 695/
  1024, -(529/1024), -(1423/2048), -(1253/4096), 1479/4096, 1963/8192,
   1179/2048, -(1841/2048), 757/1024, 1057/
  2048, -(1947/4096), -(1/8), -(1723/2048), 2021/4096, -(25/32), 1559/
  2048, -(687/1024), -(1317/8192), 1273/2048, -(851/1024), -(99/1024),
   1669/2048, -(69/512), 209/512, -(427/32768), 777/2048, 897/
  1024, -(1321/2048), -(147/512), -(1135/2048), 1793/2048, 1667/2048, 
  1725/2048, 1651/2048, 1657/4096, 1319/2048}, {-(97/128), 873/2048, 
  1577/2048, 1931/2048, 175/256, 575/2048, 1081/2048, 1713/2048, 1171/
  4096, 2039/2048, 1523/2048, -(1773/4096), -(1153/4096), 1871/2048, 
  1333/2048, -(281/512), 1669/4096, -(1257/4096), 123/
  128, -(905/1024), -(127/256), -(253/256), 581/4096, -(49/512), 1917/
  2048, -(413/512), 1803/4096, -(567/1024), 1833/8192, 1263/4096, 
  1023/1024, 855/1024, -(327/1024), 383/1024, 1171/2048, 1115/
  2048, -(235/256), 1299/8192, 487/512, -(465/1024), 87/128, 1235/
  8192, 1905/4096, -(409/512), 161/4096, 1645/2048, 223/32768, 119/
  128, 1519/4096, -(423/512), -(817/1024), 1795/
  2048, -(1273/2048), -(823/1024), -(1797/2048), 1921/
  2048, -(2003/16384), 1479/2048, -(1947/8192), 643/1024, -(613/2048),
   145/262144, 977/
  2048, -(469/1024), -(875/32768), -(1093/2048), -(225/512), 1901/
  16384, 1271/8192, -(1541/4096), -(1897/2048), 95/128, 1047/2048, 
  1053/16384, 563/
  2048, -(1969/4096), -(1463/32768), -(1291/2048), -(1973/16384), 
  1315/4096, 175/256, -(1099/4096), 637/1024, -(1813/4096), 637/
  1024, -(113/2048), 351/512, 509/1024, -(1755/262144), 1369/
  4096, -(327/2048), 459/512, -(11/32), 27/64, -(797/1024), 1897/2048,
   641/131072, 1531/4096, -(1101/8192), 801/2048}, {-(1769/2048), 
  1511/2048, 637/1024, -(31/128), -(933/1024), -(1605/4096), 1341/
  2048, -(1971/4096), -(813/2048), 33/2048, 619/
  2048, -(385/1024), -(1245/2048), -(933/4096), -(1217/32768), -(755/
   2048), 711/1024, -(1909/2048), 907/
  1024, -(1971/2048), -(1851/4096), 1639/2048, 675/
  1024, -(1617/8192), -(267/1024), -(45/64), -(1433/4096), -(105/128),
   487/4096, -(1065/4096), 1955/8192, 1337/2048, -(321/512), 1517/
  8192, 11/16, 1715/4096, 1725/2048, 307/512, 1279/
  32768, -(2021/16384), -(577/2048), -(1975/2048), 1881/2048, 607/
  1024, -(37/256), -(679/1024), 809/1024, -(2017/2048), 1195/
  32768, -(1011/4096), -(493/512), 1239/4096, -(169/256), 2003/
  4096, -(1925/2048), -(1265/4096), -(575/2048), -(1959/2048), -(49/
   64), -(253/1024), 1011/2048, -(27/32), -(161/256), -(591/1024), 
  1835/4096, -(391/32768), -(1839/2048), -(553/1024), -(1269/2048), 
  953/2048, -(1817/2048), 333/
  1024, -(1383/32768), -(1577/2048), -(21/64), -(69/256), -(659/
   2048), -(673/4096), 1527/
  8192, -(645/1024), -(1129/8192), -(403/1024), 1619/
  2048, -(1571/2048), 1607/2048, 735/2048, -(373/512), -(1167/2048), 
  1417/4096, -(1075/4096), 751/1024, 1325/65536, -(1453/2048), 1977/
  2048, 925/2048, 1541/2048, -(1475/2048), -(911/1024), 1085/
  2048, -(995/4096)}, {-(839/1024), 667/
  2048, -(1373/4096), -(635/4096), -(785/1024), -(1253/16384), 1743/
  2048, 995/1024, 1445/
  2048, -(1645/4096), -(889/1024), -(111/256), -(1633/16384), -(1065/
   2048), 1735/
  2048, -(655/1024), -(671/32768), -(1093/2048), -(1485/4096), 487/
  2048, 461/512, -(1701/65536), 1719/2048, 1109/4096, 1331/4096, 363/
  512, -(2019/32768), -(429/1024), 319/1024, -(529/1024), 323/
  1024, -(1055/2048), 1207/2048, -(1665/4096), 243/4096, -(455/2048), 
  513/4096, -(395/512), -(1331/8192), -(1051/2048), 1779/
  2048, -(785/2048), -(1191/2048), -(69/2048), -(329/32768), -(707/
   16384), 1091/2048, -(1825/2048), 19/32, -(73/128), 15/
  32, -(1683/2048), 577/1024, 1065/4096, -(193/8192), -(331/512), 
  1159/2048, 399/1024, -(273/1024), -(1439/4096), 491/1024, 827/1024, 
  1089/2048, -(1975/2048), 1281/2048, 1221/4096, 39/128, 1345/4096, 
  1095/2048, -(695/1024), 1907/8192, 367/
  1024, -(1897/65536), -(859/1024), -(1197/16384), 213/256, 1909/2048,
   257/512, 543/4096, -(479/2048), 1169/2048, -(529/1024), -(55/256), 
  1629/2048, -(1035/2048), -(1457/4096), -(367/512), -(1519/4096), 
  661/8192, -(1415/8192), -(1441/4096), -(675/1024), -(1343/2048), 5/
  32, 1145/4096, -(1269/4096), -(1397/65536), 419/512, -(953/1024), 
  179/8192}, {373/1024, -(707/1024), -(1881/2048), -(1557/2048), 1105/
  2048, -(1757/2048), 893/
  1024, -(183/2048), -(95/1024), -(1179/2048), -(1419/2048), -(719/
   2048), -(1515/8192), -(1589/2048), 1367/16384, 1295/
  8192, -(711/8192), 1445/4096, -(75/128), 731/2048, 1955/2048, 575/
  1024, -(1793/16384), -(441/512), 733/4096, 333/
  1024, -(1263/2048), -(1461/4096), 527/1024, 1275/2048, 967/
  16384, -(1041/2048), 1877/2048, -(1929/2048), 1637/2048, 275/
  512, -(889/2048), 1261/2048, 911/1024, -(29/64), -(167/512), 617/
  8192, 315/
  1024, -(667/8192), -(1651/4096), -(899/1024), -(847/2048), -(729/
   2048), -(795/8192), 1175/
  2048, -(251/1024), -(437/1024), -(1675/4096), -(273/8192), -(1879/
   2048), 305/1024, 1747/4096, 1383/16384, 1153/2048, 1269/
  2048, -(1155/8192), -(205/512), -(49/64), -(965/1024), 1099/2048, 
  1595/8192, 797/16384, 1861/2048, -(349/512), 295/2048, 281/
  1024, -(983/4096), 243/256, 321/4096, -(125/128), 1351/
  4096, -(1121/2048), -(685/1024), 1229/4096, -(1331/4096), 133/256, 
  247/256, 1935/2048, -(897/8192), -(1459/2048), 1499/
  4096, -(1875/16384), -(745/4096), 593/8192, 1823/8192, -(1053/8192),
   199/256, -(1053/2048), 1045/2048, -(573/1024), 727/16384, 981/
  2048, -(273/1024), 1603/4096, 645/1024}, {1683/2048, -(1589/4096), 
  1849/2048, -(33/64), -(1043/2048), 273/512, 383/
  1024, -(15/16), -(961/1024), -(705/1024), 1283/2048, 215/2048, 1277/
  2048, -(809/1024), 217/256, 763/2048, 1893/8192, 87/
  512, -(1697/8192), 2017/
  4096, -(115/128), -(1997/2048), -(1865/2048), 1875/2048, 1215/
  2048, -(533/1024), 813/8192, -(1833/4096), -(987/1024), 789/1024, 
  905/1024, -(1655/2048), 1753/131072, -(1839/2048), 493/512, 1209/
  4096, 801/4096, 1025/4096, 1097/2048, -(355/2048), 1113/2048, 235/
  256, 673/1024, -(145/1024), -(465/512), 1715/8192, -(1505/8192), 
  1105/4096, 653/1024, -(919/2048), 461/8192, -(2029/2048), 797/1024, 
  35/1024, 857/4096, -(283/1024), 1611/2048, -(47/8192), -(311/1024), 
  1665/2048, -(557/131072), 707/
  2048, -(243/512), -(1021/1024), -(1847/8192), -(1845/8192), -(1905/
   4096), -(897/1024), -(1357/4096), 1521/2048, 793/1024, 1713/
  8192, -(1559/2048), 9/16, 1929/2048, 1801/
  2048, -(1879/2048), -(1829/8192), -(1217/4096), 203/256, 1939/2048, 
  953/1024, -(1385/2048), 1113/32768, 1853/2048, 1411/2048, 647/
  1024, -(895/1024), -(2011/4096), 1923/2048, 1547/4096, 761/1024, 
  1469/4096, 1085/16384, -(403/512), -(2017/16384), 973/
  2048, -(915/2048), -(591/2048), -(1307/2048)}, {-(325/32768), -(771/
   2048), 477/1024, -(1297/32768), -(1155/2048), 1531/
  2048, -(513/4096), 1495/2048, -(165/4096), 963/1024, -(861/2048), 
  1899/2048, 1251/65536, 2027/2048, 881/2048, -(1949/8192), 1941/
  16384, 1379/2048, -(315/4096), 77/128, -(741/1024), 1449/2048, 1757/
  2048, 1817/2048, -(1725/4096), -(309/512), -(641/1024), 123/256, 
  315/512, 1911/2048, 1825/2048, 1321/2048, 1893/
  2048, -(2027/4096), -(1157/4096), 585/1024, -(1705/2048), 869/
  1024, -(1201/2048), 875/1024, -(325/512), 881/1024, -(741/1024), 
  1957/4096, 1063/4096, -(85/128), 1737/4096, 1731/4096, 1865/
  2048, -(1111/2048), -(427/512), -(1803/4096), 197/256, 499/
  512, -(461/1024), 681/1024, -(1835/4096), -(249/256), 565/
  1024, -(863/1024), -(1303/2048), -(39/128), 1565/4096, -(263/512), 
  339/512, 265/2048, -(1733/2048), 1795/2048, -(427/1024), 1395/
  16384, -(797/1024), 1081/8192, -(1601/4096), -(975/4096), 1719/
  8192, -(587/1024), 1735/4096, 421/512, 2019/
  4096, -(255/1024), -(1233/2048), 1675/131072, -(593/1024), 1543/
  2048, 687/131072, -(1137/4096), 1883/2048, 1537/
  2048, -(473/512), -(333/512), -(1941/2048), -(253/1024), 1925/16384,
   921/1024, 2047/4096, 1373/2048, -(757/2048), 423/1024, 1449/2048, 
  465/4096}, {1285/2048, -(1211/2048), -(77/256), 1201/32768, 379/
  1024, -(481/1024), 1745/32768, -(1329/2048), 425/512, 409/512, 947/
  1024, -(967/65536), -(5/16), 147/
  1024, -(289/512), -(529/2048), -(1721/4096), 1975/
  2048, -(1301/131072), -(255/512), 323/4096, 1963/
  16384, -(1325/2048), -(1629/2048), 1153/
  2048, -(377/2048), -(875/1024), -(407/512), 1137/
  2048, -(995/1024), -(1835/65536), -(1555/2048), -(1281/2048), -(387/
   512), -(1339/16384), -(647/4096), 805/1024, 1935/2048, 1471/4096, 
  1277/4096, 1357/4096, 739/1024, 17/64, -(69/256), 463/512, 1489/
  2048, -(443/1024), 857/2048, 661/1024, 249/
  4096, -(1667/4096), -(1119/2048), -(737/1024), -(919/4096), -(975/
   4096), 1781/
  4096, -(819/2048), -(1689/8192), -(167/256), -(2009/4096), 1119/
  16384, -(2041/2048), -(755/32768), -(981/1024), -(1149/4096), -(
   1925/2048), 1389/16384, -(1353/131072), 881/2048, -(1837/2048), 
  1787/2048, 47/64, -(1475/4096), -(409/4096), -(977/4096), 1637/
  4096, -(1011/1024), -(927/4096), 265/16384, 1779/
  16384, -(1663/2048), -(809/1024), 91/
  4096, -(1943/32768), -(267/1024), 773/2048, 365/1024, 153/
  512, -(465/512), -(1379/2048), -(1989/2048), 679/
  2048, -(1701/4096), -(1349/2048), -(329/1024), 173/
  256, -(593/1024), -(165/256), -(1083/2048), -(1445/2048)}, {1123/
  4096, 1165/2048, 67/512, 1683/2048, 299/4096, 531/
  8192, -(1127/4096), 743/2048, -(533/1024), -(483/1024), 1423/2048, 
  597/2048, -(1189/2048), 1477/4096, -(3/4), -(509/512), -(1697/2048),
   1111/2048, 1507/2048, 483/512, -(81/256), 1181/2048, 421/1024, 
  1313/4096, 1985/16384, -(1085/8192), 707/
  2048, -(1575/2048), -(585/1024), -(1483/32768), 1585/
  4096, -(737/1024), 251/256, 777/32768, 179/256, 659/1024, 457/512, 
  903/1024, -(93/128), -(1195/2048), -(563/2048), 1613/
  2048, -(429/1024), 255/256, -(1011/4096), -(1053/2048), -(75/256), 
  649/2048, -(1035/2048), -(989/2048), 309/4096, 1789/2048, 501/2048, 
  1087/8192, -(2043/8192), 1819/16384, -(43/64), 977/1024, 975/
  1024, -(1669/4096), 863/1024, -(1129/2048), 1145/4096, -(65/128), 
  347/512, -(1961/4096), 1231/32768, -(1015/1024), 2035/
  2048, -(1657/4096), -(193/1024), -(1635/2048), 1131/2048, 1917/
  2048, -(547/1024), -(937/4096), 197/1024, -(585/1024), 1645/4096, 
  527/16384, -(1225/8192), 1481/2048, -(217/1024), -(1795/2048), 263/
  1024, 503/512, -(493/512), 1995/2048, 1403/2048, 913/2048, 539/
  1024, -(909/4096), 591/1024, -(923/2048), 1061/4096, -(873/1024), 
  1189/32768, 159/512, -(305/4096), -(221/8192)}, {1333/2048, 1239/
  2048, 177/256, -(1621/4096), -(1441/2048), 701/
  4096, -(1053/2048), -(121/256), -(1857/16384), -(1503/2048), 1457/
  16384, -(639/2048), -(1963/2048), 1623/65536, 1845/2048, 1375/2048, 
  1369/2048, -(1391/4096), 1627/2048, 1377/8192, 1589/4096, 1753/2048,
   1439/2048, 125/128, 973/1024, -(463/1024), 1055/4096, 1999/
  8192, -(81/128), 1949/4096, -(1543/2048), -(2041/2048), 1509/
  2048, -(595/8192), -(927/1024), -(931/4096), 1935/
  8192, -(1273/8192), 381/1024, -(391/512), 1337/
  2048, -(1787/2048), -(1991/4096), -(143/256), -(1729/4096), 15/
  16, -(389/2048), -(661/1024), 9/64, 145/
  256, -(211/256), -(1871/4096), -(1369/2048), -(1817/2048), 1349/
  2048, 635/2048, -(1081/65536), 109/128, -(451/512), -(1491/4096), 
  823/1024, -(1625/4096), 1541/2048, 1967/2048, -(981/1024), 1101/
  4096, -(1447/2048), -(1511/2048), 389/512, 697/2048, -(1933/2048), 
  893/2048, 1485/2048, 1347/4096, 479/512, -(255/512), -(1133/2048), 
  957/1024, 1877/8192, 269/512, 285/1024, -(1911/2048), 1417/2048, 
  645/2048, -(1667/2048), -(869/2048), 643/
  1024, -(1811/8192), -(2037/2048), -(39/256), -(167/1024), -(371/
   512), -(1809/262144), 1059/2048, -(1045/2048), -(1999/4096), 1883/
  131072, 1245/4096, 43/2048, 1975/4096}, {1365/8192, -(787/8192), 
  923/1024, 1873/4096, -(1389/8192), 1507/
  2048, -(499/512), -(1673/2048), -(1671/2048), 195/
  4096, -(1055/2048), -(469/8192), 341/1024, -(979/1024), 743/2048, 
  189/1024, -(391/1024), 1243/8192, 853/1024, -(641/4096), 1287/2048, 
  383/512, 823/1024, -(711/1024), 871/1024, -(923/8192), -(697/2048), 
  347/512, 1389/2048, -(291/512), -(667/2048), 91/512, -(1051/2048), 
  1253/16384, -(127/128), -(1227/2048), 155/
  512, -(1885/4096), -(1989/2048), 1217/8192, -(1989/2048), 1545/2048,
   897/16384, 1735/4096, -(669/2048), -(843/2048), 465/512, 1127/
  16384, 1829/4096, -(1629/2048), 913/1024, 2037/2048, -(141/16384), 
  1263/8192, -(1111/2048), 1591/2048, -(367/2048), 1329/16384, 839/
  1024, -(1461/2048), -(1353/2048), 639/1024, 569/2048, 781/32768, 
  1061/4096, -(235/8192), -(1823/2048), -(1969/4096), 227/256, 55/
  128, -(853/1024), -(517/1024), 455/1024, -(189/512), 1421/4096, 
  1947/2048, 1693/8192, 1191/4096, 971/1024, 463/1024, 1497/2048, 
  1087/2048, -(2007/2048), -(1769/32768), 751/
  2048, -(863/2048), -(1711/16384), -(1051/8192), 1955/2048, 705/
  4096, -(1175/8192), -(129/256), -(1869/4096), -(801/2048), 329/
  2048, -(543/1024), -(1377/4096), -(583/2048), 467/1024, 265/
  512}, {1289/2048, 247/256, -(1033/2048), -(405/512), -(397/1024), 
  65/256, -(1369/2048), -(491/2048), -(1593/2048), -(667/4096), -(87/
   128), -(1533/2048), -(1653/4096), 921/
  2048, -(21/2048), -(107/128), -(1229/2048), -(969/1024), 1215/8192, 
  1395/2048, 1221/2048, -(151/256), -(245/2048), -(99/128), 403/
  4096, -(805/2048), 1635/2048, 1697/2048, 295/
  1024, -(2021/4096), -(769/4096), 1327/2048, 1311/
  2048, -(1757/2048), -(1137/2048), 1719/2048, 1027/8192, -(753/1024),
   1617/2048, -(1195/2048), 315/
  512, -(1559/4096), -(1167/4096), -(75/512), 2019/16384, 1195/
  2048, -(737/1024), 527/16384, -(159/512), 1701/4096, 195/
  256, -(443/2048), 1423/
  4096, -(1991/4096), -(1461/8192), -(143/1024), -(1557/4096), 1315/
  2048, 551/1024, 1945/65536, 187/256, -(707/4096), -(375/32768), 
  1521/4096, 1749/16384, -(1959/2048), 785/1024, 627/
  1024, -(281/1024), -(1345/2048), 1069/2048, 1005/
  2048, -(1113/8192), -(265/2048), -(803/1024), 1779/
  4096, -(1545/2048), -(1243/2048), -(337/4096), 667/
  2048, -(1233/2048), -(1675/2048), 963/
  2048, -(1671/2048), -(1741/8192), 451/1024, -(881/2048), 67/
  2048, -(207/256), 1145/4096, 1197/4096, 1105/2048, -(1241/4096), 
  1307/2048, 535/2048, -(1665/2048), -(1189/2048), 1413/16384, 213/
  256, 1063/2048}, {-(359/512), -(1731/2048), 1283/2048, 931/1024, 
  569/4096, -(7/32), -(1461/8192), 473/8192, -(1397/4096), 559/2048, 
  437/512, -(1881/4096), 1147/2048, -(809/1024), 2037/
  2048, -(561/2048), 685/
  1024, -(809/2048), -(173/256), -(457/512), -(117/1024), 1573/
  2048, -(95/512), 575/1024, 1169/2048, 339/512, 1525/2048, 1805/4096,
   259/4096, 1795/2048, -(1911/2048), -(1185/2048), 1443/
  2048, -(1303/8192), -(1065/8192), -(1025/2048), 1595/
  8192, -(1303/4096), 1277/4096, -(529/1024), 51/64, 1091/
  32768, -(97/512), 971/2048, -(1757/2048), 1593/
  16384, -(367/1024), -(911/4096), -(1873/2048), -(1445/2048), -(693/
   16384), 5/8, -(363/512), -(1367/16384), 405/512, -(201/512), 825/
  1024, 1307/8192, 511/512, -(1475/16384), 1783/2048, 1759/
  2048, -(1877/16384), 297/512, 245/1024, 563/1024, 55/
  128, -(2027/2048), 619/1024, -(47/128), -(847/1024), -(1315/4096), 
  983/4096, -(21/32), -(19/128), -(1199/8192), -(1725/4096), 1745/
  4096, 1927/4096, -(1495/2048), -(573/1024), -(951/2048), 1257/8192, 
  1851/32768, 311/512, 795/8192, 733/1024, 1447/8192, 19/32, 1227/
  4096, -(179/256), 573/4096, 1115/8192, 969/4096, 45/64, 1321/
  8192, -(951/1024), -(425/1024), -(187/256), -(113/256)}, {455/512, 
  1057/16384, 1409/2048, 1793/2048, 1389/16384, -(3/1024), 1075/
  2048, -(37/64), 1813/4096, -(149/512), 145/512, -(299/512), 1017/
  1024, 865/4096, 1361/8192, -(1547/2048), 2005/
  2048, -(1531/2048), -(1351/4096), -(405/1024), -(929/1024), 339/
  512, -(1725/8192), 621/
  2048, -(261/1024), -(267/1024), -(1999/32768), -(789/2048), -(1079/
   2048), -(1299/2048), 881/1024, -(1153/4096), -(1887/4096), 153/256,
   1875/4096, 1917/
  16384, -(667/4096), -(1857/4096), -(1313/8192), -(505/4096), -(1051/
   2048), -(1335/2048), -(769/16384), 1235/8192, 1253/2048, 1259/
  16384, -(177/512), -(1083/4096), 1553/2048, -(1737/32768), 1043/
  4096, -(1083/2048), -(2043/4096), 1527/2048, 1703/
  4096, -(1985/2048), 219/256, 377/
  512, -(51/128), -(1595/32768), -(971/4096), -(1237/32768), 911/
  1024, -(119/128), -(857/32768), -(1993/2048), -(529/2048), 1037/
  2048, 1589/8192, -(691/1024), 221/2048, 265/512, 1221/8192, 301/512,
   1657/2048, -(319/8192), -(335/512), -(1733/16384), 581/
  4096, -(2017/4096), -(155/512), 1441/2048, 659/4096, 1193/
  2048, -(73/128), -(1967/16384), -(1967/4096), -(1313/32768), -(1003/
   4096), 241/256, -(1395/4096), -(463/1024), 1461/
  8192, -(657/2048), -(77/128), -(2021/2048), -(1753/2048), -(1857/
   4096), 609/2048, -(1067/32768)}, {615/
  1024, -(589/1024), -(519/262144), -(1925/8192), 1483/
  2048, -(479/2048), -(985/1024), -(257/512), 535/1024, -(1857/65536),
   129/256, 1141/2048, -(1917/8192), 1117/32768, 1257/
  2048, -(1899/2048), -(283/1024), -(787/2048), -(1585/2048), 1519/
  4096, 1831/2048, -(279/512), 637/2048, 1659/65536, -(1039/4096), 
  1685/8192, -(1677/2048), 123/128, 491/4096, 1559/
  2048, -(1973/2048), -(1505/2048), -(1923/2048), -(215/512), 1369/
  4096, 287/1024, 1093/2048, 1607/4096, -(1877/4096), 1045/16384, 
  1153/2048, 1973/8192, 57/256, 1317/4096, 995/1024, 1275/
  2048, -(1087/32768), -(299/2048), 1801/4096, 229/512, 515/2048, 685/
  2048, -(983/8192), -(1543/4096), 33/128, 625/2048, 467/
  2048, -(273/16384), -(1085/2048), 1375/16384, -(273/1024), 73/
  4096, -(1651/4096), 793/2048, -(1441/2048), -(1571/2048), 267/1024, 
  1775/262144, -(1597/2048), 1261/2048, -(1029/8192), 399/512, 1799/
  8192, 1897/8192, 239/
  1024, -(1983/2048), -(693/1024), -(461/512), -(2021/2048), -(103/
   16384), -(1725/2048), -(1233/8192), 2015/
  2048, -(1151/4096), -(521/1024), -(685/1024), 365/512, 1581/2048, 
  789/2048, -(1357/4096), 1081/2048, 1861/
  2048, -(611/1024), -(1657/4096), 811/1024, 555/1024, 1727/
  2048, -(833/1024), 1405/2048, -(363/8192)}, {-(937/2048), -(1/16), 
  911/1024, 2019/4096, 2027/
  2048, -(501/512), -(107/512), -(201/512), -(1357/8192), 207/256, 
  331/8192, 957/1024, 171/256, 681/2048, -(923/1024), 1763/4096, 343/
  512, 231/256, -(1985/4096), 851/2048, -(339/4096), 237/
  256, -(1471/4096), -(1475/2048), 433/512, -(1689/4096), 83/
  256, -(1393/2048), -(1547/2048), -(867/1024), 1781/
  2048, -(577/1024), 157/4096, -(55/64), -(93/128), -(401/2048), 827/
  8192, -(1675/2048), -(1129/16384), 601/1024, 1591/2048, 965/4096, 
  1881/2048, -(1007/1024), 1989/
  2048, -(693/1024), -(695/2048), -(1413/32768), 1071/
  4096, -(937/1024), 1943/16384, -(1405/2048), -(581/1024), 593/
  1024, -(1627/8192), -(499/1024), 725/
  16384, -(1215/2048), -(1677/4096), 761/1024, 1331/
  2048, -(1133/2048), -(557/2048), -(983/8192), -(1783/2048), -(1795/
   4096), -(601/1024), -(603/1024), 959/2048, 2025/32768, 1097/2048, 
  1797/2048, -(1845/16384), -(959/2048), -(1071/2048), 1835/
  8192, -(793/2048), 1533/4096, 1605/2048, 1621/2048, 795/
  1024, -(1665/4096), -(2027/2048), -(1297/4096), -(1095/2048), 89/
  512, 1257/
  2048, -(1903/4096), -(1331/4096), -(1397/2048), -(1213/2048), -(
   2009/2048), 1961/4096, -(681/1024), -(1099/8192), 1501/2048, 29/
  128, -(1263/2048), -(911/1024), 127/256}, {1973/8192, -(39/8192), 
  1701/8192, -(1093/2048), 1337/2048, -(2035/2048), -(497/512), 1767/
  8192, 145/256, 357/32768, -(2009/2048), -(881/1024), 1051/2048, 631/
  2048, 777/32768, -(539/1024), 519/1024, -(103/128), 1765/
  2048, -(167/256), -(1569/2048), -(1477/4096), -(527/1024), 1249/
  2048, 1969/4096, 1071/4096, 195/256, -(107/512), 2009/8192, 87/
  128, -(1041/4096), -(691/4096), -(369/1024), 1189/4096, 1371/
  2048, -(1087/2048), -(695/8192), 1667/2048, -(1147/2048), 645/4096, 
  657/1024, -(1391/2048), 1913/2048, -(577/1024), 1637/2048, 433/512, 
  1023/4096, 2027/
  16384, -(583/1024), -(803/1024), -(1209/8192), -(851/8192), -(255/
   512), 447/512, 1355/8192, -(1435/2048), -(679/1024), 1593/
  2048, -(1203/2048), 1717/8192, -(65/256), -(1151/4096), 1375/
  2048, -(1385/8192), 1643/2048, 895/1024, 1041/32768, 1281/
  2048, -(1091/4096), 313/2048, -(17/32), 1517/8192, 1673/
  4096, -(639/2048), 617/1024, -(1277/8192), 1045/2048, 225/256, 1385/
  2048, 1815/8192, -(303/1024), 999/1024, 1733/2048, -(1115/4096), 
  1519/2048, -(867/1024), 629/2048, -(589/1024), -(2037/8192), 1951/
  2048, 207/256, -(1105/4096), 2031/
  2048, -(1587/2048), -(651/2048), -(295/512), 407/
  2048, -(1753/32768), -(1325/4096), -(1873/2048)}, {-(35/1024), 1925/
  2048, -(533/16384), 127/256, 1605/4096, -(453/512), 1005/2048, 1537/
  16384, 1393/2048, -(795/4096), -(527/1024), 143/1024, 447/1024, 913/
  2048, -(1639/2048), 1921/2048, -(1483/2048), -(333/1024), 237/4096, 
  1233/2048, 1787/2048, -(977/2048), 15/256, 5/
  16, -(145/256), -(613/1024), -(1905/16384), -(1767/16384), -(583/
   1024), -(1623/8192), -(243/512), 1997/4096, -(619/2048), 1587/
  4096, -(229/512), 1749/2048, 1813/2048, -(915/1024), 431/
  1024, -(1221/16384), -(1077/8192), -(1443/2048), -(1277/4096), 1409/
  8192, -(1065/8192), 1439/8192, -(23/128), -(1263/8192), 1723/
  4096, -(663/2048), 575/1024, -(805/1024), 1603/
  2048, -(1999/2048), -(373/1024), 1137/
  2048, -(575/1024), -(121/512), -(817/4096), 1343/2048, -(161/512), 
  361/512, 1839/2048, -(143/512), -(1677/32768), 1325/
  8192, -(451/512), -(1129/32768), 1183/8192, -(325/1024), 289/2048, 
  887/1024, 1079/16384, -(1037/4096), 85/
  256, -(1569/4096), -(361/1024), 1437/16384, 115/
  128, -(775/4096), -(1367/2048), -(19/256), 501/512, 917/1024, 65/
  512, 369/512, -(1315/2048), -(1837/8192), -(1001/4096), -(1129/
   8192), -(841/2048), 1697/4096, -(297/512), 1607/2048, 483/512, 329/
  512, -(1925/4096), -(311/512), 281/512, 569/4096}, {-(1949/8192), 
  2017/16384, 833/1024, 487/512, 1661/2048, 3/131072, 1409/2048, 1977/
  262144, 615/1024, 1461/2048, 1475/4096, -(1721/2048), -(1815/4096), 
  843/2048, 603/1024, 633/1024, 1579/8192, -(1689/2048), -(41/64), 
  709/4096, 1871/4096, 1261/8192, 1681/2048, 1551/
  16384, -(1645/8192), -(47/64), -(1559/32768), 2005/
  2048, -(1899/4096), -(1255/2048), -(699/8192), 1885/
  2048, -(945/2048), -(443/512), 1195/
  2048, -(353/512), -(741/2048), -(31/64), 1593/4096, 1891/
  2048, -(1841/4096), -(975/1024), -(369/512), 721/2048, 1015/1024, 
  339/1024, 1787/4096, 1985/262144, -(1157/4096), 27/
  32, -(215/512), -(451/4096), 1329/4096, -(1901/4096), 1823/
  2048, -(961/2048), -(1895/2048), -(1901/4096), -(1359/32768), 251/
  256, -(1743/2048), 155/256, 823/4096, 1893/
  2048, -(1577/4096), -(939/32768), -(399/512), -(1709/4096), -(1393/
   2048), 1277/2048, -(1023/1024), 1207/2048, 847/2048, -(1989/8192), 
  1783/2048, -(735/1024), 661/1024, 1081/
  2048, -(55/64), -(1877/8192), -(1391/16384), -(661/8192), 1963/4096,
   397/512, 1421/
  4096, -(1281/4096), -(1615/2048), -(517/32768), -(913/2048), 501/
  512, -(829/1024), -(1345/2048), -(2025/2048), -(1529/2048), -(109/
   512), 1799/4096, 511/2048, -(1343/2048), 689/
  1024, -(1731/8192)}, {983/1024, 129/512, 621/
  8192, -(1257/2048), -(1967/2048), -(399/1024), -(1975/4096), -(1421/
   2048), -(205/4096), -(173/4096), 1827/4096, 1797/
  2048, -(251/256), -(459/512), 183/512, -(1259/2048), 635/
  1024, -(1005/32768), -(777/2048), -(327/1024), 255/256, 385/
  512, -(283/512), -(877/2048), 1321/2048, -(1725/2048), 225/256, 399/
  512, 563/2048, 883/4096, -(2013/4096), 665/
  1024, -(1073/4096), -(761/1024), -(2019/2048), -(1335/4096), -(495/
   1024), -(257/512), 995/1024, -(103/16384), 271/512, 585/
  1024, -(1947/4096), 895/1024, -(1887/2048), 1733/4096, -(107/128), 
  505/512, -(651/1024), -(575/2048), -(1337/2048), -(13/32), 449/
  1024, -(1299/2048), 417/512, 1589/8192, -(359/1024), 645/1024, 925/
  4096, -(965/1024), 1553/2048, 1953/8192, 1227/2048, -(1559/4096), 
  891/1024, -(303/1024), -(951/1024), -(1369/2048), -(539/8192), 1295/
  2048, 845/1024, 1125/2048, 49/
  256, -(1745/2048), -(421/512), -(855/2048), 1253/2048, 587/
  1024, -(631/32768), 407/512, 371/2048, 373/512, 1425/4096, 255/256, 
  133/256, 779/1024, -(623/1024), 1751/2048, -(171/2048), 251/
  256, -(615/1024), -(43/128), -(1945/4096), -(1207/16384), -(11/
   256), -(33/64), -(673/2048), -(219/1024), -(1561/2048), 271/
  512}, {-(17/32), 273/1024, -(59/64), 1239/2048, -(811/1024), 1069/
  8192, -(1107/4096), 21/128, 1699/2048, 255/256, 477/1024, 771/
  4096, -(661/8192), -(1321/8192), 1223/4096, 1151/4096, -(473/4096), 
  21/32, 1455/4096, 295/1024, 1061/2048, 1883/4096, -(1607/4096), 149/
  256, -(945/2048), -(1413/8192), 761/1024, 1425/2048, 1295/2048, 555/
  1024, -(113/2048), 377/1024, -(2013/2048), 1959/
  2048, -(1927/4096), -(1603/2048), -(1917/2048), -(1733/2048), -(965/
   1024), -(265/512), 2007/2048, -(3/4), 965/1024, 623/4096, 769/1024,
   1107/4096, -(1407/4096), 1881/8192, 103/256, -(1087/2048), 1617/
  4096, -(1159/8192), 839/2048, -(1707/2048), 1089/2048, -(259/1024), 
  93/1024, -(1461/4096), 1925/2048, 399/512, -(1279/4096), 1449/
  4096, -(449/1024), 967/4096, 1933/2048, -(1283/4096), 373/1024, 715/
  2048, -(2011/2048), 1353/2048, 893/2048, -(941/8192), -(1359/2048), 
  1893/4096, -(151/256), 1289/2048, 957/1024, 857/1024, 1635/
  4096, -(45/1024), -(735/2048), 509/2048, 81/128, 1429/
  4096, -(489/1024), 499/
  512, -(1133/4096), -(925/1024), -(1039/16384), -(1837/8192), 985/
  1024, 973/1024, 629/2048, -(957/1024), -(1585/2048), 693/8192, 359/
  4096, -(367/16384), 9/256, 1377/4096}, {547/
  1024, -(197/1024), -(2027/4096), 337/32768, 1321/4096, 47/
  64, -(131/256), 1011/2048, -(1605/4096), 289/65536, 851/8192, 135/
  65536, 377/4096, 1253/4096, 707/65536, 557/1024, 1243/4096, 767/
  65536, 751/2048, 1885/32768, -(781/1024), -(1375/4096), -(675/1024),
   1409/2048, -(1973/2048), -(1567/16384), -(1487/2048), -(1245/
   2048), -(37/64), 561/4096, 751/2048, 1583/2048, -(1969/4096), 63/
  2048, -(21/32), -(1639/2048), 515/1024, -(515/16384), 1145/
  4096, -(205/1024), -(463/2048), -(1489/16384), 49/
  128, -(1235/4096), -(749/4096), -(23/128), -(1855/32768), 1201/
  2048, -(1703/2048), -(1525/2048), 629/1024, 1679/4096, 441/2048, 
  1657/8192, 1325/2048, 75/128, -(27/256), -(13/32), 939/
  1024, -(15/64), -(453/512), -(1139/2048), 585/
  2048, -(1179/4096), -(1351/4096), 1979/2048, 325/512, -(1873/2048), 
  1347/65536, -(1019/8192), 521/8192, 885/1024, 435/512, 1503/4096, 
  1211/4096, -(889/4096), 1295/2048, 223/
  131072, -(983/16384), -(331/512), -(1/2), 1497/4096, -(1385/2048), 
  515/2048, 2027/2048, 563/8192, 877/1024, 17/1024, 257/
  512, -(855/1024), -(1481/2048), -(363/512), -(695/2048), -(1031/
   16384), -(813/1024), -(1019/4096), 1259/2048, -(1161/32768), 1145/
  4096, -(1831/4096)}, {-(129/2048), 55/64, 111/256, -(21/32), 1725/
  2048, 339/4096, 183/256, -(1905/16384), 265/
  8192, -(597/1024), -(357/512), -(205/256), -(1863/2048), -(1279/
   4096), 477/512, -(1231/4096), -(505/512), -(2021/2048), 353/
  512, -(881/4096), -(687/1024), 739/2048, -(487/512), -(117/512), 
  655/1024, -(1833/4096), -(1753/4096), 1789/
  8192, -(789/1024), -(131/2048), 787/4096, -(1057/4096), 1529/
  2048, -(7/256), -(1425/4096), -(133/2048), -(237/256), -(653/
   1024), -(1437/2048), -(1073/2048), 1455/
  8192, -(95/65536), -(1939/32768), -(1403/2048), 1313/
  8192, -(1155/2048), 337/512, -(265/1024), 1929/4096, 1723/16384, 
  1111/2048, -(525/4096), -(933/1024), -(375/1024), 1815/
  2048, -(775/1024), 1517/8192, 1657/2048, 241/
  2048, -(1759/32768), -(1935/4096), 881/1024, -(837/1024), 1461/2048,
   285/1024, -(1637/2048), -(853/1024), -(1251/2048), 979/
  1024, -(1851/4096), -(1249/4096), -(163/256), 1153/4096, 639/
  1024, -(1097/4096), -(229/65536), -(1241/4096), -(1847/2048), 291/
  512, -(651/65536), -(1501/16384), 431/512, 1289/4096, 761/
  8192, -(1813/2048), -(1601/2048), -(1075/4096), -(1987/2048), -(
   1195/4096), -(1935/2048), -(991/4096), -(1751/16384), -(21/64), -(
   1343/2048), -(1673/16384), 655/2048, 899/2048, 1975/2048, 355/512, 
  789/4096}, {-(935/1024), 927/2048, 1519/
  4096, -(479/4096), -(839/1024), 955/2048, 1041/
  2048, -(131/512), -(857/1024), -(1883/2048), -(695/4096), -(1359/
   2048), -(1863/4096), -1, -(551/4096), 1129/4096, 383/2048, 1821/
  2048, 877/1024, 667/1024, -(735/8192), 887/1024, 607/
  2048, -(925/1024), 1785/8192, 1299/2048, 1523/
  8192, -(1959/8192), -(1223/4096), -(1601/8192), -(831/2048), 475/
  512, 851/1024, -(121/256), -(1263/4096), -(727/2048), -(1355/8192), 
  823/4096, -(1761/16384), 277/512, -(737/2048), 1529/
  32768, -(1849/4096), 1661/8192, 1639/2048, 643/1024, -(1499/16384), 
  561/1024, -(1181/32768), 1489/32768, 1805/2048, 377/512, 343/1024, 
  489/2048, -(87/2048), 1943/2048, -(1569/2048), 1633/2048, 1559/2048,
   1967/4096, 1417/8192, 1351/4096, 685/2048, 223/
  512, -(1513/4096), -(1063/2048), -(879/16384), -(405/1024), -(713/
   1024), -(1221/2048), -(1717/2048), 319/
  512, -(231/256), -(1065/2048), -(799/8192), -(353/1024), 1843/
  2048, -(1627/2048), -(1427/8192), 481/512, 1071/32768, -(1301/4096),
   1137/16384, 683/1024, -(1911/8192), 397/2048, 723/1024, 1561/
  8192, -(1751/4096), -(953/4096), 121/128, 1591/2048, -(309/1024), 
  809/4096, 321/512, -(1445/2048), 1215/2048, -(749/1024), 905/1024, 
  229/512}, {233/256, 613/
  4096, -(1269/4096), -(703/1024), -(1739/4096), -(1867/4096), 49/
  4096, 1183/2048, 1295/4096, 531/2048, -(1063/2048), 1003/1024, 379/
  2048, -(411/1024), -(685/1024), -(1501/2048), -(13/8192), 683/8192, 
  1935/2048, 1203/2048, 25/128, -(967/2048), 1645/
  4096, -(29/64), -(621/1024), -(5/16), 173/512, -(433/512), 1483/
  4096, 913/2048, -(683/1024), 1457/2048, -(1209/2048), 729/
  8192, -(1727/2048), 485/4096, 683/2048, -(887/1024), 285/
  512, -(1989/2048), 1665/2048, -(1331/2048), -(1193/8192), 109/512, 
  1753/8192, -(1535/2048), -(117/256), 1909/16384, 563/
  1024, -(1179/2048), 997/1024, 489/
  512, -(2037/4096), -(1621/4096), -(187/256), -(1653/4096), 1349/
  2048, 1561/2048, 1565/2048, 1061/4096, -(481/512), -(891/1024), 491/
  512, 579/2048, -(499/1024), -(1275/8192), 549/2048, -(1901/2048), 
  689/32768, 69/512, 395/4096, 869/4096, 1841/4096, -(329/512), 1147/
  16384, -(579/2048), 161/512, -(1479/2048), 875/2048, 1969/2048, 393/
  512, -(679/2048), -(561/2048), 1703/8192, -(2031/2048), -(401/4096),
   1671/2048, -(297/512), -(1527/4096), -(983/1024), -(75/256), 199/
  256, 749/1024, -(985/1024), -(1375/8192), -(1307/2048), -(1749/
   2048), -(277/512), 1555/2048, -(1639/2048)}, {897/
  16384, -(1359/2048), -(1769/2048), 1919/
  4096, -(1555/8192), -(267/8192), -(623/4096), -(1205/32768), 691/
  2048, -(103/128), 1899/
  4096, -(1287/2048), -(1771/8192), -(1467/2048), -(1389/2048), -(
   1219/8192), -(559/65536), 1839/2048, -(499/2048), 179/
  256, -(1959/2048), 1439/8192, 749/16384, 495/
  512, -(743/1024), -(1751/4096), -(153/512), -(113/128), 2007/
  2048, -(1455/8192), 181/512, -(167/256), 1385/2048, 1587/4096, 737/
  2048, 849/1024, -(1405/4096), -(1149/8192), -(2003/4096), 567/
  8192, -(737/2048), -(157/256), 1267/2048, 1001/2048, 1675/2048, 505/
  512, 1967/16384, 17/32, -(325/512), 147/256, 1287/
  2048, -(1993/8192), 743/2048, 1217/4096, 1607/
  2048, -(1535/16384), -(277/512), -(659/1024), 261/
  8192, -(55/64), -(1073/4096), -(1849/2048), 343/2048, -(1995/2048), 
  1673/2048, 1965/2048, -(559/8192), -(1469/2048), 965/
  1024, -(63/4096), 953/
  2048, -(157/512), -(447/512), -(1693/2048), -(39/64), 1651/
  4096, -(1107/16384), -(231/1024), -(1733/4096), 2033/2048, 1725/
  2048, -(797/2048), -(623/1024), -(351/2048), 1903/2048, 489/1024, 
  1731/8192, -(1127/2048), -(1953/2048), -(5/16384), -(2005/4096), -(
   1501/2048), -(1763/8192), -(1893/4096), 1199/2048, 793/1024, 1831/
  2048, -(1319/16384), -(1839/4096), 1925/16384}, {-(243/512), 367/
  512, 1237/2048, -(133/512), -(225/1024), 425/4096, 209/256, 1767/
  2048, 1313/2048, -(1237/4096), 11/256, -(813/1024), 915/
  1024, -(1891/32768), 1633/2048, -(1911/32768), -(807/4096), 755/
  4096, 469/32768, 189/256, 1043/2048, 1699/8192, -(1171/16384), 73/
  128, 1259/2048, -(907/1024), 1597/4096, 1059/2048, -(1631/2048), 
  1639/2048, 979/4096, 805/1024, 1623/2048, -(2013/2048), 1243/2048, 
  2035/8192, -(1307/4096), 467/1024, -(1331/4096), 1479/32768, 281/
  512, 185/512, -(35/256), 5/8, 1103/4096, 221/1024, -(1977/16384), 
  243/512, -(1149/2048), -(343/1024), -(1839/4096), -(183/256), 861/
  1024, -(1693/2048), 887/1024, 1115/2048, -(1193/2048), 1587/
  2048, -(1487/2048), -(1409/16384), 1555/2048, -(995/8192), 175/256, 
  97/128, 671/2048, 1793/4096, 1231/2048, 771/
  2048, -(633/4096), -(823/2048), -(1411/2048), -(51/128), -(437/
   512), -(1119/2048), 291/1024, -(973/1024), -(1313/2048), 1643/
  16384, 1045/8192, 1953/
  16384, -(1887/4096), -(1151/4096), -(45/128), -(233/256), -(1529/
   4096), -(315/512), -(1437/8192), -(421/512), -(967/1024), -(1635/
   2048), -(387/512), 1229/2048, 1975/2048, -(1009/1024), 1929/
  4096, -(1201/2048), -(45/256), -(1329/8192), 1629/
  2048, -(831/4096)}, {-(125/256), 177/256, -(939/1024), 1667/2048, 
  491/512, 995/4096, -(123/512), -(1933/2048), 855/
  8192, -(7/1024), -(1369/2048), -(2031/8192), 201/256, 725/
  2048, -(337/1024), -(1677/8192), 451/512, -(767/2048), -(991/4096), 
  1171/2048, -(1501/2048), 381/2048, 889/4096, -(1079/4096), 1721/
  2048, -(191/256), -(447/512), 1193/2048, 1537/
  16384, -(297/512), -(273/1024), 1925/
  2048, -(1911/2048), -(77/128), -(175/131072), -(905/4096), 659/2048,
   1439/2048, 1775/2048, 641/4096, -(841/4096), 1777/8192, 253/
  512, -(175/256), 951/1024, 807/
  8192, -(741/1024), -(1711/4096), -(1335/8192), -(1703/4096), 1971/
  2048, -(363/1024), -(1637/2048), 489/2048, -(607/8192), 411/
  512, -(1863/2048), 1347/8192, -(83/512), -(77/128), 1069/
  8192, -(965/1024), 25/32, 561/2048, 1015/1024, 853/1024, 1599/
  16384, -(1955/2048), 215/
  1024, -(1311/4096), -(805/2048), -(1065/2048), 723/1024, 1421/4096, 
  1675/4096, -(1591/2048), -(215/512), -(11/32), 2013/
  2048, -(421/512), -(889/2048), -(257/512), -(1709/4096), -(907/
   2048), -(147/1024), 429/32768, 1595/
  32768, -(1577/2048), -(93/2048), 215/
  1024, -(599/1024), -(1205/2048), 1041/
  2048, -(695/4096), -(2027/2048), -(1837/2048), 925/1024, 101/128, 
  933/4096, -(881/2048)}, {135/256, 1875/
  2048, -(177/256), -(495/1024), -(1425/2048), -(639/2048), 103/
  128, -(1915/2048), 1427/4096, 1529/2048, 953/
  4096, -(255/512), -(45/64), -(437/512), 905/32768, -(1803/4096), 
  1353/2048, -(1281/65536), -(1657/4096), -(885/1024), 1879/4096, 
  1325/4096, 1605/4096, 1383/8192, -(1411/16384), 335/1024, -(57/64), 
  1937/2048, 55/512, -(395/2048), -(889/4096), 1437/4096, 293/512, 
  1241/4096, 1215/2048, -(1109/2048), -(1565/2048), 893/2048, 1569/
  4096, 343/512, -(587/1024), -(1319/2048), -(293/512), 1007/2048, 
  1849/16384, -(831/2048), 1639/2048, 1249/
  4096, -(349/512), -(1101/2048), -(671/1024), 1763/2048, 1969/2048, 
  1387/2048, -(1063/2048), 911/1024, 435/65536, -(967/1024), 219/
  256, -(457/1024), 483/512, -(1511/2048), 501/512, 1589/2048, 1965/
  4096, -(837/16384), 743/4096, -(493/1024), 1403/2048, 1321/
  2048, -(1753/2048), -(1165/2048), -(1023/2048), 895/
  1024, -(369/2048), -(553/1024), -(569/1024), -(19/64), 913/4096, 
  1729/2048, 369/512, -(365/1024), 1361/
  2048, -(557/1024), -(299/1024), 1379/2048, -(1853/2048), 729/1024, 
  279/4096, 315/512, 1055/2048, 577/2048, -(1893/2048), 1541/
  2048, -(543/4096), 497/1024, 1031/4096, 313/512, 671/1024, 1735/
  2048}, {-(1011/1024), 301/512, 1425/16384, -(461/512), -(869/2048), 
  1979/2048, -(977/1024), 837/2048, 1971/2048, 1553/2048, 1359/
  4096, -(911/4096), -(247/256), -(37/64), -(349/16384), 1659/8192, 
  1009/4096, -(1477/2048), -(1569/8192), -(1709/2048), 1821/
  2048, -(903/1024), 1723/4096, 1885/2048, -(1865/8192), 1819/16384, 
  143/2048, 271/512, -(1205/65536), -(1661/4096), 1485/
  16384, -(1129/4096), -(1513/4096), -(1865/8192), -(945/2048), 241/
  256, 941/2048, 97/256, 1271/8192, 167/256, -(655/4096), -(689/1024),
   1763/8192, -(1427/2048), 883/4096, -(1607/2048), 621/
  1024, -(145/65536), 1341/8192, 1479/2048, 1409/2048, 389/
  8192, -(407/512), 1791/2048, 1031/4096, 1805/2048, -(1257/16384), 
  661/1024, -(533/2048), -(897/1024), -(1035/4096), 1639/
  16384, -(101/4096), -(425/4096), -(1665/2048), 517/1024, 1023/1024, 
  1453/4096, 51/256, 57/64, -(221/256), -(1047/2048), -(615/1024), 
  609/1024, 1711/2048, -(1647/4096), 845/
  1024, -(1853/2048), -(1477/2048), -(1711/2048), 1011/
  1024, -(61/256), -(199/512), 1671/8192, -(1507/4096), 1607/
  4096, -(1131/2048), 51/64, -(369/8192), -(1757/16384), -(1013/1024),
   1501/2048, -(1281/2048), 869/1024, 2035/
  16384, -(1133/32768), -(813/8192), 585/8192, -(709/1024), 1803/
  2048}, {-(1603/2048), -(503/1024), 1965/2048, 637/
  2048, -(1409/16384), 1425/4096, 227/
  1024, -(1813/2048), -(1491/4096), -(1037/2048), -(391/2048), -(887/
   2048), 7/8, 1587/2048, 543/1024, 1801/4096, 1533/
  16384, -(983/1024), 1339/4096, -(275/512), -(1539/2048), 1117/
  4096, -(493/2048), -(777/1024), -(1849/16384), 1963/2048, 1819/
  4096, -(1527/4096), -(1825/4096), 1523/
  2048, -(135/256), -(679/1024), 1111/4096, 1555/
  2048, -(1419/4096), -(691/2048), 9/32, 791/1024, 177/256, 1105/
  2048, -(1965/8192), -(101/128), 555/1024, -(1243/2048), 1911/
  8192, -(1015/1024), 45/64, 121/
  128, -(1675/4096), -(717/1024), -(317/512), 1077/8192, 547/1024, 
  231/256, 39/64, -(143/256), 1299/2048, 1553/
  4096, -(1705/4096), -(37/64), 1975/4096, 811/4096, -(333/1024), 
  1977/32768, -(1057/2048), 211/4096, -(1417/2048), 1251/2048, 1709/
  2048, 1413/32768, 743/1024, 275/512, -(983/1024), -(1365/2048), 287/
  4096, 115/1024, -(139/256), -(1007/2048), -(1933/4096), 445/
  512, -(1875/2048), 1323/16384, 1963/32768, -(15/2048), -(731/1024), 
  905/1024, 1077/2048, 1859/16384, -(1179/2048), -(143/256), 1563/
  2048, 1343/2048, 105/128, 1913/
  8192, -(1395/2048), -(255/256), -(1071/2048), -(1233/4096), 1439/
  8192, -(465/4096)}, {279/512, -(37/512), 323/512, -(1073/4096), 893/
  1024, -(27/128), 1769/
  4096, -(1477/16384), -(443/2048), -(1297/32768), 223/
  256, -(189/256), -(855/2048), 1501/2048, -(1171/4096), 143/256, 35/
  64, -(875/4096), -(1955/4096), -(1389/4096), 1673/4096, 641/2048, 
  305/1024, -(1153/2048), 945/1024, 909/1024, -(1929/2048), 575/1024, 
  875/1024, 1903/4096, 1261/4096, -(1919/32768), -(1661/8192), 339/
  512, -(1027/16384), -(875/8192), 147/8192, 1501/8192, 1131/
  2048, -(839/1024), -(1611/2048), -(653/2048), -(519/2048), 323/
  512, -(1961/4096), -(875/1024), -(663/1024), 1625/2048, 1997/
  4096, -(1427/2048), -(169/256), 1211/
  32768, -(1937/8192), -(1321/16384), 1621/4096, 1705/
  2048, -(323/1024), -(1505/2048), 753/1024, 1195/4096, -(291/512), 
  229/256, 1135/4096, 1263/2048, 181/256, -(2007/2048), 1209/16384, 
  1819/8192, 1513/4096, 369/4096, 1139/
  4096, -(1307/2048), -(1433/8192), 1027/
  2048, -(107/128), -(1047/2048), -(1353/4096), 907/
  4096, -(471/1024), -(1399/8192), -(1873/32768), 77/512, -(879/1024),
   1521/8192, 275/512, 587/2048, -(871/2048), 1003/1024, 1637/
  2048, -(443/2048), -(473/512), 1065/4096, 93/256, 1907/
  4096, -(1439/2048), 259/1024, 1459/2048, -(1383/16384), -(353/512), 
  915/1024}, {721/1024, 1789/8192, -(253/1024), 403/4096, 945/
  2048, -(1339/2048), 1525/2048, -(1683/4096), 745/2048, 439/
  512, -(1303/2048), -(1361/2048), 1713/
  2048, -(791/1024), -(901/4096), -(575/1024), -(289/1024), 1783/4096,
   1837/2048, 1017/1024, 827/1024, 1653/2048, 1065/2048, -(1893/2048),
   1859/2048, 649/1024, 1227/4096, -(189/1024), 1389/4096, 633/1024, 
  125/128, -(1691/2048), 27/2048, 223/256, 1239/4096, 945/1024, 181/
  256, 69/128, 427/8192, 891/1024, 1565/2048, 1199/2048, 17/
  32, -(651/8192), 161/1024, -(175/256), -(749/8192), 405/
  512, -(25/32), 769/1024, 1001/1024, 1757/8192, 331/2048, 273/512, 
  373/512, 1937/8192, -(191/512), -(893/1024), 801/2048, 1943/
  2048, -(129/256), -(1017/2048), 1105/8192, -(1635/4096), 1761/2048, 
  823/1024, 1675/2048, -(237/512), -(1107/16384), 475/
  512, -(721/32768), 823/8192, 711/1024, 695/2048, 1577/2048, 1573/
  2048, 771/1024, -(1175/16384), 1223/4096, -(1051/2048), 3/
  8, -(25/32), 1061/2048, -(1583/4096), 221/256, 1643/
  4096, -(1725/2048), -(1189/4096), -(1253/8192), 907/
  1024, -(151/32768), -(1779/2048), -(1991/2048), -(1989/2048), 1309/
  2048, -(1843/2048), 853/
  8192, -(1583/2048), -(1247/8192), -(697/1024)}, {-(1569/2048), 815/
  2048, -(647/2048), 489/1024, -(595/2048), -(885/1024), -(711/1024), 
  1391/2048, -(975/2048), -(1009/1024), 1537/
  4096, -(1273/4096), -(1891/4096), 1511/2048, 1267/
  2048, -(579/8192), -(2017/4096), 1689/
  2048, -(1347/2048), -(1773/2048), 1253/2048, -(603/16384), 1337/
  2048, 2013/2048, 467/512, -(95/512), 1691/4096, -(1637/4096), 1701/
  16384, 149/256, 1371/2048, 1171/4096, 391/
  512, -(1909/4096), -(1179/2048), 635/2048, 1365/
  16384, -(975/4096), -(517/1024), 1803/
  2048, -(1709/2048), -(1875/8192), -(39/256), -(213/256), -(345/
   1024), -(951/1024), 1233/4096, 249/256, -(1737/16384), 1869/2048, 
  1461/2048, 869/4096, 67/256, -(71/128), 1711/2048, 1859/
  4096, -(457/512), -(1299/2048), -(101/256), 1423/
  4096, -(817/4096), -(1923/2048), 529/2048, -(545/1024), 141/
  256, -(1529/2048), 2031/2048, 1395/2048, -(1559/2048), -(1595/4096),
   1929/2048, -(299/512), 735/1024, 75/256, 127/128, 751/1024, 1161/
  4096, 341/1024, -(21/64), -(495/1024), -(895/1024), 75/256, 693/
  1024, -(251/256), -(733/2048), 1757/2048, 551/2048, 1727/
  2048, -(1721/8192), -(597/1024), -(93/128), -(763/2048), -(277/
   1024), -(915/1024), -(1401/2048), 1997/2048, -(1869/2048), 2021/
  2048, 515/2048, 377/1024}, {-(1417/2048), -(381/512), 79/256, 2045/
  2048, 1779/4096, -(803/8192), 1375/2048, 1935/2048, 621/1024, 683/
  4096, -(1335/2048), -(1939/4096), 1777/4096, -(863/2048), 1929/4096,
   971/1024, 137/16384, 1149/
  8192, -(1363/8192), -(1563/2048), -(1309/2048), 93/
  128, -(2047/2048), 729/
  2048, -(1225/8192), -(941/1024), -(383/8192), -(609/1024), -(1933/
   2048), 1445/2048, -(315/16384), -(1119/8192), -(119/2048), 83/128, 
  1319/2048, 21/32, 419/2048, -(83/128), 2017/2048, 733/2048, 1767/
  8192, 1367/8192, -(219/512), -(851/2048), -(1275/2048), 211/
  256, -(1083/2048), 973/8192, 1247/2048, -(629/4096), 1993/2048, 
  1745/2048, 1767/8192, -(709/16384), -(395/2048), -(903/1024), 1477/
  4096, 1093/2048, 1653/2048, 473/
  1024, -(1079/4096), -(975/1024), -(1897/2048), -(91/128), -(1047/
   2048), 821/4096, -(145/256), 643/4096, 869/2048, 1939/4096, 653/
  16384, 1005/
  1024, -(953/1024), -(179/256), -(1549/4096), -(1035/4096), 871/1024,
   1941/4096, -(667/4096), -(1659/2048), 1059/2048, 799/
  2048, -(1039/2048), -(1007/2048), -(421/1024), -(703/1024), -(1539/
   8192), -(111/128), 689/1024, 1663/2048, -(1309/4096), 1431/4096, 
  339/512, 1317/2048, 413/512, 1001/1024, -(1761/2048), 869/1024, 123/
  128, -(643/1024)}, {79/256, -(401/512), 117/256, -(425/512), 185/
  512, -(1261/2048), 1641/2048, 455/512, -(1271/2048), 269/1024, 1111/
  4096, 965/4096, 737/4096, 1947/4096, -(1591/4096), -(851/2048), 245/
  1024, -(1189/2048), 1257/2048, -(713/32768), -(753/4096), 181/
  256, -(493/512), 1127/2048, 7/16, -(391/512), 267/1024, -(383/1024),
   1347/8192, 1387/2048, -(1643/2048), -(1173/8192), 165/256, 25/1024,
   423/512, 505/512, -(1195/2048), 41/128, -(1887/2048), 1049/
  2048, -(1835/8192), -(223/512), 1893/2048, -(1949/32768), 1105/
  2048, -(1459/2048), -(1423/2048), 1177/65536, -(13/16), 1207/4096, 
  1015/1024, -(883/1024), 1149/2048, -(499/512), 1077/
  4096, -(211/256), -(1849/8192), -(1089/4096), 201/256, 1205/
  4096, -(1635/2048), -(1555/4096), -(965/1024), 1001/
  2048, -(1941/2048), 93/128, 1479/2048, 1615/2048, 23/
  512, -(1727/4096), -(727/4096), 1793/16384, -(1067/2048), 107/128, 
  1385/4096, 1079/2048, 1265/2048, 1575/
  4096, -(647/2048), -(1441/2048), 1731/2048, 923/1024, -(1577/2048), 
  1437/2048, -(1159/2048), 575/1024, -(205/256), 101/
  256, -(1153/2048), 1139/65536, -(77/256), -(1423/2048), 785/2048, 
  1143/2048, -(1393/16384), 287/512, 1257/2048, 147/256, 367/1024, 
  555/1024}, {425/1024, -(565/1024), 369/1024, 1265/
  2048, -(1489/2048), -(979/1024), -(1869/8192), -(1225/2048), -(1069/
   8192), -(599/1024), 739/1024, 1165/4096, -(509/512), -(451/2048), 
  1851/4096, -(1403/4096), 1919/2048, 517/1024, -(1437/2048), 671/
  1024, -(1177/2048), 843/4096, -(757/1024), -(83/128), -(697/16384), 
  1815/2048, -(2019/2048), 1219/4096, 1211/
  2048, -(1369/2048), -(251/256), 875/4096, 1037/16384, 519/1024, 611/
  2048, 1083/2048, -(1721/2048), 349/512, 133/2048, 213/
  256, -(1691/4096), 1829/
  2048, -(1327/4096), -(1351/32768), -(1891/2048), -(1149/8192), -(
   623/1024), 351/
  512, -(291/1024), -(719/1024), -(1933/2048), -(477/4096), -(1673/
   2048), -(221/512), 953/8192, -(939/2048), -(427/1024), 537/
  2048, -(1597/2048), -(1127/8192), 977/1024, -(1503/2048), 1523/
  2048, -(1633/8192), 1889/2048, -(51/256), 593/2048, 751/
  1024, -(1929/2048), -(1105/2048), 631/2048, 863/2048, 1725/
  4096, -(81/128), -(135/256), 209/512, -(1683/8192), 855/2048, 681/
  1024, 1385/2048, 1973/8192, 1509/2048, -(983/2048), 1083/16384, 651/
  16384, -(295/512), 2043/2048, -(829/1024), 787/
  1024, -(645/1024), -(1405/2048), 1191/
  2048, -(1115/2048), -(153/256), -(425/2048), -(229/512), -(789/
   2048), -(1543/2048), -(959/65536), 253/
  256}, {-(1065/4096), -(985/8192), -(1267/2048), 1539/
  2048, -(837/1024), 1003/2048, -(755/2048), 393/8192, -(1541/4096), 
  287/1024, 1883/2048, 513/1024, 819/2048, 1417/2048, 11/
  16, -(861/1024), 1519/
  2048, -(767/1024), -(1309/2048), -(1987/2048), -(169/256), 981/
  32768, 1709/2048, 1991/
  32768, -(647/1024), -(279/4096), -(1445/2048), 673/
  2048, -(1567/4096), -(397/512), -(2015/4096), 127/
  128, -(847/8192), -(1405/2048), 1495/
  2048, -(335/512), -(1719/2048), -(1107/8192), -(579/1024), -(1051/
   8192), 1817/32768, -(1819/2048), -(407/512), 1173/2048, 999/
  2048, -(1643/8192), 1731/2048, -(499/65536), -(1963/2048), 93/
  128, -(1269/16384), 1841/2048, 767/1024, 1297/
  4096, -(1557/2048), -(1219/2048), 703/
  1024, -(183/256), -(2007/2048), 1213/4096, 1149/8192, -(1983/8192), 
  763/4096, 135/
  512, -(1173/2048), -(1153/2048), -(325/1024), -(103/256), -(697/
   1024), 733/1024, 55/65536, -(1909/2048), 1117/8192, 1291/8192, 
  1869/4096, -(661/1024), 1153/4096, -(587/1024), -(1341/4096), 127/
  256, -(107/128), -(1421/4096), -(1289/4096), 1391/2048, 1727/2048, 
  1535/2048, 1295/131072, -(1023/2048), 31/32, 623/1024, 1125/2048, 
  1483/4096, 1507/4096, 1009/4096, -(1455/2048), -(1269/2048), 815/
  1024, 5/16, 1327/2048, 1861/2048}, {-(1229/4096), 907/1024, 829/
  1024, -(1513/131072), -(1639/2048), -(835/4096), -(905/1024), -(
   1911/16384), -(881/4096), 1629/2048, 1907/2048, 1685/
  2048, -(1135/16384), -(849/2048), 163/16384, 809/1024, -(957/1024), 
  461/512, -(1345/2048), 1547/8192, 517/1024, 1327/2048, 813/
  1024, -(1501/16384), -(909/1024), -(1931/2048), 1905/2048, 7/
  8, -(1971/4096), 125/2048, -(889/2048), 151/512, -(1081/2048), 781/
  1024, 1337/8192, 1597/8192, 425/2048, 399/2048, -(1397/2048), 253/
  512, -(1859/2048), 1665/
  2048, -(2021/2048), -(1567/2048), -(1605/4096), 1283/32768, 85/
  131072, 989/1024, -(357/512), 1425/4096, 1141/2048, 1277/65536, 287/
  512, 1831/2048, 555/1024, -(2009/4096), 391/1024, -(465/512), 1057/
  4096, -(949/1024), -(1757/2048), 199/256, 1699/
  4096, -(117/128), -(1443/2048), 529/4096, 2009/2048, -(483/512), 
  1887/8192, -(187/1024), -(1939/4096), 559/1024, -(1599/2048), 1009/
  1024, -(1573/4096), -(1631/2048), 869/
  1024, -(817/1024), -(211/256), -(159/256), 1911/8192, 19/32, 1283/
  2048, 2011/2048, -(1325/2048), -(1065/4096), 97/512, 1147/
  2048, -(27/32), -(1625/8192), -(1055/2048), 1645/
  16384, -(1275/16384), 613/8192, 11/32, -(1287/4096), 495/
  512, -(41/128), 967/65536, 173/256}, {287/2048, 1127/
  4096, -(1939/4096), 681/1024, -(1423/4096), 1647/4096, 305/512, 171/
  512, 1303/2048, 583/1024, -(1399/16384), 1669/8192, 443/
  512, -(1883/2048), 747/2048, 1281/4096, -(1119/8192), -(1841/4096), 
  81/128, 1099/2048, 1413/65536, 291/
  512, -(271/512), -(29/4096), -(1265/2048), 169/
  256, -(1557/4096), -(7/8), 1605/8192, 451/1024, 1599/8192, 1027/
  2048, -(1437/2048), -(927/2048), -(1385/2048), -(69/128), 1623/
  8192, -(1787/4096), -(35/1024), -(1151/4096), -(1395/8192), -(205/
   256), 1947/4096, 293/2048, -(1027/2048), -(1557/32768), 1723/4096, 
  1585/4096, -(363/512), 971/
  4096, -(1703/2048), -(729/1024), -(1045/2048), -(327/1024), 1331/
  4096, 1305/4096, -(527/4096), -(153/256), 1139/2048, 29/
  64, -(1297/4096), 375/512, 1551/4096, -(463/512), 1461/2048, 623/
  1024, 1713/2048, -(1791/4096), 1275/
  8192, -(1565/4096), -(1547/32768), 943/2048, 739/
  4096, -(765/1024), -(279/512), 2033/16384, -(895/1024), 1533/
  2048, -(1727/2048), -(717/1024), -(1089/2048), 835/1024, 885/1024, 
  1121/2048, -(897/2048), -(715/2048), -(1559/65536), 557/
  1024, -(499/512), -(1849/4096), 495/1024, 107/256, 1505/2048, 1945/
  2048, -(365/2048), -(1603/4096), -(545/2048), -(649/1024), -(1681/
   4096), 1855/
  32768}, {-(263/512), -(667/1024), -(977/1024), -(1089/2048), -(89/
   128), 485/1024, -(69/128), 1765/2048, 1981/8192, 501/
  1024, -(1127/4096), 797/8192, -(97/4096), 1335/2048, 1389/
  8192, -(1905/2048), -(221/256), -(1081/4096), -(941/4096), -(1829/
   2048), -(1357/4096), 1189/8192, 1763/4096, 1333/2048, 1143/
  4096, -(891/4096), -(969/4096), 1285/
  4096, -(881/1024), -(1053/8192), 761/1024, -(1081/4096), 673/
  16384, -(205/256), 1431/8192, 2045/16384, -(507/512), 843/8192, 
  1011/2048, -(1727/4096), 903/1024, -(955/8192), 1095/4096, 1707/
  4096, 1811/2048, 795/1024, 1977/2048, 999/
  1024, -(503/512), -(383/512), -(111/512), -(1337/4096), -(1611/
   4096), 1535/4096, 1377/4096, -(1523/2048), 1669/8192, 1219/
  2048, -(1231/8192), -(1221/2048), -(943/2048), 1129/
  2048, -(1905/2048), 643/4096, 1809/2048, 827/
  4096, -(813/8192), -(1801/4096), 643/4096, 119/128, 1875/
  2048, -(577/2048), -(1643/2048), 693/1024, 1825/2048, 1657/2048, 
  195/256, 195/256, -(647/2048), 1073/4096, -(1729/4096), 159/512, 
  1137/4096, 1863/2048, -(19/32), 1867/4096, 1803/2048, 659/
  2048, -(2027/2048), -(1383/4096), -(45/512), -(1879/2048), 1733/
  8192, 141/256, -(1715/2048), -(1467/4096), -(1435/4096), 953/8192, 
  1777/2048, 819/4096}, {-(95/512), 579/
  1024, -(849/1024), -(1749/2048), -(1075/2048), -(1605/8192), 405/
  512, -(759/2048), -(91/128), -(655/4096), -(407/1024), -(65/256), 
  1673/2048, -(1047/2048), 453/1024, -(849/1024), 1257/
  4096, -(1465/2048), -(211/512), 9/64, 473/1024, -(1435/2048), 493/
  32768, -(781/1024), 361/512, 493/512, 3/16, 575/
  8192, -(129/256), -(1991/4096), 1791/
  4096, -(167/1024), -(2031/16384), -(135/256), -(273/131072), 445/
  512, 499/512, 1471/
  2048, -(1115/2048), -(1473/2048), -(715/2048), -(981/1024), 21/32, 
  685/2048, 67/128, -(1957/2048), -(1759/16384), 1689/4096, 1501/4096,
   1791/2048, -(101/128), -(7/256), -(963/16384), 1587/
  2048, -(927/1024), -(1103/2048), 941/2048, 1563/2048, -(791/2048), 
  485/512, 1003/1024, 1941/4096, 335/
  1024, -(1469/2048), -(1609/2048), -(785/1024), -(1111/2048), -(1153/
   8192), 1281/2048, -(1361/4096), 91/256, 1817/
  2048, -(1421/4096), -(1879/8192), -(1355/4096), -(863/4096), -(871/
   1024), 103/
  128, -(491/32768), -(1963/8192), -(677/2048), -(1213/16384), -(1691/
   2048), 1477/2048, 1453/131072, 127/4096, 59/64, 1239/
  4096, -(1993/2048), -(1801/131072), 875/1024, -(1477/4096), 295/
  512, -(651/1024), 1297/2048, -(1593/2048), -(23/64), 1635/
  2048, -(1179/2048), 1549/8192}, {-(1177/2048), 1985/16384, 921/1024,
   981/1024, 1481/32768, -(1379/4096), 1461/16384, 1431/
  4096, -(2037/2048), -(921/1024), 201/1024, 1779/2048, 1331/32768, 
  2027/32768, -(675/2048), -(1507/2048), 355/4096, 1789/
  2048, -(873/2048), 1371/2048, -(35/128), 1369/16384, -(1931/2048), 
  61/64, 683/1024, -(1067/16384), -(1881/2048), 1383/
  2048, -(935/2048), -(1321/2048), -(1699/4096), 1819/
  8192, -(1357/2048), -(935/2048), -(1117/4096), 1443/2048, 1359/
  8192, -(231/512), -(1609/8192), -(1373/8192), -(921/1024), -(1413/
   2048), 517/8192, 1985/4096, -(1137/2048), 287/2048, 1421/16384, 
  375/4096, -(1697/4096), 1507/2048, -(127/4096), 1229/2048, 1391/
  2048, 1723/2048, -(1623/2048), 225/256, 1725/4096, 627/
  1024, -(1353/8192), -(987/1024), 955/1024, -(129/1024), 159/
  512, -(1195/2048), -(1317/4096), -(1927/2048), 1925/2048, 343/
  2048, -(1295/2048), -(2047/4096), -(581/1024), 1891/32768, 893/
  2048, -(1693/4096), -(1031/4096), -(111/128), 1781/2048, 1531/8192, 
  473/512, -(337/512), -(813/1024), -(1259/4096), -(2027/4096), -(
   1565/2048), 93/4096, -(1661/2048), 1275/4096, -(1863/2048), 995/
  1024, 1807/2048, -(329/512), 293/2048, 119/128, 331/512, 1403/
  4096, -(1739/4096), -(119/128), -(999/1024), 2033/
  4096, -(1019/1024)}, {-(897/1024), -(195/256), 805/1024, 97/
  128, -(689/32768), -(1971/16384), -(1657/8192), -(1607/2048), -(755/
   8192), -(1517/2048), 2005/2048, 1213/4096, 889/8192, 311/
  512, -(7/128), 151/1024, 687/1024, 789/2048, 845/
  16384, -(779/1024), -(1501/32768), 617/
  2048, -(67/128), -(1129/2048), -(943/2048), 1625/2048, -(489/512), 
  939/2048, -(1241/8192), 771/8192, 1045/4096, 63/128, 1477/
  2048, -(731/8192), 1397/2048, -(1219/4096), -(1213/2048), 131/256, 
  415/2048, 403/1024, 969/2048, -(1569/4096), 1355/2048, 983/1024, 59/
  64, 931/4096, 1319/2048, -(227/256), -(551/1024), 983/2048, 1825/
  2048, 353/8192, -(21/32), -(547/1024), 25/
  128, -(495/512), -(299/512), -(1685/4096), -(705/1024), -(883/2048),
   183/256, -(1277/4096), 1297/2048, 389/512, -(189/256), 945/
  8192, -(1223/4096), 1997/2048, 265/8192, 807/
  8192, -(1919/2048), -(915/1024), 847/1024, 1041/4096, -(1925/4096), 
  527/1024, 743/1024, 91/128, -(1123/4096), -(841/2048), 1877/2048, 
  1987/2048, -(1921/4096), -(1247/2048), -(1405/2048), 629/
  16384, -(1679/8192), 1013/1024, -(1331/2048), 395/
  1024, -(589/1024), -(2027/2048), 29/64, -(1513/2048), 1379/
  4096, -(1153/2048), -(1841/8192), 1487/
  2048, -(1879/4096), -(1361/4096)}, {-(59/256), -(347/1024), -(1861/
   2048), 661/2048, -(541/1024), -(1067/2048), -(1433/2048), 1595/
  8192, 389/512, -(65/128), -(731/1024), -(1731/8192), 1067/4096, 449/
  512, 1689/2048, -(637/2048), -(1263/2048), -(727/1024), 1889/
  2048, -(815/8192), -(1245/2048), 405/
  1024, -(1817/4096), -(867/2048), 1573/2048, 1697/4096, -(399/512), 
  1107/8192, -(1671/4096), 99/256, 37/1024, -(1627/2048), 971/
  1024, -(957/131072), -(1713/2048), -(789/1024), 699/
  2048, -(1405/16384), -(485/2048), 525/
  1024, -(1993/2048), -(363/512), 1859/8192, 233/256, -(963/8192), 
  983/4096, -(1557/4096), 457/1024, 973/2048, -(1745/2048), 1005/1024,
   29/32, 257/
  2048, -(1799/4096), -(763/8192), -(463/512), -(1257/2048), -(1261/
   4096), -(167/256), 1385/8192, 1123/2048, 473/512, 149/
  256, -(689/1024), -(1543/4096), 881/1024, 723/
  2048, -(557/1024), -(253/256), 1625/4096, 1853/2048, -(1413/8192), 
  35/64, 1079/4096, -(1363/4096), -(773/2048), 1401/
  16384, -(815/32768), 757/1024, 1713/2048, -(937/2048), 935/1024, 
  893/1024, -(1173/2048), 101/128, 1131/2048, 849/1024, 1781/4096, 
  1411/8192, -(1307/16384), -(283/2048), -(2015/2048), 611/
  4096, -(1519/131072), -(49/1024), 7/8, 1729/2048, 907/1024, 1081/
  4096, -(165/512)}, {135/8192, -(741/1024), 295/65536, 315/
  512, -(1027/2048), 141/512, 1495/2048, 1365/
  2048, -(813/2048), -(647/1024), -(609/1024), 531/
  1024, -(379/1024), -(2007/8192), 1293/
  16384, -(575/8192), -(789/1024), 239/2048, -(519/1024), 653/
  1024, -(735/1024), 179/256, 1007/2048, 983/2048, 697/2048, 863/
  8192, -(755/8192), 647/1024, 345/1024, 1935/4096, -(849/1024), 1987/
  8192, 1747/8192, 885/1024, 1765/4096, 1563/16384, 893/1024, 1119/
  8192, 263/4096, 221/256, 1211/4096, 1841/4096, -(1433/2048), 2037/
  4096, -(1847/16384), 1721/2048, 1467/2048, -(1503/2048), 1977/
  2048, -(1205/2048), -(1387/8192), -(1221/131072), 453/
  2048, -(1175/4096), 591/2048, -(809/2048), 1589/
  2048, -(1573/4096), -(525/4096), 501/1024, -(437/8192), -(771/1024),
   1185/4096, -(241/512), 1343/2048, -(843/1024), 275/131072, 775/
  1024, 445/512, 1375/16384, -(759/1024), 929/2048, 1525/2048, 1717/
  32768, -(331/1024), 545/2048, 527/2048, -(961/2048), -(39/64), 97/
  8192, 385/512, -(617/1024), 747/1024, 575/1024, -(25/32), 1153/
  16384, 725/1024, 1713/16384, 589/1024, -(1473/4096), 1739/
  4096, -(1181/2048), 107/128, 1551/8192, 509/512, 1137/
  8192, -(1903/2048), 1385/2048, 845/8192, 547/1024}, {745/
  2048, -(1515/2048), 23/512, -(1015/2048), 671/2048, -(1377/2048), 
  285/1024, -(1317/2048), 251/256, 1571/4096, 1975/
  2048, -(21/32768), -(445/1024), 51/256, -(1577/4096), 1133/
  4096, -(129/256), -(105/512), -(1221/2048), -(771/1024), 1769/
  4096, -(1649/4096), -(1961/2048), -(1403/4096), -(1005/8192), 361/
  4096, -(135/256), -(1307/2048), 1317/
  4096, -(1553/2048), -(671/1024), 1269/
  131072, -(721/1024), -(105/256), -(191/1024), 615/1024, -(795/1024),
   799/2048, 1127/4096, -(599/1024), -(615/1024), 1735/
  4096, -(1453/8192), -(105/128), 1707/
  16384, -(1029/8192), -(335/4096), -(1663/4096), -(793/1024), -(191/
   256), 67/128, 639/2048, -(969/1024), -(1511/4096), -(1561/2048), 
  1101/8192, -(1941/2048), -(1511/4096), -(891/1024), 1009/
  1024, -(1111/2048), 1997/8192, -(1063/4096), 1391/
  65536, -(199/256), -(1339/2048), 1037/16384, 515/
  32768, -(1919/2048), -(963/1024), -(1735/4096), 621/4096, 1275/2048,
   855/1024, -(527/1024), 425/512, 1293/2048, 621/
  16384, -(1907/4096), -(7/8), -(361/512), -(663/32768), 1467/4096, 
  1521/32768, 1897/4096, 23/32, 819/4096, -(479/131072), 631/4096, 
  561/1024, -(1627/2048), -(11/32), -(605/4096), 927/
  2048, -(77/256), -(285/1024), -(1703/2048), 565/
  131072, -(2001/2048), 1513/4096}, {1373/
  2048, -(1953/2048), -(717/1024), 343/4096, 2033/16384, 1359/2048, 
  1505/2048, 279/8192, 607/2048, 1663/
  2048, -(705/4096), -(1139/4096), -(527/1024), 393/1024, 95/1024, 
  1401/2048, 1817/2048, 1549/2048, -(939/1024), 1983/
  2048, -(1553/32768), 223/256, -(1687/2048), -(1837/8192), 51/
  128, -(893/1024), -(519/2048), 751/1024, 783/1024, 1079/2048, 1265/
  32768, 1729/2048, -(501/2048), -(613/1024), 1727/
  4096, -(785/1024), -(1401/4096), -(1929/32768), -(189/1024), 31/
  32, -(1483/4096), -(77/2048), 1261/2048, -(1027/2048), 2045/2048, 
  1121/4096, -(1957/2048), -(767/1024), 637/
  1024, -(221/256), -(309/1024), -(1233/8192), 825/8192, 1389/4096, 
  489/512, 1303/2048, -(1815/2048), -(785/2048), 1987/
  16384, -(1717/2048), -(1677/2048), -(1267/4096), 339/
  512, -(1125/8192), 945/1024, 1019/1024, -(1193/2048), 823/
  1024, -(743/2048), -(587/1024), -(1543/4096), -(1047/2048), -(909/
   1024), 143/512, -(1257/8192), 1207/2048, 1975/4096, -(1743/2048), 
  2009/2048, -(831/4096), -(1237/4096), -(1463/4096), 2013/8192, 787/
  1024, -(1489/8192), 1509/2048, -(1431/8192), -(623/1024), 991/1024, 
  45/256, 237/256, 917/1024, -(1107/2048), 1713/4096, 1275/2048, 1781/
  32768, -(2007/2048), 607/2048, 973/2048, -(259/1024)}, {785/
  4096, -(2011/2048), -(1009/2048), -(1453/2048), -(449/512), 1065/
  16384, 875/1024, -(221/256), -(1855/2048), 275/512, 1481/
  2048, -(1921/2048), -(2023/8192), 965/131072, -(805/1024), 1637/
  2048, 927/2048, -(103/256), 453/
  1024, -(463/1024), -(1943/4096), -(1723/2048), 1113/4096, 1737/
  2048, -(1729/4096), 1651/8192, 2029/2048, 995/1024, 1, 449/512, 
  1311/2048, -(941/2048), -(1075/4096), 891/32768, 1771/4096, 1199/
  2048, -(981/1024), -(1353/4096), 1303/2048, 1325/
  2048, -(109/256), -(1603/2048), -(425/512), 17/64, 161/
  131072, -(801/1024), -(1629/4096), 653/1024, 493/2048, 335/8192, 
  647/1024, 685/16384, -(1213/2048), 5/8, 1633/2048, 337/
  512, -(1251/2048), 1677/8192, -(81/128), -(1251/16384), 381/512, 
  537/1024, 2017/2048, 1789/2048, -(1195/2048), 1993/2048, 167/512, 
  1379/16384, -(1735/4096), 887/2048, 2027/2048, -(1509/2048), 655/
  1024, 1903/2048, -(2037/2048), -(1437/8192), 1467/
  2048, -(869/16384), 5/32, -(893/1024), 1057/65536, -(945/1024), 407/
  512, -(841/4096), -(1005/2048), 1387/2048, 1201/4096, -(1697/4096), 
  2017/2048, 1753/8192, -(41/64), -(53/512), 897/1024, 1459/2048, 877/
  1024, 1389/16384, -(63/128), 261/512, -(1361/2048), 1391/
  32768}, {1153/2048, -(1569/4096), -(1821/8192), 405/
  512, -(11/128), -(841/1024), -(1073/2048), 535/8192, 875/1024, 2021/
  2048, -(865/2048), -(1749/4096), 87/
  256, -(1741/65536), -(1725/4096), 475/1024, -(789/1024), -(395/512),
   1705/8192, -(807/1024), 1961/2048, 1833/
  2048, -(331/2048), -(1863/4096), 547/
  4096, -(947/8192), -(1435/65536), 1423/2048, -(65/256), -(301/1024),
   569/1024, -(983/1024), 1393/
  2048, -(1803/2048), -(1303/2048), -(1923/16384), -(379/512), 1267/
  2048, 795/1024, 1449/4096, 1931/2048, -(831/1024), 1685/
  2048, -(1487/8192), 1729/2048, -(143/1024), -(507/8192), 253/512, 
  1731/4096, 227/65536, 1483/2048, -(1207/2048), 1503/2048, 527/1024, 
  353/512, 833/1024, 1653/131072, 1659/2048, 439/512, 11/
  131072, -(1607/2048), -(1461/2048), -(73/128), 659/1024, 1593/
  2048, -(975/1024), 947/2048, -(1185/2048), 377/1024, 841/65536, 605/
  2048, 639/1024, 1309/4096, 647/1024, 1219/32768, 1345/
  2048, -(1449/2048), -(111/128), -(353/512), 237/256, -(1547/4096), 
  1581/8192, 1883/2048, 663/1024, 1675/2048, 1015/8192, 359/2048, 47/
  64, -(1025/8192), 1169/2048, 1083/32768, 1415/8192, -(453/512), 
  1423/2048, 1859/4096, -(217/512), 841/1024, 997/1024, 83/8192, 1893/
  16384}, {301/512, -(75/512), -(1867/4096), -(1501/2048), 2025/2048, 
  105/128, -(1125/2048), -(1843/2048), 1397/8192, 257/8192, 1999/4096,
   625/1024, -(745/4096), 211/8192, 1673/
  4096, -(393/1024), -(859/32768), 943/1024, -(1113/4096), -(411/512),
   1769/4096, 977/1024, 305/512, 1587/2048, 755/1024, 1983/2048, 1183/
  2048, -(1881/2048), 1711/16384, -(1491/2048), 1529/
  8192, -(513/1024), 2017/4096, -(15/16), -(3/8), 243/256, 121/2048, 
  203/256, 199/4096, 873/4096, 593/4096, 19/64, 1637/
  2048, -(471/4096), -(709/1024), -(49/512), 277/512, -(1235/4096), 
  1907/4096, -(747/2048), 973/8192, 1225/2048, 1625/
  2048, -(433/1024), -(1283/2048), 1741/
  4096, -(1935/4096), -(1353/8192), -(1731/8192), -(109/256), 1069/
  2048, -(1413/8192), -(1399/131072), 5/
  16, -(1729/16384), -(1443/2048), -(19/64), 65/
  512, -(39/16384), -(1469/2048), -(281/1024), 279/512, -(337/131072),
   343/512, -(1253/2048), -(1601/8192), 1035/4096, -(113/128), 857/
  1024, -(495/512), 1441/2048, 1239/2048, -(1685/2048), -(1667/2048), 
  285/512, -(1129/4096), 1565/2048, -(853/2048), 805/1024, 433/
  16384, -(1389/2048), 49/
  256, -(1683/8192), -(919/4096), -(1963/8192), -(491/1024), -(1095/
   2048), -(1767/2048), -(965/2048), 1489/32768}, {677/2048, 1923/
  2048, -(1799/2048), -(925/1024), -(369/2048), -(1763/2048), -(1525/
   4096), -(1795/2048), 1587/8192, -(177/512), -(551/4096), 1689/
  32768, -(25/32), 595/1024, -(1625/8192), -(1643/4096), 789/1024, 
  1469/8192, -(661/1024), -(1079/2048), 467/
  512, -(1221/2048), -(307/512), -(239/1024), 2001/2048, 975/1024, 
  1273/4096, 355/512, -(1915/2048), 1459/2048, -(1475/4096), 987/2048,
   47/128, -(103/256), -(1777/4096), -(411/1024), 1413/
  2048, -(1203/2048), -(1237/2048), -(907/1024), -(2027/4096), -(437/
   512), 1971/32768, -(977/2048), -(527/2048), 923/
  1024, -(1427/2048), -(1229/8192), 1861/2048, -(269/1024), 313/
  512, -(2003/8192), 1017/1024, -(247/256), -(1335/4096), -(175/1024),
   1575/4096, 31/32, 1677/4096, 933/2048, -(861/1024), 1607/2048, 
  1621/2048, -(1125/4096), 1567/2048, -(259/2048), 1815/
  16384, -(1047/4096), -(677/32768), 1635/
  16384, -(1181/2048), -(1139/2048), 905/
  8192, -(1965/16384), -(537/2048), 703/2048, 1723/2048, 2031/
  2048, -(1283/4096), -(903/1024), 35/128, 1507/4096, -(1087/8192), 
  1529/2048, -(1873/4096), 215/1024, 491/
  512, -(1833/16384), -(2041/16384), 1667/16384, 1273/16384, 1267/
  4096, 1381/2048, -(953/2048), -(623/16384), 1913/
  2048, -(287/32768), -(1445/4096), 497/8192, 959/
  4096}, {-(931/8192), -(51/128), 1337/2048, 1195/8192, 351/
  512, -(1645/2048), -(2047/4096), -(1479/4096), 1861/2048, 871/
  8192, -(817/2048), -(1409/4096), 2009/2048, 961/1024, 1319/
  2048, -(631/4096), -(1329/2048), 1829/131072, 459/512, -(617/1024), 
  797/8192, 2043/4096, 1689/8192, 1347/4096, 1815/4096, 35/512, 1327/
  4096, -(979/1024), 929/
  8192, -(1993/8192), -(1733/131072), -(327/1024), 1065/2048, 477/512,
   1817/2048, 1147/2048, -(1007/1024), 1345/2048, 1029/4096, 1267/
  4096, -(1787/4096), 687/2048, -(127/128), 1585/8192, 213/2048, 299/
  1024, -(1733/2048), -(1973/2048), -(1091/2048), 1289/4096, 1385/
  2048, 1985/4096, 1437/4096, 1305/4096, -(1291/16384), 531/
  4096, -(1263/2048), -(359/4096), 1423/
  2048, -(1641/2048), -(1715/4096), 1995/
  32768, -(7/256), -(1857/2048), -(777/4096), -(1519/2048), -(405/
   512), -(433/2048), -(1133/2048), -(1369/2048), 1775/
  2048, -(457/512), -(1521/2048), 1651/
  2048, -(1211/2048), -(899/2048), -(565/1024), 1277/8192, 1287/8192, 
  1793/2048, 369/512, 81/128, 1439/4096, 803/2048, 1535/32768, 1655/
  2048, -(1005/2048), -(309/512), -(71/128), -(263/1024), -(1429/
   2048), 313/2048, 2037/4096, 577/4096, 267/1024, 1075/8192, 653/
  1024, -(1851/2048), 675/2048, 819/1024}, {-(111/2048), -(1441/2048),
   1413/2048, 83/128, 1031/
  16384, -(1023/1024), -(153/256), -(1315/8192), -(997/1024), -(377/
   2048), -(537/4096), -(1561/2048), -(457/512), -(1419/4096), -(381/
   4096), -(2011/4096), -(1691/2048), 1361/2048, 1255/2048, 1629/2048,
   1279/4096, 23/4096, -(1863/4096), 1319/4096, 1177/2048, 235/
  512, -(175/256), -(1999/4096), -(629/1024), 1037/2048, 1231/2048, 
  1203/16384, 1493/8192, 1037/2048, -(1887/4096), 1485/4096, 1461/
  4096, 997/2048, 2005/2048, 39/64, 1691/2048, -(347/1024), 1073/4096,
   1171/2048, 21/32, 899/4096, -(661/16384), -(517/1024), 337/512, 
  1551/2048, 271/512, -(1481/4096), -(1051/4096), 1887/8192, 785/1024,
   171/4096, 839/4096, -(611/2048), 929/1024, 809/
  1024, -(1149/2048), -(1079/8192), 483/2048, -(1673/2048), 149/1024, 
  445/1024, -(881/1024), -(1429/2048), 259/
  2048, -(1471/4096), -(1639/4096), 1253/2048, 147/256, -(783/2048), 
  1169/2048, 1799/2048, 551/
  1024, -(1399/2048), -(1743/2048), -(1415/2048), 1649/
  4096, -(1179/2048), 805/
  4096, -(1365/2048), -(1873/8192), -(631/1024), 103/
  128, -(1825/2048), -(269/4096), -(571/1024), -(1445/16384), 1625/
  4096, 1743/16384, 1989/4096, 287/512, 1169/
  8192, -(1251/4096), -(1953/4096), -(321/2048), -(479/16384)}, {-(
   1857/2048), 963/2048, 1049/2048, 847/
  1024, -(1755/2048), -(471/512), -(327/512), 1645/2048, 1115/
  2048, -(367/2048), -(727/8192), 771/1024, 1703/2048, -(637/2048), 
  1953/2048, -(1585/4096), -(719/32768), 983/
  4096, -(571/1024), -(1051/2048), -(185/256), 1257/2048, 739/
  8192, -(1687/2048), -(919/2048), -(1069/8192), 1695/
  8192, -(1973/2048), -(439/512), 1839/65536, -(351/512), 1827/
  2048, -(39/64), -(1561/4096), -(803/2048), 1331/4096, -(1765/2048), 
  559/65536, -(103/128), -(1299/2048), 271/512, 1345/
  2048, -(369/4096), -(179/256), -(1343/8192), -(93/128), -(1735/
   2048), 1281/4096, 1735/16384, 769/4096, -(1733/131072), -(455/512),
   513/2048, -(301/512), 131/256, -(337/8192), 509/
  16384, -(2023/16384), 1781/2048, 1905/2048, 1003/1024, 465/
  512, -(467/512), -(1625/4096), 1065/
  8192, -(1013/1024), -(1087/4096), -(787/4096), -(1857/2048), 471/
  1024, 1179/4096, -(493/1024), 89/
  256, -(333/512), -(1233/2048), -(323/2048), -(1919/2048), -(1261/
   8192), -(759/1024), 1989/2048, 1945/
  2048, -(1755/8192), -(823/1024), -(1751/2048), 591/1024, 431/
  8192, -(1831/2048), 1947/4096, 1705/2048, -(837/1024), 889/
  1024, -(667/1024), -(765/1024), -(1419/2048), -(1025/2048), -(631/
   131072), 979/1024, -(1057/4096), -(999/2048), 1827/8192}, {1525/
  16384, 827/1024, 1615/4096, -(167/256), 1251/4096, 1403/2048, 273/
  512, -(1425/2048), 149/256, -(1077/4096), 101/128, 93/
  256, -(335/2048), -(1999/2048), 965/2048, -(1005/2048), -(275/512), 
  1021/4096, 1997/4096, 2011/4096, 1633/
  2048, -(307/512), -(1585/4096), 1067/
  2048, -(565/1024), -(459/512), -(1467/2048), 1253/2048, 1607/2048, 
  495/512, 233/4096, -(3/4), 683/1024, 1567/
  2048, -(311/4096), -(1347/8192), 1675/16384, -(117/512), 13/
  128, -(1711/4096), -(619/1024), -(137/256), 681/
  1024, -(1133/16384), -(505/16384), 87/128, 1163/4096, -(2037/2048), 
  245/1024, -(71/128), 1381/2048, 1501/2048, 259/512, 1317/
  8192, -(211/256), 1837/4096, 1025/4096, 1231/2048, 323/512, 1077/
  2048, 541/2048, 581/2048, 673/
  4096, -(1149/16384), -(1389/2048), -(207/512), -(1791/2048), 1943/
  4096, 1023/2048, -(1001/1024), -(257/2048), 1417/8192, 469/8192, 
  689/2048, 441/512, -(1331/4096), -(355/512), -(1313/2048), 67/4096, 
  2037/4096, -(1375/2048), 339/2048, -(595/2048), -(1571/2048), 1597/
  2048, -(259/1024), 1755/2048, 1877/4096, -(1687/2048), 2017/
  2048, -(941/1024), -(389/512), -(2043/8192), -(423/2048), -(911/
   2048), -(2029/16384), 449/1024, -(563/1024), -(1495/2048), 1309/
  8192}, {-(57/256), -(2035/4096), 1321/8192, 287/4096, 249/
  512, -(419/4096), 1963/
  2048, -(1491/2048), -(95/1024), -(557/2048), -(767/1024), -(401/
   16384), 555/4096, 547/1024, 975/1024, 1065/2048, 71/
  128, -(1601/2048), -(425/512), -(641/1024), -(1325/2048), 283/
  131072, -(559/8192), -(1467/4096), 957/1024, 1679/
  2048, -(1023/1024), 217/256, -(787/1024), 829/4096, 559/
  1024, -(293/4096), -(119/256), -(1317/8192), -(595/2048), -(1799/
   16384), 1353/2048, -(1207/2048), -(1191/4096), 663/1024, 1115/2048,
   155/512, 1763/8192, 1941/2048, -(563/1024), -(183/512), 1873/2048, 
  1393/16384, 1287/
  2048, -(1213/2048), -(17/16384), -(161/256), -(281/32768), 587/1024,
   177/2048, -(1293/2048), -(365/2048), -(315/1024), -(15/16), -(957/
   1024), 1159/2048, 1253/2048, 1647/2048, 1609/2048, 1269/
  2048, -(1873/8192), 1877/4096, -(1515/4096), 1739/2048, -(731/2048),
   559/1024, -(1513/2048), -(935/8192), 1253/2048, 699/4096, 1629/
  2048, -(301/1024), 1111/4096, -(1167/2048), 1217/
  131072, -(1449/2048), 107/1024, 175/1024, 1455/2048, -(1651/8192), 
  1895/2048, 1065/
  4096, -(957/1024), -(1779/4096), -(1191/16384), -(341/2048), -(997/
   8192), 217/2048, 771/4096, 209/256, 1919/
  2048, -(1037/4096), -(711/2048), 527/1024, 1597/
  2048}, {-(177/256), -(377/512), 1889/4096, -(373/512), 1285/
  4096, -(1187/65536), -(1595/4096), -(459/8192), 1061/
  8192, -(197/256), 97/1024, 1097/2048, 501/512, 1387/
  2048, -(1363/4096), 1837/2048, 543/1024, 1449/4096, 823/1024, 1663/
  8192, 975/
  1024, -(651/4096), -(1469/8192), -(395/512), -(31/128), -(1075/
   2048), -(1059/4096), 1117/4096, 1633/2048, 519/2048, 279/1024, 
  1707/2048, -(437/8192), -(307/1024), -(1241/8192), 1233/
  16384, -(23/32), -(667/1024), -(1433/4096), 1455/32768, 641/1024, 
  575/2048, 385/4096, 1559/4096, -(145/1024), -(667/1024), 311/1024, 
  149/256, -(1503/8192), 419/
  512, -(1613/2048), -(1423/2048), -(1309/2048), -(1513/4096), -(1037/
   4096), 87/256, 1351/2048, 935/4096, -(1759/2048), -(2021/2048), 
  957/1024, 1579/2048, -(1045/8192), 175/512, 1807/2048, 495/1024, 
  1433/4096, -(593/1024), 531/
  1024, -(803/2048), -(1837/2048), -(357/1024), -(811/4096), -(761/
   1024), 1617/2048, 1615/2048, -(1403/2048), 1157/2048, -(129/256), 
  367/512, 1659/4096, -(1551/4096), 1031/4096, 569/
  1024, -(1795/2048), -(1795/4096), 1355/2048, -(1893/8192), 109/128, 
  1595/2048, 1593/16384, 803/1024, -(1635/4096), 1525/2048, 611/2048, 
  93/128, 1621/2048, -(1091/131072), -(701/2048), 1805/131072}, {2039/
  2048, 677/1024, 403/2048, -(901/8192), 507/1024, 1981/
  2048, -(787/2048), 1969/8192, 1427/8192, 265/
  512, -(811/1024), -(1159/2048), -(539/1024), 933/2048, -(371/512), 
  335/512, -(1249/2048), -(11/16), -(459/1024), -(671/1024), 1015/
  4096, -(25/32), 597/1024, -(2011/4096), 1409/4096, 511/
  1024, -(643/4096), 279/1024, 645/1024, -(181/512), -(613/1024), 
  2027/4096, -(1649/8192), -(375/512), -(857/2048), -(39/128), -(1411/
   2048), -(613/4096), 1219/2048, 1943/4096, 1903/2048, 769/4096, 
  2005/2048, -(323/512), -(1559/4096), -(1211/8192), -(973/1024), 407/
  2048, -(321/1024), 1559/4096, -(757/1024), 1735/4096, -(1039/2048), 
  1679/2048, 331/512, -(1841/2048), 1687/4096, 1963/2048, 215/1024, 
  805/1024, 757/1024, 1903/2048, -(81/512), 751/
  8192, -(927/2048), -(1461/2048), -(1345/16384), -(1285/8192), 751/
  2048, -(153/2048), 1655/
  2048, -(611/2048), -(123/1024), -(137/256), -(149/512), -(1531/
   8192), 233/256, 1949/4096, -(883/2048), 43/4096, -(1423/4096), 
  1451/2048, 779/
  1024, -(27/32), -(1747/2048), -(1089/2048), -(709/2048), 125/
  512, -(41/2048), -(269/1024), 395/1024, 927/
  2048, -(921/4096), -(395/512), 1309/16384, -(1555/8192), 117/128, 
  1423/8192, 1769/2048, 339/512}, {207/256, 65/256, 291/
  512, -(975/4096), 995/
  1024, -(1749/4096), -(877/1024), -(337/2048), -(217/1024), -(2001/
   8192), 1945/2048, 483/512, 457/65536, -(1029/2048), 527/
  1024, -(1851/2048), 2003/16384, 1067/2048, -(129/256), -(1605/4096),
   1019/1024, -(321/1024), -(1317/2048), 1223/2048, 873/2048, 363/
  512, -(1115/2048), -(1909/4096), -(385/1024), 1507/
  2048, -(369/4096), -(1487/4096), -(1551/2048), 1053/2048, 1429/
  2048, -(135/256), 803/4096, -(1059/2048), -(745/1024), 19/32, 1093/
  2048, 1097/16384, -(1107/2048), 1229/4096, 593/2048, 1799/
  2048, -(1851/2048), -(1131/16384), -(1615/4096), -(649/1024), 1373/
  16384, -(941/1024), -(1281/2048), 1137/2048, 1805/2048, 1033/
  4096, -(987/2048), -(1191/2048), -(1009/2048), -(669/1024), 1785/
  2048, -(279/16384), 311/512, 475/1024, -(1835/2048), -(1853/4096), 
  1865/2048, 53/128, 819/65536, -(699/2048), 409/2048, 567/
  2048, -(1507/4096), -(263/4096), 1257/2048, 2001/8192, 1835/
  2048, -(1801/2048), -(895/2048), -(621/2048), -(295/1024), -(949/
   4096), 423/512, 967/1024, -(503/1024), -(679/4096), 993/8192, 1335/
  4096, -(2031/2048), 1351/2048, 691/1024, -(209/256), 1935/8192, 
  2037/2048, -(1451/2048), 787/2048, -(311/1024), 1989/4096, 1363/
  8192, 909/2048}, {421/2048, 1577/
  2048, -(791/1024), -(399/4096), -(1347/4096), -(385/512), -(275/
   512), -(1075/2048), 813/1024, -(23/32), -(1783/16384), 17/
  32, -(1267/2048), -(207/256), 1499/
  2048, -(813/2048), -(1699/2048), -(317/1024), 1331/
  2048, -(1795/2048), -(271/16384), 241/
  16384, -(1529/4096), -(1787/2048), 1781/2048, 969/
  8192, -(1161/2048), 1941/2048, 1925/4096, 853/1024, 1759/
  2048, -(1919/2048), -(1877/2048), -(1239/8192), 721/
  1024, -(157/512), -(281/512), -(1601/8192), 127/128, 745/
  4096, -(1345/8192), -(223/256), 801/1024, -(109/512), 1907/32768, 
  2009/2048, -(1383/2048), -(877/1024), -(449/512), -(1463/16384), 
  1325/8192, 1523/4096, -(1081/2048), 315/512, 1411/2048, 1057/
  2048, -(1919/4096), 1039/2048, -(841/8192), 447/512, 1105/
  4096, -(1117/32768), -(1213/4096), -(1087/2048), 1875/4096, 957/
  1024, -(1687/2048), 2009/4096, 829/1024, -(1959/2048), 331/
  512, -(1657/2048), -(751/1024), 1707/
  2048, -(2039/2048), -(2025/2048), 1139/2048, -(1943/16384), 545/
  32768, 209/256, -(217/512), -(1075/4096), 1009/1024, 575/
  1024, -(1049/2048), -(1877/8192), -(1917/2048), -(675/8192), -(1633/
   4096), 1493/65536, 131/256, 645/2048, -(1379/2048), 1943/4096, 
  1331/2048, 1339/4096, 1015/1024, -(1277/2048), -(15/1024), 135/
  256}, {79/512, -(399/512), 1787/2048, 1051/2048, 173/256, 1413/
  16384, 925/1024, 1411/
  8192, -(621/1024), -(837/4096), -(861/1024), -(943/1024), -(931/
   2048), -(1783/2048), -(165/256), -(1143/2048), -(723/8192), 997/
  4096, 843/1024, 1079/2048, -(1113/4096), 935/1024, -(965/1024), 173/
  8192, 283/512, 1953/
  8192, -(811/8192), -(113/1024), -(679/1024), -(1679/2048), 1489/
  2048, -(1185/2048), -(867/1024), 205/256, 1481/2048, 1277/
  4096, -(605/4096), 1105/2048, 1377/4096, -(901/1024), -(625/2048), 
  385/512, -(323/512), 1029/4096, -(73/128), 1455/
  8192, -(1115/2048), -(5/32), 199/256, 1971/2048, 1295/
  4096, -(983/1024), -(871/1024), -(361/1024), 811/1024, -(1169/2048),
   1265/2048, 1233/16384, -(39/64), 423/
  2048, -(1707/4096), -(451/512), -(357/512), 1773/4096, 1623/4096, 
  907/16384, 213/256, -(1725/4096), -(1027/4096), -(1489/2048), 1393/
  4096, -(1325/4096), 343/512, -(481/1024), -(255/256), -(177/256), 
  1643/4096, 1057/2048, 93/128, 2009/2048, -(531/2048), 1201/
  4096, -(685/2048), 683/1024, 1691/2048, 427/512, 763/
  2048, -(465/2048), -(1643/2048), 1503/4096, -(765/2048), 1647/
  2048, -(1885/4096), 1081/2048, 1563/2048, -(975/1024), 397/
  2048, -(1729/2048), -(1969/8192), -(1851/2048)}, {-(59/1024), -(971/
   2048), 629/65536, -(581/1024), 1997/2048, 333/512, -(959/1024), 
  1085/2048, -(1819/2048), -(739/1024), -(1375/2048), -(459/512), 
  1051/2048, -(1999/32768), -(247/1024), -(1547/2048), -(1563/2048), 
  997/1024, -(1567/2048), 1711/2048, -(1443/32768), 655/2048, 393/
  512, -(1047/4096), 1253/
  2048, -(1717/2048), -(913/1024), -(1755/8192), 1687/
  65536, -(467/512), 995/
  1024, -(1359/32768), -(1789/2048), -(1963/2048), -(1035/2048), 1389/
  2048, 519/2048, -(1445/2048), -(241/256), -(929/2048), -(1195/4096),
   1405/8192, 1465/4096, 1741/
  65536, -(2005/8192), -(1663/4096), -(1753/2048), -(1835/4096), 907/
  4096, -(595/8192), -(1591/8192), 439/512, -(889/4096), 983/2048, 
  193/256, -(495/1024), 1665/
  4096, -(1327/2048), -(533/8192), -(791/2048), 1153/2048, 1979/
  4096, -(1189/8192), -(1677/2048), -(703/8192), -(45/64), 187/
  256, -(1479/4096), 1959/4096, -(595/1024), 789/
  16384, -(163/512), -(1233/4096), -(1835/2048), -(895/1024), -(1119/
   4096), -(1227/2048), -(243/1024), -(1291/16384), 1661/
  2048, -(1279/2048), 1015/
  1024, -(961/8192), -(1683/2048), -(1215/2048), -(571/1024), -(549/
   2048), 453/512, -(1649/2048), -(425/1024), 1789/2048, 675/
  1024, -(1411/16384), -(933/1024), -(693/1024), 153/
  256, -(1645/2048), 1023/1024, 1903/2048, 105/
  512}, {-(117/1024), -(485/1024), 1321/2048, -(49/256), 1715/
  2048, -(1927/2048), 1441/4096, 457/1024, 319/
  1024, -(919/2048), -(925/1024), -(1467/2048), -(1939/4096), 1669/
  2048, 787/2048, 677/1024, -(1379/4096), -(117/1024), -(93/128), 289/
  512, 937/1024, 1541/
  4096, -(767/1024), -(593/1024), -(529/4096), -(605/2048), 385/512, 
  1437/4096, 925/1024, -(439/512), 119/128, -(99/128), -(1919/4096), 
  1387/8192, 885/1024, 1733/
  2048, -(1165/4096), -(1495/16384), -(1635/2048), -(731/4096), -(
   1385/2048), -(1459/8192), 1761/2048, -(437/32768), -(127/128), 
  1439/2048, 547/16384, -(671/2048), 15/32, 493/512, -(47/512), 415/
  512, 1207/2048, -(1257/2048), 523/32768, 609/2048, -(1033/8192), 
  371/512, 485/512, -(1789/2048), 317/512, 1271/
  2048, -(1709/2048), -(89/256), -(1527/2048), 517/1024, 1897/2048, 
  751/1024, -(1321/2048), 181/
  1024, -(781/2048), -(241/256), -(1103/2048), -(351/512), 1833/2048, 
  1795/2048, 73/128, 3/4, -(611/2048), -(1053/8192), 1133/2048, 1637/
  8192, 903/4096, -(671/1024), 209/256, -(2043/2048), 1673/8192, 1043/
  4096, 1603/2048, -(1081/2048), -(1553/4096), -(31/32), 1037/
  16384, -(927/2048), 5/8, -(653/1024), -(917/4096), 1899/2048, 223/
  512, 1995/2048}, {1357/4096, -(2001/4096), -(475/512), 1451/
  4096, -(1509/2048), -(69/2048), 1963/2048, -(1273/4096), 559/1024, 
  497/512, 1279/2048, -(1881/8192), -(9/64), 1555/2048, -(1023/1024), 
  713/1024, -(1187/2048), 1029/
  8192, -(803/1024), -(767/1024), -(891/1024), -(347/4096), 1339/
  2048, -(1087/2048), 847/1024, 35/64, -(59/256), 953/
  32768, -(1555/8192), 653/2048, -(201/512), 1213/
  4096, -(283/4096), -(1159/8192), 1493/2048, 247/256, -(655/2048), 
  1179/2048, -(1973/2048), 983/4096, -(991/1024), 1961/2048, 531/1024,
   1651/65536, 1623/8192, 69/128, 1409/2048, 1183/
  4096, -(41/64), -(1937/2048), -(861/1024), -(1119/4096), 5/4096, 
  809/2048, -(921/2048), 1997/2048, 1785/8192, -(1721/2048), 1663/
  8192, -(1081/2048), -(153/256), -(1527/2048), -(209/256), 1797/
  4096, -(1489/4096), 1599/8192, 73/128, -(1651/2048), 1301/8192, 
  1071/2048, 711/1024, 755/1024, 199/512, -(77/128), -(1531/2048), 
  473/1024, -(381/512), 921/8192, -(187/512), 915/1024, 1727/
  2048, -(475/1024), -(433/512), -(339/512), 1911/2048, -(1907/4096), 
  1759/2048, -(1383/2048), 507/512, -(1357/4096), 1819/4096, 1299/
  4096, 1791/8192, -(1141/8192), -(337/512), -(1887/2048), 1869/8192, 
  1237/2048, -(1211/8192), -(2037/2048)}, {247/512, 1105/2048, 471/
  1024, 1073/2048, 1875/2048, 781/8192, 403/1024, 313/2048, 1433/
  2048, -(849/1024), -(1529/2048), 65/128, -(1583/8192), -(203/512), 
  1479/2048, 1675/8192, 251/256, 337/512, -(573/8192), 1787/8192, 
  1897/2048, 87/128, 1257/16384, -(987/1024), 1531/2048, 319/
  1024, -(919/2048), 1277/8192, -(765/1024), -(1047/2048), 157/1024, 
  1479/2048, 557/1024, -(1835/2048), 549/1024, 1335/
  2048, -(1521/2048), -(763/2048), -(1837/2048), -(1925/4096), -(273/
   512), -(1985/2048), 2037/
  16384, -(135/256), -(1005/1024), -(153/512), 967/
  1024, -(2037/2048), -(357/1024), -(1001/4096), -(767/1024), -(1923/
   2048), 349/4096, -(141/256), -(2031/2048), 607/2048, -(23/32), 
  1375/4096, 1135/2048, 1441/2048, -(225/16384), 1869/4096, 721/1024, 
  1559/2048, 103/128, -(1469/2048), 1009/8192, 1563/
  16384, -(537/1024), -(95/128), -(1227/2048), 1857/
  4096, -(411/4096), -(1047/2048), 147/4096, 931/1024, 1965/8192, 947/
  32768, -(1133/8192), 1707/8192, -(917/1024), 1713/
  8192, -(911/16384), 1115/2048, 1287/2048, 1677/2048, 1721/
  4096, -(1099/2048), 1141/4096, -(637/1024), -(1415/2048), 335/512, 
  1505/8192, -(923/2048), 291/2048, -(1309/32768), 1495/4096, 1729/
  4096, 245/512, -(13/2048)}, {-(1449/2048), -(985/1024), 339/
  2048, -(631/1024), 481/2048, 335/1024, 1851/4096, 569/1024, 1155/
  2048, 1427/4096, -(1881/8192), 937/1024, -(1509/2048), 1671/
  4096, -(1497/8192), 677/1024, 1207/2048, 191/512, -(167/4096), 1409/
  2048, -(1995/8192), -(1665/2048), 1305/4096, 1243/4096, 1979/2048, 
  1615/2048, -(1769/4096), 1551/2048, -(793/1024), 1309/
  2048, -(1737/8192), 1565/
  8192, -(1293/4096), -(285/1024), -(471/512), -(493/2048), 1591/
  4096, -(995/1024), 1459/8192, 175/256, 771/4096, 999/
  2048, -(597/1024), -(1345/2048), 1205/4096, -(1659/2048), 1541/
  4096, -(1707/2048), -(1429/4096), 35/
  128, -(1413/2048), -(407/1024), -(1793/2048), -(281/1024), -(1817/
   2048), 9/16, 279/512, -(973/1024), 1599/2048, 805/
  8192, -(93/512), -(1187/4096), -(849/1024), -(489/1024), 9/
  16, -(1727/2048), 1563/2048, -(1517/16384), -(2017/4096), 217/256, 
  1175/4096, -(235/256), -(607/1024), 1197/16384, 453/512, 629/
  1024, -(1075/8192), 1069/2048, 1583/2048, 851/1024, -(1239/4096), 
  1319/4096, -(1501/2048), 1661/4096, 455/
  512, -(273/1024), -(603/8192), 1615/4096, 773/4096, 1501/2048, 1121/
  4096, 1197/2048, -(1647/4096), 1007/1024, 401/512, -(1677/8192), 
  1527/2048, -(377/1024), -(473/4096), -(177/512)}, {1129/
  2048, -(271/1024), 101/128, 519/1024, -(1121/65536), 1345/4096, 481/
  2048, -(819/1024), -(227/512), 61/64, -(1451/2048), 743/1024, 1977/
  2048, 1649/2048, -(905/2048), 1439/2048, -(1607/2048), -(2015/2048),
   1639/2048, -(241/256), -(51/128), 1717/2048, -(87/128), 919/
  1024, -(235/2048), 757/1024, -(1945/2048), 585/1024, 495/
  512, -(1903/2048), 107/512, 49/64, -(2021/4096), 175/
  1024, -(995/2048), 1677/65536, -(1869/8192), -(1365/4096), 1297/
  16384, 1477/2048, -(167/4096), -(1537/2048), -(1025/2048), 2013/
  8192, -(1513/16384), 1973/2048, 81/128, 367/512, 1095/2048, 949/
  2048, 739/1024, 1957/8192, 519/2048, 1419/
  2048, -(1191/2048), -(1137/2048), -(241/256), 837/
  2048, -(1833/4096), -(691/2048), -(1339/4096), -(219/256), -(709/
   8192), -(1951/2048), -(1331/32768), 389/
  2048, -(295/512), -(1711/2048), -(1727/2048), -(1851/2048), -(1937/
   2048), 1717/16384, -(1069/16384), 253/
  512, -(657/1024), -(2041/2048), -(825/1024), -(695/8192), 1255/
  16384, -(1891/8192), 265/16384, -(413/4096), -(945/2048), 821/
  4096, -(1349/8192), 721/4096, -(1655/2048), 801/1024, -(1277/8192), 
  813/1024, -(1307/2048), -(967/1024), -(365/4096), 795/32768, 1467/
  4096, -(1935/4096), 1617/8192, 1995/2048, -(1535/4096), 2003/
  4096}, {999/1024, -(1645/4096), 1391/4096, 1523/2048, 925/
  1024, -(341/1024), 143/1024, 279/
  512, -(589/2048), -(857/8192), -(135/256), -(781/1024), -(1883/
   4096), 885/2048, -(1771/8192), -(1799/4096), -(241/512), 401/4096, 
  961/2048, -(371/512), 179/256, 201/16384, 407/16384, 1049/2048, 
  1531/2048, 1369/2048, 1801/16384, 2007/2048, -(1603/2048), 85/
  128, -(129/256), 1295/4096, -(55/64), 1657/
  2048, -(325/2048), -(1661/4096), 1969/2048, -(1859/8192), 2029/
  4096, -(99/128), -(1455/4096), 1007/1024, 1055/
  2048, -(623/1024), -(411/1024), -(1649/2048), -(665/2048), 1245/
  2048, 951/1024, -(487/2048), -(1693/2048), 457/2048, 775/
  2048, -(83/1024), 65/256, 1751/2048, -(1991/2048), 125/128, 835/
  2048, -(309/512), -(947/1024), -(161/512), -(863/1024), -(1563/
   4096), -(1449/2048), 759/16384, -(1391/2048), -(1777/2048), 1003/
  1024, -(787/4096), -(1463/2048), 1675/2048, -(681/1024), 199/
  256, -(1687/2048), -(1967/4096), 1747/4096, -(229/512), -(387/1024),
   1815/8192, 1609/2048, 1635/4096, -(1287/2048), 987/1024, 2035/4096,
   859/4096, -(833/2048), 613/2048, 1603/4096, -(1735/4096), 1623/
  4096, -(279/512), 1585/2048, 741/4096, 1801/2048, 179/
  512, -(1731/2048), -(391/2048), -(101/128), -(1343/2048)}, {-(67/
   512), -(893/1024), 29/1024, -(1685/2048), 259/
  16384, -(647/1024), -(931/1024), -(25/32), -(275/512), -(1847/
   2048), -(93/256), 407/512, 1865/4096, 61/64, -(1333/4096), 385/
  1024, -(851/2048), 1697/2048, -(1093/2048), 117/256, 741/2048, 1219/
  16384, 1431/2048, 81/256, -(1769/2048), -(1861/4096), 1317/2048, 
  1125/2048, -(1843/2048), -(557/1024), -(1481/2048), -(667/1024), -(
   581/1024), 55/64, -(871/2048), 897/1024, -(1509/4096), 505/1024, 
  1685/2048, 231/8192, 651/
  4096, -(553/1024), -(1499/2048), -(395/512), 871/2048, 1467/2048, 
  1067/2048, -(1135/8192), 1571/2048, 1113/2048, -(369/512), 529/2048,
   1401/4096, -(997/2048), 1695/2048, 207/256, 1989/
  2048, -(1667/2048), 1965/2048, 161/256, -(791/1024), 1231/
  4096, -(419/512), 769/1024, 1189/4096, -(69/2048), 431/512, 1253/
  4096, -(17/64), -(1297/2048), 555/1024, 753/1024, 27/
  64, -(1141/8192), -(627/1024), 1647/2048, 235/256, -(703/2048), 653/
  2048, -(1485/2048), -(565/8192), 545/8192, 1831/8192, 823/4096, 
  1339/2048, -(1717/2048), 385/1024, 1173/
  4096, -(879/1024), -(1899/2048), 585/4096, 1577/32768, -(1821/2048),
   205/32768, 1619/4096, 795/1024, 939/1024, -(1953/16384), 299/1024, 
  377/2048}}
RandomMatrix.rtf

John Gustafson

unread,
Feb 8, 2019, 2:15:15 AM2/8/19
to marc.b....@gmail.com, Unum Computing
Apologies for spamming everyone with 10,000 random numbers… apparently when you use "Attach file" and Google sees that it's an RTF file, it makes it the visible text of the message.

I finished the sketch of how to use the quire to refine Heron's formula automatically (once a compiler knows how to apply the XSC language methods developed by Kulisch and his Karlsruhe colleagues. I wasn't sure how to handle the nonlinearity of the system and Kulisch's examples do not cover such a case, but I tried the obvious thing to linearize it and it worked. (It's harder to prove that this is always a contractive map, which I assume is why Kulisch doesn't cover it in his writings.) In one pass, the quire raises the accuracy of the area of the triangle from 15% off (no decimal digits correct) to being off by only 2 ULPs, almost four decimal digits correct as you would expect from a 16-bit posit.

HeronsTriangleFormula.nb
HeronsTriangleFormula.pdf

marc.b....@gmail.com

unread,
Feb 8, 2019, 5:59:38 AM2/8/19
to Unum Computing
Only performed first skim.  You missed that the Boldo paper tightens the bound from Goldberg's 11 to 6.625 (base-2 case)

marc.b....@gmail.com

unread,
Feb 8, 2019, 5:12:47 PM2/8/19
to Unum Computing
FWIW:  I don't have any free time for the next couple of weeks (little one on vacation from today).  I failed at repeating the provided notebook's results of LINPACK even with provided matrix (this is probably user (aka me) error). Took a quick peek around and didn't see any notification of change of default PRNG and couldn't see a func to return the active PRNG in the kernel.

jim.bra...@ieee.org

unread,
Feb 8, 2019, 6:21:47 PM2/8/19
to Unum Computing
>Would somebody reflect on these?
highlighting "rounding dynamics of the examples that demonstrate catastrophic cancellation"

Am looking at these accuracy loss situations from the consumer's point of view:
  A surveyor would not use narrow triangles, they know the problem
  An engineer doesn't want unexpected errors in his calculations
Thus it would seem to be the numerical analyst's job to create useful algorithms (and data structures, e.g. floats) that give warning when high/great accuracy loss occurs?

Jim Brakefield 

John Gustafson

unread,
Feb 9, 2019, 12:09:24 AM2/9/19
to jim.bra...@ieee.org, marc.b....@gmail.com, Unum Computing
@Jim: My position is that it is the job of the computer system to protect users from invisible rounding errors, and to provide enough tools for adjusting the speed-accuracy tradeoff that ordinary programmers do not also have to be experts in numerical analysis. Numerical analysts are rare and getting rarer. At least some of the massive increase in computing capability that has happened since the 1980s should be put into improving the quality of computations involving real numbers, not simply pursuing ever more sloppy calculations per second.

It turns out you can actually have both higher speed and better accuracy with posits, something I never expected. In some situations they really do work as a drop-in replacement for floats, and at A*STAR we routinely run problems like FFTs where we compile and run an application using Berkeley SoftFloat, then replace all the operations with calls to Siew Hoon Leong's SoftPosit, and it runs. The Lawrence Livermore researchers, led by Peter Lindstrom, do something very similar and are able to test and compare various number formats for shock hydrodynamics and incompressible fluid flow. They've found 32-bit posits to produce simulations that are about 50 times as accurate as those run using 32-bit IEEE floats, without having to rescale anything to stay in the "sweet spot" where posits have the highest accuracy.

@Marc: I hope you will visit posithub.org and look at results more recent than posit4.nb in preparing your blogs. The use of tiny precision (8-bit posits and a made-up 8-bit float that follows IEEE rules) was to allow exhaustive search of the behavior using a slow environment, Mathematica. Lindstrom used a C or C++ environment to do exhaustive search of 16-bit posits versus 16-bit IEEE floats and created accuracy plots very similar to the 8-bit results, for example, so please make use of that data in your blog.

Also, the posit4.nb notebook is not designed such that you can just jump to the beginning of a section and successfully execute all the examples in that section. All cells need to be executed, and executed in order. That may allow you to run the LINPACK example. The environment (posit size and exponent size) is changed from section to section. Some cells are collapsed and you might not notice them when stepping through the examples manually, but they all need to be run.

John G.

--
You received this message because you are subscribed to the Google Groups "Unum Computing" group.
To unsubscribe from this group and stop receiving emails from it, send an email to unum-computin...@googlegroups.com.
To post to this group, send email to unum-co...@googlegroups.com.

marc.b....@gmail.com

unread,
Feb 9, 2019, 2:52:40 AM2/9/19
to Unum Computing
To clarify I'm getting different results on LINPACK by selecting all in your notebook and running all cells in a cleanly restarted kernel.

IMHO one thing I think you should address in the updated tri example is your position on what a compiler's allowed to do.  Here it transforming an expression in a way that changes the error bound.  Previously you stated that it should not be allowed to transform to use FMA and that it's the programmers job.  I see this as two different types of programmers and compiler flags...but it might be worth explicitly noting.

marc.b....@gmail.com

unread,
Feb 9, 2019, 4:20:20 AM2/9/19
to Unum Computing
Follow-up.  Retract that statement.  Repeated the process and now the results do indeed match.  Sorry about that, bad me.

John L. Gustafson

unread,
Feb 9, 2019, 5:31:28 AM2/9/19
to marc.b....@gmail.com, Unum Computing
Glad you are now able to reproduce the LINPACK result, Marc. Let me address your suggestion:


IMHO one thing I think you should address in the updated tri example is your position on what a compiler's allowed to do.  Here it transforming an expression in a way that changes the error bound.  Previously you stated that it should not be allowed to transform to use FMA and that it's the programmers job.  I see this as two different types of programmers and compiler flags...but it might be worth explicitly noting.

My position is that the source code should suffice to determine a program's output, always. You should never need to know about the makefile settings, "mode" of the processor, compiler flags, whose math library was linked in, or what computer it runs on, to determine every bit of the output. Just the source code. "Source code" includes compiler directives or "significant comments," though, which is something I need to describe in more detail in the Draft Posit Standard and which I believe addresses the seeming contradiction you note.

Let's assume the default behavior of a program is to run as quickly as possible. However, with a significant comment, you can specify that certain values are to be computed "safely," using the XSC methods and the quire. For example, suppose a line of code is 

    x = a * b * c;

With both floats and posits, multiplication does not follow the associative law. Floats can overflow from one of the multiply operations even if the mathematical value of x is perfectly representable; posits can get very inaccurate if one of the products lands in the large-magnitude or small-magnitude regions. Without knowing any numerical analysis or how it works, a programmer could precede this with something like

    //$ safe(x)

    x = a * b * c;

indicating that the next evaluation of x is to be performed as if there is infinite precision, then rounded to the nearest posit. The compiler sets up the sparse lower-triangular linear system

   | 1         | | t1 |   | a |
   |           | |    |   |   |
   | b  -1     |•| t2 | = | 0 |
   |           | |    |   |   |
   |     c  -1 | | t3 |   | 0 |

for which t3 is the desired value for x. This is solved with residual correction via the quire as shown in my notebooks and in previous postings to this group, resulting in x correct to within 0.5 ULP, that is, correctly rounded. Notice that this restores associativity to multiplication! The product becomes independent of the ordering of the factors, and immune to temporary loss of accuracy. For example, if {abc} are {maxpos, 1.5, minpos}, the product should be 1.5 but when x is evaluated in the default "fast" mode of simply multiplying and b  and rounding, then multiplying that by c and rounding, you will always get 1 instead of 1.5 because maxpos * 1.5 always rounds to maxpos. But a programmer only needs to specify that a variable be "safe" and the compiler will either take care of making it act like a fused operation, or will issue a warning about why it is not possible. Like, don't expect to be able to compute cos(1/x) as a perfectly-rounded function because that doesn't translate to a lower-triangular system. (The Germans did find techniques for guaranteeing perfect rounding in such cases, but I'd rather not go into that here.)

Of course you're thinking about the performance penalty, and the Germans have written extensively about that. It usually takes only two iterations, sometimes three, to nail the correctly-rounded value. I think they estimate the whole process slows things down by about threefold, but I want to do the experiments myself before I can say I concur. If the "safe" directive is used gingerly, it might have a minuscule effect on the speed of the computation. Automatic tools exist to suggest which values need to be computed with more care, further relieving the programmer of having to analyze rounding errors.

I believe this method is less work for the programmer than deciding selectively to use higher precision, and it is also much better at insuring correctly-rounded results than merely hoping double-precision will fix everything. A single posit precision suffices for the entire computation, and you don't have to flip between different posit precisions. The code is easier to read, because it communicates the intent of the programmer while letting the computer do all the work of making the solution right. You get the benefits of interval arithmetic, without ever having to declare an interval or know anything about how they work.

One marketing mistake the Germans made was to apply the accuracy refinement technique everywhere, guaranteeing that the entire program ran about three times slower. The ACRITH package offered by IBM did not catch on as a product, because the speed-accuracy tradeoff was too severe and not under programmer control. My position is that you can have the best of both worlds. If you know you're in the part of an algorithm that is supposed to converge to a solution, you'll want to take the time to compute safely. After it converges, when you send the solution to the graphics post-processor, you can run that in the default mode of going as fast as possible and maybe a couple pixels are off, but you probably don't care.

I think this resolves the contradiction. A fused set of operations is always treated as a different calculation from an evaluation that rounds after each sub-operation, and the source code must say which one is being invoked. Otherwise, you have no hope of bitwise-reproducible results.

John G.
Reply all
Reply to author
Forward
0 new messages