shithub: aacdec

Download patch

ref: 3b2e3d159a714243528bc259f4e20e4858bd4db6
parent: 7be9972c11f3f7383594f389ba753c20cc724371
author: menno <menno>
date: Wed Nov 12 15:47:59 EST 2003

Huge ARM speedups
SBR fixes
TNS bug fixed

--- a/libfaad/bits.c
+++ b/libfaad/bits.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: bits.c,v 1.27 2003/11/04 21:43:30 menno Exp $
+** $Id: bits.c,v 1.28 2003/11/12 20:47:57 menno Exp $
 **/
 
 #include "common.h"
@@ -56,15 +56,9 @@
     ld->buffer_size = buffer_size;
 
     tmp = getdword((uint32_t*)ld->buffer);
-#ifndef ARCH_IS_BIG_ENDIAN
-    BSWAP(tmp);
-#endif
     ld->bufa = tmp;
 
     tmp = getdword((uint32_t*)ld->buffer + 1);
-#ifndef ARCH_IS_BIG_ENDIAN
-    BSWAP(tmp);
-#endif
     ld->bufb = tmp;
 
     ld->start = (uint32_t*)ld->buffer;
@@ -107,9 +101,6 @@
     ld->bufa = ld->bufb;
     tmp = getdword(ld->tail);
     ld->tail++;
-#ifndef ARCH_IS_BIG_ENDIAN
-    BSWAP(tmp);
-#endif
     ld->bufb = tmp;
     ld->bits_left += (32 - bits);
     ld->bytes_used += 4;
@@ -180,15 +171,9 @@
     ld->start = (uint32_t*)buffer + index - 2;
 
     tmp = getdword((uint32_t*)buffer + index);
-#ifndef ARCH_IS_BIG_ENDIAN
-    BSWAP(tmp);
-#endif
     ld->bufa = tmp;
 
     tmp = getdword((uint32_t*)buffer + index - 1);
-#ifndef ARCH_IS_BIG_ENDIAN
-    BSWAP(tmp);
-#endif
     ld->bufb = tmp;
 
     ld->tail = (uint32_t*)buffer + index;
--- a/libfaad/bits.h
+++ b/libfaad/bits.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: bits.h,v 1.26 2003/11/04 21:43:30 menno Exp $
+** $Id: bits.h,v 1.28 2003/12/17 14:43:16 menno Exp $
 **/
 
 #ifndef __BITS_H__
@@ -89,15 +89,27 @@
 {
 #ifdef ARM
     uint32_t tmp;
+#ifndef ARCH_IS_BIG_ENDIAN
+    ((uint8_t*)&tmp)[0] = ((uint8_t*)mem)[3];
+    ((uint8_t*)&tmp)[1] = ((uint8_t*)mem)[2];
+    ((uint8_t*)&tmp)[2] = ((uint8_t*)mem)[1];
+    ((uint8_t*)&tmp)[3] = ((uint8_t*)mem)[0];
+#else
     ((uint8_t*)&tmp)[0] = ((uint8_t*)mem)[0];
     ((uint8_t*)&tmp)[1] = ((uint8_t*)mem)[1];
     ((uint8_t*)&tmp)[2] = ((uint8_t*)mem)[2];
     ((uint8_t*)&tmp)[3] = ((uint8_t*)mem)[3];
+#endif
 
     return tmp;
 #else
-    return *(uint32_t*)mem;
+    uint32_t tmp;
+    tmp = *(uint32_t*)mem;
+#ifndef ARCH_IS_BIG_ENDIAN
+    BSWAP(tmp);
 #endif
+    return tmp;
+#endif
 }
 
 static INLINE uint32_t faad_showbits(bitfile *ld, uint32_t bits)
@@ -200,9 +212,6 @@
 
         ld->bufa = ld->bufb;
         tmp = getdword(ld->start);
-#ifndef ARCH_IS_BIG_ENDIAN
-        BSWAP(tmp);
-#endif
         ld->bufb = tmp;
         ld->start--;
         ld->bits_left += (32 - bits);
--- a/libfaad/cfft.c
+++ b/libfaad/cfft.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: cfft.c,v 1.18 2003/11/04 21:50:34 menno Exp $
+** $Id: cfft.c,v 1.19 2003/11/12 20:47:57 menno Exp $
 **/
 
 /*
@@ -65,23 +65,46 @@
             IM(ch[ah+l1]) = IM(cc[ac]) - IM(cc[ac+1]);
         }
     } else {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            ah = k*ido;
-            ac = 2*k*ido;
+            for (k = 0; k < l1; k++)
+            {
+                ah = k*ido;
+                ac = 2*k*ido;
 
-            for (i = 0; i < ido; i++)
+                for (i = 0; i < ido; i++)
+                {
+                    complex_t t2;
+
+                    RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
+                    RE(t2)       = RE(cc[ac+i]) - RE(cc[ac+i+ido]);
+
+                    IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
+                    IM(t2)       = IM(cc[ac+i]) - IM(cc[ac+i+ido]);
+
+                    ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
+                        IM(t2), RE(t2), RE(wa[i]), IM(wa[i]));
+                }
+            }
+        } else {
+            for (k = 0; k < l1; k++)
             {
-                complex_t t2;
+                ah = k*ido;
+                ac = 2*k*ido;
 
-                RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
-                RE(t2)       = RE(cc[ac+i]) - RE(cc[ac+i+ido]);
+                for (i = 0; i < ido; i++)
+                {
+                    complex_t t2;
 
-                IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
-                IM(t2)       = IM(cc[ac+i]) - IM(cc[ac+i+ido]);
+                    RE(ch[ah+i]) = RE(cc[ac+i]) + RE(cc[ac+i+ido]);
+                    RE(t2)       = RE(cc[ac+i]) - RE(cc[ac+i+ido]);
 
-                RE(ch[ah+i+l1*ido]) = MUL_R_C(RE(t2),RE(wa[i])) - MUL_R_C(IM(t2),IM(wa[i]))*isign;
-                IM(ch[ah+i+l1*ido]) = MUL_R_C(IM(t2),RE(wa[i])) + MUL_R_C(RE(t2),IM(wa[i]))*isign;
+                    IM(ch[ah+i]) = IM(cc[ac+i]) + IM(cc[ac+i+ido]);
+                    IM(t2)       = IM(cc[ac+i]) - IM(cc[ac+i+ido]);
+
+                    ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
+                        RE(t2), IM(t2), RE(wa[i]), IM(wa[i]));
+                }
             }
         }
     }
@@ -92,63 +115,121 @@
                    complex_t *ch, const complex_t *wa1, const complex_t *wa2,
                    const int8_t isign)
 {
-    static real_t taur = COEF_CONST(-0.5);
-    static real_t taui = COEF_CONST(0.866025403784439);
+    static real_t taur = FRAC_CONST(-0.5);
+    static real_t taui = FRAC_CONST(0.866025403784439);
     uint16_t i, k, ac, ah;
     complex_t c2, c3, d2, d3, t2;
 
     if (ido == 1)
     {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            ac = 3*k+1;
-            ah = k;
+            for (k = 0; k < l1; k++)
+            {
+                ac = 3*k+1;
+                ah = k;
 
-            RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
-            IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
-            RE(c2) = RE(cc[ac-1]) + MUL_R_C(RE(t2),taur);
-            IM(c2) = IM(cc[ac-1]) + MUL_R_C(IM(t2),taur);
+                RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
+                IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
+                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
+                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);
 
-            RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
-            IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);
+                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
+                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);
 
-            RE(c3) = MUL_R_C((RE(cc[ac]) - RE(cc[ac+1])), taui)*isign;
-            IM(c3) = MUL_R_C((IM(cc[ac]) - IM(cc[ac+1])), taui)*isign;
+                RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
+                IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);
 
-            RE(ch[ah+l1]) = RE(c2) - IM(c3);
-            IM(ch[ah+l1]) = IM(c2) + RE(c3);
-            RE(ch[ah+2*l1]) = RE(c2) + IM(c3);
-            IM(ch[ah+2*l1]) = IM(c2) - RE(c3);
+                RE(ch[ah+l1]) = RE(c2) - IM(c3);
+                IM(ch[ah+l1]) = IM(c2) + RE(c3);
+                RE(ch[ah+2*l1]) = RE(c2) + IM(c3);
+                IM(ch[ah+2*l1]) = IM(c2) - RE(c3);
+            }
+        } else {
+            for (k = 0; k < l1; k++)
+            {
+                ac = 3*k+1;
+                ah = k;
+
+                RE(t2) = RE(cc[ac]) + RE(cc[ac+1]);
+                IM(t2) = IM(cc[ac]) + IM(cc[ac+1]);
+                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),taur);
+                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),taur);
+
+                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2);
+                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2);
+
+                RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+1])), taui);
+                IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+1])), taui);
+
+                RE(ch[ah+l1]) = RE(c2) + IM(c3);
+                IM(ch[ah+l1]) = IM(c2) - RE(c3);
+                RE(ch[ah+2*l1]) = RE(c2) - IM(c3);
+                IM(ch[ah+2*l1]) = IM(c2) + RE(c3);
+            }
         }
     } else {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            for (i = 0; i < ido; i++)
+            for (k = 0; k < l1; k++)
             {
-                ac = i + (3*k+1)*ido;
-                ah = i + k * ido;
+                for (i = 0; i < ido; i++)
+                {
+                    ac = i + (3*k+1)*ido;
+                    ah = i + k * ido;
 
-                RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
-                RE(c2) = RE(cc[ac-ido]) + MUL_R_C(RE(t2),taur);
-                IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
-                IM(c2) = IM(cc[ac-ido]) + MUL_R_C(IM(t2),taur);
+                    RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
+                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
+                    IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
+                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);
 
-                RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
-                IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);
+                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
+                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);
 
-                RE(c3) = MUL_R_C((RE(cc[ac]) - RE(cc[ac+ido])), taui)*isign;
-                IM(c3) = MUL_R_C((IM(cc[ac]) - IM(cc[ac+ido])), taui)*isign;
+                    RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
+                    IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);
 
-                RE(d2) = RE(c2) - IM(c3);
-                IM(d3) = IM(c2) - RE(c3);
-                RE(d3) = RE(c2) + IM(c3);
-                IM(d2) = IM(c2) + RE(c3);
+                    RE(d2) = RE(c2) - IM(c3);
+                    IM(d3) = IM(c2) - RE(c3);
+                    RE(d3) = RE(c2) + IM(c3);
+                    IM(d2) = IM(c2) + RE(c3);
 
-                RE(ch[ah+l1*ido]) = MUL_R_C(RE(d2),RE(wa1[i])) - MUL_R_C(IM(d2),IM(wa1[i]))*isign;
-                IM(ch[ah+l1*ido]) = MUL_R_C(IM(d2),RE(wa1[i])) + MUL_R_C(RE(d2),IM(wa1[i]))*isign;
-                RE(ch[ah+l1*2*ido]) = MUL_R_C(RE(d3),RE(wa2[i])) - MUL_R_C(IM(d3),IM(wa2[i]))*isign;
-                IM(ch[ah+l1*2*ido]) = MUL_R_C(IM(d3),RE(wa2[i])) + MUL_R_C(RE(d3),IM(wa2[i]))*isign;
+                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
+                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
+                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
+                }
             }
+        } else {
+            for (k = 0; k < l1; k++)
+            {
+                for (i = 0; i < ido; i++)
+                {
+                    ac = i + (3*k+1)*ido;
+                    ah = i + k * ido;
+
+                    RE(t2) = RE(cc[ac]) + RE(cc[ac+ido]);
+                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),taur);
+                    IM(t2) = IM(cc[ac]) + IM(cc[ac+ido]);
+                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),taur);
+
+                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2);
+                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2);
+
+                    RE(c3) = MUL_F((RE(cc[ac]) - RE(cc[ac+ido])), taui);
+                    IM(c3) = MUL_F((IM(cc[ac]) - IM(cc[ac+ido])), taui);
+
+                    RE(d2) = RE(c2) + IM(c3);
+                    IM(d3) = IM(c2) + RE(c3);
+                    RE(d3) = RE(c2) - IM(c3);
+                    IM(d2) = IM(c2) - RE(c3);
+
+                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
+                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
+                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
+                }
+            }
         }
     }
 }
@@ -161,71 +242,145 @@
 
     if (ido == 1)
     {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            complex_t t1, t2, t3, t4;
+            for (k = 0; k < l1; k++)
+            {
+                complex_t t1, t2, t3, t4;
 
-            ac = 4*k;
-            ah = k;
+                ac = 4*k;
+                ah = k;
 
-            RE(t2) = RE(cc[ac])   + RE(cc[ac+2]);
-            RE(t1) = RE(cc[ac])   - RE(cc[ac+2]);
-            IM(t2) = IM(cc[ac])   + IM(cc[ac+2]);
-            IM(t1) = IM(cc[ac])   - IM(cc[ac+2]);
-            RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
-            IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
-            IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
-            RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);
+                RE(t2) = RE(cc[ac])   + RE(cc[ac+2]);
+                RE(t1) = RE(cc[ac])   - RE(cc[ac+2]);
+                IM(t2) = IM(cc[ac])   + IM(cc[ac+2]);
+                IM(t1) = IM(cc[ac])   - IM(cc[ac+2]);
+                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
+                IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
+                IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
+                RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);
 
-            RE(ch[ah])      = RE(t2) + RE(t3);
-            RE(ch[ah+2*l1]) = RE(t2) - RE(t3);
+                RE(ch[ah])      = RE(t2) + RE(t3);
+                RE(ch[ah+2*l1]) = RE(t2) - RE(t3);
 
-            IM(ch[ah])      = IM(t2) + IM(t3);
-            IM(ch[ah+2*l1]) = IM(t2) - IM(t3);
+                IM(ch[ah])      = IM(t2) + IM(t3);
+                IM(ch[ah+2*l1]) = IM(t2) - IM(t3);
 
-            RE(ch[ah+l1])   = RE(t1) + RE(t4)*isign;
-            RE(ch[ah+3*l1]) = RE(t1) - RE(t4)*isign;
+                RE(ch[ah+l1])   = RE(t1) + RE(t4);
+                RE(ch[ah+3*l1]) = RE(t1) - RE(t4);
 
-            IM(ch[ah+l1])   = IM(t1) + IM(t4)*isign;
-            IM(ch[ah+3*l1]) = IM(t1) - IM(t4)*isign;
+                IM(ch[ah+l1])   = IM(t1) + IM(t4);
+                IM(ch[ah+3*l1]) = IM(t1) - IM(t4);
+            }
+        } else {
+            for (k = 0; k < l1; k++)
+            {
+                complex_t t1, t2, t3, t4;
+
+                ac = 4*k;
+                ah = k;
+
+                RE(t2) = RE(cc[ac])   + RE(cc[ac+2]);
+                RE(t1) = RE(cc[ac])   - RE(cc[ac+2]);
+                IM(t2) = IM(cc[ac])   + IM(cc[ac+2]);
+                IM(t1) = IM(cc[ac])   - IM(cc[ac+2]);
+                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+3]);
+                IM(t4) = RE(cc[ac+1]) - RE(cc[ac+3]);
+                IM(t3) = IM(cc[ac+3]) + IM(cc[ac+1]);
+                RE(t4) = IM(cc[ac+3]) - IM(cc[ac+1]);
+
+                RE(ch[ah])      = RE(t2) + RE(t3);
+                RE(ch[ah+2*l1]) = RE(t2) - RE(t3);
+
+                IM(ch[ah])      = IM(t2) + IM(t3);
+                IM(ch[ah+2*l1]) = IM(t2) - IM(t3);
+
+                RE(ch[ah+l1])   = RE(t1) - RE(t4);
+                RE(ch[ah+3*l1]) = RE(t1) + RE(t4);
+
+                IM(ch[ah+l1])   = IM(t1) - IM(t4);
+                IM(ch[ah+3*l1]) = IM(t1) + IM(t4);
+            }
         }
     } else {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            ac = 4*k*ido;
-            ah = k*ido;
+            for (k = 0; k < l1; k++)
+            {
+                ac = 4*k*ido;
+                ah = k*ido;
 
-            for (i = 0; i < ido; i++)
+                for (i = 0; i < ido; i++)
+                {
+                    complex_t c2, c3, c4, t1, t2, t3, t4;
+
+                    RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
+                    RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
+                    IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
+                    IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
+                    RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
+                    IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
+                    IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
+                    RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);
+
+                    RE(c2) = RE(t1) + RE(t4);
+                    RE(c4) = RE(t1) - RE(t4);
+
+                    IM(c2) = IM(t1) + IM(t4);
+                    IM(c4) = IM(t1) - IM(t4);
+
+                    RE(ch[ah+i]) = RE(t2) + RE(t3);
+                    RE(c3)       = RE(t2) - RE(t3);
+
+                    IM(ch[ah+i]) = IM(t2) + IM(t3);
+                    IM(c3)       = IM(t2) - IM(t3);
+
+                    ComplexMult(&IM(ch[ah+i+l1*ido]), &RE(ch[ah+i+l1*ido]),
+                        IM(c2), RE(c2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&IM(ch[ah+i+2*l1*ido]), &RE(ch[ah+i+2*l1*ido]),
+                        IM(c3), RE(c3), RE(wa2[i]), IM(wa2[i]));
+                    ComplexMult(&IM(ch[ah+i+3*l1*ido]), &RE(ch[ah+i+3*l1*ido]),
+                        IM(c4), RE(c4), RE(wa3[i]), IM(wa3[i]));
+                }
+            }
+        } else {
+            for (k = 0; k < l1; k++)
             {
-                complex_t c2, c3, c4, t1, t2, t3, t4;
+                ac = 4*k*ido;
+                ah = k*ido;
 
-                RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
-                RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
-                IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
-                IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
-                RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
-                IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
-                IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
-                RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);
+                for (i = 0; i < ido; i++)
+                {
+                    complex_t c2, c3, c4, t1, t2, t3, t4;
 
-                RE(c2) = RE(t1) + RE(t4)*isign;
-                RE(c4) = RE(t1) - RE(t4)*isign;
+                    RE(t2) = RE(cc[ac+i]) + RE(cc[ac+i+2*ido]);
+                    RE(t1) = RE(cc[ac+i]) - RE(cc[ac+i+2*ido]);
+                    IM(t2) = IM(cc[ac+i]) + IM(cc[ac+i+2*ido]);
+                    IM(t1) = IM(cc[ac+i]) - IM(cc[ac+i+2*ido]);
+                    RE(t3) = RE(cc[ac+i+ido]) + RE(cc[ac+i+3*ido]);
+                    IM(t4) = RE(cc[ac+i+ido]) - RE(cc[ac+i+3*ido]);
+                    IM(t3) = IM(cc[ac+i+3*ido]) + IM(cc[ac+i+ido]);
+                    RE(t4) = IM(cc[ac+i+3*ido]) - IM(cc[ac+i+ido]);
 
-                IM(c2) = IM(t1) + IM(t4)*isign;
-                IM(c4) = IM(t1) - IM(t4)*isign;
+                    RE(c2) = RE(t1) - RE(t4);
+                    RE(c4) = RE(t1) + RE(t4);
 
-                RE(ch[ah+i]) = RE(t2) + RE(t3);
-                RE(c3)       = RE(t2) - RE(t3);
+                    IM(c2) = IM(t1) - IM(t4);
+                    IM(c4) = IM(t1) + IM(t4);
 
-                IM(ch[ah+i]) = IM(t2) + IM(t3);
-                IM(c3)       = IM(t2) - IM(t3);
+                    RE(ch[ah+i]) = RE(t2) + RE(t3);
+                    RE(c3)       = RE(t2) - RE(t3);
 
-                IM(ch[ah+i+l1*ido])   = MUL_R_C(IM(c2),RE(wa1[i])) + MUL_R_C(RE(c2),IM(wa1[i]))*isign;
-                RE(ch[ah+i+l1*ido])   = MUL_R_C(RE(c2),RE(wa1[i])) - MUL_R_C(IM(c2),IM(wa1[i]))*isign;
-                IM(ch[ah+i+2*l1*ido]) = MUL_R_C(IM(c3),RE(wa2[i])) + MUL_R_C(RE(c3),IM(wa2[i]))*isign;
-                RE(ch[ah+i+2*l1*ido]) = MUL_R_C(RE(c3),RE(wa2[i])) - MUL_R_C(IM(c3),IM(wa2[i]))*isign;
-                IM(ch[ah+i+3*l1*ido]) = MUL_R_C(IM(c4),RE(wa3[i])) + MUL_R_C(RE(c4),IM(wa3[i]))*isign;
-                RE(ch[ah+i+3*l1*ido]) = MUL_R_C(RE(c4),RE(wa3[i])) - MUL_R_C(IM(c4),IM(wa3[i]))*isign;
+                    IM(ch[ah+i]) = IM(t2) + IM(t3);
+                    IM(c3)       = IM(t2) - IM(t3);
+
+                    ComplexMult(&RE(ch[ah+i+l1*ido]), &IM(ch[ah+i+l1*ido]),
+                        RE(c2), IM(c2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&RE(ch[ah+i+2*l1*ido]), &IM(ch[ah+i+2*l1*ido]),
+                        RE(c3), IM(c3), RE(wa2[i]), IM(wa2[i]));
+                    ComplexMult(&RE(ch[ah+i+3*l1*ido]), &IM(ch[ah+i+3*l1*ido]),
+                        RE(c4), IM(c4), RE(wa3[i]), IM(wa3[i]));
+                }
             }
         }
     }
@@ -235,96 +390,190 @@
                    complex_t *ch, const complex_t *wa1, const complex_t *wa2, const complex_t *wa3,
                    const complex_t *wa4, const int8_t isign)
 {
-    static real_t tr11 = COEF_CONST(0.309016994374947);
-    static real_t ti11 = COEF_CONST(0.951056516295154);
-    static real_t tr12 = COEF_CONST(-0.809016994374947);
-    static real_t ti12 = COEF_CONST(0.587785252292473);
+    static real_t tr11 = FRAC_CONST(0.309016994374947);
+    static real_t ti11 = FRAC_CONST(0.951056516295154);
+    static real_t tr12 = FRAC_CONST(-0.809016994374947);
+    static real_t ti12 = FRAC_CONST(0.587785252292473);
     uint16_t i, k, ac, ah;
     complex_t c2, c3, c4, c5, d3, d4, d5, d2, t2, t3, t4, t5;
 
     if (ido == 1)
     {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            ac = 5*k + 1;
-            ah = k;
+            for (k = 0; k < l1; k++)
+            {
+                ac = 5*k + 1;
+                ah = k;
 
-            RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
-            IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
-            RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
-            IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
-            RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
-            IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
-            RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
-            IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);
+                RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
+                IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
+                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
+                IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
+                RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
+                IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
+                RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
+                IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);
 
-            RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
-            IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);
+                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
+                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);
 
-            RE(c2) = RE(cc[ac-1]) + MUL_R_C(RE(t2),tr11) + MUL_R_C(RE(t3),tr12);
-            IM(c2) = IM(cc[ac-1]) + MUL_R_C(IM(t2),tr11) + MUL_R_C(IM(t3),tr12);
-            RE(c3) = RE(cc[ac-1]) + MUL_R_C(RE(t2),tr12) + MUL_R_C(RE(t3),tr11);
-            IM(c3) = IM(cc[ac-1]) + MUL_R_C(IM(t2),tr12) + MUL_R_C(IM(t3),tr11);
-            RE(c4) = (MUL_R_C(RE(t5),ti12)*isign - MUL_R_C(RE(t4),ti11));
-            IM(c4) = (MUL_R_C(IM(t5),ti12)*isign - MUL_R_C(IM(t4),ti11));
-            RE(c5) = (MUL_R_C(RE(t5),ti11)*isign + MUL_R_C(RE(t4),ti12));
-            IM(c5) = (MUL_R_C(IM(t5),ti11)*isign + MUL_R_C(IM(t4),ti12));
+                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
+                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
+                RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
+                IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
 
-            RE(ch[ah+l1]) = RE(c2) - IM(c5);
-            IM(ch[ah+l1]) = IM(c2) + RE(c5);
-            RE(ch[ah+2*l1]) = RE(c3) - IM(c4);
-            IM(ch[ah+2*l1]) = IM(c3) + RE(c4);
-            RE(ch[ah+3*l1]) = RE(c3) + IM(c4);
-            IM(ch[ah+3*l1]) = IM(c3) - RE(c4);
-            RE(ch[ah+4*l1]) = RE(c2) + IM(c5);
-            IM(ch[ah+4*l1]) = IM(c2) - RE(c5);
+                ComplexMult(&RE(c5), &RE(c4),
+                    ti11, ti12, RE(t5), RE(t4));
+                ComplexMult(&IM(c5), &IM(c4),
+                    ti11, ti12, IM(t5), IM(t4));
+
+                RE(ch[ah+l1]) = RE(c2) - IM(c5);
+                IM(ch[ah+l1]) = IM(c2) + RE(c5);
+                RE(ch[ah+2*l1]) = RE(c3) - IM(c4);
+                IM(ch[ah+2*l1]) = IM(c3) + RE(c4);
+                RE(ch[ah+3*l1]) = RE(c3) + IM(c4);
+                IM(ch[ah+3*l1]) = IM(c3) - RE(c4);
+                RE(ch[ah+4*l1]) = RE(c2) + IM(c5);
+                IM(ch[ah+4*l1]) = IM(c2) - RE(c5);
+            }
+        } else {
+            for (k = 0; k < l1; k++)
+            {
+                ac = 5*k + 1;
+                ah = k;
+
+                RE(t2) = RE(cc[ac]) + RE(cc[ac+3]);
+                IM(t2) = IM(cc[ac]) + IM(cc[ac+3]);
+                RE(t3) = RE(cc[ac+1]) + RE(cc[ac+2]);
+                IM(t3) = IM(cc[ac+1]) + IM(cc[ac+2]);
+                RE(t4) = RE(cc[ac+1]) - RE(cc[ac+2]);
+                IM(t4) = IM(cc[ac+1]) - IM(cc[ac+2]);
+                RE(t5) = RE(cc[ac]) - RE(cc[ac+3]);
+                IM(t5) = IM(cc[ac]) - IM(cc[ac+3]);
+
+                RE(ch[ah]) = RE(cc[ac-1]) + RE(t2) + RE(t3);
+                IM(ch[ah]) = IM(cc[ac-1]) + IM(t2) + IM(t3);
+
+                RE(c2) = RE(cc[ac-1]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
+                IM(c2) = IM(cc[ac-1]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
+                RE(c3) = RE(cc[ac-1]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
+                IM(c3) = IM(cc[ac-1]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
+
+                ComplexMult(&RE(c4), &RE(c5),
+                    ti12, ti11, RE(t5), RE(t4));
+                ComplexMult(&IM(c4), &IM(c5),
+                    ti12, ti12, IM(t5), IM(t4));
+
+                RE(ch[ah+l1]) = RE(c2) + IM(c5);
+                IM(ch[ah+l1]) = IM(c2) - RE(c5);
+                RE(ch[ah+2*l1]) = RE(c3) + IM(c4);
+                IM(ch[ah+2*l1]) = IM(c3) - RE(c4);
+                RE(ch[ah+3*l1]) = RE(c3) - IM(c4);
+                IM(ch[ah+3*l1]) = IM(c3) + RE(c4);
+                RE(ch[ah+4*l1]) = RE(c2) - IM(c5);
+                IM(ch[ah+4*l1]) = IM(c2) + RE(c5);
+            }
         }
     } else {
-        for (k = 0; k < l1; k++)
+        if (isign == 1)
         {
-            for (i = 0; i < ido; i++)
+            for (k = 0; k < l1; k++)
             {
-                ac = i + (k*5 + 1) * ido;
-                ah = i + k * ido;
+                for (i = 0; i < ido; i++)
+                {
+                    ac = i + (k*5 + 1) * ido;
+                    ah = i + k * ido;
 
-                RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
-                IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
-                RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
-                IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
-                RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
-                IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
-                RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
-                IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);
+                    RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
+                    IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
+                    RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
+                    IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
+                    RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
+                    IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
+                    RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
+                    IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);
 
-                RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
-                IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);
+                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
+                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);
 
-                RE(c2) = RE(cc[ac-ido]) + MUL_R_C(RE(t2),tr11) + MUL_R_C(RE(t3),tr12);
-                IM(c2) = IM(cc[ac-ido]) + MUL_R_C(IM(t2),tr11) + MUL_R_C(IM(t3),tr12);
-                RE(c3) = RE(cc[ac-ido]) + MUL_R_C(RE(t2),tr12) + MUL_R_C(RE(t3),tr11);
-                IM(c3) = IM(cc[ac-ido]) + MUL_R_C(IM(t2),tr12) + MUL_R_C(IM(t3),tr11);
-                RE(c4) = (MUL_R_C(RE(t5),ti12)*isign - MUL_R_C(RE(t4),ti11));
-                IM(c4) = (MUL_R_C(IM(t5),ti12)*isign - MUL_R_C(IM(t4),ti11));
-                RE(c5) = (MUL_R_C(RE(t5),ti11)*isign + MUL_R_C(RE(t4),ti12));
-                IM(c5) = (MUL_R_C(IM(t5),ti11)*isign + MUL_R_C(IM(t4),ti12));
+                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
+                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
+                    RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
+                    IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
 
-                IM(d2) = IM(c2) + RE(c5);
-                IM(d3) = IM(c3) + RE(c4);
-                RE(d4) = RE(c3) + IM(c4);
-                RE(d5) = RE(c2) + IM(c5);
-                RE(d2) = RE(c2) - IM(c5);
-                IM(d5) = IM(c2) - RE(c5);
-                RE(d3) = RE(c3) - IM(c4);
-                IM(d4) = IM(c3) - RE(c4);
+                    ComplexMult(&RE(c5), &RE(c4),
+                        ti11, ti12, RE(t5), RE(t4));
+                    ComplexMult(&IM(c5), &IM(c4),
+                        ti11, ti12, IM(t5), IM(t4));
 
-                RE(ch[ah+l1*ido]) = MUL_R_C(RE(d2),RE(wa1[i])) - MUL_R_C(IM(d2),IM(wa1[i]))*isign;
-                IM(ch[ah+l1*ido]) = MUL_R_C(IM(d2),RE(wa1[i])) + MUL_R_C(RE(d2),IM(wa1[i]))*isign;
-                RE(ch[ah+2*l1*ido]) = MUL_R_C(RE(d3),RE(wa2[i])) - MUL_R_C(IM(d3),IM(wa2[i]))*isign;
-                IM(ch[ah+2*l1*ido]) = MUL_R_C(IM(d3),RE(wa2[i])) + MUL_R_C(RE(d3),IM(wa2[i]))*isign;
-                RE(ch[ah+3*l1*ido]) = MUL_R_C(RE(d4),RE(wa3[i])) - MUL_R_C(IM(d4),IM(wa3[i]))*isign;
-                IM(ch[ah+3*l1*ido]) = MUL_R_C(IM(d4),RE(wa3[i])) + MUL_R_C(RE(d4),IM(wa3[i]))*isign;
-                RE(ch[ah+4*l1*ido]) = MUL_R_C(RE(d5),RE(wa4[i])) - MUL_R_C(IM(d5),IM(wa4[i]))*isign;
-                IM(ch[ah+4*l1*ido]) = MUL_R_C(IM(d5),RE(wa4[i])) + MUL_R_C(RE(d5),IM(wa4[i]))*isign;
+                    IM(d2) = IM(c2) + RE(c5);
+                    IM(d3) = IM(c3) + RE(c4);
+                    RE(d4) = RE(c3) + IM(c4);
+                    RE(d5) = RE(c2) + IM(c5);
+                    RE(d2) = RE(c2) - IM(c5);
+                    IM(d5) = IM(c2) - RE(c5);
+                    RE(d3) = RE(c3) - IM(c4);
+                    IM(d4) = IM(c3) - RE(c4);
+
+                    ComplexMult(&IM(ch[ah+l1*ido]), &RE(ch[ah+l1*ido]),
+                        IM(d2), RE(d2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&IM(ch[ah+2*l1*ido]), &RE(ch[ah+2*l1*ido]),
+                        IM(d3), RE(d3), RE(wa2[i]), IM(wa2[i]));
+                    ComplexMult(&IM(ch[ah+3*l1*ido]), &RE(ch[ah+3*l1*ido]),
+                        IM(d4), RE(d4), RE(wa3[i]), IM(wa3[i]));
+                    ComplexMult(&IM(ch[ah+4*l1*ido]), &RE(ch[ah+4*l1*ido]),
+                        IM(d5), RE(d5), RE(wa4[i]), IM(wa4[i]));
+                }
+            }
+        } else {
+            for (k = 0; k < l1; k++)
+            {
+                for (i = 0; i < ido; i++)
+                {
+                    ac = i + (k*5 + 1) * ido;
+                    ah = i + k * ido;
+
+                    RE(t2) = RE(cc[ac]) + RE(cc[ac+3*ido]);
+                    IM(t2) = IM(cc[ac]) + IM(cc[ac+3*ido]);
+                    RE(t3) = RE(cc[ac+ido]) + RE(cc[ac+2*ido]);
+                    IM(t3) = IM(cc[ac+ido]) + IM(cc[ac+2*ido]);
+                    RE(t4) = RE(cc[ac+ido]) - RE(cc[ac+2*ido]);
+                    IM(t4) = IM(cc[ac+ido]) - IM(cc[ac+2*ido]);
+                    RE(t5) = RE(cc[ac]) - RE(cc[ac+3*ido]);
+                    IM(t5) = IM(cc[ac]) - IM(cc[ac+3*ido]);
+
+                    RE(ch[ah]) = RE(cc[ac-ido]) + RE(t2) + RE(t3);
+                    IM(ch[ah]) = IM(cc[ac-ido]) + IM(t2) + IM(t3);
+
+                    RE(c2) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr11) + MUL_F(RE(t3),tr12);
+                    IM(c2) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr11) + MUL_F(IM(t3),tr12);
+                    RE(c3) = RE(cc[ac-ido]) + MUL_F(RE(t2),tr12) + MUL_F(RE(t3),tr11);
+                    IM(c3) = IM(cc[ac-ido]) + MUL_F(IM(t2),tr12) + MUL_F(IM(t3),tr11);
+
+                    ComplexMult(&RE(c4), &RE(c5),
+                        ti12, ti11, RE(t5), RE(t4));
+                    ComplexMult(&IM(c4), &IM(c5),
+                        ti12, ti12, IM(t5), IM(t4));
+
+                    IM(d2) = IM(c2) - RE(c5);
+                    IM(d3) = IM(c3) - RE(c4);
+                    RE(d4) = RE(c3) - IM(c4);
+                    RE(d5) = RE(c2) - IM(c5);
+                    RE(d2) = RE(c2) + IM(c5);
+                    IM(d5) = IM(c2) + RE(c5);
+                    RE(d3) = RE(c3) + IM(c4);
+                    IM(d4) = IM(c3) + RE(c4);
+
+                    ComplexMult(&RE(ch[ah+l1*ido]), &IM(ch[ah+l1*ido]),
+                        RE(d2), IM(d2), RE(wa1[i]), IM(wa1[i]));
+                    ComplexMult(&RE(ch[ah+2*l1*ido]), &IM(ch[ah+2*l1*ido]),
+                        RE(d3), IM(d3), RE(wa2[i]), IM(wa2[i]));
+                    ComplexMult(&RE(ch[ah+3*l1*ido]), &IM(ch[ah+3*l1*ido]),
+                        RE(d4), IM(d4), RE(wa3[i]), IM(wa3[i]));
+                    ComplexMult(&RE(ch[ah+4*l1*ido]), &IM(ch[ah+4*l1*ido]),
+                        RE(d5), IM(d5), RE(wa4[i]), IM(wa4[i]));
+                }
             }
         }
     }
--- a/libfaad/cfft.h
+++ b/libfaad/cfft.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: cfft.h,v 1.11 2003/11/04 21:43:30 menno Exp $
+** $Id: cfft.h,v 1.12 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifndef __CFFT_H__
--- a/libfaad/cfft_tab.h
+++ b/libfaad/cfft_tab.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: cfft_tab.h,v 1.9 2003/11/06 15:43:59 menno Exp $
+** $Id: cfft_tab.h,v 1.10 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifndef __CFFT_TAB_H__
@@ -36,1137 +36,1137 @@
 
 complex_t cfft_tab_512[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999924719333649), COEF_CONST(0.012271538376808) },
-    { COEF_CONST(0.999698817729950), COEF_CONST(0.024541229009628) },
-    { COEF_CONST(0.999322354793549), COEF_CONST(0.036807224154472) },
-    { COEF_CONST(0.998795449733734), COEF_CONST(0.049067676067352) },
-    { COEF_CONST(0.998118102550507), COEF_CONST(0.061320740729570) },
-    { COEF_CONST(0.997290432453156), COEF_CONST(0.073564566671848) },
-    { COEF_CONST(0.996312618255615), COEF_CONST(0.085797317326069) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.993906974792480), COEF_CONST(0.110222205519676) },
-    { COEF_CONST(0.992479562759399), COEF_CONST(0.122410677373409) },
-    { COEF_CONST(0.990902662277222), COEF_CONST(0.134580716490746) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.987301409244537), COEF_CONST(0.158858150243759) },
-    { COEF_CONST(0.985277652740479), COEF_CONST(0.170961901545525) },
-    { COEF_CONST(0.983105480670929), COEF_CONST(0.183039888739586) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.978317379951477), COEF_CONST(0.207111388444901) },
-    { COEF_CONST(0.975702106952667), COEF_CONST(0.219101235270500) },
-    { COEF_CONST(0.972939968109131), COEF_CONST(0.231058120727539) },
-    { COEF_CONST(0.970031261444092), COEF_CONST(0.242980197072029) },
-    { COEF_CONST(0.966976463794708), COEF_CONST(0.254865676164627) },
-    { COEF_CONST(0.963776051998138), COEF_CONST(0.266712784767151) },
-    { COEF_CONST(0.960430502891541), COEF_CONST(0.278519690036774) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.953306019306183), COEF_CONST(0.302005946636200) },
-    { COEF_CONST(0.949528157711029), COEF_CONST(0.313681751489639) },
-    { COEF_CONST(0.945607304573059), COEF_CONST(0.325310319662094) },
-    { COEF_CONST(0.941544055938721), COEF_CONST(0.336889863014221) },
-    { COEF_CONST(0.937339007854462), COEF_CONST(0.348418682813644) },
-    { COEF_CONST(0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(0.928506076335907), COEF_CONST(0.371317207813263) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.919113874435425), COEF_CONST(0.393992066383362) },
-    { COEF_CONST(0.914209723472595), COEF_CONST(0.405241340398788) },
-    { COEF_CONST(0.909167945384979), COEF_CONST(0.416429579257965) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.898674488067627), COEF_CONST(0.438616245985031) },
-    { COEF_CONST(0.893224298954010), COEF_CONST(0.449611335992813) },
-    { COEF_CONST(0.887639641761780), COEF_CONST(0.460538715124130) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.876070082187653), COEF_CONST(0.482183754444122) },
-    { COEF_CONST(0.870086967945099), COEF_CONST(0.492898225784302) },
-    { COEF_CONST(0.863972842693329), COEF_CONST(0.503538370132446) },
-    { COEF_CONST(0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(0.851355195045471), COEF_CONST(0.524589717388153) },
-    { COEF_CONST(0.844853579998016), COEF_CONST(0.534997642040253) },
-    { COEF_CONST(0.838224709033966), COEF_CONST(0.545324981212616) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.824589252471924), COEF_CONST(0.565731823444366) },
-    { COEF_CONST(0.817584812641144), COEF_CONST(0.575808227062225) },
-    { COEF_CONST(0.810457170009613), COEF_CONST(0.585797905921936) },
-    { COEF_CONST(0.803207516670227), COEF_CONST(0.595699310302734) },
-    { COEF_CONST(0.795836925506592), COEF_CONST(0.605511009693146) },
-    { COEF_CONST(0.788346409797668), COEF_CONST(0.615231633186340) },
-    { COEF_CONST(0.780737221240997), COEF_CONST(0.624859511852264) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.765167236328125), COEF_CONST(0.643831551074982) },
-    { COEF_CONST(0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(0.749136388301849), COEF_CONST(0.662415802478790) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.732654273509979), COEF_CONST(0.680601000785828) },
-    { COEF_CONST(0.724247097969055), COEF_CONST(0.689540565013886) },
-    { COEF_CONST(0.715730786323547), COEF_CONST(0.698376297950745) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.698376238346100), COEF_CONST(0.715730845928192) },
-    { COEF_CONST(0.689540505409241), COEF_CONST(0.724247097969055) },
-    { COEF_CONST(0.680601000785828), COEF_CONST(0.732654273509979) },
-    { COEF_CONST(0.671558916568756), COEF_CONST(0.740951180458069) },
-    { COEF_CONST(0.662415742874146), COEF_CONST(0.749136388301849) },
-    { COEF_CONST(0.653172791004181), COEF_CONST(0.757208883762360) },
-    { COEF_CONST(0.643831551074982), COEF_CONST(0.765167295932770) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.624859452247620), COEF_CONST(0.780737280845642) },
-    { COEF_CONST(0.615231573581696), COEF_CONST(0.788346409797668) },
-    { COEF_CONST(0.605511009693146), COEF_CONST(0.795836925506592) },
-    { COEF_CONST(0.595699310302734), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(0.585797846317291), COEF_CONST(0.810457170009613) },
-    { COEF_CONST(0.575808167457581), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(0.565731823444366), COEF_CONST(0.824589312076569) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.545324981212616), COEF_CONST(0.838224709033966) },
-    { COEF_CONST(0.534997642040253), COEF_CONST(0.844853579998016) },
-    { COEF_CONST(0.524589657783508), COEF_CONST(0.851355195045471) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.503538429737091), COEF_CONST(0.863972842693329) },
-    { COEF_CONST(0.492898195981979), COEF_CONST(0.870086967945099) },
-    { COEF_CONST(0.482183724641800), COEF_CONST(0.876070141792297) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.460538715124130), COEF_CONST(0.887639641761780) },
-    { COEF_CONST(0.449611306190491), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(0.438616186380386), COEF_CONST(0.898674488067627) },
-    { COEF_CONST(0.427555114030838), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(0.416429549455643), COEF_CONST(0.909168004989624) },
-    { COEF_CONST(0.405241280794144), COEF_CONST(0.914209783077240) },
-    { COEF_CONST(0.393991947174072), COEF_CONST(0.919113874435425) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.371317148208618), COEF_CONST(0.928506076335907) },
-    { COEF_CONST(0.359894961118698), COEF_CONST(0.932992815971375) },
-    { COEF_CONST(0.348418682813644), COEF_CONST(0.937339007854462) },
-    { COEF_CONST(0.336889833211899), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(0.325310230255127), COEF_CONST(0.945607364177704) },
-    { COEF_CONST(0.313681662082672), COEF_CONST(0.949528217315674) },
-    { COEF_CONST(0.302005946636200), COEF_CONST(0.953306019306183) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.278519600629807), COEF_CONST(0.960430562496185) },
-    { COEF_CONST(0.266712754964828), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(0.254865646362305), COEF_CONST(0.966976463794708) },
-    { COEF_CONST(0.242980122566223), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.231058135628700), COEF_CONST(0.972939968109131) },
-    { COEF_CONST(0.219101220369339), COEF_CONST(0.975702106952667) },
-    { COEF_CONST(0.207111328840256), COEF_CONST(0.978317379951477) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.183039888739586), COEF_CONST(0.983105480670929) },
-    { COEF_CONST(0.170961856842041), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(0.158858075737953), COEF_CONST(0.987301409244537) },
-    { COEF_CONST(0.146730497479439), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(0.134580686688423), COEF_CONST(0.990902662277222) },
-    { COEF_CONST(0.122410625219345), COEF_CONST(0.992479562759399) },
-    { COEF_CONST(0.110222116112709), COEF_CONST(0.993906974792480) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.085797272622585), COEF_CONST(0.996312618255615) },
-    { COEF_CONST(0.073564492166042), COEF_CONST(0.997290432453156) },
-    { COEF_CONST(0.061320748180151), COEF_CONST(0.998118102550507) },
-    { COEF_CONST(0.049067649990320), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(0.036807164549828), COEF_CONST(0.999322414398193) },
-    { COEF_CONST(0.024541135877371), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(0.012271529063582), COEF_CONST(0.999924719333649) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.012271616607904), COEF_CONST(0.999924719333649) },
-    { COEF_CONST(-0.024541223421693), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(-0.036807250231504), COEF_CONST(0.999322354793549) },
-    { COEF_CONST(-0.049067739397287), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.061320833861828), COEF_CONST(0.998118102550507) },
-    { COEF_CONST(-0.073564574122429), COEF_CONST(0.997290432453156) },
-    { COEF_CONST(-0.085797362029552), COEF_CONST(0.996312618255615) },
-    { COEF_CONST(-0.098017223179340), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.110222205519676), COEF_CONST(0.993906974792480) },
-    { COEF_CONST(-0.122410707175732), COEF_CONST(0.992479503154755) },
-    { COEF_CONST(-0.134580776095390), COEF_CONST(0.990902602672577) },
-    { COEF_CONST(-0.146730571985245), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(-0.158858165144920), COEF_CONST(0.987301409244537) },
-    { COEF_CONST(-0.170961946249008), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(-0.183039978146553), COEF_CONST(0.983105480670929) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.207111418247223), COEF_CONST(0.978317379951477) },
-    { COEF_CONST(-0.219101309776306), COEF_CONST(0.975702106952667) },
-    { COEF_CONST(-0.231058210134506), COEF_CONST(0.972939908504486) },
-    { COEF_CONST(-0.242980197072029), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(-0.254865705966949), COEF_CONST(0.966976463794708) },
-    { COEF_CONST(-0.266712844371796), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(-0.278519690036774), COEF_CONST(0.960430502891541) },
-    { COEF_CONST(-0.290284723043442), COEF_CONST(0.956940293312073) },
-    { COEF_CONST(-0.302006036043167), COEF_CONST(0.953306019306183) },
-    { COEF_CONST(-0.313681721687317), COEF_CONST(0.949528157711029) },
-    { COEF_CONST(-0.325310319662094), COEF_CONST(0.945607304573059) },
-    { COEF_CONST(-0.336889922618866), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(-0.348418772220612), COEF_CONST(0.937338948249817) },
-    { COEF_CONST(-0.359895050525665), COEF_CONST(0.932992815971375) },
-    { COEF_CONST(-0.371317237615585), COEF_CONST(0.928506076335907) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.393992036581039), COEF_CONST(0.919113874435425) },
-    { COEF_CONST(-0.405241340398788), COEF_CONST(0.914209723472595) },
-    { COEF_CONST(-0.416429519653320), COEF_CONST(0.909168004989624) },
-    { COEF_CONST(-0.427555084228516), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(-0.438616245985031), COEF_CONST(0.898674428462982) },
-    { COEF_CONST(-0.449611365795136), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(-0.460538804531097), COEF_CONST(0.887639582157135) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.482183903455734), COEF_CONST(0.876070022583008) },
-    { COEF_CONST(-0.492898166179657), COEF_CONST(0.870087027549744) },
-    { COEF_CONST(-0.503538370132446), COEF_CONST(0.863972842693329) },
-    { COEF_CONST(-0.514102756977081), COEF_CONST(0.857728600502014) },
-    { COEF_CONST(-0.524589717388153), COEF_CONST(0.851355135440826) },
-    { COEF_CONST(-0.534997701644897), COEF_CONST(0.844853520393372) },
-    { COEF_CONST(-0.545325100421906), COEF_CONST(0.838224649429321) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.565731763839722), COEF_CONST(0.824589312076569) },
-    { COEF_CONST(-0.575808167457581), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(-0.585797905921936), COEF_CONST(0.810457170009613) },
-    { COEF_CONST(-0.595699369907379), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(-0.605511128902435), COEF_CONST(0.795836865901947) },
-    { COEF_CONST(-0.615231692790985), COEF_CONST(0.788346350193024) },
-    { COEF_CONST(-0.624859631061554), COEF_CONST(0.780737102031708) },
-    { COEF_CONST(-0.634393274784088), COEF_CONST(0.773010492324829) },
-    { COEF_CONST(-0.643831551074982), COEF_CONST(0.765167236328125) },
-    { COEF_CONST(-0.653172850608826), COEF_CONST(0.757208824157715) },
-    { COEF_CONST(-0.662415802478790), COEF_CONST(0.749136328697205) },
-    { COEF_CONST(-0.671559035778046), COEF_CONST(0.740951061248779) },
-    { COEF_CONST(-0.680601119995117), COEF_CONST(0.732654154300690) },
-    { COEF_CONST(-0.689540684223175), COEF_CONST(0.724246978759766) },
-    { COEF_CONST(-0.698376238346100), COEF_CONST(0.715730845928192) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.715730845928192), COEF_CONST(0.698376238346100) },
-    { COEF_CONST(-0.724247157573700), COEF_CONST(0.689540505409241) },
-    { COEF_CONST(-0.732654333114624), COEF_CONST(0.680600941181183) },
-    { COEF_CONST(-0.740951240062714), COEF_CONST(0.671558856964111) },
-    { COEF_CONST(-0.749136507511139), COEF_CONST(0.662415623664856) },
-    { COEF_CONST(-0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(-0.765167295932770), COEF_CONST(0.643831551074982) },
-    { COEF_CONST(-0.773010492324829), COEF_CONST(0.634393274784088) },
-    { COEF_CONST(-0.780737280845642), COEF_CONST(0.624859452247620) },
-    { COEF_CONST(-0.788346469402313), COEF_CONST(0.615231513977051) },
-    { COEF_CONST(-0.795836985111237), COEF_CONST(0.605510950088501) },
-    { COEF_CONST(-0.803207635879517), COEF_CONST(0.595699131488800) },
-    { COEF_CONST(-0.810457170009613), COEF_CONST(0.585797846317291) },
-    { COEF_CONST(-0.817584812641144), COEF_CONST(0.575808167457581) },
-    { COEF_CONST(-0.824589312076569), COEF_CONST(0.565731763839722) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.838224768638611), COEF_CONST(0.545324862003326) },
-    { COEF_CONST(-0.844853639602661), COEF_CONST(0.534997463226318) },
-    { COEF_CONST(-0.851355314254761), COEF_CONST(0.524589538574219) },
-    { COEF_CONST(-0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(-0.863972842693329), COEF_CONST(0.503538370132446) },
-    { COEF_CONST(-0.870087027549744), COEF_CONST(0.492898136377335) },
-    { COEF_CONST(-0.876070141792297), COEF_CONST(0.482183694839478) },
-    { COEF_CONST(-0.881921350955963), COEF_CONST(0.471396625041962) },
-    { COEF_CONST(-0.887639701366425), COEF_CONST(0.460538566112518) },
-    { COEF_CONST(-0.893224298954010), COEF_CONST(0.449611365795136) },
-    { COEF_CONST(-0.898674488067627), COEF_CONST(0.438616245985031) },
-    { COEF_CONST(-0.903989315032959), COEF_CONST(0.427555054426193) },
-    { COEF_CONST(-0.909168004989624), COEF_CONST(0.416429489850998) },
-    { COEF_CONST(-0.914209783077240), COEF_CONST(0.405241221189499) },
-    { COEF_CONST(-0.919113874435425), COEF_CONST(0.393991917371750) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.928506076335907), COEF_CONST(0.371317237615585) },
-    { COEF_CONST(-0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(-0.937339007854462), COEF_CONST(0.348418653011322) },
-    { COEF_CONST(-0.941544115543365), COEF_CONST(0.336889803409576) },
-    { COEF_CONST(-0.945607364177704), COEF_CONST(0.325310200452805) },
-    { COEF_CONST(-0.949528217315674), COEF_CONST(0.313681602478027) },
-    { COEF_CONST(-0.953306078910828), COEF_CONST(0.302005797624588) },
-    { COEF_CONST(-0.956940352916718), COEF_CONST(0.290284723043442) },
-    { COEF_CONST(-0.960430502891541), COEF_CONST(0.278519690036774) },
-    { COEF_CONST(-0.963776051998138), COEF_CONST(0.266712725162506) },
-    { COEF_CONST(-0.966976463794708), COEF_CONST(0.254865586757660) },
-    { COEF_CONST(-0.970031261444092), COEF_CONST(0.242980077862740) },
-    { COEF_CONST(-0.972939968109131), COEF_CONST(0.231057971715927) },
-    { COEF_CONST(-0.975702166557312), COEF_CONST(0.219101071357727) },
-    { COEF_CONST(-0.978317379951477), COEF_CONST(0.207111403346062) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.983105480670929), COEF_CONST(0.183039844036102) },
-    { COEF_CONST(-0.985277652740479), COEF_CONST(0.170961812138557) },
-    { COEF_CONST(-0.987301409244537), COEF_CONST(0.158858031034470) },
-    { COEF_CONST(-0.989176511764526), COEF_CONST(0.146730333566666) },
-    { COEF_CONST(-0.990902662277222), COEF_CONST(0.134580522775650) },
-    { COEF_CONST(-0.992479503154755), COEF_CONST(0.122410699725151) },
-    { COEF_CONST(-0.993906974792480), COEF_CONST(0.110222198069096) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(0.098017096519470) },
-    { COEF_CONST(-0.996312618255615), COEF_CONST(0.085797227919102) },
-    { COEF_CONST(-0.997290492057800), COEF_CONST(0.073564447462559) },
-    { COEF_CONST(-0.998118102550507), COEF_CONST(0.061320584267378) },
-    { COEF_CONST(-0.998795449733734), COEF_CONST(0.049067486077547) },
-    { COEF_CONST(-0.999322354793549), COEF_CONST(0.036807239055634) },
-    { COEF_CONST(-0.999698817729950), COEF_CONST(0.024541210383177) },
-    { COEF_CONST(-0.999924719333649), COEF_CONST(0.012271485291421) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999698817729950), COEF_CONST(0.024541229009628) },
-    { COEF_CONST(0.998795449733734), COEF_CONST(0.049067676067352) },
-    { COEF_CONST(0.997290432453156), COEF_CONST(0.073564566671848) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.992479562759399), COEF_CONST(0.122410677373409) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.985277652740479), COEF_CONST(0.170961901545525) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.975702106952667), COEF_CONST(0.219101235270500) },
-    { COEF_CONST(0.970031261444092), COEF_CONST(0.242980197072029) },
-    { COEF_CONST(0.963776051998138), COEF_CONST(0.266712784767151) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.949528157711029), COEF_CONST(0.313681751489639) },
-    { COEF_CONST(0.941544055938721), COEF_CONST(0.336889863014221) },
-    { COEF_CONST(0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.914209723472595), COEF_CONST(0.405241340398788) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.893224298954010), COEF_CONST(0.449611335992813) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.870086967945099), COEF_CONST(0.492898225784302) },
-    { COEF_CONST(0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(0.844853579998016), COEF_CONST(0.534997642040253) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.817584812641144), COEF_CONST(0.575808227062225) },
-    { COEF_CONST(0.803207516670227), COEF_CONST(0.595699310302734) },
-    { COEF_CONST(0.788346409797668), COEF_CONST(0.615231633186340) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.724247097969055), COEF_CONST(0.689540565013886) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.689540505409241), COEF_CONST(0.724247097969055) },
-    { COEF_CONST(0.671558916568756), COEF_CONST(0.740951180458069) },
-    { COEF_CONST(0.653172791004181), COEF_CONST(0.757208883762360) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.615231573581696), COEF_CONST(0.788346409797668) },
-    { COEF_CONST(0.595699310302734), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(0.575808167457581), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.534997642040253), COEF_CONST(0.844853579998016) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.492898195981979), COEF_CONST(0.870086967945099) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.449611306190491), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(0.427555114030838), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(0.405241280794144), COEF_CONST(0.914209783077240) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.359894961118698), COEF_CONST(0.932992815971375) },
-    { COEF_CONST(0.336889833211899), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(0.313681662082672), COEF_CONST(0.949528217315674) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.266712754964828), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(0.242980122566223), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.219101220369339), COEF_CONST(0.975702106952667) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.170961856842041), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(0.146730497479439), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(0.122410625219345), COEF_CONST(0.992479562759399) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.073564492166042), COEF_CONST(0.997290432453156) },
-    { COEF_CONST(0.049067649990320), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(0.024541135877371), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.998795449733734), COEF_CONST(0.049067676067352) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.970031261444092), COEF_CONST(0.242980197072029) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.941544055938721), COEF_CONST(0.336889863014221) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.803207516670227), COEF_CONST(0.595699310302734) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.671558916568756), COEF_CONST(0.740951180458069) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.595699310302734), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.427555114030838), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.336889833211899), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.242980122566223), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.146730497479439), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.049067649990320), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.049067739397287), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.098017223179340), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.146730571985245), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.242980197072029), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(-0.290284723043442), COEF_CONST(0.956940293312073) },
-    { COEF_CONST(-0.336889922618866), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.427555084228516), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.514102756977081), COEF_CONST(0.857728600502014) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.595699369907379), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(-0.634393274784088), COEF_CONST(0.773010492324829) },
-    { COEF_CONST(-0.671559035778046), COEF_CONST(0.740951061248779) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.740951240062714), COEF_CONST(0.671558856964111) },
-    { COEF_CONST(-0.773010492324829), COEF_CONST(0.634393274784088) },
-    { COEF_CONST(-0.803207635879517), COEF_CONST(0.595699131488800) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(-0.881921350955963), COEF_CONST(0.471396625041962) },
-    { COEF_CONST(-0.903989315032959), COEF_CONST(0.427555054426193) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.941544115543365), COEF_CONST(0.336889803409576) },
-    { COEF_CONST(-0.956940352916718), COEF_CONST(0.290284723043442) },
-    { COEF_CONST(-0.970031261444092), COEF_CONST(0.242980077862740) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.989176511764526), COEF_CONST(0.146730333566666) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(0.098017096519470) },
-    { COEF_CONST(-0.998795449733734), COEF_CONST(0.049067486077547) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.997290432453156), COEF_CONST(0.073564566671848) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.975702106952667), COEF_CONST(0.219101235270500) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.870086967945099), COEF_CONST(0.492898225784302) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.788346469402313), COEF_CONST(0.615231573581696) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.689540505409241), COEF_CONST(0.724247097969055) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.575808227062225), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.449611306190491), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.313681751489639), COEF_CONST(0.949528157711029) },
-    { COEF_CONST(0.242980241775513), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.170961856842041), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.024541255086660), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(-0.049067739397287), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.122410707175732), COEF_CONST(0.992479503154755) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.266712725162506), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(-0.336889803409576), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(-0.405241340398788), COEF_CONST(0.914209723472595) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.534997701644897), COEF_CONST(0.844853520393372) },
-    { COEF_CONST(-0.595699369907379), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(-0.653172850608826), COEF_CONST(0.757208824157715) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(-0.803207516670227), COEF_CONST(0.595699369907379) },
-    { COEF_CONST(-0.844853520393372), COEF_CONST(0.534997701644897) },
-    { COEF_CONST(-0.881921231746674), COEF_CONST(0.471396833658218) },
-    { COEF_CONST(-0.914209783077240), COEF_CONST(0.405241221189499) },
-    { COEF_CONST(-0.941544115543365), COEF_CONST(0.336889803409576) },
-    { COEF_CONST(-0.963776051998138), COEF_CONST(0.266712725162506) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.992479503154755), COEF_CONST(0.122410699725151) },
-    { COEF_CONST(-0.998795449733734), COEF_CONST(0.049067724496126) },
-    { COEF_CONST(-0.999698817729950), COEF_CONST(-0.024541147053242) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(-0.098017267882824) },
-    { COEF_CONST(-0.985277652740479), COEF_CONST(-0.170961990952492) },
-    { COEF_CONST(-0.970031261444092), COEF_CONST(-0.242980241775513) },
-    { COEF_CONST(-0.949528157711029), COEF_CONST(-0.313681781291962) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.893224298954010), COEF_CONST(-0.449611306190491) },
-    { COEF_CONST(-0.857728660106659), COEF_CONST(-0.514102697372437) },
-    { COEF_CONST(-0.817584872245789), COEF_CONST(-0.575808107852936) },
-    { COEF_CONST(-0.773010551929474), COEF_CONST(-0.634393215179443) },
-    { COEF_CONST(-0.724247038364410), COEF_CONST(-0.689540624618530) },
-    { COEF_CONST(-0.671558916568756), COEF_CONST(-0.740951180458069) },
-    { COEF_CONST(-0.615231573581696), COEF_CONST(-0.788346469402313) },
-    { COEF_CONST(-0.555570006370544), COEF_CONST(-0.831469774246216) },
-    { COEF_CONST(-0.492898195981979), COEF_CONST(-0.870086967945099) },
-    { COEF_CONST(-0.427554935216904), COEF_CONST(-0.903989374637604) },
-    { COEF_CONST(-0.359895110130310), COEF_CONST(-0.932992756366730) },
-    { COEF_CONST(-0.290284544229507), COEF_CONST(-0.956940352916718) },
-    { COEF_CONST(-0.219101369380951), COEF_CONST(-0.975702106952667) },
-    { COEF_CONST(-0.146730408072472), COEF_CONST(-0.989176511764526) },
-    { COEF_CONST(-0.073564760386944), COEF_CONST(-0.997290432453156) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.881921231746674), COEF_CONST(0.471396833658218) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(-0.098017267882824) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.773010551929474), COEF_CONST(-0.634393215179443) },
-    { COEF_CONST(-0.555570006370544), COEF_CONST(-0.831469774246216) },
-    { COEF_CONST(-0.290284544229507), COEF_CONST(-0.956940352916718) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.000000011924881), COEF_CONST(-1.000000000000000) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999924719333649), FRAC_CONST(0.012271538376808) },
+    { FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628) },
+    { FRAC_CONST(0.999322354793549), FRAC_CONST(0.036807224154472) },
+    { FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352) },
+    { FRAC_CONST(0.998118102550507), FRAC_CONST(0.061320740729570) },
+    { FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848) },
+    { FRAC_CONST(0.996312618255615), FRAC_CONST(0.085797317326069) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.993906974792480), FRAC_CONST(0.110222205519676) },
+    { FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409) },
+    { FRAC_CONST(0.990902662277222), FRAC_CONST(0.134580716490746) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.987301409244537), FRAC_CONST(0.158858150243759) },
+    { FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525) },
+    { FRAC_CONST(0.983105480670929), FRAC_CONST(0.183039888739586) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.978317379951477), FRAC_CONST(0.207111388444901) },
+    { FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500) },
+    { FRAC_CONST(0.972939968109131), FRAC_CONST(0.231058120727539) },
+    { FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029) },
+    { FRAC_CONST(0.966976463794708), FRAC_CONST(0.254865676164627) },
+    { FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151) },
+    { FRAC_CONST(0.960430502891541), FRAC_CONST(0.278519690036774) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.953306019306183), FRAC_CONST(0.302005946636200) },
+    { FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639) },
+    { FRAC_CONST(0.945607304573059), FRAC_CONST(0.325310319662094) },
+    { FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221) },
+    { FRAC_CONST(0.937339007854462), FRAC_CONST(0.348418682813644) },
+    { FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(0.928506076335907), FRAC_CONST(0.371317207813263) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.919113874435425), FRAC_CONST(0.393992066383362) },
+    { FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788) },
+    { FRAC_CONST(0.909167945384979), FRAC_CONST(0.416429579257965) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.898674488067627), FRAC_CONST(0.438616245985031) },
+    { FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813) },
+    { FRAC_CONST(0.887639641761780), FRAC_CONST(0.460538715124130) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.876070082187653), FRAC_CONST(0.482183754444122) },
+    { FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302) },
+    { FRAC_CONST(0.863972842693329), FRAC_CONST(0.503538370132446) },
+    { FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(0.851355195045471), FRAC_CONST(0.524589717388153) },
+    { FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253) },
+    { FRAC_CONST(0.838224709033966), FRAC_CONST(0.545324981212616) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.824589252471924), FRAC_CONST(0.565731823444366) },
+    { FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225) },
+    { FRAC_CONST(0.810457170009613), FRAC_CONST(0.585797905921936) },
+    { FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734) },
+    { FRAC_CONST(0.795836925506592), FRAC_CONST(0.605511009693146) },
+    { FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340) },
+    { FRAC_CONST(0.780737221240997), FRAC_CONST(0.624859511852264) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.765167236328125), FRAC_CONST(0.643831551074982) },
+    { FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(0.749136388301849), FRAC_CONST(0.662415802478790) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.732654273509979), FRAC_CONST(0.680601000785828) },
+    { FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886) },
+    { FRAC_CONST(0.715730786323547), FRAC_CONST(0.698376297950745) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.698376238346100), FRAC_CONST(0.715730845928192) },
+    { FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055) },
+    { FRAC_CONST(0.680601000785828), FRAC_CONST(0.732654273509979) },
+    { FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069) },
+    { FRAC_CONST(0.662415742874146), FRAC_CONST(0.749136388301849) },
+    { FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360) },
+    { FRAC_CONST(0.643831551074982), FRAC_CONST(0.765167295932770) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.624859452247620), FRAC_CONST(0.780737280845642) },
+    { FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668) },
+    { FRAC_CONST(0.605511009693146), FRAC_CONST(0.795836925506592) },
+    { FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(0.585797846317291), FRAC_CONST(0.810457170009613) },
+    { FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(0.565731823444366), FRAC_CONST(0.824589312076569) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.545324981212616), FRAC_CONST(0.838224709033966) },
+    { FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016) },
+    { FRAC_CONST(0.524589657783508), FRAC_CONST(0.851355195045471) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.503538429737091), FRAC_CONST(0.863972842693329) },
+    { FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099) },
+    { FRAC_CONST(0.482183724641800), FRAC_CONST(0.876070141792297) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.460538715124130), FRAC_CONST(0.887639641761780) },
+    { FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(0.438616186380386), FRAC_CONST(0.898674488067627) },
+    { FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(0.416429549455643), FRAC_CONST(0.909168004989624) },
+    { FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240) },
+    { FRAC_CONST(0.393991947174072), FRAC_CONST(0.919113874435425) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.371317148208618), FRAC_CONST(0.928506076335907) },
+    { FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375) },
+    { FRAC_CONST(0.348418682813644), FRAC_CONST(0.937339007854462) },
+    { FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(0.325310230255127), FRAC_CONST(0.945607364177704) },
+    { FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674) },
+    { FRAC_CONST(0.302005946636200), FRAC_CONST(0.953306019306183) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.278519600629807), FRAC_CONST(0.960430562496185) },
+    { FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(0.254865646362305), FRAC_CONST(0.966976463794708) },
+    { FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.231058135628700), FRAC_CONST(0.972939968109131) },
+    { FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667) },
+    { FRAC_CONST(0.207111328840256), FRAC_CONST(0.978317379951477) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.183039888739586), FRAC_CONST(0.983105480670929) },
+    { FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(0.158858075737953), FRAC_CONST(0.987301409244537) },
+    { FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(0.134580686688423), FRAC_CONST(0.990902662277222) },
+    { FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399) },
+    { FRAC_CONST(0.110222116112709), FRAC_CONST(0.993906974792480) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.085797272622585), FRAC_CONST(0.996312618255615) },
+    { FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156) },
+    { FRAC_CONST(0.061320748180151), FRAC_CONST(0.998118102550507) },
+    { FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(0.036807164549828), FRAC_CONST(0.999322414398193) },
+    { FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(0.012271529063582), FRAC_CONST(0.999924719333649) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.012271616607904), FRAC_CONST(0.999924719333649) },
+    { FRAC_CONST(-0.024541223421693), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(-0.036807250231504), FRAC_CONST(0.999322354793549) },
+    { FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.061320833861828), FRAC_CONST(0.998118102550507) },
+    { FRAC_CONST(-0.073564574122429), FRAC_CONST(0.997290432453156) },
+    { FRAC_CONST(-0.085797362029552), FRAC_CONST(0.996312618255615) },
+    { FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.110222205519676), FRAC_CONST(0.993906974792480) },
+    { FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755) },
+    { FRAC_CONST(-0.134580776095390), FRAC_CONST(0.990902602672577) },
+    { FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(-0.158858165144920), FRAC_CONST(0.987301409244537) },
+    { FRAC_CONST(-0.170961946249008), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(-0.183039978146553), FRAC_CONST(0.983105480670929) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.207111418247223), FRAC_CONST(0.978317379951477) },
+    { FRAC_CONST(-0.219101309776306), FRAC_CONST(0.975702106952667) },
+    { FRAC_CONST(-0.231058210134506), FRAC_CONST(0.972939908504486) },
+    { FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(-0.254865705966949), FRAC_CONST(0.966976463794708) },
+    { FRAC_CONST(-0.266712844371796), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(-0.278519690036774), FRAC_CONST(0.960430502891541) },
+    { FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073) },
+    { FRAC_CONST(-0.302006036043167), FRAC_CONST(0.953306019306183) },
+    { FRAC_CONST(-0.313681721687317), FRAC_CONST(0.949528157711029) },
+    { FRAC_CONST(-0.325310319662094), FRAC_CONST(0.945607304573059) },
+    { FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(-0.348418772220612), FRAC_CONST(0.937338948249817) },
+    { FRAC_CONST(-0.359895050525665), FRAC_CONST(0.932992815971375) },
+    { FRAC_CONST(-0.371317237615585), FRAC_CONST(0.928506076335907) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.393992036581039), FRAC_CONST(0.919113874435425) },
+    { FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595) },
+    { FRAC_CONST(-0.416429519653320), FRAC_CONST(0.909168004989624) },
+    { FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(-0.438616245985031), FRAC_CONST(0.898674428462982) },
+    { FRAC_CONST(-0.449611365795136), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(-0.460538804531097), FRAC_CONST(0.887639582157135) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.482183903455734), FRAC_CONST(0.876070022583008) },
+    { FRAC_CONST(-0.492898166179657), FRAC_CONST(0.870087027549744) },
+    { FRAC_CONST(-0.503538370132446), FRAC_CONST(0.863972842693329) },
+    { FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014) },
+    { FRAC_CONST(-0.524589717388153), FRAC_CONST(0.851355135440826) },
+    { FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372) },
+    { FRAC_CONST(-0.545325100421906), FRAC_CONST(0.838224649429321) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.565731763839722), FRAC_CONST(0.824589312076569) },
+    { FRAC_CONST(-0.575808167457581), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(-0.585797905921936), FRAC_CONST(0.810457170009613) },
+    { FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(-0.605511128902435), FRAC_CONST(0.795836865901947) },
+    { FRAC_CONST(-0.615231692790985), FRAC_CONST(0.788346350193024) },
+    { FRAC_CONST(-0.624859631061554), FRAC_CONST(0.780737102031708) },
+    { FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829) },
+    { FRAC_CONST(-0.643831551074982), FRAC_CONST(0.765167236328125) },
+    { FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715) },
+    { FRAC_CONST(-0.662415802478790), FRAC_CONST(0.749136328697205) },
+    { FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779) },
+    { FRAC_CONST(-0.680601119995117), FRAC_CONST(0.732654154300690) },
+    { FRAC_CONST(-0.689540684223175), FRAC_CONST(0.724246978759766) },
+    { FRAC_CONST(-0.698376238346100), FRAC_CONST(0.715730845928192) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.715730845928192), FRAC_CONST(0.698376238346100) },
+    { FRAC_CONST(-0.724247157573700), FRAC_CONST(0.689540505409241) },
+    { FRAC_CONST(-0.732654333114624), FRAC_CONST(0.680600941181183) },
+    { FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111) },
+    { FRAC_CONST(-0.749136507511139), FRAC_CONST(0.662415623664856) },
+    { FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(-0.765167295932770), FRAC_CONST(0.643831551074982) },
+    { FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088) },
+    { FRAC_CONST(-0.780737280845642), FRAC_CONST(0.624859452247620) },
+    { FRAC_CONST(-0.788346469402313), FRAC_CONST(0.615231513977051) },
+    { FRAC_CONST(-0.795836985111237), FRAC_CONST(0.605510950088501) },
+    { FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800) },
+    { FRAC_CONST(-0.810457170009613), FRAC_CONST(0.585797846317291) },
+    { FRAC_CONST(-0.817584812641144), FRAC_CONST(0.575808167457581) },
+    { FRAC_CONST(-0.824589312076569), FRAC_CONST(0.565731763839722) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.838224768638611), FRAC_CONST(0.545324862003326) },
+    { FRAC_CONST(-0.844853639602661), FRAC_CONST(0.534997463226318) },
+    { FRAC_CONST(-0.851355314254761), FRAC_CONST(0.524589538574219) },
+    { FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(-0.863972842693329), FRAC_CONST(0.503538370132446) },
+    { FRAC_CONST(-0.870087027549744), FRAC_CONST(0.492898136377335) },
+    { FRAC_CONST(-0.876070141792297), FRAC_CONST(0.482183694839478) },
+    { FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962) },
+    { FRAC_CONST(-0.887639701366425), FRAC_CONST(0.460538566112518) },
+    { FRAC_CONST(-0.893224298954010), FRAC_CONST(0.449611365795136) },
+    { FRAC_CONST(-0.898674488067627), FRAC_CONST(0.438616245985031) },
+    { FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193) },
+    { FRAC_CONST(-0.909168004989624), FRAC_CONST(0.416429489850998) },
+    { FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499) },
+    { FRAC_CONST(-0.919113874435425), FRAC_CONST(0.393991917371750) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.928506076335907), FRAC_CONST(0.371317237615585) },
+    { FRAC_CONST(-0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(-0.937339007854462), FRAC_CONST(0.348418653011322) },
+    { FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576) },
+    { FRAC_CONST(-0.945607364177704), FRAC_CONST(0.325310200452805) },
+    { FRAC_CONST(-0.949528217315674), FRAC_CONST(0.313681602478027) },
+    { FRAC_CONST(-0.953306078910828), FRAC_CONST(0.302005797624588) },
+    { FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442) },
+    { FRAC_CONST(-0.960430502891541), FRAC_CONST(0.278519690036774) },
+    { FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506) },
+    { FRAC_CONST(-0.966976463794708), FRAC_CONST(0.254865586757660) },
+    { FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740) },
+    { FRAC_CONST(-0.972939968109131), FRAC_CONST(0.231057971715927) },
+    { FRAC_CONST(-0.975702166557312), FRAC_CONST(0.219101071357727) },
+    { FRAC_CONST(-0.978317379951477), FRAC_CONST(0.207111403346062) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.983105480670929), FRAC_CONST(0.183039844036102) },
+    { FRAC_CONST(-0.985277652740479), FRAC_CONST(0.170961812138557) },
+    { FRAC_CONST(-0.987301409244537), FRAC_CONST(0.158858031034470) },
+    { FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666) },
+    { FRAC_CONST(-0.990902662277222), FRAC_CONST(0.134580522775650) },
+    { FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151) },
+    { FRAC_CONST(-0.993906974792480), FRAC_CONST(0.110222198069096) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470) },
+    { FRAC_CONST(-0.996312618255615), FRAC_CONST(0.085797227919102) },
+    { FRAC_CONST(-0.997290492057800), FRAC_CONST(0.073564447462559) },
+    { FRAC_CONST(-0.998118102550507), FRAC_CONST(0.061320584267378) },
+    { FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547) },
+    { FRAC_CONST(-0.999322354793549), FRAC_CONST(0.036807239055634) },
+    { FRAC_CONST(-0.999698817729950), FRAC_CONST(0.024541210383177) },
+    { FRAC_CONST(-0.999924719333649), FRAC_CONST(0.012271485291421) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628) },
+    { FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352) },
+    { FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500) },
+    { FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029) },
+    { FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639) },
+    { FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221) },
+    { FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302) },
+    { FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225) },
+    { FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734) },
+    { FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055) },
+    { FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069) },
+    { FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668) },
+    { FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375) },
+    { FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156) },
+    { FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073) },
+    { FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829) },
+    { FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111) },
+    { FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088) },
+    { FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962) },
+    { FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576) },
+    { FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442) },
+    { FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470) },
+    { FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.788346469402313), FRAC_CONST(0.615231573581696) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.575808227062225), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.313681751489639), FRAC_CONST(0.949528157711029) },
+    { FRAC_CONST(0.242980241775513), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.024541255086660), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.266712725162506), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(-0.336889803409576), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372) },
+    { FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(-0.803207516670227), FRAC_CONST(0.595699369907379) },
+    { FRAC_CONST(-0.844853520393372), FRAC_CONST(0.534997701644897) },
+    { FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218) },
+    { FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499) },
+    { FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576) },
+    { FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151) },
+    { FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067724496126) },
+    { FRAC_CONST(-0.999698817729950), FRAC_CONST(-0.024541147053242) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824) },
+    { FRAC_CONST(-0.985277652740479), FRAC_CONST(-0.170961990952492) },
+    { FRAC_CONST(-0.970031261444092), FRAC_CONST(-0.242980241775513) },
+    { FRAC_CONST(-0.949528157711029), FRAC_CONST(-0.313681781291962) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.893224298954010), FRAC_CONST(-0.449611306190491) },
+    { FRAC_CONST(-0.857728660106659), FRAC_CONST(-0.514102697372437) },
+    { FRAC_CONST(-0.817584872245789), FRAC_CONST(-0.575808107852936) },
+    { FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443) },
+    { FRAC_CONST(-0.724247038364410), FRAC_CONST(-0.689540624618530) },
+    { FRAC_CONST(-0.671558916568756), FRAC_CONST(-0.740951180458069) },
+    { FRAC_CONST(-0.615231573581696), FRAC_CONST(-0.788346469402313) },
+    { FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216) },
+    { FRAC_CONST(-0.492898195981979), FRAC_CONST(-0.870086967945099) },
+    { FRAC_CONST(-0.427554935216904), FRAC_CONST(-0.903989374637604) },
+    { FRAC_CONST(-0.359895110130310), FRAC_CONST(-0.932992756366730) },
+    { FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718) },
+    { FRAC_CONST(-0.219101369380951), FRAC_CONST(-0.975702106952667) },
+    { FRAC_CONST(-0.146730408072472), FRAC_CONST(-0.989176511764526) },
+    { FRAC_CONST(-0.073564760386944), FRAC_CONST(-0.997290432453156) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443) },
+    { FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216) },
+    { FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000) }
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 complex_t cfft_tab_480[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999914348125458), COEF_CONST(0.013089596293867) },
-    { COEF_CONST(0.999657332897186), COEF_CONST(0.026176949962974) },
-    { COEF_CONST(0.999229013919830), COEF_CONST(0.039259817451239) },
-    { COEF_CONST(0.998629510402679), COEF_CONST(0.052335958927870) },
-    { COEF_CONST(0.997858941555023), COEF_CONST(0.065403133630753) },
-    { COEF_CONST(0.996917307376862), COEF_CONST(0.078459098935127) },
-    { COEF_CONST(0.995804905891418), COEF_CONST(0.091501623392105) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.993068456649780), COEF_CONST(0.117537401616573) },
-    { COEF_CONST(0.991444885730743), COEF_CONST(0.130526199936867) },
-    { COEF_CONST(0.989651381969452), COEF_CONST(0.143492624163628) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.985556066036224), COEF_CONST(0.169349506497383) },
-    { COEF_CONST(0.983254909515381), COEF_CONST(0.182235524058342) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.975342333316803), COEF_CONST(0.220697447657585) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.969230890274048), COEF_CONST(0.246153295040131) },
-    { COEF_CONST(0.965925812721252), COEF_CONST(0.258819043636322) },
-    { COEF_CONST(0.962455213069916), COEF_CONST(0.271440446376801) },
-    { COEF_CONST(0.958819746971130), COEF_CONST(0.284015357494354) },
-    { COEF_CONST(0.955019950866699), COEF_CONST(0.296541601419449) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.946930110454559), COEF_CONST(0.321439445018768) },
-    { COEF_CONST(0.942641496658325), COEF_CONST(0.333806872367859) },
-    { COEF_CONST(0.938191354274750), COEF_CONST(0.346117079257965) },
-    { COEF_CONST(0.933580398559570), COEF_CONST(0.358367949724197) },
-    { COEF_CONST(0.928809583187103), COEF_CONST(0.370557427406311) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.918791174888611), COEF_CONST(0.394743889570236) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.908143162727356), COEF_CONST(0.418659746646881) },
-    { COEF_CONST(0.902585268020630), COEF_CONST(0.430511116981506) },
-    { COEF_CONST(0.896872758865356), COEF_CONST(0.442288726568222) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.884987652301788), COEF_CONST(0.465614527463913) },
-    { COEF_CONST(0.878817081451416), COEF_CONST(0.477158784866333) },
-    { COEF_CONST(0.872496008872986), COEF_CONST(0.488621264696121) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.859406411647797), COEF_CONST(0.511293113231659) },
-    { COEF_CONST(0.852640151977539), COEF_CONST(0.522498548030853) },
-    { COEF_CONST(0.845727801322937), COEF_CONST(0.533614516258240) },
-    { COEF_CONST(0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.824126183986664), COEF_CONST(0.566406250000000) },
-    { COEF_CONST(0.816641509532928), COEF_CONST(0.577145218849182) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.801253795623779), COEF_CONST(0.598324596881866) },
-    { COEF_CONST(0.793353319168091), COEF_CONST(0.608761429786682) },
-    { COEF_CONST(0.785316884517670), COEF_CONST(0.619093954563141) },
-    { COEF_CONST(0.777145922183990), COEF_CONST(0.629320383071899) },
-    { COEF_CONST(0.768841803073883), COEF_CONST(0.639438986778259) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.751839756965637), COEF_CONST(0.659345865249634) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.734322488307953), COEF_CONST(0.678800761699677) },
-    { COEF_CONST(0.725374400615692), COEF_CONST(0.688354551792145) },
-    { COEF_CONST(0.716301918029785), COEF_CONST(0.697790503501892) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.697790443897247), COEF_CONST(0.716301977634430) },
-    { COEF_CONST(0.688354551792145), COEF_CONST(0.725374400615692) },
-    { COEF_CONST(0.678800702095032), COEF_CONST(0.734322547912598) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.659345805644989), COEF_CONST(0.751839816570282) },
-    { COEF_CONST(0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(0.639438986778259), COEF_CONST(0.768841862678528) },
-    { COEF_CONST(0.629320383071899), COEF_CONST(0.777145981788635) },
-    { COEF_CONST(0.619093954563141), COEF_CONST(0.785316944122314) },
-    { COEF_CONST(0.608761370182037), COEF_CONST(0.793353378772736) },
-    { COEF_CONST(0.598324596881866), COEF_CONST(0.801253855228424) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.577145159244537), COEF_CONST(0.816641569137573) },
-    { COEF_CONST(0.566406250000000), COEF_CONST(0.824126183986664) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.544638991355896), COEF_CONST(0.838670611381531) },
-    { COEF_CONST(0.533614516258240), COEF_CONST(0.845727801322937) },
-    { COEF_CONST(0.522498488426209), COEF_CONST(0.852640211582184) },
-    { COEF_CONST(0.511293113231659), COEF_CONST(0.859406411647797) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.488621175289154), COEF_CONST(0.872496068477631) },
-    { COEF_CONST(0.477158755064011), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(0.465614467859268), COEF_CONST(0.884987652301788) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.442288666963577), COEF_CONST(0.896872758865356) },
-    { COEF_CONST(0.430511027574539), COEF_CONST(0.902585327625275) },
-    { COEF_CONST(0.418659746646881), COEF_CONST(0.908143162727356) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.394743800163269), COEF_CONST(0.918791234493256) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.370557397603989), COEF_CONST(0.928809583187103) },
-    { COEF_CONST(0.358367860317230), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(0.346117049455643), COEF_CONST(0.938191354274750) },
-    { COEF_CONST(0.333806812763214), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(0.321439474821091), COEF_CONST(0.946930110454559) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.296541512012482), COEF_CONST(0.955019950866699) },
-    { COEF_CONST(0.284015327692032), COEF_CONST(0.958819746971130) },
-    { COEF_CONST(0.271440386772156), COEF_CONST(0.962455272674561) },
-    { COEF_CONST(0.258819073438644), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(0.246153265237808), COEF_CONST(0.969230890274048) },
-    { COEF_CONST(0.233445301651955), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(0.220697447657585), COEF_CONST(0.975342333316803) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.182235524058342), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(0.169349446892738), COEF_CONST(0.985556066036224) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.143492594361305), COEF_CONST(0.989651381969452) },
-    { COEF_CONST(0.130526125431061), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(0.117537401616573), COEF_CONST(0.993068456649780) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(0.091501533985138), COEF_CONST(0.995804905891418) },
-    { COEF_CONST(0.078459084033966), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(0.065403074026108), COEF_CONST(0.997858941555023) },
-    { COEF_CONST(0.052335973829031), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(0.039259787648916), COEF_CONST(0.999229013919830) },
-    { COEF_CONST(0.026176875457168), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(0.013089597225189), COEF_CONST(0.999914348125458) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.013089684769511), COEF_CONST(0.999914348125458) },
-    { COEF_CONST(-0.026176963001490), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(-0.039259877055883), COEF_CONST(0.999229013919830) },
-    { COEF_CONST(-0.052336059510708), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.065403163433075), COEF_CONST(0.997858941555023) },
-    { COEF_CONST(-0.078459173440933), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(-0.091501623392105), COEF_CONST(0.995804905891418) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.117537491023541), COEF_CONST(0.993068456649780) },
-    { COEF_CONST(-0.130526214838028), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(-0.143492683768272), COEF_CONST(0.989651381969452) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.169349536299706), COEF_CONST(0.985556066036224) },
-    { COEF_CONST(-0.182235598564148), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.220697522163391), COEF_CONST(0.975342273712158) },
-    { COEF_CONST(-0.233445391058922), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(-0.246153354644775), COEF_CONST(0.969230890274048) },
-    { COEF_CONST(-0.258819162845612), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(-0.271440476179123), COEF_CONST(0.962455213069916) },
-    { COEF_CONST(-0.284015417098999), COEF_CONST(0.958819687366486) },
-    { COEF_CONST(-0.296541571617126), COEF_CONST(0.955019950866699) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.321439564228058), COEF_CONST(0.946930110454559) },
-    { COEF_CONST(-0.333806872367859), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(-0.346117109060287), COEF_CONST(0.938191294670105) },
-    { COEF_CONST(-0.358367949724197), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(-0.370557487010956), COEF_CONST(0.928809523582459) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.394743859767914), COEF_CONST(0.918791234493256) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(-0.418659836053848), COEF_CONST(0.908143103122711) },
-    { COEF_CONST(-0.430511116981506), COEF_CONST(0.902585268020630) },
-    { COEF_CONST(-0.442288637161255), COEF_CONST(0.896872758865356) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.465614557266235), COEF_CONST(0.884987592697144) },
-    { COEF_CONST(-0.477158725261688), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(-0.488621354103088), COEF_CONST(0.872495949268341) },
-    { COEF_CONST(-0.500000059604645), COEF_CONST(0.866025388240814) },
-    { COEF_CONST(-0.511293053627014), COEF_CONST(0.859406411647797) },
-    { COEF_CONST(-0.522498667240143), COEF_CONST(0.852640092372894) },
-    { COEF_CONST(-0.533614575862885), COEF_CONST(0.845727801322937) },
-    { COEF_CONST(-0.544639050960541), COEF_CONST(0.838670551776886) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.566406309604645), COEF_CONST(0.824126124382019) },
-    { COEF_CONST(-0.577145218849182), COEF_CONST(0.816641569137573) },
-    { COEF_CONST(-0.587785184383392), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.598324656486511), COEF_CONST(0.801253736019135) },
-    { COEF_CONST(-0.608761429786682), COEF_CONST(0.793353319168091) },
-    { COEF_CONST(-0.619093894958496), COEF_CONST(0.785316944122314) },
-    { COEF_CONST(-0.629320502281189), COEF_CONST(0.777145862579346) },
-    { COEF_CONST(-0.639439046382904), COEF_CONST(0.768841803073883) },
-    { COEF_CONST(-0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(-0.659345924854279), COEF_CONST(0.751839697360992) },
-    { COEF_CONST(-0.669130682945251), COEF_CONST(0.743144810199738) },
-    { COEF_CONST(-0.678800761699677), COEF_CONST(0.734322488307953) },
-    { COEF_CONST(-0.688354671001434), COEF_CONST(0.725374281406403) },
-    { COEF_CONST(-0.697790503501892), COEF_CONST(0.716301858425140) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.716302037239075), COEF_CONST(0.697790324687958) },
-    { COEF_CONST(-0.725374460220337), COEF_CONST(0.688354492187500) },
-    { COEF_CONST(-0.734322547912598), COEF_CONST(0.678800702095032) },
-    { COEF_CONST(-0.743144929409027), COEF_CONST(0.669130444526672) },
-    { COEF_CONST(-0.751839876174927), COEF_CONST(0.659345746040344) },
-    { COEF_CONST(-0.760406017303467), COEF_CONST(0.649448037147522) },
-    { COEF_CONST(-0.768841803073883), COEF_CONST(0.639439046382904) },
-    { COEF_CONST(-0.777146041393280), COEF_CONST(0.629320263862610) },
-    { COEF_CONST(-0.785316944122314), COEF_CONST(0.619093894958496) },
-    { COEF_CONST(-0.793353319168091), COEF_CONST(0.608761429786682) },
-    { COEF_CONST(-0.801253914833069), COEF_CONST(0.598324477672577) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.816641569137573), COEF_CONST(0.577145218849182) },
-    { COEF_CONST(-0.824126303195953), COEF_CONST(0.566406130790710) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(-0.845727920532227), COEF_CONST(0.533614337444305) },
-    { COEF_CONST(-0.852640211582184), COEF_CONST(0.522498488426209) },
-    { COEF_CONST(-0.859406411647797), COEF_CONST(0.511293053627014) },
-    { COEF_CONST(-0.866025388240814), COEF_CONST(0.500000059604645) },
-    { COEF_CONST(-0.872496068477631), COEF_CONST(0.488621145486832) },
-    { COEF_CONST(-0.878817141056061), COEF_CONST(0.477158725261688) },
-    { COEF_CONST(-0.884987652301788), COEF_CONST(0.465614557266235) },
-    { COEF_CONST(-0.891006588935852), COEF_CONST(0.453990370035172) },
-    { COEF_CONST(-0.896872758865356), COEF_CONST(0.442288637161255) },
-    { COEF_CONST(-0.902585268020630), COEF_CONST(0.430511116981506) },
-    { COEF_CONST(-0.908143222332001), COEF_CONST(0.418659597635269) },
-    { COEF_CONST(-0.913545489311218), COEF_CONST(0.406736582517624) },
-    { COEF_CONST(-0.918791234493256), COEF_CONST(0.394743859767914) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.928809583187103), COEF_CONST(0.370557337999344) },
-    { COEF_CONST(-0.933580458164215), COEF_CONST(0.358367919921875) },
-    { COEF_CONST(-0.938191413879395), COEF_CONST(0.346116900444031) },
-    { COEF_CONST(-0.942641556262970), COEF_CONST(0.333806753158569) },
-    { COEF_CONST(-0.946930170059204), COEF_CONST(0.321439445018768) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.955020010471344), COEF_CONST(0.296541452407837) },
-    { COEF_CONST(-0.958819746971130), COEF_CONST(0.284015297889709) },
-    { COEF_CONST(-0.962455213069916), COEF_CONST(0.271440476179123) },
-    { COEF_CONST(-0.965925872325897), COEF_CONST(0.258818924427032) },
-    { COEF_CONST(-0.969230949878693), COEF_CONST(0.246153235435486) },
-    { COEF_CONST(-0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(-0.975342333316803), COEF_CONST(0.220697283744812) },
-    { COEF_CONST(-0.978147625923157), COEF_CONST(0.207911610603333) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.983254909515381), COEF_CONST(0.182235360145569) },
-    { COEF_CONST(-0.985556066036224), COEF_CONST(0.169349402189255) },
-    { COEF_CONST(-0.987688362598419), COEF_CONST(0.156434446573257) },
-    { COEF_CONST(-0.989651441574097), COEF_CONST(0.143492430448532) },
-    { COEF_CONST(-0.991444885730743), COEF_CONST(0.130526080727577) },
-    { COEF_CONST(-0.993068456649780), COEF_CONST(0.117537356913090) },
-    { COEF_CONST(-0.994521915912628), COEF_CONST(0.104528494179249) },
-    { COEF_CONST(-0.995804965496063), COEF_CONST(0.091501489281654) },
-    { COEF_CONST(-0.996917366981506), COEF_CONST(0.078459039330482) },
-    { COEF_CONST(-0.997858941555023), COEF_CONST(0.065403148531914) },
-    { COEF_CONST(-0.998629570007324), COEF_CONST(0.052335809916258) },
-    { COEF_CONST(-0.999229013919830), COEF_CONST(0.039259742945433) },
-    { COEF_CONST(-0.999657332897186), COEF_CONST(0.026176951825619) },
-    { COEF_CONST(-0.999914348125458), COEF_CONST(0.013089434243739) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999657332897186), COEF_CONST(0.026176949962974) },
-    { COEF_CONST(0.998629510402679), COEF_CONST(0.052335958927870) },
-    { COEF_CONST(0.996917307376862), COEF_CONST(0.078459098935127) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.991444885730743), COEF_CONST(0.130526199936867) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.983254909515381), COEF_CONST(0.182235524058342) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.965925812721252), COEF_CONST(0.258819043636322) },
-    { COEF_CONST(0.958819746971130), COEF_CONST(0.284015357494354) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.942641496658325), COEF_CONST(0.333806872367859) },
-    { COEF_CONST(0.933580398559570), COEF_CONST(0.358367949724197) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.902585268020630), COEF_CONST(0.430511116981506) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.878817081451416), COEF_CONST(0.477158784866333) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.852640151977539), COEF_CONST(0.522498548030853) },
-    { COEF_CONST(0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(0.824126183986664), COEF_CONST(0.566406250000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.793353319168091), COEF_CONST(0.608761429786682) },
-    { COEF_CONST(0.777145922183990), COEF_CONST(0.629320383071899) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.725374400615692), COEF_CONST(0.688354551792145) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.688354551792145), COEF_CONST(0.725374400615692) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(0.629320383071899), COEF_CONST(0.777145981788635) },
-    { COEF_CONST(0.608761370182037), COEF_CONST(0.793353378772736) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.566406250000000), COEF_CONST(0.824126183986664) },
-    { COEF_CONST(0.544638991355896), COEF_CONST(0.838670611381531) },
-    { COEF_CONST(0.522498488426209), COEF_CONST(0.852640211582184) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.477158755064011), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.430511027574539), COEF_CONST(0.902585327625275) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.358367860317230), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(0.333806812763214), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.284015327692032), COEF_CONST(0.958819746971130) },
-    { COEF_CONST(0.258819073438644), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(0.233445301651955), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.182235524058342), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.130526125431061), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(0.078459084033966), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(0.052335973829031), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(0.026176875457168), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.026176963001490), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(-0.052336059510708), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.078459173440933), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.130526214838028), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.182235598564148), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.233445391058922), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(-0.258819162845612), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(-0.284015417098999), COEF_CONST(0.958819687366486) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.333806872367859), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(-0.358367949724197), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(-0.430511116981506), COEF_CONST(0.902585268020630) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.477158725261688), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.998629510402679), COEF_CONST(0.052335958927870) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.965925812721252), COEF_CONST(0.258819043636322) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.933580398559570), COEF_CONST(0.358367949724197) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.777145922183990), COEF_CONST(0.629320383071899) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.629320383071899), COEF_CONST(0.777145981788635) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.544638991355896), COEF_CONST(0.838670611381531) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.358367860317230), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.258819073438644), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(0.052335973829031), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.052336059510708), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.258819162845612), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.358367949724197), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.500000059604645), COEF_CONST(0.866025388240814) },
-    { COEF_CONST(-0.544639050960541), COEF_CONST(0.838670551776886) },
-    { COEF_CONST(-0.587785184383392), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.629320502281189), COEF_CONST(0.777145862579346) },
-    { COEF_CONST(-0.669130682945251), COEF_CONST(0.743144810199738) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.743144929409027), COEF_CONST(0.669130444526672) },
-    { COEF_CONST(-0.777146041393280), COEF_CONST(0.629320263862610) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(-0.866025388240814), COEF_CONST(0.500000059604645) },
-    { COEF_CONST(-0.891006588935852), COEF_CONST(0.453990370035172) },
-    { COEF_CONST(-0.913545489311218), COEF_CONST(0.406736582517624) },
-    { COEF_CONST(-0.933580458164215), COEF_CONST(0.358367919921875) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.965925872325897), COEF_CONST(0.258818924427032) },
-    { COEF_CONST(-0.978147625923157), COEF_CONST(0.207911610603333) },
-    { COEF_CONST(-0.987688362598419), COEF_CONST(0.156434446573257) },
-    { COEF_CONST(-0.994521915912628), COEF_CONST(0.104528494179249) },
-    { COEF_CONST(-0.998629570007324), COEF_CONST(0.052335809916258) },
-    { COEF_CONST(-1.000000000000000), COEF_CONST(-0.000000087422777) },
-    { COEF_CONST(-0.998629510402679), COEF_CONST(-0.052335985004902) },
-    { COEF_CONST(-0.994521856307983), COEF_CONST(-0.104528672993183) },
-    { COEF_CONST(-0.987688302993774), COEF_CONST(-0.156434610486031) },
-    { COEF_CONST(-0.978147566318512), COEF_CONST(-0.207911789417267) },
-    { COEF_CONST(-0.965925812721252), COEF_CONST(-0.258819073438644) },
-    { COEF_CONST(-0.951056540012360), COEF_CONST(-0.309016972780228) },
-    { COEF_CONST(-0.933580398559570), COEF_CONST(-0.358368098735809) },
-    { COEF_CONST(-0.913545429706573), COEF_CONST(-0.406736731529236) },
-    { COEF_CONST(-0.891006529331207), COEF_CONST(-0.453990548849106) },
-    { COEF_CONST(-0.866025269031525), COEF_CONST(-0.500000178813934) },
-    { COEF_CONST(-0.838670492172241), COEF_CONST(-0.544639170169830) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(-0.777145922183990), COEF_CONST(-0.629320442676544) },
-    { COEF_CONST(-0.743144810199738), COEF_CONST(-0.669130623340607) },
-    { COEF_CONST(-0.707106649875641), COEF_CONST(-0.707106888294220) },
-    { COEF_CONST(-0.669130504131317), COEF_CONST(-0.743144869804382) },
-    { COEF_CONST(-0.629320323467255), COEF_CONST(-0.777145981788635) },
-    { COEF_CONST(-0.587785065174103), COEF_CONST(-0.809017121791840) },
-    { COEF_CONST(-0.544639110565186), COEF_CONST(-0.838670551776886) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.996917307376862), COEF_CONST(0.078459098935127) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.852640151977539), COEF_CONST(0.522498548030853) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.522498488426209), COEF_CONST(0.852640211582184) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.233445301651955), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.078459084033966), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.587785184383392), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.891006588935852), COEF_CONST(0.453990370035172) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.987688362598419), COEF_CONST(0.156434446573257) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.078459173440933), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.522498667240143), COEF_CONST(0.852640092372894) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.852640211582184), COEF_CONST(0.522498488426209) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.996917366981506), COEF_CONST(0.078459039330482) },
-    { COEF_CONST(-0.987688302993774), COEF_CONST(-0.156434610486031) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(-0.649447917938232), COEF_CONST(-0.760406076908112) },
-    { COEF_CONST(-0.453990221023560), COEF_CONST(-0.891006648540497) },
-    { COEF_CONST(-0.233445450663567), COEF_CONST(-0.972369909286499) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.309017121791840), COEF_CONST(-0.951056480407715) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999914348125458), FRAC_CONST(0.013089596293867) },
+    { FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974) },
+    { FRAC_CONST(0.999229013919830), FRAC_CONST(0.039259817451239) },
+    { FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870) },
+    { FRAC_CONST(0.997858941555023), FRAC_CONST(0.065403133630753) },
+    { FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127) },
+    { FRAC_CONST(0.995804905891418), FRAC_CONST(0.091501623392105) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.993068456649780), FRAC_CONST(0.117537401616573) },
+    { FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867) },
+    { FRAC_CONST(0.989651381969452), FRAC_CONST(0.143492624163628) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.985556066036224), FRAC_CONST(0.169349506497383) },
+    { FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.975342333316803), FRAC_CONST(0.220697447657585) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.969230890274048), FRAC_CONST(0.246153295040131) },
+    { FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322) },
+    { FRAC_CONST(0.962455213069916), FRAC_CONST(0.271440446376801) },
+    { FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354) },
+    { FRAC_CONST(0.955019950866699), FRAC_CONST(0.296541601419449) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.946930110454559), FRAC_CONST(0.321439445018768) },
+    { FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859) },
+    { FRAC_CONST(0.938191354274750), FRAC_CONST(0.346117079257965) },
+    { FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197) },
+    { FRAC_CONST(0.928809583187103), FRAC_CONST(0.370557427406311) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.918791174888611), FRAC_CONST(0.394743889570236) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.908143162727356), FRAC_CONST(0.418659746646881) },
+    { FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506) },
+    { FRAC_CONST(0.896872758865356), FRAC_CONST(0.442288726568222) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.884987652301788), FRAC_CONST(0.465614527463913) },
+    { FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333) },
+    { FRAC_CONST(0.872496008872986), FRAC_CONST(0.488621264696121) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.859406411647797), FRAC_CONST(0.511293113231659) },
+    { FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853) },
+    { FRAC_CONST(0.845727801322937), FRAC_CONST(0.533614516258240) },
+    { FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000) },
+    { FRAC_CONST(0.816641509532928), FRAC_CONST(0.577145218849182) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.801253795623779), FRAC_CONST(0.598324596881866) },
+    { FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682) },
+    { FRAC_CONST(0.785316884517670), FRAC_CONST(0.619093954563141) },
+    { FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899) },
+    { FRAC_CONST(0.768841803073883), FRAC_CONST(0.639438986778259) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.751839756965637), FRAC_CONST(0.659345865249634) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.734322488307953), FRAC_CONST(0.678800761699677) },
+    { FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145) },
+    { FRAC_CONST(0.716301918029785), FRAC_CONST(0.697790503501892) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.697790443897247), FRAC_CONST(0.716301977634430) },
+    { FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692) },
+    { FRAC_CONST(0.678800702095032), FRAC_CONST(0.734322547912598) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.659345805644989), FRAC_CONST(0.751839816570282) },
+    { FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(0.639438986778259), FRAC_CONST(0.768841862678528) },
+    { FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635) },
+    { FRAC_CONST(0.619093954563141), FRAC_CONST(0.785316944122314) },
+    { FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736) },
+    { FRAC_CONST(0.598324596881866), FRAC_CONST(0.801253855228424) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.577145159244537), FRAC_CONST(0.816641569137573) },
+    { FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531) },
+    { FRAC_CONST(0.533614516258240), FRAC_CONST(0.845727801322937) },
+    { FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184) },
+    { FRAC_CONST(0.511293113231659), FRAC_CONST(0.859406411647797) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.488621175289154), FRAC_CONST(0.872496068477631) },
+    { FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(0.465614467859268), FRAC_CONST(0.884987652301788) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.442288666963577), FRAC_CONST(0.896872758865356) },
+    { FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275) },
+    { FRAC_CONST(0.418659746646881), FRAC_CONST(0.908143162727356) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.394743800163269), FRAC_CONST(0.918791234493256) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.370557397603989), FRAC_CONST(0.928809583187103) },
+    { FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(0.346117049455643), FRAC_CONST(0.938191354274750) },
+    { FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(0.321439474821091), FRAC_CONST(0.946930110454559) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.296541512012482), FRAC_CONST(0.955019950866699) },
+    { FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130) },
+    { FRAC_CONST(0.271440386772156), FRAC_CONST(0.962455272674561) },
+    { FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(0.246153265237808), FRAC_CONST(0.969230890274048) },
+    { FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(0.220697447657585), FRAC_CONST(0.975342333316803) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(0.169349446892738), FRAC_CONST(0.985556066036224) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.143492594361305), FRAC_CONST(0.989651381969452) },
+    { FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(0.117537401616573), FRAC_CONST(0.993068456649780) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(0.091501533985138), FRAC_CONST(0.995804905891418) },
+    { FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(0.065403074026108), FRAC_CONST(0.997858941555023) },
+    { FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(0.039259787648916), FRAC_CONST(0.999229013919830) },
+    { FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(0.013089597225189), FRAC_CONST(0.999914348125458) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.013089684769511), FRAC_CONST(0.999914348125458) },
+    { FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(-0.039259877055883), FRAC_CONST(0.999229013919830) },
+    { FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.065403163433075), FRAC_CONST(0.997858941555023) },
+    { FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(-0.091501623392105), FRAC_CONST(0.995804905891418) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.117537491023541), FRAC_CONST(0.993068456649780) },
+    { FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(-0.143492683768272), FRAC_CONST(0.989651381969452) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.169349536299706), FRAC_CONST(0.985556066036224) },
+    { FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.220697522163391), FRAC_CONST(0.975342273712158) },
+    { FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(-0.246153354644775), FRAC_CONST(0.969230890274048) },
+    { FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(-0.271440476179123), FRAC_CONST(0.962455213069916) },
+    { FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486) },
+    { FRAC_CONST(-0.296541571617126), FRAC_CONST(0.955019950866699) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.321439564228058), FRAC_CONST(0.946930110454559) },
+    { FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(-0.346117109060287), FRAC_CONST(0.938191294670105) },
+    { FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(-0.370557487010956), FRAC_CONST(0.928809523582459) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.394743859767914), FRAC_CONST(0.918791234493256) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(-0.418659836053848), FRAC_CONST(0.908143103122711) },
+    { FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630) },
+    { FRAC_CONST(-0.442288637161255), FRAC_CONST(0.896872758865356) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.465614557266235), FRAC_CONST(0.884987592697144) },
+    { FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(-0.488621354103088), FRAC_CONST(0.872495949268341) },
+    { FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814) },
+    { FRAC_CONST(-0.511293053627014), FRAC_CONST(0.859406411647797) },
+    { FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894) },
+    { FRAC_CONST(-0.533614575862885), FRAC_CONST(0.845727801322937) },
+    { FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.566406309604645), FRAC_CONST(0.824126124382019) },
+    { FRAC_CONST(-0.577145218849182), FRAC_CONST(0.816641569137573) },
+    { FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.598324656486511), FRAC_CONST(0.801253736019135) },
+    { FRAC_CONST(-0.608761429786682), FRAC_CONST(0.793353319168091) },
+    { FRAC_CONST(-0.619093894958496), FRAC_CONST(0.785316944122314) },
+    { FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346) },
+    { FRAC_CONST(-0.639439046382904), FRAC_CONST(0.768841803073883) },
+    { FRAC_CONST(-0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(-0.659345924854279), FRAC_CONST(0.751839697360992) },
+    { FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738) },
+    { FRAC_CONST(-0.678800761699677), FRAC_CONST(0.734322488307953) },
+    { FRAC_CONST(-0.688354671001434), FRAC_CONST(0.725374281406403) },
+    { FRAC_CONST(-0.697790503501892), FRAC_CONST(0.716301858425140) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.716302037239075), FRAC_CONST(0.697790324687958) },
+    { FRAC_CONST(-0.725374460220337), FRAC_CONST(0.688354492187500) },
+    { FRAC_CONST(-0.734322547912598), FRAC_CONST(0.678800702095032) },
+    { FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672) },
+    { FRAC_CONST(-0.751839876174927), FRAC_CONST(0.659345746040344) },
+    { FRAC_CONST(-0.760406017303467), FRAC_CONST(0.649448037147522) },
+    { FRAC_CONST(-0.768841803073883), FRAC_CONST(0.639439046382904) },
+    { FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610) },
+    { FRAC_CONST(-0.785316944122314), FRAC_CONST(0.619093894958496) },
+    { FRAC_CONST(-0.793353319168091), FRAC_CONST(0.608761429786682) },
+    { FRAC_CONST(-0.801253914833069), FRAC_CONST(0.598324477672577) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.816641569137573), FRAC_CONST(0.577145218849182) },
+    { FRAC_CONST(-0.824126303195953), FRAC_CONST(0.566406130790710) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(-0.845727920532227), FRAC_CONST(0.533614337444305) },
+    { FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209) },
+    { FRAC_CONST(-0.859406411647797), FRAC_CONST(0.511293053627014) },
+    { FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645) },
+    { FRAC_CONST(-0.872496068477631), FRAC_CONST(0.488621145486832) },
+    { FRAC_CONST(-0.878817141056061), FRAC_CONST(0.477158725261688) },
+    { FRAC_CONST(-0.884987652301788), FRAC_CONST(0.465614557266235) },
+    { FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172) },
+    { FRAC_CONST(-0.896872758865356), FRAC_CONST(0.442288637161255) },
+    { FRAC_CONST(-0.902585268020630), FRAC_CONST(0.430511116981506) },
+    { FRAC_CONST(-0.908143222332001), FRAC_CONST(0.418659597635269) },
+    { FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624) },
+    { FRAC_CONST(-0.918791234493256), FRAC_CONST(0.394743859767914) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.928809583187103), FRAC_CONST(0.370557337999344) },
+    { FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875) },
+    { FRAC_CONST(-0.938191413879395), FRAC_CONST(0.346116900444031) },
+    { FRAC_CONST(-0.942641556262970), FRAC_CONST(0.333806753158569) },
+    { FRAC_CONST(-0.946930170059204), FRAC_CONST(0.321439445018768) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.955020010471344), FRAC_CONST(0.296541452407837) },
+    { FRAC_CONST(-0.958819746971130), FRAC_CONST(0.284015297889709) },
+    { FRAC_CONST(-0.962455213069916), FRAC_CONST(0.271440476179123) },
+    { FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032) },
+    { FRAC_CONST(-0.969230949878693), FRAC_CONST(0.246153235435486) },
+    { FRAC_CONST(-0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(-0.975342333316803), FRAC_CONST(0.220697283744812) },
+    { FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.983254909515381), FRAC_CONST(0.182235360145569) },
+    { FRAC_CONST(-0.985556066036224), FRAC_CONST(0.169349402189255) },
+    { FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257) },
+    { FRAC_CONST(-0.989651441574097), FRAC_CONST(0.143492430448532) },
+    { FRAC_CONST(-0.991444885730743), FRAC_CONST(0.130526080727577) },
+    { FRAC_CONST(-0.993068456649780), FRAC_CONST(0.117537356913090) },
+    { FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249) },
+    { FRAC_CONST(-0.995804965496063), FRAC_CONST(0.091501489281654) },
+    { FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482) },
+    { FRAC_CONST(-0.997858941555023), FRAC_CONST(0.065403148531914) },
+    { FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258) },
+    { FRAC_CONST(-0.999229013919830), FRAC_CONST(0.039259742945433) },
+    { FRAC_CONST(-0.999657332897186), FRAC_CONST(0.026176951825619) },
+    { FRAC_CONST(-0.999914348125458), FRAC_CONST(0.013089434243739) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974) },
+    { FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870) },
+    { FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322) },
+    { FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859) },
+    { FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853) },
+    { FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682) },
+    { FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635) },
+    { FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664) },
+    { FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531) },
+    { FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130) },
+    { FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814) },
+    { FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886) },
+    { FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346) },
+    { FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672) },
+    { FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645) },
+    { FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172) },
+    { FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624) },
+    { FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032) },
+    { FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333) },
+    { FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257) },
+    { FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249) },
+    { FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258) },
+    { FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777) },
+    { FRAC_CONST(-0.998629510402679), FRAC_CONST(-0.052335985004902) },
+    { FRAC_CONST(-0.994521856307983), FRAC_CONST(-0.104528672993183) },
+    { FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031) },
+    { FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267) },
+    { FRAC_CONST(-0.965925812721252), FRAC_CONST(-0.258819073438644) },
+    { FRAC_CONST(-0.951056540012360), FRAC_CONST(-0.309016972780228) },
+    { FRAC_CONST(-0.933580398559570), FRAC_CONST(-0.358368098735809) },
+    { FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236) },
+    { FRAC_CONST(-0.891006529331207), FRAC_CONST(-0.453990548849106) },
+    { FRAC_CONST(-0.866025269031525), FRAC_CONST(-0.500000178813934) },
+    { FRAC_CONST(-0.838670492172241), FRAC_CONST(-0.544639170169830) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(-0.777145922183990), FRAC_CONST(-0.629320442676544) },
+    { FRAC_CONST(-0.743144810199738), FRAC_CONST(-0.669130623340607) },
+    { FRAC_CONST(-0.707106649875641), FRAC_CONST(-0.707106888294220) },
+    { FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382) },
+    { FRAC_CONST(-0.629320323467255), FRAC_CONST(-0.777145981788635) },
+    { FRAC_CONST(-0.587785065174103), FRAC_CONST(-0.809017121791840) },
+    { FRAC_CONST(-0.544639110565186), FRAC_CONST(-0.838670551776886) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482) },
+    { FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(-0.649447917938232), FRAC_CONST(-0.760406076908112) },
+    { FRAC_CONST(-0.453990221023560), FRAC_CONST(-0.891006648540497) },
+    { FRAC_CONST(-0.233445450663567), FRAC_CONST(-0.972369909286499) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715) }
 };
 #endif
 
 complex_t cfft_tab_64[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.881921231746674), COEF_CONST(0.471396833658218) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(-0.098017267882824) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.773010551929474), COEF_CONST(-0.634393215179443) },
-    { COEF_CONST(-0.555570006370544), COEF_CONST(-0.831469774246216) },
-    { COEF_CONST(-0.290284544229507), COEF_CONST(-0.956940352916718) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.000000011924881), COEF_CONST(-1.000000000000000) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443) },
+    { FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216) },
+    { FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000) }
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 complex_t cfft_tab_60[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.500000059604645), COEF_CONST(0.866025388240814) },
-    { COEF_CONST(-0.669130682945251), COEF_CONST(0.743144810199738) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.913545489311218), COEF_CONST(0.406736582517624) },
-    { COEF_CONST(-0.978147625923157), COEF_CONST(0.207911610603333) },
-    { COEF_CONST(-1.000000000000000), COEF_CONST(-0.000000087422777) },
-    { COEF_CONST(-0.978147566318512), COEF_CONST(-0.207911789417267) },
-    { COEF_CONST(-0.913545429706573), COEF_CONST(-0.406736731529236) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(-0.669130504131317), COEF_CONST(-0.743144869804382) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.309017121791840), COEF_CONST(-0.951056480407715) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814) },
+    { FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624) },
+    { FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333) },
+    { FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777) },
+    { FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267) },
+    { FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715) }
 };
 #endif
 
@@ -1174,507 +1174,507 @@
 
 complex_t cfft_tab_256[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999698817729950), COEF_CONST(0.024541229009628) },
-    { COEF_CONST(0.998795449733734), COEF_CONST(0.049067676067352) },
-    { COEF_CONST(0.997290432453156), COEF_CONST(0.073564566671848) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.992479562759399), COEF_CONST(0.122410677373409) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.985277652740479), COEF_CONST(0.170961901545525) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.975702106952667), COEF_CONST(0.219101235270500) },
-    { COEF_CONST(0.970031261444092), COEF_CONST(0.242980197072029) },
-    { COEF_CONST(0.963776051998138), COEF_CONST(0.266712784767151) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.949528157711029), COEF_CONST(0.313681751489639) },
-    { COEF_CONST(0.941544055938721), COEF_CONST(0.336889863014221) },
-    { COEF_CONST(0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.914209723472595), COEF_CONST(0.405241340398788) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.893224298954010), COEF_CONST(0.449611335992813) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.870086967945099), COEF_CONST(0.492898225784302) },
-    { COEF_CONST(0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(0.844853579998016), COEF_CONST(0.534997642040253) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.817584812641144), COEF_CONST(0.575808227062225) },
-    { COEF_CONST(0.803207516670227), COEF_CONST(0.595699310302734) },
-    { COEF_CONST(0.788346409797668), COEF_CONST(0.615231633186340) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.724247097969055), COEF_CONST(0.689540565013886) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.689540505409241), COEF_CONST(0.724247097969055) },
-    { COEF_CONST(0.671558916568756), COEF_CONST(0.740951180458069) },
-    { COEF_CONST(0.653172791004181), COEF_CONST(0.757208883762360) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.615231573581696), COEF_CONST(0.788346409797668) },
-    { COEF_CONST(0.595699310302734), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(0.575808167457581), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.534997642040253), COEF_CONST(0.844853579998016) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.492898195981979), COEF_CONST(0.870086967945099) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.449611306190491), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(0.427555114030838), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(0.405241280794144), COEF_CONST(0.914209783077240) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.359894961118698), COEF_CONST(0.932992815971375) },
-    { COEF_CONST(0.336889833211899), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(0.313681662082672), COEF_CONST(0.949528217315674) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.266712754964828), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(0.242980122566223), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.219101220369339), COEF_CONST(0.975702106952667) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.170961856842041), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(0.146730497479439), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(0.122410625219345), COEF_CONST(0.992479562759399) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.073564492166042), COEF_CONST(0.997290432453156) },
-    { COEF_CONST(0.049067649990320), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(0.024541135877371), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.998795449733734), COEF_CONST(0.049067676067352) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.970031261444092), COEF_CONST(0.242980197072029) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.941544055938721), COEF_CONST(0.336889863014221) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.803207516670227), COEF_CONST(0.595699310302734) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.671558916568756), COEF_CONST(0.740951180458069) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.595699310302734), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.427555114030838), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.336889833211899), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.242980122566223), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.146730497479439), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.049067649990320), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.049067739397287), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.098017223179340), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.146730571985245), COEF_CONST(0.989176511764526) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.242980197072029), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(-0.290284723043442), COEF_CONST(0.956940293312073) },
-    { COEF_CONST(-0.336889922618866), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.427555084228516), COEF_CONST(0.903989315032959) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.514102756977081), COEF_CONST(0.857728600502014) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.595699369907379), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(-0.634393274784088), COEF_CONST(0.773010492324829) },
-    { COEF_CONST(-0.671559035778046), COEF_CONST(0.740951061248779) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.740951240062714), COEF_CONST(0.671558856964111) },
-    { COEF_CONST(-0.773010492324829), COEF_CONST(0.634393274784088) },
-    { COEF_CONST(-0.803207635879517), COEF_CONST(0.595699131488800) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.857728600502014), COEF_CONST(0.514102756977081) },
-    { COEF_CONST(-0.881921350955963), COEF_CONST(0.471396625041962) },
-    { COEF_CONST(-0.903989315032959), COEF_CONST(0.427555054426193) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.941544115543365), COEF_CONST(0.336889803409576) },
-    { COEF_CONST(-0.956940352916718), COEF_CONST(0.290284723043442) },
-    { COEF_CONST(-0.970031261444092), COEF_CONST(0.242980077862740) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.989176511764526), COEF_CONST(0.146730333566666) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(0.098017096519470) },
-    { COEF_CONST(-0.998795449733734), COEF_CONST(0.049067486077547) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.997290432453156), COEF_CONST(0.073564566671848) },
-    { COEF_CONST(0.989176511764526), COEF_CONST(0.146730467677116) },
-    { COEF_CONST(0.975702106952667), COEF_CONST(0.219101235270500) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.932992815971375), COEF_CONST(0.359895050525665) },
-    { COEF_CONST(0.903989315032959), COEF_CONST(0.427555084228516) },
-    { COEF_CONST(0.870086967945099), COEF_CONST(0.492898225784302) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.788346469402313), COEF_CONST(0.615231573581696) },
-    { COEF_CONST(0.740951120853424), COEF_CONST(0.671558976173401) },
-    { COEF_CONST(0.689540505409241), COEF_CONST(0.724247097969055) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.575808227062225), COEF_CONST(0.817584812641144) },
-    { COEF_CONST(0.514102697372437), COEF_CONST(0.857728660106659) },
-    { COEF_CONST(0.449611306190491), COEF_CONST(0.893224298954010) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.313681751489639), COEF_CONST(0.949528157711029) },
-    { COEF_CONST(0.242980241775513), COEF_CONST(0.970031261444092) },
-    { COEF_CONST(0.170961856842041), COEF_CONST(0.985277652740479) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(0.024541255086660), COEF_CONST(0.999698817729950) },
-    { COEF_CONST(-0.049067739397287), COEF_CONST(0.998795449733734) },
-    { COEF_CONST(-0.122410707175732), COEF_CONST(0.992479503154755) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.266712725162506), COEF_CONST(0.963776051998138) },
-    { COEF_CONST(-0.336889803409576), COEF_CONST(0.941544055938721) },
-    { COEF_CONST(-0.405241340398788), COEF_CONST(0.914209723472595) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.534997701644897), COEF_CONST(0.844853520393372) },
-    { COEF_CONST(-0.595699369907379), COEF_CONST(0.803207516670227) },
-    { COEF_CONST(-0.653172850608826), COEF_CONST(0.757208824157715) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.757208824157715), COEF_CONST(0.653172850608826) },
-    { COEF_CONST(-0.803207516670227), COEF_CONST(0.595699369907379) },
-    { COEF_CONST(-0.844853520393372), COEF_CONST(0.534997701644897) },
-    { COEF_CONST(-0.881921231746674), COEF_CONST(0.471396833658218) },
-    { COEF_CONST(-0.914209783077240), COEF_CONST(0.405241221189499) },
-    { COEF_CONST(-0.941544115543365), COEF_CONST(0.336889803409576) },
-    { COEF_CONST(-0.963776051998138), COEF_CONST(0.266712725162506) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.992479503154755), COEF_CONST(0.122410699725151) },
-    { COEF_CONST(-0.998795449733734), COEF_CONST(0.049067724496126) },
-    { COEF_CONST(-0.999698817729950), COEF_CONST(-0.024541147053242) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(-0.098017267882824) },
-    { COEF_CONST(-0.985277652740479), COEF_CONST(-0.170961990952492) },
-    { COEF_CONST(-0.970031261444092), COEF_CONST(-0.242980241775513) },
-    { COEF_CONST(-0.949528157711029), COEF_CONST(-0.313681781291962) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.893224298954010), COEF_CONST(-0.449611306190491) },
-    { COEF_CONST(-0.857728660106659), COEF_CONST(-0.514102697372437) },
-    { COEF_CONST(-0.817584872245789), COEF_CONST(-0.575808107852936) },
-    { COEF_CONST(-0.773010551929474), COEF_CONST(-0.634393215179443) },
-    { COEF_CONST(-0.724247038364410), COEF_CONST(-0.689540624618530) },
-    { COEF_CONST(-0.671558916568756), COEF_CONST(-0.740951180458069) },
-    { COEF_CONST(-0.615231573581696), COEF_CONST(-0.788346469402313) },
-    { COEF_CONST(-0.555570006370544), COEF_CONST(-0.831469774246216) },
-    { COEF_CONST(-0.492898195981979), COEF_CONST(-0.870086967945099) },
-    { COEF_CONST(-0.427554935216904), COEF_CONST(-0.903989374637604) },
-    { COEF_CONST(-0.359895110130310), COEF_CONST(-0.932992756366730) },
-    { COEF_CONST(-0.290284544229507), COEF_CONST(-0.956940352916718) },
-    { COEF_CONST(-0.219101369380951), COEF_CONST(-0.975702106952667) },
-    { COEF_CONST(-0.146730408072472), COEF_CONST(-0.989176511764526) },
-    { COEF_CONST(-0.073564760386944), COEF_CONST(-0.997290432453156) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.995184719562531), COEF_CONST(0.098017141222954) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.881921231746674), COEF_CONST(0.471396744251251) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.773010432720184), COEF_CONST(0.634393334388733) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.471396654844284), COEF_CONST(0.881921291351318) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.290284633636475), COEF_CONST(0.956940352916718) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.980785250663757), COEF_CONST(0.195090323686600) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.555570185184479), COEF_CONST(0.831469655036926) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.195090234279633), COEF_CONST(0.980785310268402) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.555570363998413), COEF_CONST(0.831469535827637) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.831469655036926), COEF_CONST(0.555570185184479) },
-    { COEF_CONST(-0.923879623413086), COEF_CONST(0.382683277130127) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.956940352916718), COEF_CONST(0.290284663438797) },
-    { COEF_CONST(0.831469595432281), COEF_CONST(0.555570244789124) },
-    { COEF_CONST(0.634393274784088), COEF_CONST(0.773010432720184) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.098017133772373), COEF_CONST(0.995184719562531) },
-    { COEF_CONST(-0.195090323686600), COEF_CONST(0.980785250663757) },
-    { COEF_CONST(-0.471396833658218), COEF_CONST(0.881921231746674) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.881921231746674), COEF_CONST(0.471396833658218) },
-    { COEF_CONST(-0.980785310268402), COEF_CONST(0.195090308785439) },
-    { COEF_CONST(-0.995184719562531), COEF_CONST(-0.098017267882824) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.773010551929474), COEF_CONST(-0.634393215179443) },
-    { COEF_CONST(-0.555570006370544), COEF_CONST(-0.831469774246216) },
-    { COEF_CONST(-0.290284544229507), COEF_CONST(-0.956940352916718) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.000000011924881), COEF_CONST(-1.000000000000000) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999698817729950), FRAC_CONST(0.024541229009628) },
+    { FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352) },
+    { FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.992479562759399), FRAC_CONST(0.122410677373409) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.985277652740479), FRAC_CONST(0.170961901545525) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500) },
+    { FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029) },
+    { FRAC_CONST(0.963776051998138), FRAC_CONST(0.266712784767151) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.949528157711029), FRAC_CONST(0.313681751489639) },
+    { FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221) },
+    { FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.914209723472595), FRAC_CONST(0.405241340398788) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.893224298954010), FRAC_CONST(0.449611335992813) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302) },
+    { FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(0.844853579998016), FRAC_CONST(0.534997642040253) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.817584812641144), FRAC_CONST(0.575808227062225) },
+    { FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734) },
+    { FRAC_CONST(0.788346409797668), FRAC_CONST(0.615231633186340) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.724247097969055), FRAC_CONST(0.689540565013886) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055) },
+    { FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069) },
+    { FRAC_CONST(0.653172791004181), FRAC_CONST(0.757208883762360) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.615231573581696), FRAC_CONST(0.788346409797668) },
+    { FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(0.575808167457581), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.534997642040253), FRAC_CONST(0.844853579998016) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.492898195981979), FRAC_CONST(0.870086967945099) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(0.405241280794144), FRAC_CONST(0.914209783077240) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.359894961118698), FRAC_CONST(0.932992815971375) },
+    { FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(0.313681662082672), FRAC_CONST(0.949528217315674) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.266712754964828), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.219101220369339), FRAC_CONST(0.975702106952667) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(0.122410625219345), FRAC_CONST(0.992479562759399) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.073564492166042), FRAC_CONST(0.997290432453156) },
+    { FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(0.024541135877371), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.998795449733734), FRAC_CONST(0.049067676067352) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.970031261444092), FRAC_CONST(0.242980197072029) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.941544055938721), FRAC_CONST(0.336889863014221) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.803207516670227), FRAC_CONST(0.595699310302734) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.671558916568756), FRAC_CONST(0.740951180458069) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.595699310302734), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.427555114030838), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.336889833211899), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.242980122566223), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.146730497479439), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.049067649990320), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.098017223179340), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.146730571985245), FRAC_CONST(0.989176511764526) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.242980197072029), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(-0.290284723043442), FRAC_CONST(0.956940293312073) },
+    { FRAC_CONST(-0.336889922618866), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.427555084228516), FRAC_CONST(0.903989315032959) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.514102756977081), FRAC_CONST(0.857728600502014) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(-0.634393274784088), FRAC_CONST(0.773010492324829) },
+    { FRAC_CONST(-0.671559035778046), FRAC_CONST(0.740951061248779) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.740951240062714), FRAC_CONST(0.671558856964111) },
+    { FRAC_CONST(-0.773010492324829), FRAC_CONST(0.634393274784088) },
+    { FRAC_CONST(-0.803207635879517), FRAC_CONST(0.595699131488800) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.857728600502014), FRAC_CONST(0.514102756977081) },
+    { FRAC_CONST(-0.881921350955963), FRAC_CONST(0.471396625041962) },
+    { FRAC_CONST(-0.903989315032959), FRAC_CONST(0.427555054426193) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576) },
+    { FRAC_CONST(-0.956940352916718), FRAC_CONST(0.290284723043442) },
+    { FRAC_CONST(-0.970031261444092), FRAC_CONST(0.242980077862740) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.989176511764526), FRAC_CONST(0.146730333566666) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(0.098017096519470) },
+    { FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067486077547) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.997290432453156), FRAC_CONST(0.073564566671848) },
+    { FRAC_CONST(0.989176511764526), FRAC_CONST(0.146730467677116) },
+    { FRAC_CONST(0.975702106952667), FRAC_CONST(0.219101235270500) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.932992815971375), FRAC_CONST(0.359895050525665) },
+    { FRAC_CONST(0.903989315032959), FRAC_CONST(0.427555084228516) },
+    { FRAC_CONST(0.870086967945099), FRAC_CONST(0.492898225784302) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.788346469402313), FRAC_CONST(0.615231573581696) },
+    { FRAC_CONST(0.740951120853424), FRAC_CONST(0.671558976173401) },
+    { FRAC_CONST(0.689540505409241), FRAC_CONST(0.724247097969055) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.575808227062225), FRAC_CONST(0.817584812641144) },
+    { FRAC_CONST(0.514102697372437), FRAC_CONST(0.857728660106659) },
+    { FRAC_CONST(0.449611306190491), FRAC_CONST(0.893224298954010) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.313681751489639), FRAC_CONST(0.949528157711029) },
+    { FRAC_CONST(0.242980241775513), FRAC_CONST(0.970031261444092) },
+    { FRAC_CONST(0.170961856842041), FRAC_CONST(0.985277652740479) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(0.024541255086660), FRAC_CONST(0.999698817729950) },
+    { FRAC_CONST(-0.049067739397287), FRAC_CONST(0.998795449733734) },
+    { FRAC_CONST(-0.122410707175732), FRAC_CONST(0.992479503154755) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.266712725162506), FRAC_CONST(0.963776051998138) },
+    { FRAC_CONST(-0.336889803409576), FRAC_CONST(0.941544055938721) },
+    { FRAC_CONST(-0.405241340398788), FRAC_CONST(0.914209723472595) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.534997701644897), FRAC_CONST(0.844853520393372) },
+    { FRAC_CONST(-0.595699369907379), FRAC_CONST(0.803207516670227) },
+    { FRAC_CONST(-0.653172850608826), FRAC_CONST(0.757208824157715) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.757208824157715), FRAC_CONST(0.653172850608826) },
+    { FRAC_CONST(-0.803207516670227), FRAC_CONST(0.595699369907379) },
+    { FRAC_CONST(-0.844853520393372), FRAC_CONST(0.534997701644897) },
+    { FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218) },
+    { FRAC_CONST(-0.914209783077240), FRAC_CONST(0.405241221189499) },
+    { FRAC_CONST(-0.941544115543365), FRAC_CONST(0.336889803409576) },
+    { FRAC_CONST(-0.963776051998138), FRAC_CONST(0.266712725162506) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.992479503154755), FRAC_CONST(0.122410699725151) },
+    { FRAC_CONST(-0.998795449733734), FRAC_CONST(0.049067724496126) },
+    { FRAC_CONST(-0.999698817729950), FRAC_CONST(-0.024541147053242) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824) },
+    { FRAC_CONST(-0.985277652740479), FRAC_CONST(-0.170961990952492) },
+    { FRAC_CONST(-0.970031261444092), FRAC_CONST(-0.242980241775513) },
+    { FRAC_CONST(-0.949528157711029), FRAC_CONST(-0.313681781291962) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.893224298954010), FRAC_CONST(-0.449611306190491) },
+    { FRAC_CONST(-0.857728660106659), FRAC_CONST(-0.514102697372437) },
+    { FRAC_CONST(-0.817584872245789), FRAC_CONST(-0.575808107852936) },
+    { FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443) },
+    { FRAC_CONST(-0.724247038364410), FRAC_CONST(-0.689540624618530) },
+    { FRAC_CONST(-0.671558916568756), FRAC_CONST(-0.740951180458069) },
+    { FRAC_CONST(-0.615231573581696), FRAC_CONST(-0.788346469402313) },
+    { FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216) },
+    { FRAC_CONST(-0.492898195981979), FRAC_CONST(-0.870086967945099) },
+    { FRAC_CONST(-0.427554935216904), FRAC_CONST(-0.903989374637604) },
+    { FRAC_CONST(-0.359895110130310), FRAC_CONST(-0.932992756366730) },
+    { FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718) },
+    { FRAC_CONST(-0.219101369380951), FRAC_CONST(-0.975702106952667) },
+    { FRAC_CONST(-0.146730408072472), FRAC_CONST(-0.989176511764526) },
+    { FRAC_CONST(-0.073564760386944), FRAC_CONST(-0.997290432453156) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.995184719562531), FRAC_CONST(0.098017141222954) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.881921231746674), FRAC_CONST(0.471396744251251) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.773010432720184), FRAC_CONST(0.634393334388733) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.471396654844284), FRAC_CONST(0.881921291351318) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.290284633636475), FRAC_CONST(0.956940352916718) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.980785250663757), FRAC_CONST(0.195090323686600) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.555570185184479), FRAC_CONST(0.831469655036926) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.195090234279633), FRAC_CONST(0.980785310268402) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.555570363998413), FRAC_CONST(0.831469535827637) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.831469655036926), FRAC_CONST(0.555570185184479) },
+    { FRAC_CONST(-0.923879623413086), FRAC_CONST(0.382683277130127) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.956940352916718), FRAC_CONST(0.290284663438797) },
+    { FRAC_CONST(0.831469595432281), FRAC_CONST(0.555570244789124) },
+    { FRAC_CONST(0.634393274784088), FRAC_CONST(0.773010432720184) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.098017133772373), FRAC_CONST(0.995184719562531) },
+    { FRAC_CONST(-0.195090323686600), FRAC_CONST(0.980785250663757) },
+    { FRAC_CONST(-0.471396833658218), FRAC_CONST(0.881921231746674) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.881921231746674), FRAC_CONST(0.471396833658218) },
+    { FRAC_CONST(-0.980785310268402), FRAC_CONST(0.195090308785439) },
+    { FRAC_CONST(-0.995184719562531), FRAC_CONST(-0.098017267882824) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.773010551929474), FRAC_CONST(-0.634393215179443) },
+    { FRAC_CONST(-0.555570006370544), FRAC_CONST(-0.831469774246216) },
+    { FRAC_CONST(-0.290284544229507), FRAC_CONST(-0.956940352916718) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.000000011924881), FRAC_CONST(-1.000000000000000) }
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 complex_t cfft_tab_240[] =
 {
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.999657332897186), COEF_CONST(0.026176949962974) },
-    { COEF_CONST(0.998629510402679), COEF_CONST(0.052335958927870) },
-    { COEF_CONST(0.996917307376862), COEF_CONST(0.078459098935127) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.991444885730743), COEF_CONST(0.130526199936867) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.983254909515381), COEF_CONST(0.182235524058342) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.965925812721252), COEF_CONST(0.258819043636322) },
-    { COEF_CONST(0.958819746971130), COEF_CONST(0.284015357494354) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.942641496658325), COEF_CONST(0.333806872367859) },
-    { COEF_CONST(0.933580398559570), COEF_CONST(0.358367949724197) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.902585268020630), COEF_CONST(0.430511116981506) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.878817081451416), COEF_CONST(0.477158784866333) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.852640151977539), COEF_CONST(0.522498548030853) },
-    { COEF_CONST(0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(0.824126183986664), COEF_CONST(0.566406250000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.793353319168091), COEF_CONST(0.608761429786682) },
-    { COEF_CONST(0.777145922183990), COEF_CONST(0.629320383071899) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.725374400615692), COEF_CONST(0.688354551792145) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.688354551792145), COEF_CONST(0.725374400615692) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(0.629320383071899), COEF_CONST(0.777145981788635) },
-    { COEF_CONST(0.608761370182037), COEF_CONST(0.793353378772736) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.566406250000000), COEF_CONST(0.824126183986664) },
-    { COEF_CONST(0.544638991355896), COEF_CONST(0.838670611381531) },
-    { COEF_CONST(0.522498488426209), COEF_CONST(0.852640211582184) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.477158755064011), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.430511027574539), COEF_CONST(0.902585327625275) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.358367860317230), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(0.333806812763214), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.284015327692032), COEF_CONST(0.958819746971130) },
-    { COEF_CONST(0.258819073438644), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(0.233445301651955), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.182235524058342), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.130526125431061), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(0.078459084033966), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(0.052335973829031), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(0.026176875457168), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.026176963001490), COEF_CONST(0.999657332897186) },
-    { COEF_CONST(-0.052336059510708), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.078459173440933), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.130526214838028), COEF_CONST(0.991444885730743) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.182235598564148), COEF_CONST(0.983254909515381) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.233445391058922), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(-0.258819162845612), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(-0.284015417098999), COEF_CONST(0.958819687366486) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.333806872367859), COEF_CONST(0.942641496658325) },
-    { COEF_CONST(-0.358367949724197), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(-0.382683515548706), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(-0.430511116981506), COEF_CONST(0.902585268020630) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.477158725261688), COEF_CONST(0.878817141056061) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.998629510402679), COEF_CONST(0.052335958927870) },
-    { COEF_CONST(0.994521915912628), COEF_CONST(0.104528464376926) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.978147625923157), COEF_CONST(0.207911700010300) },
-    { COEF_CONST(0.965925812721252), COEF_CONST(0.258819043636322) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.933580398559570), COEF_CONST(0.358367949724197) },
-    { COEF_CONST(0.913545429706573), COEF_CONST(0.406736642122269) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.866025388240814), COEF_CONST(0.500000000000000) },
-    { COEF_CONST(0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.777145922183990), COEF_CONST(0.629320383071899) },
-    { COEF_CONST(0.743144810199738), COEF_CONST(0.669130623340607) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.669130563735962), COEF_CONST(0.743144869804382) },
-    { COEF_CONST(0.629320383071899), COEF_CONST(0.777145981788635) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.544638991355896), COEF_CONST(0.838670611381531) },
-    { COEF_CONST(0.499999970197678), COEF_CONST(0.866025447845459) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.406736612319946), COEF_CONST(0.913545489311218) },
-    { COEF_CONST(0.358367860317230), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.258819073438644), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(0.207911655306816), COEF_CONST(0.978147625923157) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.104528419673443), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(0.052335973829031), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.052336059510708), COEF_CONST(0.998629510402679) },
-    { COEF_CONST(-0.104528509080410), COEF_CONST(0.994521915912628) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.207911744713783), COEF_CONST(0.978147566318512) },
-    { COEF_CONST(-0.258819162845612), COEF_CONST(0.965925812721252) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.358367949724197), COEF_CONST(0.933580458164215) },
-    { COEF_CONST(-0.406736701726913), COEF_CONST(0.913545429706573) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.500000059604645), COEF_CONST(0.866025388240814) },
-    { COEF_CONST(-0.544639050960541), COEF_CONST(0.838670551776886) },
-    { COEF_CONST(-0.587785184383392), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.629320502281189), COEF_CONST(0.777145862579346) },
-    { COEF_CONST(-0.669130682945251), COEF_CONST(0.743144810199738) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.743144929409027), COEF_CONST(0.669130444526672) },
-    { COEF_CONST(-0.777146041393280), COEF_CONST(0.629320263862610) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.838670551776886), COEF_CONST(0.544639050960541) },
-    { COEF_CONST(-0.866025388240814), COEF_CONST(0.500000059604645) },
-    { COEF_CONST(-0.891006588935852), COEF_CONST(0.453990370035172) },
-    { COEF_CONST(-0.913545489311218), COEF_CONST(0.406736582517624) },
-    { COEF_CONST(-0.933580458164215), COEF_CONST(0.358367919921875) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.965925872325897), COEF_CONST(0.258818924427032) },
-    { COEF_CONST(-0.978147625923157), COEF_CONST(0.207911610603333) },
-    { COEF_CONST(-0.987688362598419), COEF_CONST(0.156434446573257) },
-    { COEF_CONST(-0.994521915912628), COEF_CONST(0.104528494179249) },
-    { COEF_CONST(-0.998629570007324), COEF_CONST(0.052335809916258) },
-    { COEF_CONST(-1.000000000000000), COEF_CONST(-0.000000087422777) },
-    { COEF_CONST(-0.998629510402679), COEF_CONST(-0.052335985004902) },
-    { COEF_CONST(-0.994521856307983), COEF_CONST(-0.104528672993183) },
-    { COEF_CONST(-0.987688302993774), COEF_CONST(-0.156434610486031) },
-    { COEF_CONST(-0.978147566318512), COEF_CONST(-0.207911789417267) },
-    { COEF_CONST(-0.965925812721252), COEF_CONST(-0.258819073438644) },
-    { COEF_CONST(-0.951056540012360), COEF_CONST(-0.309016972780228) },
-    { COEF_CONST(-0.933580398559570), COEF_CONST(-0.358368098735809) },
-    { COEF_CONST(-0.913545429706573), COEF_CONST(-0.406736731529236) },
-    { COEF_CONST(-0.891006529331207), COEF_CONST(-0.453990548849106) },
-    { COEF_CONST(-0.866025269031525), COEF_CONST(-0.500000178813934) },
-    { COEF_CONST(-0.838670492172241), COEF_CONST(-0.544639170169830) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(-0.777145922183990), COEF_CONST(-0.629320442676544) },
-    { COEF_CONST(-0.743144810199738), COEF_CONST(-0.669130623340607) },
-    { COEF_CONST(-0.707106649875641), COEF_CONST(-0.707106888294220) },
-    { COEF_CONST(-0.669130504131317), COEF_CONST(-0.743144869804382) },
-    { COEF_CONST(-0.629320323467255), COEF_CONST(-0.777145981788635) },
-    { COEF_CONST(-0.587785065174103), COEF_CONST(-0.809017121791840) },
-    { COEF_CONST(-0.544639110565186), COEF_CONST(-0.838670551776886) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.996917307376862), COEF_CONST(0.078459098935127) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.923879504203796), COEF_CONST(0.382683455944061) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.852640151977539), COEF_CONST(0.522498548030853) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.649448037147522), COEF_CONST(0.760405957698822) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.522498488426209), COEF_CONST(0.852640211582184) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.233445301651955), COEF_CONST(0.972369909286499) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(0.078459084033966), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.987688362598419), COEF_CONST(0.156434476375580) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.453990519046783), COEF_CONST(0.891006529331207) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.000000043711388), COEF_CONST(1.000000000000000) },
-    { COEF_CONST(-0.156434446573257), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.453990608453751), COEF_CONST(0.891006469726563) },
-    { COEF_CONST(-0.587785184383392), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(-0.891006588935852), COEF_CONST(0.453990370035172) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.987688362598419), COEF_CONST(0.156434446573257) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.972369909286499), COEF_CONST(0.233445376157761) },
-    { COEF_CONST(0.891006529331207), COEF_CONST(0.453990519046783) },
-    { COEF_CONST(0.760405957698822), COEF_CONST(0.649448096752167) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.382683426141739), COEF_CONST(0.923879504203796) },
-    { COEF_CONST(0.156434372067451), COEF_CONST(0.987688362598419) },
-    { COEF_CONST(-0.078459173440933), COEF_CONST(0.996917307376862) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.522498667240143), COEF_CONST(0.852640092372894) },
-    { COEF_CONST(-0.707106769084930), COEF_CONST(0.707106769084930) },
-    { COEF_CONST(-0.852640211582184), COEF_CONST(0.522498488426209) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.996917366981506), COEF_CONST(0.078459039330482) },
-    { COEF_CONST(-0.987688302993774), COEF_CONST(-0.156434610486031) },
-    { COEF_CONST(-0.923879504203796), COEF_CONST(-0.382683426141739) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(-0.649447917938232), COEF_CONST(-0.760406076908112) },
-    { COEF_CONST(-0.453990221023560), COEF_CONST(-0.891006648540497) },
-    { COEF_CONST(-0.233445450663567), COEF_CONST(-0.972369909286499) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.951056540012360), COEF_CONST(0.309017002582550) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.809017002582550), COEF_CONST(0.587785243988037) },
-    { COEF_CONST(0.309016972780228), COEF_CONST(0.951056540012360) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.809017062187195), COEF_CONST(0.587785184383392) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.587785243988037), COEF_CONST(0.809017002582550) },
-    { COEF_CONST(-0.309017032384872), COEF_CONST(0.951056480407715) },
-    { COEF_CONST(-0.951056599617004), COEF_CONST(0.309016793966293) },
-    { COEF_CONST(-0.809016942977905), COEF_CONST(-0.587785363197327) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(1.000000000000000), COEF_CONST(0.000000000000000) },
-    { COEF_CONST(0.309017121791840), COEF_CONST(-0.951056480407715) }
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.999657332897186), FRAC_CONST(0.026176949962974) },
+    { FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870) },
+    { FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.991444885730743), FRAC_CONST(0.130526199936867) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.983254909515381), FRAC_CONST(0.182235524058342) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322) },
+    { FRAC_CONST(0.958819746971130), FRAC_CONST(0.284015357494354) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.942641496658325), FRAC_CONST(0.333806872367859) },
+    { FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.902585268020630), FRAC_CONST(0.430511116981506) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.878817081451416), FRAC_CONST(0.477158784866333) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853) },
+    { FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(0.824126183986664), FRAC_CONST(0.566406250000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.793353319168091), FRAC_CONST(0.608761429786682) },
+    { FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.725374400615692), FRAC_CONST(0.688354551792145) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.688354551792145), FRAC_CONST(0.725374400615692) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635) },
+    { FRAC_CONST(0.608761370182037), FRAC_CONST(0.793353378772736) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.566406250000000), FRAC_CONST(0.824126183986664) },
+    { FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531) },
+    { FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.477158755064011), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.430511027574539), FRAC_CONST(0.902585327625275) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(0.333806812763214), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.284015327692032), FRAC_CONST(0.958819746971130) },
+    { FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.182235524058342), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.130526125431061), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(0.026176875457168), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.026176963001490), FRAC_CONST(0.999657332897186) },
+    { FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.130526214838028), FRAC_CONST(0.991444885730743) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.182235598564148), FRAC_CONST(0.983254909515381) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.233445391058922), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(-0.284015417098999), FRAC_CONST(0.958819687366486) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.333806872367859), FRAC_CONST(0.942641496658325) },
+    { FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(-0.382683515548706), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(-0.430511116981506), FRAC_CONST(0.902585268020630) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.477158725261688), FRAC_CONST(0.878817141056061) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.998629510402679), FRAC_CONST(0.052335958927870) },
+    { FRAC_CONST(0.994521915912628), FRAC_CONST(0.104528464376926) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.978147625923157), FRAC_CONST(0.207911700010300) },
+    { FRAC_CONST(0.965925812721252), FRAC_CONST(0.258819043636322) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.933580398559570), FRAC_CONST(0.358367949724197) },
+    { FRAC_CONST(0.913545429706573), FRAC_CONST(0.406736642122269) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.866025388240814), FRAC_CONST(0.500000000000000) },
+    { FRAC_CONST(0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.777145922183990), FRAC_CONST(0.629320383071899) },
+    { FRAC_CONST(0.743144810199738), FRAC_CONST(0.669130623340607) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.669130563735962), FRAC_CONST(0.743144869804382) },
+    { FRAC_CONST(0.629320383071899), FRAC_CONST(0.777145981788635) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.544638991355896), FRAC_CONST(0.838670611381531) },
+    { FRAC_CONST(0.499999970197678), FRAC_CONST(0.866025447845459) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.406736612319946), FRAC_CONST(0.913545489311218) },
+    { FRAC_CONST(0.358367860317230), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.258819073438644), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(0.207911655306816), FRAC_CONST(0.978147625923157) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.104528419673443), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(0.052335973829031), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.052336059510708), FRAC_CONST(0.998629510402679) },
+    { FRAC_CONST(-0.104528509080410), FRAC_CONST(0.994521915912628) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.207911744713783), FRAC_CONST(0.978147566318512) },
+    { FRAC_CONST(-0.258819162845612), FRAC_CONST(0.965925812721252) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.358367949724197), FRAC_CONST(0.933580458164215) },
+    { FRAC_CONST(-0.406736701726913), FRAC_CONST(0.913545429706573) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.500000059604645), FRAC_CONST(0.866025388240814) },
+    { FRAC_CONST(-0.544639050960541), FRAC_CONST(0.838670551776886) },
+    { FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.629320502281189), FRAC_CONST(0.777145862579346) },
+    { FRAC_CONST(-0.669130682945251), FRAC_CONST(0.743144810199738) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.743144929409027), FRAC_CONST(0.669130444526672) },
+    { FRAC_CONST(-0.777146041393280), FRAC_CONST(0.629320263862610) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.838670551776886), FRAC_CONST(0.544639050960541) },
+    { FRAC_CONST(-0.866025388240814), FRAC_CONST(0.500000059604645) },
+    { FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172) },
+    { FRAC_CONST(-0.913545489311218), FRAC_CONST(0.406736582517624) },
+    { FRAC_CONST(-0.933580458164215), FRAC_CONST(0.358367919921875) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.965925872325897), FRAC_CONST(0.258818924427032) },
+    { FRAC_CONST(-0.978147625923157), FRAC_CONST(0.207911610603333) },
+    { FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257) },
+    { FRAC_CONST(-0.994521915912628), FRAC_CONST(0.104528494179249) },
+    { FRAC_CONST(-0.998629570007324), FRAC_CONST(0.052335809916258) },
+    { FRAC_CONST(-1.000000000000000), FRAC_CONST(-0.000000087422777) },
+    { FRAC_CONST(-0.998629510402679), FRAC_CONST(-0.052335985004902) },
+    { FRAC_CONST(-0.994521856307983), FRAC_CONST(-0.104528672993183) },
+    { FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031) },
+    { FRAC_CONST(-0.978147566318512), FRAC_CONST(-0.207911789417267) },
+    { FRAC_CONST(-0.965925812721252), FRAC_CONST(-0.258819073438644) },
+    { FRAC_CONST(-0.951056540012360), FRAC_CONST(-0.309016972780228) },
+    { FRAC_CONST(-0.933580398559570), FRAC_CONST(-0.358368098735809) },
+    { FRAC_CONST(-0.913545429706573), FRAC_CONST(-0.406736731529236) },
+    { FRAC_CONST(-0.891006529331207), FRAC_CONST(-0.453990548849106) },
+    { FRAC_CONST(-0.866025269031525), FRAC_CONST(-0.500000178813934) },
+    { FRAC_CONST(-0.838670492172241), FRAC_CONST(-0.544639170169830) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(-0.777145922183990), FRAC_CONST(-0.629320442676544) },
+    { FRAC_CONST(-0.743144810199738), FRAC_CONST(-0.669130623340607) },
+    { FRAC_CONST(-0.707106649875641), FRAC_CONST(-0.707106888294220) },
+    { FRAC_CONST(-0.669130504131317), FRAC_CONST(-0.743144869804382) },
+    { FRAC_CONST(-0.629320323467255), FRAC_CONST(-0.777145981788635) },
+    { FRAC_CONST(-0.587785065174103), FRAC_CONST(-0.809017121791840) },
+    { FRAC_CONST(-0.544639110565186), FRAC_CONST(-0.838670551776886) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.996917307376862), FRAC_CONST(0.078459098935127) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.923879504203796), FRAC_CONST(0.382683455944061) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.852640151977539), FRAC_CONST(0.522498548030853) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.649448037147522), FRAC_CONST(0.760405957698822) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.522498488426209), FRAC_CONST(0.852640211582184) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.233445301651955), FRAC_CONST(0.972369909286499) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(0.078459084033966), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.987688362598419), FRAC_CONST(0.156434476375580) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.453990519046783), FRAC_CONST(0.891006529331207) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.000000043711388), FRAC_CONST(1.000000000000000) },
+    { FRAC_CONST(-0.156434446573257), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.453990608453751), FRAC_CONST(0.891006469726563) },
+    { FRAC_CONST(-0.587785184383392), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(-0.891006588935852), FRAC_CONST(0.453990370035172) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.987688362598419), FRAC_CONST(0.156434446573257) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.972369909286499), FRAC_CONST(0.233445376157761) },
+    { FRAC_CONST(0.891006529331207), FRAC_CONST(0.453990519046783) },
+    { FRAC_CONST(0.760405957698822), FRAC_CONST(0.649448096752167) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.382683426141739), FRAC_CONST(0.923879504203796) },
+    { FRAC_CONST(0.156434372067451), FRAC_CONST(0.987688362598419) },
+    { FRAC_CONST(-0.078459173440933), FRAC_CONST(0.996917307376862) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.522498667240143), FRAC_CONST(0.852640092372894) },
+    { FRAC_CONST(-0.707106769084930), FRAC_CONST(0.707106769084930) },
+    { FRAC_CONST(-0.852640211582184), FRAC_CONST(0.522498488426209) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.996917366981506), FRAC_CONST(0.078459039330482) },
+    { FRAC_CONST(-0.987688302993774), FRAC_CONST(-0.156434610486031) },
+    { FRAC_CONST(-0.923879504203796), FRAC_CONST(-0.382683426141739) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(-0.649447917938232), FRAC_CONST(-0.760406076908112) },
+    { FRAC_CONST(-0.453990221023560), FRAC_CONST(-0.891006648540497) },
+    { FRAC_CONST(-0.233445450663567), FRAC_CONST(-0.972369909286499) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.951056540012360), FRAC_CONST(0.309017002582550) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.809017002582550), FRAC_CONST(0.587785243988037) },
+    { FRAC_CONST(0.309016972780228), FRAC_CONST(0.951056540012360) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.809017062187195), FRAC_CONST(0.587785184383392) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.587785243988037), FRAC_CONST(0.809017002582550) },
+    { FRAC_CONST(-0.309017032384872), FRAC_CONST(0.951056480407715) },
+    { FRAC_CONST(-0.951056599617004), FRAC_CONST(0.309016793966293) },
+    { FRAC_CONST(-0.809016942977905), FRAC_CONST(-0.587785363197327) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(1.000000000000000), FRAC_CONST(0.000000000000000) },
+    { FRAC_CONST(0.309017121791840), FRAC_CONST(-0.951056480407715) }
 };
 #endif
 
--- a/libfaad/common.c
+++ b/libfaad/common.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: common.c,v 1.11 2003/11/04 21:43:30 menno Exp $
+** $Id: common.c,v 1.12 2003/11/12 20:47:57 menno Exp $
 **/
 
 /* just some common functions that could be used anywhere */
@@ -78,6 +78,41 @@
         return pred_sfb_max[sr_index];
 
     return 0;
+}
+
+uint8_t max_tns_sfb(uint8_t sr_index, uint8_t object_type, uint8_t is_short)
+{
+    /* entry for each sampling rate	
+     * 1    Main/LC long window
+     * 2    Main/LC short window
+     * 3    SSR long window
+     * 4    SSR short window
+     */
+    static const uint8_t tns_sbf_max[][4] =
+    {
+        {31,  9, 28, 7}, /* 96000 */
+        {31,  9, 28, 7}, /* 88200 */
+        {34, 10, 27, 7}, /* 64000 */
+        {40, 14, 26, 6}, /* 48000 */
+        {42, 14, 26, 6}, /* 44100 */
+        {51, 14, 26, 6}, /* 32000 */
+        {46, 14, 29, 7}, /* 24000 */
+        {46, 14, 29, 7}, /* 22050 */
+        {42, 14, 23, 8}, /* 16000 */
+        {42, 14, 23, 8}, /* 12000 */
+        {42, 14, 23, 8}, /* 11025 */
+        {39, 14, 19, 7}, /*  8000 */
+        {39, 14, 19, 7}, /*  7350 */
+        {0,0,0,0},
+        {0,0,0,0},
+        {0,0,0,0}
+    };
+    uint8_t i = 0;
+
+    if (is_short) i++;
+    if (object_type == SSR) i += 2;
+
+    return tns_sbf_max[sr_index][i];
 }
 
 /* Returns 0 if an object type is decodable, otherwise returns -1 */
--- a/libfaad/common.h
+++ b/libfaad/common.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: common.h,v 1.37 2003/11/07 21:04:14 menno Exp $
+** $Id: common.h,v 1.38 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifndef __COMMON_H__
@@ -77,9 +77,6 @@
 #endif
 #endif
 
-// Define SMALL_IQ_TAB for smaller lookup table (also bigger error)
-//#define SMALL_IQ_TAB
-
 #define ALLOW_SMALL_FRAMELENGTH
 
 
@@ -243,28 +240,46 @@
 
   #include <math.h>
 
-  #define MUL(A,B) ((A)*(B))
-  #define MUL_C_C(A,B) ((A)*(B))
-  #define MUL_R_C(A,B) ((A)*(B))
+  #define MUL_R(A,B) ((A)*(B))
+  #define MUL_C(A,B) ((A)*(B))
+  #define MUL_F(A,B) ((A)*(B))
 
+  /* Complex multiplication */
+  static INLINE void ComplexMult(real_t *y1, real_t *y2,
+      real_t x1, real_t x2, real_t c1, real_t c2)
+  {
+      *y1 = MUL_F(x1, c1) + MUL_F(x2, c2);
+      *y2 = MUL_F(x2, c1) - MUL_F(x1, c2);
+  }
+
   #define REAL_CONST(A) ((real_t)(A))
   #define COEF_CONST(A) ((real_t)(A))
+  #define FRAC_CONST(A) ((real_t)(A)) /* pure fractional part */
 
 #else /* Normal floating point operation */
 
   typedef float real_t;
 
-  #define MUL(A,B) ((A)*(B))
-  #define MUL_C_C(A,B) ((A)*(B))
-  #define MUL_R_C(A,B) ((A)*(B))
+  #define MUL_R(A,B) ((A)*(B))
+  #define MUL_C(A,B) ((A)*(B))
+  #define MUL_F(A,B) ((A)*(B))
 
   #define REAL_CONST(A) ((real_t)(A))
   #define COEF_CONST(A) ((real_t)(A))
+  #define FRAC_CONST(A) ((real_t)(A)) /* pure fractional part */
 
+  /* Complex multiplication */
+  static INLINE void ComplexMult(real_t *y1, real_t *y2,
+      real_t x1, real_t x2, real_t c1, real_t c2)
+  {
+      *y1 = MUL_F(x1, c1) + MUL_F(x2, c2);
+      *y2 = MUL_F(x2, c1) - MUL_F(x1, c2);
+  }
 
+
   #ifdef _WIN32
     #define HAS_LRINTF
-    __inline int lrintf(float f)
+    static INLINE int lrintf(float f)
     {
         int i;
         __asm
@@ -342,6 +357,7 @@
 uint32_t random_int(void);
 uint8_t get_sr_index(uint32_t samplerate);
 uint8_t max_pred_sfb(uint8_t sr_index);
+uint8_t max_tns_sfb(uint8_t sr_index, uint8_t object_type, uint8_t is_short);
 uint32_t get_sample_rate(uint8_t sr_index);
 int8_t can_decode_ot(uint8_t object_type);
 
--- a/libfaad/decoder.c
+++ b/libfaad/decoder.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: decoder.c,v 1.81 2003/11/06 14:08:58 menno Exp $
+** $Id: decoder.c,v 1.82 2003/11/12 20:47:57 menno Exp $
 **/
 
 #include "common.h"
--- a/libfaad/decoder.h
+++ b/libfaad/decoder.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: decoder.h,v 1.32 2003/11/04 21:43:30 menno Exp $
+** $Id: decoder.h,v 1.34 2003/12/17 14:43:16 menno Exp $
 **/
 
 #ifndef __DECODER_H__
--- a/libfaad/drc.c
+++ b/libfaad/drc.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: drc.c,v 1.18 2003/11/04 21:43:30 menno Exp $
+** $Id: drc.c,v 1.19 2003/11/12 20:47:57 menno Exp $
 **/
 
 #include "common.h"
@@ -153,7 +153,7 @@
             {
                 spec[i] >>= -exp;
                 if (frac)
-                    spec[i] = MUL(spec[i],drc_pow2_table[frac+23]);
+                    spec[i] = MUL_R(spec[i],drc_pow2_table[frac+23]);
             }
         } else {
             for (i = bottom; i < top; i++)
@@ -160,7 +160,7 @@
             {
                 spec[i] <<= exp;
                 if (frac)
-                    spec[i] = MUL(spec[i],drc_pow2_table[frac+23]);
+                    spec[i] = MUL_R(spec[i],drc_pow2_table[frac+23]);
             }
         }
 #endif
--- a/libfaad/filtbank.c
+++ b/libfaad/filtbank.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: filtbank.c,v 1.31 2003/11/04 21:43:30 menno Exp $
+** $Id: filtbank.c,v 1.32 2003/11/12 20:47:57 menno Exp $
 **/
 
 #include "common.h"
@@ -195,17 +195,17 @@
         imdct(fb, freq_in, transf_buf, 2*nlong);
         for (i = 0; i < nlong; i+=4)
         {
-            time_out[i]   = time_out[nlong+i]   + MUL_R_C(transf_buf[i],window_long_prev[i]);
-            time_out[i+1] = time_out[nlong+i+1] + MUL_R_C(transf_buf[i+1],window_long_prev[i+1]);
-            time_out[i+2] = time_out[nlong+i+2] + MUL_R_C(transf_buf[i+2],window_long_prev[i+2]);
-            time_out[i+3] = time_out[nlong+i+3] + MUL_R_C(transf_buf[i+3],window_long_prev[i+3]);
+            time_out[i]   = time_out[nlong+i]   + MUL_F(transf_buf[i],window_long_prev[i]);
+            time_out[i+1] = time_out[nlong+i+1] + MUL_F(transf_buf[i+1],window_long_prev[i+1]);
+            time_out[i+2] = time_out[nlong+i+2] + MUL_F(transf_buf[i+2],window_long_prev[i+2]);
+            time_out[i+3] = time_out[nlong+i+3] + MUL_F(transf_buf[i+3],window_long_prev[i+3]);
         }
         for (i = 0; i < nlong; i+=4)
         {
-            time_out[nlong+i]   = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]);
-            time_out[nlong+i+1] = MUL_R_C(transf_buf[nlong+i+1],window_long[nlong-2-i]);
-            time_out[nlong+i+2] = MUL_R_C(transf_buf[nlong+i+2],window_long[nlong-3-i]);
-            time_out[nlong+i+3] = MUL_R_C(transf_buf[nlong+i+3],window_long[nlong-4-i]);
+            time_out[nlong+i]   = MUL_F(transf_buf[nlong+i],window_long[nlong-1-i]);
+            time_out[nlong+i+1] = MUL_F(transf_buf[nlong+i+1],window_long[nlong-2-i]);
+            time_out[nlong+i+2] = MUL_F(transf_buf[nlong+i+2],window_long[nlong-3-i]);
+            time_out[nlong+i+3] = MUL_F(transf_buf[nlong+i+3],window_long[nlong-4-i]);
         }
         break;
 
@@ -213,15 +213,15 @@
         imdct(fb, freq_in, transf_buf, 2*nlong);
         for (i = 0; i < nlong; i+=4)
         {
-            time_out[i]   = time_out[nlong+i]   + MUL_R_C(transf_buf[i],window_long_prev[i]);
-            time_out[i+1] = time_out[nlong+i+1] + MUL_R_C(transf_buf[i+1],window_long_prev[i+1]);
-            time_out[i+2] = time_out[nlong+i+2] + MUL_R_C(transf_buf[i+2],window_long_prev[i+2]);
-            time_out[i+3] = time_out[nlong+i+3] + MUL_R_C(transf_buf[i+3],window_long_prev[i+3]);
+            time_out[i]   = time_out[nlong+i]   + MUL_F(transf_buf[i],window_long_prev[i]);
+            time_out[i+1] = time_out[nlong+i+1] + MUL_F(transf_buf[i+1],window_long_prev[i+1]);
+            time_out[i+2] = time_out[nlong+i+2] + MUL_F(transf_buf[i+2],window_long_prev[i+2]);
+            time_out[i+3] = time_out[nlong+i+3] + MUL_F(transf_buf[i+3],window_long_prev[i+3]);
         }
         for (i = 0; i < nflat_ls; i++)
             time_out[nlong+i] = transf_buf[nlong+i];
         for (i = 0; i < nshort; i++)
-            time_out[nlong+nflat_ls+i] = MUL_R_C(transf_buf[nlong+nflat_ls+i],window_short[nshort-i-1]);
+            time_out[nlong+nflat_ls+i] = MUL_F(transf_buf[nlong+nflat_ls+i],window_short[nshort-i-1]);
         for (i = 0; i < nflat_ls; i++)
             time_out[nlong+nflat_ls+nshort+i] = 0;
         break;
@@ -239,18 +239,18 @@
             time_out[i] = time_out[nlong+i];
         for(i = nshort-1; i >= 0; i--)
         {
-            time_out[nflat_ls+         i] = time_out[nlong+nflat_ls+         i] + MUL_R_C(transf_buf[nshort*0+i],window_short_prev[i]);
-            time_out[nflat_ls+1*nshort+i] = time_out[nlong+nflat_ls+nshort*1+i] + MUL_R_C(transf_buf[nshort*1+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*2+i],window_short[i]);
-            time_out[nflat_ls+2*nshort+i] = time_out[nlong+nflat_ls+nshort*2+i] + MUL_R_C(transf_buf[nshort*3+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*4+i],window_short[i]);
-            time_out[nflat_ls+3*nshort+i] = time_out[nlong+nflat_ls+nshort*3+i] + MUL_R_C(transf_buf[nshort*5+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*6+i],window_short[i]);
+            time_out[nflat_ls+         i] = time_out[nlong+nflat_ls+         i] + MUL_F(transf_buf[nshort*0+i],window_short_prev[i]);
+            time_out[nflat_ls+1*nshort+i] = time_out[nlong+nflat_ls+nshort*1+i] + MUL_F(transf_buf[nshort*1+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*2+i],window_short[i]);
+            time_out[nflat_ls+2*nshort+i] = time_out[nlong+nflat_ls+nshort*2+i] + MUL_F(transf_buf[nshort*3+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*4+i],window_short[i]);
+            time_out[nflat_ls+3*nshort+i] = time_out[nlong+nflat_ls+nshort*3+i] + MUL_F(transf_buf[nshort*5+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*6+i],window_short[i]);
             if (i < trans)
-                time_out[nflat_ls+4*nshort+i] = time_out[nlong+nflat_ls+nshort*4+i] + MUL_R_C(transf_buf[nshort*7+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*8+i],window_short[i]);
+                time_out[nflat_ls+4*nshort+i] = time_out[nlong+nflat_ls+nshort*4+i] + MUL_F(transf_buf[nshort*7+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*8+i],window_short[i]);
             else
-                time_out[nflat_ls+4*nshort+i] = MUL_R_C(transf_buf[nshort*7+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*8+i],window_short[i]);
-            time_out[nflat_ls+5*nshort+i] = MUL_R_C(transf_buf[nshort*9+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*10+i],window_short[i]);
-            time_out[nflat_ls+6*nshort+i] = MUL_R_C(transf_buf[nshort*11+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*12+i],window_short[i]);
-            time_out[nflat_ls+7*nshort+i] = MUL_R_C(transf_buf[nshort*13+i],window_short[nshort-1-i]) + MUL_R_C(transf_buf[nshort*14+i],window_short[i]);
-            time_out[nflat_ls+8*nshort+i] = MUL_R_C(transf_buf[nshort*15+i],window_short[nshort-1-i]);
+                time_out[nflat_ls+4*nshort+i] = MUL_F(transf_buf[nshort*7+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*8+i],window_short[i]);
+            time_out[nflat_ls+5*nshort+i] = MUL_F(transf_buf[nshort*9+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*10+i],window_short[i]);
+            time_out[nflat_ls+6*nshort+i] = MUL_F(transf_buf[nshort*11+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*12+i],window_short[i]);
+            time_out[nflat_ls+7*nshort+i] = MUL_F(transf_buf[nshort*13+i],window_short[nshort-1-i]) + MUL_F(transf_buf[nshort*14+i],window_short[i]);
+            time_out[nflat_ls+8*nshort+i] = MUL_F(transf_buf[nshort*15+i],window_short[nshort-1-i]);
         }
         for (i = 0; i < nflat_ls; i++)
             time_out[nlong+nflat_ls+nshort+i] = 0;
@@ -261,11 +261,11 @@
         for (i = 0; i < nflat_ls; i++)
             time_out[i] = time_out[nlong+i];
         for (i = 0; i < nshort; i++)
-            time_out[nflat_ls+i] = time_out[nlong+nflat_ls+i] + MUL_R_C(transf_buf[nflat_ls+i],window_short_prev[i]);
+            time_out[nflat_ls+i] = time_out[nlong+nflat_ls+i] + MUL_F(transf_buf[nflat_ls+i],window_short_prev[i]);
         for (i = 0; i < nflat_ls; i++)
             time_out[nflat_ls+nshort+i] = time_out[nlong+nflat_ls+nshort+i] + transf_buf[nflat_ls+nshort+i];
         for (i = 0; i < nlong; i++)
-            time_out[nlong+i] = MUL_R_C(transf_buf[nlong+i],window_long[nlong-1-i]);
+            time_out[nlong+i] = MUL_F(transf_buf[nlong+i],window_long[nlong-1-i]);
 		break;
     }
 }
@@ -310,8 +310,8 @@
     case ONLY_LONG_SEQUENCE:
         for (i = nlong-1; i >= 0; i--)
         {
-            windowed_buf[i] = MUL_R_C(in_data[i], window_long_prev[i]);
-            windowed_buf[i+nlong] = MUL_R_C(in_data[i+nlong], window_long[nlong-1-i]);
+            windowed_buf[i] = MUL_F(in_data[i], window_long_prev[i]);
+            windowed_buf[i+nlong] = MUL_F(in_data[i+nlong], window_long[nlong-1-i]);
         }
         mdct(fb, windowed_buf, out_mdct, 2*nlong);
         break;
@@ -318,11 +318,11 @@
 
     case LONG_START_SEQUENCE:
         for (i = 0; i < nlong; i++)
-            windowed_buf[i] = MUL_R_C(in_data[i], window_long_prev[i]);
+            windowed_buf[i] = MUL_F(in_data[i], window_long_prev[i]);
         for (i = 0; i < nflat_ls; i++)
             windowed_buf[i+nlong] = in_data[i+nlong];
         for (i = 0; i < nshort; i++)
-            windowed_buf[i+nlong+nflat_ls] = MUL_R_C(in_data[i+nlong+nflat_ls], window_short[nshort-1-i]);
+            windowed_buf[i+nlong+nflat_ls] = MUL_F(in_data[i+nlong+nflat_ls], window_short[nshort-1-i]);
         for (i = 0; i < nflat_ls; i++)
             windowed_buf[i+nlong+nflat_ls+nshort] = 0;
         mdct(fb, windowed_buf, out_mdct, 2*nlong);
@@ -332,11 +332,11 @@
         for (i = 0; i < nflat_ls; i++)
             windowed_buf[i] = 0;
         for (i = 0; i < nshort; i++)
-            windowed_buf[i+nflat_ls] = MUL_R_C(in_data[i+nflat_ls], window_short_prev[i]);
+            windowed_buf[i+nflat_ls] = MUL_F(in_data[i+nflat_ls], window_short_prev[i]);
         for (i = 0; i < nflat_ls; i++)
             windowed_buf[i+nflat_ls+nshort] = in_data[i+nflat_ls+nshort];
         for (i = 0; i < nlong; i++)
-            windowed_buf[i+nlong] = MUL_R_C(in_data[i+nlong], window_long[nlong-1-i]);
+            windowed_buf[i+nlong] = MUL_F(in_data[i+nlong], window_long[nlong-1-i]);
         mdct(fb, windowed_buf, out_mdct, 2*nlong);
         break;
     }
--- a/libfaad/fixed.h
+++ b/libfaad/fixed.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: fixed.h,v 1.14 2003/11/04 21:43:30 menno Exp $
+** $Id: fixed.h,v 1.15 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifndef __FIXED_H__
@@ -38,129 +38,154 @@
 #define REAL_BITS 14 // MAXIMUM OF 14 FOR FIXED POINT SBR
 #define REAL_PRECISION (1 << REAL_BITS)
 
+/* FRAC is the fractional only part of the fixed point number [0.0..1.0) */
+#define FRAC_SIZE 32 /* frac is a 32 bit integer */
+#define FRAC_BITS 31
+#define FRAC_PRECISION ((uint32_t)(1 << FRAC_BITS))
+#define FRAC_MAX 0x7FFFFFFF
 
 typedef int32_t real_t;
 
 
-#define REAL_CONST(A) ((real_t)((A)*(REAL_PRECISION)))
-#define COEF_CONST(A) ((real_t)((A)*(COEF_PRECISION)))
+#define REAL_CONST(A) (((A) >= 0) ? ((real_t)((A)*(REAL_PRECISION)+0.5)) : ((real_t)((A)*(REAL_PRECISION)-0.5)))
+#define COEF_CONST(A) (((A) >= 0) ? ((real_t)((A)*(COEF_PRECISION)+0.5)) : ((real_t)((A)*(COEF_PRECISION)-0.5)))
+#define FRAC_CONST(A) (((A) == 1.00) ? ((real_t)FRAC_MAX) : (((A) >= 0) ? ((real_t)((A)*(FRAC_PRECISION)+0.5)) : ((real_t)((A)*(FRAC_PRECISION)-0.5))))
 
 #if defined(_WIN32) && !defined(_WIN32_WCE)
 
-/* multiply real with real */
-static INLINE MUL(real_t A, real_t B)
+/* multiply with real shift */
+static INLINE real_t MUL_R(real_t A, real_t B)
 {
     _asm {
         mov eax,A
         imul B
-#if 0
         shrd eax,edx,REAL_BITS
-#else
-        shr eax,REAL_BITS
-        shl edx,(32-REAL_BITS)
-        or eax,edx
-#endif
     }
 }
 
-/* multiply coef with coef */
-static INLINE MUL_C_C(real_t A, real_t B)
+/* multiply with coef shift */
+static INLINE real_t MUL_C(real_t A, real_t B)
 {
     _asm {
         mov eax,A
         imul B
-#if 0
         shrd eax,edx,COEF_BITS
-#else
-        shr eax,COEF_BITS
-        shl edx,(32-COEF_BITS)
-        or eax,edx
-#endif
     }
 }
 
-/* multiply real with coef */
-static INLINE MUL_R_C(real_t A, real_t B)
+static INLINE real_t _MulHigh(real_t A, real_t B)
 {
     _asm {
         mov eax,A
         imul B
-#if 0
-        shrd eax,edx,COEF_BITS
-#else
-        shr eax,COEF_BITS
-        shl edx,(32-COEF_BITS)
-        or eax,edx
-#endif
+        mov eax,edx
     }
 }
 
-#elif 0 //defined(_WIN32_WCE) && defined(ARM)
-
-/* multiply real with real */
-static MUL(real_t A, real_t B)
+/* multiply with fractional shift */
+static INLINE real_t MUL_F(real_t A, real_t B)
 {
-    __emit(0xe0c23190); // smull  r3, r2, r0, r1
-    __emit(0xe1b03723); // movs   r3, r3, lsr #14
-    __emit(0xe0a30902); // adc    r0, r3, r2, lsl #18
+    return _MulHigh(A,B) << (FRAC_SIZE-FRAC_BITS);
 }
-/* multiply coef with coef */
-static MUL_C_C(real_t A, real_t B)
+
+/* Complex multiplication */
+static INLINE void ComplexMult(real_t *y1, real_t *y2,
+    real_t x1, real_t x2, real_t c1, real_t c2)
 {
-    __emit(0xe0c23190); // smull  r3, r2, r0, r1
-    __emit(0xe1b03e23); // movs   r3, r3, lsr #28
-    __emit(0xe0a30202); // adc    r0, r3, r2, lsl #4
+    *y1 = (_MulHigh(x1, c1) + _MulHigh(x2, c2))<<(FRAC_SIZE-FRAC_BITS);
+    *y2 = (_MulHigh(x2, c1) - _MulHigh(x1, c2))<<(FRAC_SIZE-FRAC_BITS);
 }
-/* multiply real with coef */
-static MUL_R_C(real_t A, real_t B)
-{
-    __emit(0xe0c23190); // smull  r3, r2, r0, r1
-    __emit(0xe1b03e23); // movs   r3, r3, lsr #28
-    __emit(0xe0a30202); // adc    r0, r3, r2, lsl #4
-}
 
 #elif defined(__GNUC__) && defined (__arm__)
 
 /* taken from MAD */
 #define arm_mul(x, y, SCALEBITS) \
-       ({      uint32_t __hi; \
-               uint32_t __lo; \
-               uint32_t __result; \
-               asm ("smull  %0, %1, %3, %4\n\t" \
-                    "movs   %0, %0, lsr %5\n\t" \
-                    "adc    %2, %0, %1, lsl %6" \
-                    : "=&r" (__lo), "=&r" (__hi), "=r" (__result) \
-                    : "%r" (x), "r" (y), \
-                      "M" (SCALEBITS), "M" (32 - (SCALEBITS)) \
-                    : "cc"); \
-               __result; \
-       })
+({ \
+    uint32_t __hi; \
+    uint32_t __lo; \
+    uint32_t __result; \
+    asm("smull  %0, %1, %3, %4\n\t" \
+        "movs   %0, %0, lsr %5\n\t" \
+        "adc    %2, %0, %1, lsl %6" \
+        : "=&r" (__lo), "=&r" (__hi), "=r" (__result) \
+        : "%r" (x), "r" (y), \
+        "M" (SCALEBITS), "M" (32 - (SCALEBITS)) \
+        : "cc"); \
+        __result; \
+})
 
-static INLINE real_t MUL(real_t A, real_t B)
+static INLINE real_t MUL_R(real_t A, real_t B)
 {
-       return arm_mul( A, B, REAL_BITS);
+    return arm_mul(A, B, REAL_BITS);
 }
 
-static INLINE real_t MUL_C_C(real_t A, real_t B)
+static INLINE real_t MUL_C(real_t A, real_t B)
 {
-       return arm_mul( A, B, COEF_BITS);
+    return arm_mul(A, B, COEF_BITS);
 }
 
-static INLINE real_t MUL_R_C(real_t A, real_t B)
+static INLINE real_t _MulHigh(real_t x, real_t y)
 {
-       return arm_mul( A, B, COEF_BITS);
+    uint32_t __lo;
+    uint32_t __hi;
+    asm("smull\t%0, %1, %2, %3"
+        : "=&r"(__lo),"=&r"(__hi)
+        : "%r"(x),"r"(y)
+        : "cc");
+    return __hi;
 }
 
+static INLINE real_t MUL_F(real_t A, real_t B)
+{
+    return _MulHigh(A, B) << (FRAC_SIZE-FRAC_BITS);
+}
+
+/* Complex multiplication */
+static INLINE void ComplexMult(real_t *y1, real_t *y2,
+    real_t x1, real_t x2, real_t c1, real_t c2)
+{
+    int32_t tmp, yt1, yt2;
+    asm("smull %0, %1, %4, %6\n\t"
+        "smlal %0, %1, %5, %7\n\t"
+        "rsb   %3, %4, #0\n\t"
+        "smull %0, %2, %5, %6\n\t"
+        "smlal %0, %2, %3, %7"
+        : "=&r" (tmp), "=&r" (yt1), "=&r" (yt2), "=r" (x1)
+        : "3" (x1), "r" (x2), "r" (c1), "r" (c2)
+        : "cc" );
+    *y1 = yt1 << (FRAC_SIZE-FRAC_BITS);
+    *y2 = yt2 << (FRAC_SIZE-FRAC_BITS);
+}
+
 #else
 
-  /* multiply real with real */
-  #define MUL(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (REAL_BITS-1))) >> REAL_BITS)
-  /* multiply coef with coef */
-  #define MUL_C_C(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (COEF_BITS-1))) >> COEF_BITS)
-  /* multiply real with coef */
-  #define MUL_R_C(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (COEF_BITS-1))) >> COEF_BITS)
+  /* multiply with real shift */
+  #define MUL_R(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (REAL_BITS-1))) >> REAL_BITS)
+  /* multiply with coef shift */
+  #define MUL_C(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (COEF_BITS-1))) >> COEF_BITS)
+  /* multiply with fractional shift */
+#ifndef _WIN32_WCE
+  #define _MulHigh(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (FRAC_SIZE-1))) >> FRAC_SIZE)
+  #define MUL_F(A,B) (real_t)(((int64_t)(A)*(int64_t)(B)+(1 << (FRAC_BITS-1))) >> FRAC_BITS)
+#else
+  /* eVC for PocketPC has an intrinsic function that returns only the high 32 bits of a 32x32 bit multiply */
+  #include <cmnintrin.h>
+  static INLINE real_t MUL_F(real_t A, real_t B)
+  {
+      return _MulHigh(A,B) << (32-FRAC_BITS);
+  }
+#endif
 
+/* Complex multiplication */
+static INLINE void ComplexMult(real_t *y1, real_t *y2,
+    real_t x1, real_t x2, real_t c1, real_t c2)
+{
+    *y1 = (_MulHigh(x1, c1) + _MulHigh(x2, c2))<<(FRAC_SIZE-FRAC_BITS);
+    *y2 = (_MulHigh(x2, c1) - _MulHigh(x1, c2))<<(FRAC_SIZE-FRAC_BITS);
+}
+
 #endif
+
 
 
 #ifdef __cplusplus
--- a/libfaad/hcr.c
+++ b/libfaad/hcr.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: hcr.c,v 1.10 2003/11/04 21:43:30 menno Exp $
+** $Id: hcr.c,v 1.12 2003/12/17 14:43:16 menno Exp $
 **/
 
 #include "common.h"
@@ -157,7 +157,7 @@
     uint16_t nshort = hDecoder->frameLength/8;
 
 
-    memset (spectral_data, 0, hDecoder->frameLength*sizeof(uint16_t));
+    /*memset (spectral_data, 0, hDecoder->frameLength*sizeof(uint16_t));*/
 
     if (ics->length_of_reordered_spectral_data == 0)
         return 0; /* nothing to do */
--- a/libfaad/ic_predict.c
+++ b/libfaad/ic_predict.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: ic_predict.c,v 1.17 2003/11/04 21:43:30 menno Exp $
+** $Id: ic_predict.c,v 1.18 2003/11/12 20:47:57 menno Exp $
 **/
 
 #include "common.h"
@@ -35,7 +35,7 @@
 #include "pns.h"
 
 
-static void flt_round(real_t *pf)
+static void flt_round(float32_t *pf)
 {
     int32_t flg;
     uint32_t tmp, tmp1, tmp2;
@@ -52,13 +52,13 @@
         tmp2 = tmp;                             /* add 1 lsb and elided one */
         tmp &= (uint32_t)0xff800000;       /* extract exponent and sign */
         
-        *pf = *(real_t*)&tmp1 + *(real_t*)&tmp2 - *(real_t*)&tmp;
+        *pf = *(float32_t*)&tmp1 + *(float32_t*)&tmp2 - *(float32_t*)&tmp;
     } else {
-        *pf = *(real_t*)&tmp;
+        *pf = *(float32_t*)&tmp;
     }
 }
 
-static int16_t quant_pred(real_t x)
+static int16_t quant_pred(float32_t x)
 {
     int16_t q;
     uint32_t *tmp = (uint32_t*)&x;
@@ -68,9 +68,9 @@
     return q;
 }
 
-static real_t inv_quant_pred(int16_t q)
+static float32_t inv_quant_pred(int16_t q)
 {
-    real_t x;
+    float32_t x;
     uint32_t *tmp = (uint32_t*)&x;
     *tmp = ((uint32_t)q)<<16;
 
@@ -97,6 +97,7 @@
     VAR[1] = inv_quant_pred(state->VAR[1]);
 
 
+#if 1
     tmp = state->VAR[0];
     j = (tmp >> 7);
     i = tmp & 0x7f;
@@ -107,9 +108,27 @@
     } else {
         k1 = REAL_CONST(0);
     }
+#else
 
+    {
+#define B 0.953125
+        real_t c = COR[0];
+        real_t v = VAR[0];
+        real_t tmp;
+        if (c == 0 || v <= 1)
+        {
+            k1 = 0;
+        } else {
+            tmp = B / v;
+            flt_round(&tmp);
+            k1 = c * tmp;
+        }
+    }
+#endif
+
     if (pred)
     {
+#if 1
         tmp = state->VAR[1];
         j = (tmp >> 7);
         i = tmp & 0x7f;
@@ -120,8 +139,23 @@
         } else {
             k2 = REAL_CONST(0);
         }
+#else
 
-        predictedvalue  = k1*r[0] + k2*r[1];
+#define B 0.953125
+        real_t c = COR[1];
+        real_t v = VAR[1];
+        real_t tmp;
+        if (c == 0 || v <= 1)
+        {
+            k2 = 0;
+        } else {
+            tmp = B / v;
+            flt_round(&tmp);
+            k2 = c * tmp;
+        }
+#endif
+
+        predictedvalue = k1*r[0] + k2*r[1];
         flt_round(&predictedvalue);
         *output = input + predictedvalue;
     }
--- a/libfaad/ic_predict.h
+++ b/libfaad/ic_predict.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: ic_predict.h,v 1.13 2003/11/04 21:48:05 menno Exp $
+** $Id: ic_predict.h,v 1.14 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifdef MAIN_DEC
--- a/libfaad/iq_table.h
+++ b/libfaad/iq_table.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: iq_table.h,v 1.9 2003/11/04 21:43:30 menno Exp $
+** $Id: iq_table.h,v 1.10 2003/11/12 20:47:57 menno Exp $
 **/
 
 #ifndef IQ_TABLE_H__
@@ -34,15 +34,12 @@
 
 
 /* !!!DON'T CHANGE IQ_TABLE_SIZE!!! */
-#ifdef SMALL_IQ_TAB
-#define IQ_TABLE_SIZE  304
-#else
-#define IQ_TABLE_SIZE  1026
-#endif
 
 
 #ifndef FIXED_POINT
 
+#define IQ_TABLE_SIZE 256
+
 #ifdef _MSC_VER
 #pragma warning(disable:4305)
 #pragma warning(disable:4244)
@@ -50,2068 +47,1296 @@
 
 static real_t iq_table[IQ_TABLE_SIZE] =
 {
-    0.0000000000,
-    1.0000000000,
-    2.5198420998,
-    4.3267487109,
-    6.3496042079,
-    8.5498797334,
-    10.9027235570,
-    13.3905182794,
-    16.0000000000,
-    18.7207544075,
-    21.5443469003,
-    24.4637809963,
-    27.4731418213,
-    30.5673509404,
-    33.7419916985,
-    36.9931811150,
-    40.3174735966,
-    43.7117870412,
-    47.1733450958,
-    50.6996313257,
-    54.2883523319,
-    57.9374077040,
-    61.6448652744,
-    65.4089405366,
-    69.2279793748,
-    73.1004434553,
-    77.0248977786,
-    81.0000000000,
-    85.0244912125,
-    89.0971879449,
-    93.2169751786,
-    97.3828002241,
-    101.5936673260,
-    105.8486328899,
-    110.1468012434,
-    114.4873208566,
-    118.8693809602,
-    123.2922085109,
-    127.7550654584,
-    132.2572462776,
-    136.7980757341,
-    141.3769068557,
-    145.9931190852,
-    150.6461165966,
-    155.3353267543,
-    160.0601987021,
-    164.8202020667,
-    169.6148257665,
-    174.4435769119,
-    179.3059797911,
-    184.2015749320,
-    189.1299182326,
-    194.0905801545,
-    199.0831449737,
-    204.1072100830,
-    209.1623853419,
-    214.2482924705,
-    219.3645644828,
-    224.5108451564,
-    229.6867885365,
-    234.8920584701,
-    240.1263281692,
-    245.3892798002,
-    250.6806040975,
-    256.0000000000,
-    261.3471743083,
-    266.7218413611,
-    272.1237227299,
-    277.5525469304,
-    283.0080491495,
-    288.4899709866,
-    293.9980602090,
-    299.5320705195,
-    305.0917613358,
-    310.6768975818,
-    316.2872494882,
-    321.9225924034,
-    327.5827066139,
-    333.2673771724,
-    338.9763937351,
-    344.7095504051,
-    350.4666455847,
-    356.2474818330,
-    362.0518657308,
-    367.8796077506,
-    373.7305221334,
-    379.6044267700,
-    385.5011430873,
-    391.4204959402,
-    397.3623135070,
-    403.3264271901,
-    409.3126715201,
-    415.3208840636,
-    421.3509053358,
-    427.4025787150,
-    433.4757503618,
-    439.5702691405,
-    445.6859865441,
-    451.8227566217,
-    457.9804359091,
-    464.1588833613,
-    470.3579602882,
-    476.5775302922,
-    482.8174592083,
-    489.0776150459,
-    495.3578679332,
-    501.6580900633,
-    507.9781556420,
-    514.3179408377,
-    520.6773237328,
-    527.0561842769,
-    533.4544042413,
-    539.8718671753,
-    546.3084583636,
-    552.7640647857,
-    559.2385750758,
-    565.7318794845,
-    572.2438698415,
-    578.7744395198,
-    585.3234834006,
-    591.8908978393,
-    598.4765806331,
-    605.0804309888,
-    611.7023494920,
-    618.3422380776,
-    625.0000000000,
-    631.6755398055,
-    638.3687633048,
-    645.0795775462,
-    651.8078907899,
-    658.5536124831,
-    665.3166532354,
-    672.0969247951,
-    678.8943400262,
-    685.7088128862,
-    692.5402584041,
-    699.3885926590,
-    706.2537327602,
-    713.1355968262,
-    720.0341039659,
-    726.9491742592,
-    733.8807287386,
-    740.8286893712,
-    747.7929790411,
-    754.7735215322,
-    761.7702415115,
-    768.7830645130,
-    775.8119169219,
-    782.8567259587,
-    789.9174196648,
-    796.9939268870,
-    804.0861772639,
-    811.1941012115,
-    818.3176299096,
-    825.4566952887,
-    832.6112300164,
-    839.7811674856,
-    846.9664418012,
-    854.1669877685,
-    861.3827408814,
-    868.6136373104,
-    875.8596138918,
-    883.1206081164,
-    890.3965581189,
-    897.6874026669,
-    904.9930811514,
-    912.3135335758,
-    919.6487005467,
-    926.9985232641,
-    934.3629435117,
-    941.7419036483,
-    949.1353465979,
-    956.5432158417,
-    963.9654554089,
-    971.4020098686,
-    978.8528243212,
-    986.3178443907,
-    993.7970162163,
-    1001.2902864449,
-    1008.7976022234,
-    1016.3189111915,
-    1023.8541614739,
-    1031.4033016737,
-    1038.9662808647,
-    1046.5430485854,
-    1054.1335548314,
-    1061.7377500496,
-    1069.3555851309,
-    1076.9870114047,
-    1084.6319806319,
-    1092.2904449995,
-    1099.9623571140,
-    1107.6476699961,
-    1115.3463370744,
-    1123.0583121801,
-    1130.7835495416,
-    1138.5220037785,
-    1146.2736298969,
-    1154.0383832838,
-    1161.8162197020,
-    1169.6070952851,
-    1177.4109665328,
-    1185.2277903054,
-    1193.0575238198,
-    1200.9001246442,
-    1208.7555506939,
-    1216.6237602266,
-    1224.5047118380,
-    1232.3983644575,
-    1240.3046773436,
-    1248.2236100803,
-    1256.1551225723,
-    1264.0991750417,
-    1272.0557280230,
-    1280.0247423603,
-    1288.0061792024,
-    1296.0000000000,
-    1304.0061665011,
-    1312.0246407478,
-    1320.0553850728,
-    1328.0983620955,
-    1336.1535347188,
-    1344.2208661255,
-    1352.3003197751,
-    1360.3918594003,
-    1368.4954490040,
-    1376.6110528559,
-    1384.7386354892,
-    1392.8781616980,
-    1401.0295965338,
-    1409.1929053025,
-    1417.3680535619,
-    1425.5550071182,
-    1433.7537320236,
-    1441.9641945733,
-    1450.1863613025,
-    1458.4201989843,
-    1466.6656746263,
-    1474.9227554684,
-    1483.1914089801,
-    1491.4716028579,
-    1499.7633050227,
-    1508.0664836175,
-    1516.3811070048,
-    1524.7071437644,
-    1533.0445626906,
-    1541.3933327903,
-    1549.7534232806,
-    1558.1248035861,
-    1566.5074433375,
-    1574.9013123686,
-    1583.3063807145,
-    1591.7226186094,
-    1600.1499964846,
-    1608.5884849662,
-    1617.0380548732,
-    1625.4986772154,
-    1633.9703231917,
-    1642.4529641876,
-    1650.9465717736,
-    1659.4511177036,
-    1667.9665739122,
-    1676.4929125137,
-    1685.0301057998,
-    1693.5781262378,
-    1702.1369464690,
-    1710.7065393070,
-    1719.2868777356,
-    1727.8779349075,
-    1736.4796841426,
-    1745.0920989258,
-    1753.7151529063,
-    1762.3488198950,
-    1770.9930738636,
-    1779.6478889428,
-    1788.3132394207,
-    1796.9890997413,
-    1805.6754445031,
-    1814.3722484576,
-    1823.0794865074,
-    1831.7971337056,
-    1840.5251652535,
-    1849.2635564999,
-    1858.0122829390,
-    1866.7713202096,
-    1875.5406440938,
-    1884.3202305150,
-    1893.1100555371,
-    1901.9100953633,
-    1910.7203263343,
-    1919.5407249276,
-    1928.3712677557,
-    1937.2119315653,
-    1946.0626932359,
-    1954.9235297784,
-    1963.7944183344,
-    1972.6753361744,
-    1981.5662606973,
-    1990.4671694285,
-    1999.3780400196,
-    2008.2988502465,
-    2017.2295780088,
-    2026.1702013285,
-    2035.1206983489
-#ifndef SMALL_IQ_TAB
-    ,2044.0810473338,
-    2053.0512266659,
-    2062.0312148464,
-    2071.0209904936,
-    2080.0205323417,
-    2089.0298192403,
-    2098.0488301532,
-    2107.0775441570,
-    2116.1159404408,
-    2125.1639983049,
-    2134.2216971598,
-    2143.2890165253,
-    2152.3659360297,
-    2161.4524354089,
-    2170.5484945052,
-    2179.6540932666,
-    2188.7692117462,
-    2197.8938301007,
-    2207.0279285901,
-    2216.1714875766,
-    2225.3244875237,
-    2234.4869089955,
-    2243.6587326558,
-    2252.8399392674,
-    2262.0305096911,
-    2271.2304248850,
-    2280.4396659037,
-    2289.6582138977,
-    2298.8860501122,
-    2308.1231558868,
-    2317.3695126545,
-    2326.6251019409,
-    2335.8899053637,
-    2345.1639046317,
-    2354.4470815443,
-    2363.7394179907,
-    2373.0408959490,
-    2382.3514974860,
-    2391.6712047559,
-    2401.0000000000,
-    2410.3378655461,
-    2419.6847838074,
-    2429.0407372823,
-    2438.4057085534,
-    2447.7796802872,
-    2457.1626352330,
-    2466.5545562227,
-    2475.9554261700,
-    2485.3652280695,
-    2494.7839449968,
-    2504.2115601072,
-    2513.6480566352,
-    2523.0934178943,
-    2532.5476272760,
-    2542.0106682495,
-    2551.4825243609,
-    2560.9631792328,
-    2570.4526165636,
-    2579.9508201270,
-    2589.4577737714,
-    2598.9734614194,
-    2608.4978670675,
-    2618.0309747849,
-    2627.5727687136,
-    2637.1232330677,
-    2646.6823521328,
-    2656.2501102653,
-    2665.8264918923,
-    2675.4114815110,
-    2685.0050636878,
-    2694.6072230582,
-    2704.2179443264,
-    2713.8372122643,
-    2723.4650117115,
-    2733.1013275747,
-    2742.7461448270,
-    2752.3994485079,
-    2762.0612237221,
-    2771.7314556399,
-    2781.4101294962,
-    2791.0972305902,
-    2800.7927442847,
-    2810.4966560063,
-    2820.2089512442,
-    2829.9296155502,
-    2839.6586345385,
-    2849.3959938845,
-    2859.1416793251,
-    2868.8956766580,
-    2878.6579717413,
-    2888.4285504930,
-    2898.2073988909,
-    2907.9945029718,
-    2917.7898488313,
-    2927.5934226236,
-    2937.4052105607,
-    2947.2251989123,
-    2957.0533740053,
-    2966.8897222234,
-    2976.7342300070,
-    2986.5868838523,
-    2996.4476703115,
-    3006.3165759920,
-    3016.1935875562,
-    3026.0786917212,
-    3035.9718752584,
-    3045.8731249931,
-    3055.7824278041,
-    3065.6997706236,
-    3075.6251404365,
-    3085.5585242804,
-    3095.4999092450,
-    3105.4492824719,
-    3115.4066311543,
-    3125.3719425365,
-    3135.3452039137,
-    3145.3264026318,
-    3155.3155260867,
-    3165.3125617243,
-    3175.3174970403,
-    3185.3303195795,
-    3195.3510169356,
-    3205.3795767511,
-    3215.4159867169,
-    3225.4602345719,
-    3235.5123081028,
-    3245.5721951437,
-    3255.6398835758,
-    3265.7153613275,
-    3275.7986163735,
-    3285.8896367348,
-    3295.9884104787,
-    3306.0949257178,
-    3316.2091706107,
-    3326.3311333606,
-    3336.4608022160,
-    3346.5981654700,
-    3356.7432114599,
-    3366.8959285672,
-    3377.0563052172,
-    3387.2243298788,
-    3397.3999910641,
-    3407.5832773283,
-    3417.7741772695,
-    3427.9726795281,
-    3438.1787727870,
-    3448.3924457710,
-    3458.6136872466,
-    3468.8424860221,
-    3479.0788309468,
-    3489.3227109112,
-    3499.5741148464,
-    3509.8330317244,
-    3520.0994505573,
-    3530.3733603973,
-    3540.6547503364,
-    3550.9436095064,
-    3561.2399270783,
-    3571.5436922624,
-    3581.8548943078,
-    3592.1735225026,
-    3602.4995661730,
-    3612.8330146838,
-    3623.1738574377,
-    3633.5220838752,
-    3643.8776834744,
-    3654.2406457510,
-    3664.6109602577,
-    3674.9886165844,
-    3685.3736043574,
-    3695.7659132398,
-    3706.1655329312,
-    3716.5724531671,
-    3726.9866637191,
-    3737.4081543945,
-    3747.8369150361,
-    3758.2729355221,
-    3768.7162057659,
-    3779.1667157159,
-    3789.6244553551,
-    3800.0894147012,
-    3810.5615838063,
-    3821.0409527566,
-    3831.5275116724,
-    3842.0212507077,
-    3852.5221600504,
-    3863.0302299216,
-    3873.5454505757,
-    3884.0678123003,
-    3894.5973054159,
-    3905.1339202756,
-    3915.6776472653,
-    3926.2284768030,
-    3936.7863993390,
-    3947.3514053559,
-    3957.9234853677,
-    3968.5026299205,
-    3979.0888295917,
-    3989.6820749901,
-    4000.2823567557,
-    4010.8896655596,
-    4021.5039921036,
-    4032.1253271203,
-    4042.7536613729,
-    4053.3889856548,
-    4064.0312907898,
-    4074.6805676315,
-    4085.3368070638,
-    4096.0000000000,
-    4106.6701373831,
-    4117.3472101855,
-    4128.0312094089,
-    4138.7221260843,
-    4149.4199512713,
-    4160.1246760588,
-    4170.8362915639,
-    4181.5547889326,
-    4192.2801593392,
-    4203.0123939861,
-    4213.7514841039,
-    4224.4974209512,
-    4235.2501958144,
-    4246.0098000075,
-    4256.7762248721,
-    4267.5494617770,
-    4278.3295021186,
-    4289.1163373202,
-    4299.9099588321,
-    4310.7103581313,
-    4321.5175267219,
-    4332.3314561342,
-    4343.1521379251,
-    4353.9795636778,
-    4364.8137250016,
-    4375.6546135320,
-    4386.5022209304,
-    4397.3565388837,
-    4408.2175591050,
-    4419.0852733324,
-    4429.9596733298,
-    4440.8407508861,
-    4451.7284978156,
-    4462.6229059575,
-    4473.5239671759,
-    4484.4316733599,
-    4495.3460164231,
-    4506.2669883035,
-    4517.1945809640,
-    4528.1287863914,
-    4539.0695965968,
-    4550.0170036156,
-    4560.9709995068,
-    4571.9315763535,
-    4582.8987262626,
-    4593.8724413645,
-    4604.8527138130,
-    4615.8395357856,
-    4626.8328994828,
-    4637.8327971284,
-    4648.8392209693,
-    4659.8521632753,
-    4670.8716163390,
-    4681.8975724760,
-    4692.9300240243,
-    4703.9689633444,
-    4715.0143828193,
-    4726.0662748543,
-    4737.1246318771,
-    4748.1894463371,
-    4759.2607107062,
-    4770.3384174777,
-    4781.4225591672,
-    4792.5131283116,
-    4803.6101174696,
-    4814.7135192213,
-    4825.8233261683,
-    4836.9395309335,
-    4848.0621261609,
-    4859.1911045158,
-    4870.3264586842,
-    4881.4681813733,
-    4892.6162653110,
-    4903.7707032459,
-    4914.9314879474,
-    4926.0986122052,
-    4937.2720688295,
-    4948.4518506510,
-    4959.6379505206,
-    4970.8303613092,
-    4982.0290759079,
-    4993.2340872279,
-    5004.4453882001,
-    5015.6629717753,
-    5026.8868309241,
-    5038.1169586365,
-    5049.3533479223,
-    5060.5959918105,
-    5071.8448833497,
-    5083.1000156077,
-    5094.3613816714,
-    5105.6289746470,
-    5116.9027876595,
-    5128.1828138531,
-    5139.4690463907,
-    5150.7614784539,
-    5162.0601032433,
-    5173.3649139777,
-    5184.6759038949,
-    5195.9930662506,
-    5207.3163943194,
-    5218.6458813939,
-    5229.9815207850,
-    5241.3233058217,
-    5252.6712298510,
-    5264.0252862380,
-    5275.3854683656,
-    5286.7517696346,
-    5298.1241834635,
-    5309.5027032884,
-    5320.8873225631,
-    5332.2780347590,
-    5343.6748333647,
-    5355.0777118863,
-    5366.4866638472,
-    5377.9016827880,
-    5389.3227622665,
-    5400.7498958574,
-    5412.1830771527,
-    5423.6222997611,
-    5435.0675573082,
-    5446.5188434364,
-    5457.9761518049,
-    5469.4394760894,
-    5480.9088099822,
-    5492.3841471923,
-    5503.8654814448,
-    5515.3528064816,
-    5526.8461160606,
-    5538.3454039558,
-    5549.8506639579,
-    5561.3618898731,
-    5572.8790755240,
-    5584.4022147491,
-    5595.9313014028,
-    5607.4663293552,
-    5619.0072924923,
-    5630.5541847159,
-    5642.1069999431,
-    5653.6657321070,
-    5665.2303751559,
-    5676.8009230538,
-    5688.3773697797,
-    5699.9597093284,
-    5711.5479357096,
-    5723.1420429485,
-    5734.7420250850,
-    5746.3478761746,
-    5757.9595902874,
-    5769.5771615087,
-    5781.2005839386,
-    5792.8298516920,
-    5804.4649588987,
-    5816.1058997031,
-    5827.7526682643,
-    5839.4052587560,
-    5851.0636653664,
-    5862.7278822983,
-    5874.3979037688,
-    5886.0737240093,
-    5897.7553372658,
-    5909.4427377983,
-    5921.1359198811,
-    5932.8348778025,
-    5944.5396058651,
-    5956.2500983854,
-    5967.9663496940,
-    5979.6883541351,
-    5991.4161060672,
-    6003.1495998623,
-    6014.8888299063,
-    6026.6337905987,
-    6038.3844763527,
-    6050.1408815952,
-    6061.9030007664,
-    6073.6708283203,
-    6085.4443587241,
-    6097.2235864585,
-    6109.0085060174,
-    6120.7991119082,
-    6132.5953986513,
-    6144.3973607806,
-    6156.2049928426,
-    6168.0182893975,
-    6179.8372450182,
-    6191.6618542904,
-    6203.4921118132,
-    6215.3280121982,
-    6227.1695500700,
-    6239.0167200659,
-    6250.8695168361,
-    6262.7279350432,
-    6274.5919693627,
-    6286.4616144826,
-    6298.3368651034,
-    6310.2177159382,
-    6322.1041617124,
-    6333.9961971640,
-    6345.8938170431,
-    6357.7970161124,
-    6369.7057891466,
-    6381.6201309327,
-    6393.5400362700,
-    6405.4654999698,
-    6417.3965168555,
-    6429.3330817625,
-    6441.2751895383,
-    6453.2228350423,
-    6465.1760131457,
-    6477.1347187317,
-    6489.0989466952,
-    6501.0686919430,
-    6513.0439493936,
-    6525.0247139769,
-    6537.0109806350,
-    6549.0027443210,
-    6561.0000000000,
-    6573.0027426484,
-    6585.0109672541,
-    6597.0246688165,
-    6609.0438423464,
-    6621.0684828657,
-    6633.0985854079,
-    6645.1341450177,
-    6657.1751567510,
-    6669.2216156747,
-    6681.2735168671,
-    6693.3308554176,
-    6705.3936264265,
-    6717.4618250051,
-    6729.5354462759,
-    6741.6144853722,
-    6753.6989374383,
-    6765.7887976291,
-    6777.8840611107,
-    6789.9847230597,
-    6802.0907786636,
-    6814.2022231205,
-    6826.3190516394,
-    6838.4412594396,
-    6850.5688417513,
-    6862.7017938151,
-    6874.8401108821,
-    6886.9837882140,
-    6899.1328210829,
-    6911.2872047712,
-    6923.4469345719,
-    6935.6120057882,
-    6947.7824137335,
-    6959.9581537318,
-    6972.1392211169,
-    6984.3256112330,
-    6996.5173194347,
-    7008.7143410863,
-    7020.9166715624,
-    7033.1243062477,
-    7045.3372405367,
-    7057.5554698343,
-    7069.7789895548,
-    7082.0077951229,
-    7094.2418819728,
-    7106.4812455489,
-    7118.7258813051,
-    7130.9757847053,
-    7143.2309512230,
-    7155.4913763416,
-    7167.7570555538,
-    7180.0279843624,
-    7192.3041582795,
-    7204.5855728270,
-    7216.8722235361,
-    7229.1641059476,
-    7241.4612156120,
-    7253.7635480891,
-    7266.0710989478,
-    7278.3838637670,
-    7290.7018381344,
-    7303.0250176474,
-    7315.3533979125,
-    7327.6869745455,
-    7340.0257431713,
-    7352.3696994244,
-    7364.7188389480,
-    7377.0731573946,
-    7389.4326504259,
-    7401.7973137127,
-    7414.1671429346,
-    7426.5421337804,
-    7438.9222819480,
-    7451.3075831438,
-    7463.6980330837,
-    7476.0936274921,
-    7488.4943621024,
-    7500.9002326569,
-    7513.3112349065,
-    7525.7273646110,
-    7538.1486175390,
-    7550.5749894679,
-    7563.0064761834,
-    7575.4430734804,
-    7587.8847771619,
-    7600.3315830400,
-    7612.7834869349,
-    7625.2404846758,
-    7637.7025721001,
-    7650.1697450538,
-    7662.6419993914,
-    7675.1193309757,
-    7687.6017356782,
-    7700.0892093785,
-    7712.5817479647,
-    7725.0793473331,
-    7737.5820033885,
-    7750.0897120437,
-    7762.6024692201,
-    7775.1202708469,
-    7787.6431128620,
-    7800.1709912110,
-    7812.7039018478,
-    7825.2418407347,
-    7837.7848038416,
-    7850.3327871468,
-    7862.8857866366,
-    7875.4437983052,
-    7888.0068181548,
-    7900.5748421957,
-    7913.1478664460,
-    7925.7258869318,
-    7938.3088996870,
-    7950.8969007534,
-    7963.4898861807,
-    7976.0878520263,
-    7988.6907943555,
-    8001.2987092412,
-    8013.9115927643,
-    8026.5294410131,
-    8039.1522500838,
-    8051.7800160802,
-    8064.4127351138,
-    8077.0504033037,
-    8089.6930167764,
-    8102.3405716663,
-    8114.9930641151,
-    8127.6504902721,
-    8140.3128462940,
-    8152.9801283453,
-    8165.6523325976,
-    8178.3294552300,
-    8191.0114924292,
-    8203.6984403890,
-    8216.3902953107,
-    8229.0870534031,
-    8241.7887108821,
-    8254.4952639709,
-    8267.2067089000,
-    8279.9230419073,
-    8292.6442592376,
-    8305.3703571432,
-    8318.1013318835,
-    8330.8371797251,
-    8343.5778969415,
-    8356.3234798136,
-    8369.0739246292,
-    8381.8292276834,
-    8394.5893852780,
-    8407.3543937222,
-    8420.1242493321,
-    8432.8989484305,
-    8445.6784873475,
-    8458.4628624202,
-    8471.2520699922,
-    8484.0461064144,
-    8496.8449680444,
-    8509.6486512468,
-    8522.4571523928,
-    8535.2704678607,
-    8548.0885940353,
-    8560.9115273086,
-    8573.7392640788,
-    8586.5718007514,
-    8599.4091337382,
-    8612.2512594579,
-    8625.0981743359,
-    8637.9498748040,
-    8650.8063573010,
-    8663.6676182722,
-    8676.5336541692,
-    8689.4044614507,
-    8702.2800365815,
-    8715.1603760331,
-    8728.0454762838,
-    8740.9353338178,
-    8753.8299451264,
-    8766.7293067070,
-    8779.6334150636,
-    8792.5422667064,
-    8805.4558581523,
-    8818.3741859245,
-    8831.2972465524,
-    8844.2250365719,
-    8857.1575525253,
-    8870.0947909611,
-    8883.0367484340,
-    8895.9834215053,
-    8908.9348067421,
-    8921.8909007182,
-    8934.8517000133,
-    8947.8172012135,
-    8960.7874009109,
-    8973.7622957040,
-    8986.7418821972,
-    8999.7261570012,
-    9012.7151167328,
-    9025.7087580148,
-    9038.7070774762,
-    9051.7100717521,
-    9064.7177374833,
-    9077.7300713171,
-    9090.7470699065,
-    9103.7687299106,
-    9116.7950479945,
-    9129.8260208291,
-    9142.8616450914,
-    9155.9019174644,
-    9168.9468346367,
-    9181.9963933031,
-    9195.0505901642,
-    9208.1094219263,
-    9221.1728853017,
-    9234.2409770084,
-    9247.3136937704,
-    9260.3910323173,
-    9273.4729893846,
-    9286.5595617135,
-    9299.6507460510,
-    9312.7465391496,
-    9325.8469377679,
-    9338.9519386698,
-    9352.0615386252,
-    9365.1757344094,
-    9378.2945228036,
-    9391.4179005944,
-    9404.5458645741,
-    9417.6784115407,
-    9430.8155382977,
-    9443.9572416540,
-    9457.1035184244,
-    9470.2543654290,
-    9483.4097794934,
-    9496.5697574489,
-    9509.7342961321,
-    9522.9033923851,
-    9536.0770430556,
-    9549.2552449966,
-    9562.4379950666,
-    9575.6252901295,
-    9588.8171270546,
-    9602.0135027165,
-    9615.2144139955,
-    9628.4198577767,
-    9641.6298309511,
-    9654.8443304146,
-    9668.0633530688,
-    9681.2868958202,
-    9694.5149555808,
-    9707.7475292679,
-    9720.9846138040,
-    9734.2262061168,
-    9747.4723031393,
-    9760.7229018097,
-    9773.9779990712,
-    9787.2375918726,
-    9800.5016771674,
-    9813.7702519147,
-    9827.0433130783,
-    9840.3208576275,
-    9853.6028825365,
-    9866.8893847847,
-    9880.1803613565,
-    9893.4758092415,
-    9906.7757254342,
-    9920.0801069342,
-    9933.3889507462,
-    9946.7022538799,
-    9960.0200133500,
-    9973.3422261761,
-    9986.6688893829,
-    10000.0000000000,
-    10013.3355550619,
-    10026.6755516082,
-    10040.0199866833,
-    10053.3688573365,
-    10066.7221606221,
-    10080.0798935991,
-    10093.4420533317,
-    10106.8086368886,
-    10120.1796413436,
-    10133.5550637751,
-    10146.9349012666,
-    10160.3191509062,
-    10173.7078097869,
-    10187.1008750065,
-    10200.4983436674,
-    10213.9002128770,
-    10227.3064797472,
-    10240.7171413949,
-    10254.1321949415,
-    10267.5516375131,
-    10280.9754662408,
-    10294.4036782600,
-    10307.8362707111,
-    10321.2732407388,
-    10334.7145854928
-#endif
+    0.0,
+    1.0,
+    2.5198420997897464,
+    4.3267487109222245,
+    6.3496042078727974,
+    8.5498797333834844,
+    10.902723556992836,
+    13.390518279406722,
+    15.999999999999998,
+    18.720754407467133,
+    21.544346900318832,
+    24.463780996262464,
+    27.47314182127996,
+    30.567350940369842,
+    33.741991698453212,
+    36.993181114957046,
+    40.317473596635935,
+    43.711787041189993,
+    47.173345095760126,
+    50.699631325716943,
+    54.288352331898118,
+    57.937407704003519,
+    61.6448652744185,
+    65.408940536585988,
+    69.227979374755591,
+    73.100443455321638,
+    77.024897778591622,
+    80.999999999999986,
+    85.024491212518527,
+    89.097187944889555,
+    93.216975178615741,
+    97.382800224133163,
+    101.59366732596474,
+    105.84863288986224,
+    110.14680124343441,
+    114.4873208566006,
+    118.86938096020653,
+    123.29220851090024,
+    127.75506545836058,
+    132.25724627755247,
+    136.79807573413572,
+    141.37690685569191,
+    145.99311908523086,
+    150.6461165966291,
+    155.33532675434674,
+    160.06019870205279,
+    164.82020206673349,
+    169.61482576651861,
+    174.44357691188537,
+    179.30597979112557,
+    184.20157493201927,
+    189.12991823257562,
+    194.09058015449685,
+    199.08314497371677,
+    204.1072100829694,
+    209.16238534187647,
+    214.24829247050752,
+    219.36456448277784,
+    224.51084515641216,
+    229.6867885365223,
+    234.89205847013176,
+    240.12632816923249,
+    245.38927980018505,
+    250.68060409747261,
+    255.99999999999991,
+    261.34717430828869,
+    266.72184136106449,
+    272.12372272986045,
+    277.55254693037961,
+    283.0080491494619,
+    288.48997098659891,
+    293.99806020902247,
+    299.53207051947408,
+    305.0917613358298,
+    310.67689758182206,
+    316.28724948815585,
+    321.92259240337177,
+    327.58270661385535,
+    333.26737717243742,
+    338.97639373507025,
+    344.70955040510125,
+    350.46664558470013,
+    356.24748183302603,
+    362.05186573075139,
+    367.87960775058258,
+    373.73052213344511,
+    379.60442677002078,
+    385.50114308734607,
+    391.42049594019937,
+    397.36231350702371,
+    403.32642719014467,
+    409.31267152006262,
+    415.32088406360799,
+    421.35090533576471,
+    427.40257871497619,
+    433.4757503617617,
+    439.5702691404793,
+    445.68598654408271,
+    451.82275662172759,
+    457.98043590909128,
+    464.15888336127773,
+    470.35796028818726,
+    476.5775302922363,
+    482.81745920832043,
+    489.07761504591741,
+    495.35786793323581,
+    501.65809006331688,
+    507.97815564200368,
+    514.31794083769648,
+    520.67732373281672,
+    527.05618427690604,
+    533.45440424129174,
+    539.87186717525128,
+    546.30845836361505,
+    552.76406478574609,
+    559.23857507584194,
+    565.73187948450413,
+    572.24386984152341,
+    578.77443951983378,
+    585.32348340058843,
+    591.89089783931263,
+    598.47658063309257,
+    605.08043098876044,
+    611.70234949203643,
+    618.3422380775919,
+    624.99999999999977,
+    631.67553980553748,
+    638.36876330481164,
+    645.07957754617485,
+    651.80789078990415,
+    658.55361248311499,
+    665.31665323538357,
+    672.09692479505225,
+    678.8943400261943,
+    685.70881288621433,
+    692.540258404062,
+    699.38859265903977,
+    706.25373276018058,
+    713.13559682617972,
+    720.03410396586037,
+    726.94917425915435,
+    733.88072873858209,
+    740.82868937121543,
+    747.79297904110535,
+    754.77352153216191,
+    761.77024151147043,
+    768.78306451302956,
+    775.81191692189896,
+    782.85672595874246,
+    789.91741966475445,
+    796.99392688695798,
+    804.08617726386274,
+    811.19410121147098,
+    818.31762990962227,
+    825.45669528866563,
+    832.61123001644864,
+    839.78116748561604,
+    846.96644180120552,
+    854.16698776853514,
+    861.38274088137143,
+    868.61363731036977,
+    875.85961389178203,
+    883.12060811641959,
+    890.39655811886757,
+    897.68740266694181,
+    904.99308115138172,
+    912.31353357577188,
+    919.64870054668756,
+    926.99852326405619,
+    934.36294351172899,
+    941.74190364825859,
+    949.13534659787422,
+    956.54321584165211,
+    963.96545540887348,
+    971.40200986856541,
+    978.85282432122176,
+    986.31784439069588,
+    993.7970162162635,
+    1001.29028644485,
+    1008.797602223418,
+    1016.3189111915103,
+    1023.8541614739464,
+    1031.4033016736653,
+    1038.9662808647138,
+    1046.5430485853758,
+    1054.1335548314366,
+    1061.7377500495838,
+    1069.3555851309357,
+    1076.9870114046978,
+    1084.6319806319441,
+    1092.2904449995174,
+    1099.9623571140482,
+    1107.6476699960892,
+    1115.3463370743607,
+    1123.058312180106,
+    1130.7835495415541,
+    1138.5220037784854,
+    1146.273629896901,
+    1154.0383832837879,
+    1161.816219701986,
+    1169.607095285146,
+    1177.4109665327808,
+    1185.2277903054078,
+    1193.0575238197798,
+    1200.9001246442001,
+    1208.7555506939248,
+    1216.6237602266442,
+    1224.5047118380478,
+    1232.3983644574657,
+    1240.3046773435874,
+    1248.2236100802568,
+    1256.1551225723395,
+    1264.099175041662,
+    1272.0557280230228,
+    1280.0247423602691,
+    1288.0061792024444,
+    1295.9999999999995,
+    1304.006166501068,
+    1312.0246407478062,
+    1320.0553850727929,
+    1328.0983620954903,
+    1336.1535347187651,
+    1344.2208661254647,
+    1352.3003197750522,
+    1360.3918594002962,
+    1368.4954490040145,
+    1376.6110528558709,
+    1384.7386354892244,
+    1392.8781616980295,
+    1401.0295965337855,
+    1409.1929053025353,
+    1417.3680535619119,
+    1425.5550071182327,
+    1433.7537320236374,
+    1441.9641945732744,
+    1450.1863613025282,
+    1458.4201989842913,
+    1466.6656746262797,
+    1474.9227554683875,
+    1483.1914089800841,
+    1491.4716028578516,
+    1499.7633050226596,
+    1508.0664836174794,
+    1516.3811070048375,
+    1524.7071437644029,
+    1533.0445626906128,
+    1541.3933327903342,
+    1549.7534232805581,
+    1558.1248035861302,
+    1566.507443337515,
+    1574.9013123685909,
+    1583.3063807144795,
+    1591.7226186094069,
+    1600.1499964845941,
+    1608.58848496618,
+    1617.0380548731737
 };
 
 #else
 
+#define IQ_TABLE_SIZE  1026
+
 static real_t iq_table[IQ_TABLE_SIZE] =
 {
-    REAL_CONST(0.000000/8.0),
-    REAL_CONST(1.000000/8.0),
-    REAL_CONST(2.519842/8.0),
-    REAL_CONST(4.326749/8.0),
-    REAL_CONST(6.349604/8.0),
-    REAL_CONST(8.549880/8.0),
-    REAL_CONST(10.902724/8.0),
-    REAL_CONST(13.390518/8.0),
-    REAL_CONST(16.000000/8.0),
-    REAL_CONST(18.720754/8.0),
-    REAL_CONST(21.544347/8.0),
-    REAL_CONST(24.463781/8.0),
-    REAL_CONST(27.473142/8.0),
-    REAL_CONST(30.567351/8.0),
-    REAL_CONST(33.741992/8.0),
-    REAL_CONST(36.993181/8.0),
-    REAL_CONST(40.317474/8.0),
-    REAL_CONST(43.711787/8.0),
-    REAL_CONST(47.173345/8.0),
-    REAL_CONST(50.699631/8.0),
-    REAL_CONST(54.288352/8.0),
-    REAL_CONST(57.937408/8.0),
-    REAL_CONST(61.644865/8.0),
-    REAL_CONST(65.408941/8.0),
-    REAL_CONST(69.227979/8.0),
-    REAL_CONST(73.100443/8.0),
-    REAL_CONST(77.024898/8.0),
-    REAL_CONST(81.000000/8.0),
-    REAL_CONST(85.024491/8.0),
-    REAL_CONST(89.097188/8.0),
-    REAL_CONST(93.216975/8.0),
-    REAL_CONST(97.382800/8.0),
-    REAL_CONST(101.593667/8.0),
-    REAL_CONST(105.848633/8.0),
-    REAL_CONST(110.146801/8.0),
-    REAL_CONST(114.487321/8.0),
-    REAL_CONST(118.869381/8.0),
-    REAL_CONST(123.292209/8.0),
-    REAL_CONST(127.755065/8.0),
-    REAL_CONST(132.257246/8.0),
-    REAL_CONST(136.798076/8.0),
-    REAL_CONST(141.376907/8.0),
-    REAL_CONST(145.993119/8.0),
-    REAL_CONST(150.646117/8.0),
-    REAL_CONST(155.335327/8.0),
-    REAL_CONST(160.060199/8.0),
-    REAL_CONST(164.820202/8.0),
-    REAL_CONST(169.614826/8.0),
-    REAL_CONST(174.443577/8.0),
-    REAL_CONST(179.305980/8.0),
-    REAL_CONST(184.201575/8.0),
-    REAL_CONST(189.129918/8.0),
-    REAL_CONST(194.090580/8.0),
-    REAL_CONST(199.083145/8.0),
-    REAL_CONST(204.107210/8.0),
-    REAL_CONST(209.162385/8.0),
-    REAL_CONST(214.248292/8.0),
-    REAL_CONST(219.364564/8.0),
-    REAL_CONST(224.510845/8.0),
-    REAL_CONST(229.686789/8.0),
-    REAL_CONST(234.892058/8.0),
-    REAL_CONST(240.126328/8.0),
-    REAL_CONST(245.389280/8.0),
-    REAL_CONST(250.680604/8.0),
-    REAL_CONST(256.000000/8.0),
-    REAL_CONST(261.347174/8.0),
-    REAL_CONST(266.721841/8.0),
-    REAL_CONST(272.123723/8.0),
-    REAL_CONST(277.552547/8.0),
-    REAL_CONST(283.008049/8.0),
-    REAL_CONST(288.489971/8.0),
-    REAL_CONST(293.998060/8.0),
-    REAL_CONST(299.532071/8.0),
-    REAL_CONST(305.091761/8.0),
-    REAL_CONST(310.676898/8.0),
-    REAL_CONST(316.287249/8.0),
-    REAL_CONST(321.922592/8.0),
-    REAL_CONST(327.582707/8.0),
-    REAL_CONST(333.267377/8.0),
-    REAL_CONST(338.976394/8.0),
-    REAL_CONST(344.709550/8.0),
-    REAL_CONST(350.466646/8.0),
-    REAL_CONST(356.247482/8.0),
-    REAL_CONST(362.051866/8.0),
-    REAL_CONST(367.879608/8.0),
-    REAL_CONST(373.730522/8.0),
-    REAL_CONST(379.604427/8.0),
-    REAL_CONST(385.501143/8.0),
-    REAL_CONST(391.420496/8.0),
-    REAL_CONST(397.362314/8.0),
-    REAL_CONST(403.326427/8.0),
-    REAL_CONST(409.312672/8.0),
-    REAL_CONST(415.320884/8.0),
-    REAL_CONST(421.350905/8.0),
-    REAL_CONST(427.402579/8.0),
-    REAL_CONST(433.475750/8.0),
-    REAL_CONST(439.570269/8.0),
-    REAL_CONST(445.685987/8.0),
-    REAL_CONST(451.822757/8.0),
-    REAL_CONST(457.980436/8.0),
-    REAL_CONST(464.158883/8.0),
-    REAL_CONST(470.357960/8.0),
-    REAL_CONST(476.577530/8.0),
-    REAL_CONST(482.817459/8.0),
-    REAL_CONST(489.077615/8.0),
-    REAL_CONST(495.357868/8.0),
-    REAL_CONST(501.658090/8.0),
-    REAL_CONST(507.978156/8.0),
-    REAL_CONST(514.317941/8.0),
-    REAL_CONST(520.677324/8.0),
-    REAL_CONST(527.056184/8.0),
-    REAL_CONST(533.454404/8.0),
-    REAL_CONST(539.871867/8.0),
-    REAL_CONST(546.308458/8.0),
-    REAL_CONST(552.764065/8.0),
-    REAL_CONST(559.238575/8.0),
-    REAL_CONST(565.731879/8.0),
-    REAL_CONST(572.243870/8.0),
-    REAL_CONST(578.774440/8.0),
-    REAL_CONST(585.323483/8.0),
-    REAL_CONST(591.890898/8.0),
-    REAL_CONST(598.476581/8.0),
-    REAL_CONST(605.080431/8.0),
-    REAL_CONST(611.702349/8.0),
-    REAL_CONST(618.342238/8.0),
-    REAL_CONST(625.000000/8.0),
-    REAL_CONST(631.675540/8.0),
-    REAL_CONST(638.368763/8.0),
-    REAL_CONST(645.079578/8.0),
-    REAL_CONST(651.807891/8.0),
-    REAL_CONST(658.553612/8.0),
-    REAL_CONST(665.316653/8.0),
-    REAL_CONST(672.096925/8.0),
-    REAL_CONST(678.894340/8.0),
-    REAL_CONST(685.708813/8.0),
-    REAL_CONST(692.540258/8.0),
-    REAL_CONST(699.388593/8.0),
-    REAL_CONST(706.253733/8.0),
-    REAL_CONST(713.135597/8.0),
-    REAL_CONST(720.034104/8.0),
-    REAL_CONST(726.949174/8.0),
-    REAL_CONST(733.880729/8.0),
-    REAL_CONST(740.828689/8.0),
-    REAL_CONST(747.792979/8.0),
-    REAL_CONST(754.773522/8.0),
-    REAL_CONST(761.770242/8.0),
-    REAL_CONST(768.783065/8.0),
-    REAL_CONST(775.811917/8.0),
-    REAL_CONST(782.856726/8.0),
-    REAL_CONST(789.917420/8.0),
-    REAL_CONST(796.993927/8.0),
-    REAL_CONST(804.086177/8.0),
-    REAL_CONST(811.194101/8.0),
-    REAL_CONST(818.317630/8.0),
-    REAL_CONST(825.456695/8.0),
-    REAL_CONST(832.611230/8.0),
-    REAL_CONST(839.781167/8.0),
-    REAL_CONST(846.966442/8.0),
-    REAL_CONST(854.166988/8.0),
-    REAL_CONST(861.382741/8.0),
-    REAL_CONST(868.613637/8.0),
-    REAL_CONST(875.859614/8.0),
-    REAL_CONST(883.120608/8.0),
-    REAL_CONST(890.396558/8.0),
-    REAL_CONST(897.687403/8.0),
-    REAL_CONST(904.993081/8.0),
-    REAL_CONST(912.313534/8.0),
-    REAL_CONST(919.648701/8.0),
-    REAL_CONST(926.998523/8.0),
-    REAL_CONST(934.362944/8.0),
-    REAL_CONST(941.741904/8.0),
-    REAL_CONST(949.135347/8.0),
-    REAL_CONST(956.543216/8.0),
-    REAL_CONST(963.965455/8.0),
-    REAL_CONST(971.402010/8.0),
-    REAL_CONST(978.852824/8.0),
-    REAL_CONST(986.317844/8.0),
-    REAL_CONST(993.797016/8.0),
-    REAL_CONST(1001.290286/8.0),
-    REAL_CONST(1008.797602/8.0),
-    REAL_CONST(1016.318911/8.0),
-    REAL_CONST(1023.854161/8.0),
-    REAL_CONST(1031.403302/8.0),
-    REAL_CONST(1038.966281/8.0),
-    REAL_CONST(1046.543049/8.0),
-    REAL_CONST(1054.133555/8.0),
-    REAL_CONST(1061.737750/8.0),
-    REAL_CONST(1069.355585/8.0),
-    REAL_CONST(1076.987011/8.0),
-    REAL_CONST(1084.631981/8.0),
-    REAL_CONST(1092.290445/8.0),
-    REAL_CONST(1099.962357/8.0),
-    REAL_CONST(1107.647670/8.0),
-    REAL_CONST(1115.346337/8.0),
-    REAL_CONST(1123.058312/8.0),
-    REAL_CONST(1130.783550/8.0),
-    REAL_CONST(1138.522004/8.0),
-    REAL_CONST(1146.273630/8.0),
-    REAL_CONST(1154.038383/8.0),
-    REAL_CONST(1161.816220/8.0),
-    REAL_CONST(1169.607095/8.0),
-    REAL_CONST(1177.410967/8.0),
-    REAL_CONST(1185.227790/8.0),
-    REAL_CONST(1193.057524/8.0),
-    REAL_CONST(1200.900125/8.0),
-    REAL_CONST(1208.755551/8.0),
-    REAL_CONST(1216.623760/8.0),
-    REAL_CONST(1224.504712/8.0),
-    REAL_CONST(1232.398364/8.0),
-    REAL_CONST(1240.304677/8.0),
-    REAL_CONST(1248.223610/8.0),
-    REAL_CONST(1256.155123/8.0),
-    REAL_CONST(1264.099175/8.0),
-    REAL_CONST(1272.055728/8.0),
-    REAL_CONST(1280.024742/8.0),
-    REAL_CONST(1288.006179/8.0),
-    REAL_CONST(1296.000000/8.0),
-    REAL_CONST(1304.006167/8.0),
-    REAL_CONST(1312.024641/8.0),
-    REAL_CONST(1320.055385/8.0),
-    REAL_CONST(1328.098362/8.0),
-    REAL_CONST(1336.153535/8.0),
-    REAL_CONST(1344.220866/8.0),
-    REAL_CONST(1352.300320/8.0),
-    REAL_CONST(1360.391859/8.0),
-    REAL_CONST(1368.495449/8.0),
-    REAL_CONST(1376.611053/8.0),
-    REAL_CONST(1384.738635/8.0),
-    REAL_CONST(1392.878162/8.0),
-    REAL_CONST(1401.029597/8.0),
-    REAL_CONST(1409.192905/8.0),
-    REAL_CONST(1417.368054/8.0),
-    REAL_CONST(1425.555007/8.0),
-    REAL_CONST(1433.753732/8.0),
-    REAL_CONST(1441.964195/8.0),
-    REAL_CONST(1450.186361/8.0),
-    REAL_CONST(1458.420199/8.0),
-    REAL_CONST(1466.665675/8.0),
-    REAL_CONST(1474.922755/8.0),
-    REAL_CONST(1483.191409/8.0),
-    REAL_CONST(1491.471603/8.0),
-    REAL_CONST(1499.763305/8.0),
-    REAL_CONST(1508.066484/8.0),
-    REAL_CONST(1516.381107/8.0),
-    REAL_CONST(1524.707144/8.0),
-    REAL_CONST(1533.044563/8.0),
-    REAL_CONST(1541.393333/8.0),
-    REAL_CONST(1549.753423/8.0),
-    REAL_CONST(1558.124804/8.0),
-    REAL_CONST(1566.507443/8.0),
-    REAL_CONST(1574.901312/8.0),
-    REAL_CONST(1583.306381/8.0),
-    REAL_CONST(1591.722619/8.0),
-    REAL_CONST(1600.149996/8.0),
-    REAL_CONST(1608.588485/8.0),
-    REAL_CONST(1617.038055/8.0),
-    REAL_CONST(1625.498677/8.0),
-    REAL_CONST(1633.970323/8.0),
-    REAL_CONST(1642.452964/8.0),
-    REAL_CONST(1650.946572/8.0),
-    REAL_CONST(1659.451118/8.0),
-    REAL_CONST(1667.966574/8.0),
-    REAL_CONST(1676.492913/8.0),
-    REAL_CONST(1685.030106/8.0),
-    REAL_CONST(1693.578126/8.0),
-    REAL_CONST(1702.136946/8.0),
-    REAL_CONST(1710.706539/8.0),
-    REAL_CONST(1719.286878/8.0),
-    REAL_CONST(1727.877935/8.0),
-    REAL_CONST(1736.479684/8.0),
-    REAL_CONST(1745.092099/8.0),
-    REAL_CONST(1753.715153/8.0),
-    REAL_CONST(1762.348820/8.0),
-    REAL_CONST(1770.993074/8.0),
-    REAL_CONST(1779.647889/8.0),
-    REAL_CONST(1788.313239/8.0),
-    REAL_CONST(1796.989100/8.0),
-    REAL_CONST(1805.675445/8.0),
-    REAL_CONST(1814.372248/8.0),
-    REAL_CONST(1823.079487/8.0),
-    REAL_CONST(1831.797134/8.0),
-    REAL_CONST(1840.525165/8.0),
-    REAL_CONST(1849.263556/8.0),
-    REAL_CONST(1858.012283/8.0),
-    REAL_CONST(1866.771320/8.0),
-    REAL_CONST(1875.540644/8.0),
-    REAL_CONST(1884.320231/8.0),
-    REAL_CONST(1893.110056/8.0),
-    REAL_CONST(1901.910095/8.0),
-    REAL_CONST(1910.720326/8.0),
-    REAL_CONST(1919.540725/8.0),
-    REAL_CONST(1928.371268/8.0),
-    REAL_CONST(1937.211932/8.0),
-    REAL_CONST(1946.062693/8.0),
-    REAL_CONST(1954.923530/8.0),
-    REAL_CONST(1963.794418/8.0),
-    REAL_CONST(1972.675336/8.0),
-    REAL_CONST(1981.566261/8.0),
-    REAL_CONST(1990.467169/8.0),
-    REAL_CONST(1999.378040/8.0),
-    REAL_CONST(2008.298850/8.0),
-    REAL_CONST(2017.229578/8.0),
-    REAL_CONST(2026.170201/8.0)
-#ifndef SMALL_IQ_TAB
-    ,REAL_CONST(2035.120698/8.0),
-    REAL_CONST(2044.081047/8.0),
-    REAL_CONST(2053.051227/8.0),
-    REAL_CONST(2062.031215/8.0),
-    REAL_CONST(2071.020990/8.0),
-    REAL_CONST(2080.020532/8.0),
-    REAL_CONST(2089.029819/8.0),
-    REAL_CONST(2098.048830/8.0),
-    REAL_CONST(2107.077544/8.0),
-    REAL_CONST(2116.115940/8.0),
-    REAL_CONST(2125.163998/8.0),
-    REAL_CONST(2134.221697/8.0),
-    REAL_CONST(2143.289017/8.0),
-    REAL_CONST(2152.365936/8.0),
-    REAL_CONST(2161.452435/8.0),
-    REAL_CONST(2170.548495/8.0),
-    REAL_CONST(2179.654093/8.0),
-    REAL_CONST(2188.769212/8.0),
-    REAL_CONST(2197.893830/8.0),
-    REAL_CONST(2207.027929/8.0),
-    REAL_CONST(2216.171488/8.0),
-    REAL_CONST(2225.324488/8.0),
-    REAL_CONST(2234.486909/8.0),
-    REAL_CONST(2243.658733/8.0),
-    REAL_CONST(2252.839939/8.0),
-    REAL_CONST(2262.030510/8.0),
-    REAL_CONST(2271.230425/8.0),
-    REAL_CONST(2280.439666/8.0),
-    REAL_CONST(2289.658214/8.0),
-    REAL_CONST(2298.886050/8.0),
-    REAL_CONST(2308.123156/8.0),
-    REAL_CONST(2317.369513/8.0),
-    REAL_CONST(2326.625102/8.0),
-    REAL_CONST(2335.889905/8.0),
-    REAL_CONST(2345.163905/8.0),
-    REAL_CONST(2354.447082/8.0),
-    REAL_CONST(2363.739418/8.0),
-    REAL_CONST(2373.040896/8.0),
-    REAL_CONST(2382.351497/8.0),
-    REAL_CONST(2391.671205/8.0),
-    REAL_CONST(2401.000000/8.0),
-    REAL_CONST(2410.337866/8.0),
-    REAL_CONST(2419.684784/8.0),
-    REAL_CONST(2429.040737/8.0),
-    REAL_CONST(2438.405709/8.0),
-    REAL_CONST(2447.779680/8.0),
-    REAL_CONST(2457.162635/8.0),
-    REAL_CONST(2466.554556/8.0),
-    REAL_CONST(2475.955426/8.0),
-    REAL_CONST(2485.365228/8.0),
-    REAL_CONST(2494.783945/8.0),
-    REAL_CONST(2504.211560/8.0),
-    REAL_CONST(2513.648057/8.0),
-    REAL_CONST(2523.093418/8.0),
-    REAL_CONST(2532.547627/8.0),
-    REAL_CONST(2542.010668/8.0),
-    REAL_CONST(2551.482524/8.0),
-    REAL_CONST(2560.963179/8.0),
-    REAL_CONST(2570.452617/8.0),
-    REAL_CONST(2579.950820/8.0),
-    REAL_CONST(2589.457774/8.0),
-    REAL_CONST(2598.973461/8.0),
-    REAL_CONST(2608.497867/8.0),
-    REAL_CONST(2618.030975/8.0),
-    REAL_CONST(2627.572769/8.0),
-    REAL_CONST(2637.123233/8.0),
-    REAL_CONST(2646.682352/8.0),
-    REAL_CONST(2656.250110/8.0),
-    REAL_CONST(2665.826492/8.0),
-    REAL_CONST(2675.411482/8.0),
-    REAL_CONST(2685.005064/8.0),
-    REAL_CONST(2694.607223/8.0),
-    REAL_CONST(2704.217944/8.0),
-    REAL_CONST(2713.837212/8.0),
-    REAL_CONST(2723.465012/8.0),
-    REAL_CONST(2733.101328/8.0),
-    REAL_CONST(2742.746145/8.0),
-    REAL_CONST(2752.399449/8.0),
-    REAL_CONST(2762.061224/8.0),
-    REAL_CONST(2771.731456/8.0),
-    REAL_CONST(2781.410129/8.0),
-    REAL_CONST(2791.097231/8.0),
-    REAL_CONST(2800.792744/8.0),
-    REAL_CONST(2810.496656/8.0),
-    REAL_CONST(2820.208951/8.0),
-    REAL_CONST(2829.929616/8.0),
-    REAL_CONST(2839.658635/8.0),
-    REAL_CONST(2849.395994/8.0),
-    REAL_CONST(2859.141679/8.0),
-    REAL_CONST(2868.895677/8.0),
-    REAL_CONST(2878.657972/8.0),
-    REAL_CONST(2888.428550/8.0),
-    REAL_CONST(2898.207399/8.0),
-    REAL_CONST(2907.994503/8.0),
-    REAL_CONST(2917.789849/8.0),
-    REAL_CONST(2927.593423/8.0),
-    REAL_CONST(2937.405211/8.0),
-    REAL_CONST(2947.225199/8.0),
-    REAL_CONST(2957.053374/8.0),
-    REAL_CONST(2966.889722/8.0),
-    REAL_CONST(2976.734230/8.0),
-    REAL_CONST(2986.586884/8.0),
-    REAL_CONST(2996.447670/8.0),
-    REAL_CONST(3006.316576/8.0),
-    REAL_CONST(3016.193588/8.0),
-    REAL_CONST(3026.078692/8.0),
-    REAL_CONST(3035.971875/8.0),
-    REAL_CONST(3045.873125/8.0),
-    REAL_CONST(3055.782428/8.0),
-    REAL_CONST(3065.699771/8.0),
-    REAL_CONST(3075.625140/8.0),
-    REAL_CONST(3085.558524/8.0),
-    REAL_CONST(3095.499909/8.0),
-    REAL_CONST(3105.449282/8.0),
-    REAL_CONST(3115.406631/8.0),
-    REAL_CONST(3125.371943/8.0),
-    REAL_CONST(3135.345204/8.0),
-    REAL_CONST(3145.326403/8.0),
-    REAL_CONST(3155.315526/8.0),
-    REAL_CONST(3165.312562/8.0),
-    REAL_CONST(3175.317497/8.0),
-    REAL_CONST(3185.330320/8.0),
-    REAL_CONST(3195.351017/8.0),
-    REAL_CONST(3205.379577/8.0),
-    REAL_CONST(3215.415987/8.0),
-    REAL_CONST(3225.460235/8.0),
-    REAL_CONST(3235.512308/8.0),
-    REAL_CONST(3245.572195/8.0),
-    REAL_CONST(3255.639884/8.0),
-    REAL_CONST(3265.715361/8.0),
-    REAL_CONST(3275.798616/8.0),
-    REAL_CONST(3285.889637/8.0),
-    REAL_CONST(3295.988410/8.0),
-    REAL_CONST(3306.094926/8.0),
-    REAL_CONST(3316.209171/8.0),
-    REAL_CONST(3326.331133/8.0),
-    REAL_CONST(3336.460802/8.0),
-    REAL_CONST(3346.598165/8.0),
-    REAL_CONST(3356.743211/8.0),
-    REAL_CONST(3366.895929/8.0),
-    REAL_CONST(3377.056305/8.0),
-    REAL_CONST(3387.224330/8.0),
-    REAL_CONST(3397.399991/8.0),
-    REAL_CONST(3407.583277/8.0),
-    REAL_CONST(3417.774177/8.0),
-    REAL_CONST(3427.972680/8.0),
-    REAL_CONST(3438.178773/8.0),
-    REAL_CONST(3448.392446/8.0),
-    REAL_CONST(3458.613687/8.0),
-    REAL_CONST(3468.842486/8.0),
-    REAL_CONST(3479.078831/8.0),
-    REAL_CONST(3489.322711/8.0),
-    REAL_CONST(3499.574115/8.0),
-    REAL_CONST(3509.833032/8.0),
-    REAL_CONST(3520.099451/8.0),
-    REAL_CONST(3530.373360/8.0),
-    REAL_CONST(3540.654750/8.0),
-    REAL_CONST(3550.943610/8.0),
-    REAL_CONST(3561.239927/8.0),
-    REAL_CONST(3571.543692/8.0),
-    REAL_CONST(3581.854894/8.0),
-    REAL_CONST(3592.173523/8.0),
-    REAL_CONST(3602.499566/8.0),
-    REAL_CONST(3612.833015/8.0),
-    REAL_CONST(3623.173857/8.0),
-    REAL_CONST(3633.522084/8.0),
-    REAL_CONST(3643.877683/8.0),
-    REAL_CONST(3654.240646/8.0),
-    REAL_CONST(3664.610960/8.0),
-    REAL_CONST(3674.988617/8.0),
-    REAL_CONST(3685.373604/8.0),
-    REAL_CONST(3695.765913/8.0),
-    REAL_CONST(3706.165533/8.0),
-    REAL_CONST(3716.572453/8.0),
-    REAL_CONST(3726.986664/8.0),
-    REAL_CONST(3737.408154/8.0),
-    REAL_CONST(3747.836915/8.0),
-    REAL_CONST(3758.272936/8.0),
-    REAL_CONST(3768.716206/8.0),
-    REAL_CONST(3779.166716/8.0),
-    REAL_CONST(3789.624455/8.0),
-    REAL_CONST(3800.089415/8.0),
-    REAL_CONST(3810.561584/8.0),
-    REAL_CONST(3821.040953/8.0),
-    REAL_CONST(3831.527512/8.0),
-    REAL_CONST(3842.021251/8.0),
-    REAL_CONST(3852.522160/8.0),
-    REAL_CONST(3863.030230/8.0),
-    REAL_CONST(3873.545451/8.0),
-    REAL_CONST(3884.067812/8.0),
-    REAL_CONST(3894.597305/8.0),
-    REAL_CONST(3905.133920/8.0),
-    REAL_CONST(3915.677647/8.0),
-    REAL_CONST(3926.228477/8.0),
-    REAL_CONST(3936.786399/8.0),
-    REAL_CONST(3947.351405/8.0),
-    REAL_CONST(3957.923485/8.0),
-    REAL_CONST(3968.502630/8.0),
-    REAL_CONST(3979.088830/8.0),
-    REAL_CONST(3989.682075/8.0),
-    REAL_CONST(4000.282357/8.0),
-    REAL_CONST(4010.889666/8.0),
-    REAL_CONST(4021.503992/8.0),
-    REAL_CONST(4032.125327/8.0),
-    REAL_CONST(4042.753661/8.0),
-    REAL_CONST(4053.388986/8.0),
-    REAL_CONST(4064.031291/8.0),
-    REAL_CONST(4074.680568/8.0),
-    REAL_CONST(4085.336807/8.0),
-    REAL_CONST(4096.000000/8.0),
-    REAL_CONST(4106.670137/8.0),
-    REAL_CONST(4117.347210/8.0),
-    REAL_CONST(4128.031209/8.0),
-    REAL_CONST(4138.722126/8.0),
-    REAL_CONST(4149.419951/8.0),
-    REAL_CONST(4160.124676/8.0),
-    REAL_CONST(4170.836292/8.0),
-    REAL_CONST(4181.554789/8.0),
-    REAL_CONST(4192.280159/8.0),
-    REAL_CONST(4203.012394/8.0),
-    REAL_CONST(4213.751484/8.0),
-    REAL_CONST(4224.497421/8.0),
-    REAL_CONST(4235.250196/8.0),
-    REAL_CONST(4246.009800/8.0),
-    REAL_CONST(4256.776225/8.0),
-    REAL_CONST(4267.549462/8.0),
-    REAL_CONST(4278.329502/8.0),
-    REAL_CONST(4289.116337/8.0),
-    REAL_CONST(4299.909959/8.0),
-    REAL_CONST(4310.710358/8.0),
-    REAL_CONST(4321.517527/8.0),
-    REAL_CONST(4332.331456/8.0),
-    REAL_CONST(4343.152138/8.0),
-    REAL_CONST(4353.979564/8.0),
-    REAL_CONST(4364.813725/8.0),
-    REAL_CONST(4375.654614/8.0),
-    REAL_CONST(4386.502221/8.0),
-    REAL_CONST(4397.356539/8.0),
-    REAL_CONST(4408.217559/8.0),
-    REAL_CONST(4419.085273/8.0),
-    REAL_CONST(4429.959673/8.0),
-    REAL_CONST(4440.840751/8.0),
-    REAL_CONST(4451.728498/8.0),
-    REAL_CONST(4462.622906/8.0),
-    REAL_CONST(4473.523967/8.0),
-    REAL_CONST(4484.431673/8.0),
-    REAL_CONST(4495.346016/8.0),
-    REAL_CONST(4506.266988/8.0),
-    REAL_CONST(4517.194581/8.0),
-    REAL_CONST(4528.128786/8.0),
-    REAL_CONST(4539.069597/8.0),
-    REAL_CONST(4550.017004/8.0),
-    REAL_CONST(4560.971000/8.0),
-    REAL_CONST(4571.931576/8.0),
-    REAL_CONST(4582.898726/8.0),
-    REAL_CONST(4593.872441/8.0),
-    REAL_CONST(4604.852714/8.0),
-    REAL_CONST(4615.839536/8.0),
-    REAL_CONST(4626.832899/8.0),
-    REAL_CONST(4637.832797/8.0),
-    REAL_CONST(4648.839221/8.0),
-    REAL_CONST(4659.852163/8.0),
-    REAL_CONST(4670.871616/8.0),
-    REAL_CONST(4681.897572/8.0),
-    REAL_CONST(4692.930024/8.0),
-    REAL_CONST(4703.968963/8.0),
-    REAL_CONST(4715.014383/8.0),
-    REAL_CONST(4726.066275/8.0),
-    REAL_CONST(4737.124632/8.0),
-    REAL_CONST(4748.189446/8.0),
-    REAL_CONST(4759.260711/8.0),
-    REAL_CONST(4770.338417/8.0),
-    REAL_CONST(4781.422559/8.0),
-    REAL_CONST(4792.513128/8.0),
-    REAL_CONST(4803.610117/8.0),
-    REAL_CONST(4814.713519/8.0),
-    REAL_CONST(4825.823326/8.0),
-    REAL_CONST(4836.939531/8.0),
-    REAL_CONST(4848.062126/8.0),
-    REAL_CONST(4859.191105/8.0),
-    REAL_CONST(4870.326459/8.0),
-    REAL_CONST(4881.468181/8.0),
-    REAL_CONST(4892.616265/8.0),
-    REAL_CONST(4903.770703/8.0),
-    REAL_CONST(4914.931488/8.0),
-    REAL_CONST(4926.098612/8.0),
-    REAL_CONST(4937.272069/8.0),
-    REAL_CONST(4948.451851/8.0),
-    REAL_CONST(4959.637951/8.0),
-    REAL_CONST(4970.830361/8.0),
-    REAL_CONST(4982.029076/8.0),
-    REAL_CONST(4993.234087/8.0),
-    REAL_CONST(5004.445388/8.0),
-    REAL_CONST(5015.662972/8.0),
-    REAL_CONST(5026.886831/8.0),
-    REAL_CONST(5038.116959/8.0),
-    REAL_CONST(5049.353348/8.0),
-    REAL_CONST(5060.595992/8.0),
-    REAL_CONST(5071.844883/8.0),
-    REAL_CONST(5083.100016/8.0),
-    REAL_CONST(5094.361382/8.0),
-    REAL_CONST(5105.628975/8.0),
-    REAL_CONST(5116.902788/8.0),
-    REAL_CONST(5128.182814/8.0),
-    REAL_CONST(5139.469046/8.0),
-    REAL_CONST(5150.761478/8.0),
-    REAL_CONST(5162.060103/8.0),
-    REAL_CONST(5173.364914/8.0),
-    REAL_CONST(5184.675904/8.0),
-    REAL_CONST(5195.993066/8.0),
-    REAL_CONST(5207.316394/8.0),
-    REAL_CONST(5218.645881/8.0),
-    REAL_CONST(5229.981521/8.0),
-    REAL_CONST(5241.323306/8.0),
-    REAL_CONST(5252.671230/8.0),
-    REAL_CONST(5264.025286/8.0),
-    REAL_CONST(5275.385468/8.0),
-    REAL_CONST(5286.751770/8.0),
-    REAL_CONST(5298.124183/8.0),
-    REAL_CONST(5309.502703/8.0),
-    REAL_CONST(5320.887323/8.0),
-    REAL_CONST(5332.278035/8.0),
-    REAL_CONST(5343.674833/8.0),
-    REAL_CONST(5355.077712/8.0),
-    REAL_CONST(5366.486664/8.0),
-    REAL_CONST(5377.901683/8.0),
-    REAL_CONST(5389.322762/8.0),
-    REAL_CONST(5400.749896/8.0),
-    REAL_CONST(5412.183077/8.0),
-    REAL_CONST(5423.622300/8.0),
-    REAL_CONST(5435.067557/8.0),
-    REAL_CONST(5446.518843/8.0),
-    REAL_CONST(5457.976152/8.0),
-    REAL_CONST(5469.439476/8.0),
-    REAL_CONST(5480.908810/8.0),
-    REAL_CONST(5492.384147/8.0),
-    REAL_CONST(5503.865481/8.0),
-    REAL_CONST(5515.352806/8.0),
-    REAL_CONST(5526.846116/8.0),
-    REAL_CONST(5538.345404/8.0),
-    REAL_CONST(5549.850664/8.0),
-    REAL_CONST(5561.361890/8.0),
-    REAL_CONST(5572.879076/8.0),
-    REAL_CONST(5584.402215/8.0),
-    REAL_CONST(5595.931301/8.0),
-    REAL_CONST(5607.466329/8.0),
-    REAL_CONST(5619.007292/8.0),
-    REAL_CONST(5630.554185/8.0),
-    REAL_CONST(5642.107000/8.0),
-    REAL_CONST(5653.665732/8.0),
-    REAL_CONST(5665.230375/8.0),
-    REAL_CONST(5676.800923/8.0),
-    REAL_CONST(5688.377370/8.0),
-    REAL_CONST(5699.959709/8.0),
-    REAL_CONST(5711.547936/8.0),
-    REAL_CONST(5723.142043/8.0),
-    REAL_CONST(5734.742025/8.0),
-    REAL_CONST(5746.347876/8.0),
-    REAL_CONST(5757.959590/8.0),
-    REAL_CONST(5769.577162/8.0),
-    REAL_CONST(5781.200584/8.0),
-    REAL_CONST(5792.829852/8.0),
-    REAL_CONST(5804.464959/8.0),
-    REAL_CONST(5816.105900/8.0),
-    REAL_CONST(5827.752668/8.0),
-    REAL_CONST(5839.405259/8.0),
-    REAL_CONST(5851.063665/8.0),
-    REAL_CONST(5862.727882/8.0),
-    REAL_CONST(5874.397904/8.0),
-    REAL_CONST(5886.073724/8.0),
-    REAL_CONST(5897.755337/8.0),
-    REAL_CONST(5909.442738/8.0),
-    REAL_CONST(5921.135920/8.0),
-    REAL_CONST(5932.834878/8.0),
-    REAL_CONST(5944.539606/8.0),
-    REAL_CONST(5956.250098/8.0),
-    REAL_CONST(5967.966350/8.0),
-    REAL_CONST(5979.688354/8.0),
-    REAL_CONST(5991.416106/8.0),
-    REAL_CONST(6003.149600/8.0),
-    REAL_CONST(6014.888830/8.0),
-    REAL_CONST(6026.633791/8.0),
-    REAL_CONST(6038.384476/8.0),
-    REAL_CONST(6050.140882/8.0),
-    REAL_CONST(6061.903001/8.0),
-    REAL_CONST(6073.670828/8.0),
-    REAL_CONST(6085.444359/8.0),
-    REAL_CONST(6097.223586/8.0),
-    REAL_CONST(6109.008506/8.0),
-    REAL_CONST(6120.799112/8.0),
-    REAL_CONST(6132.595399/8.0),
-    REAL_CONST(6144.397361/8.0),
-    REAL_CONST(6156.204993/8.0),
-    REAL_CONST(6168.018289/8.0),
-    REAL_CONST(6179.837245/8.0),
-    REAL_CONST(6191.661854/8.0),
-    REAL_CONST(6203.492112/8.0),
-    REAL_CONST(6215.328012/8.0),
-    REAL_CONST(6227.169550/8.0),
-    REAL_CONST(6239.016720/8.0),
-    REAL_CONST(6250.869517/8.0),
-    REAL_CONST(6262.727935/8.0),
-    REAL_CONST(6274.591969/8.0),
-    REAL_CONST(6286.461614/8.0),
-    REAL_CONST(6298.336865/8.0),
-    REAL_CONST(6310.217716/8.0),
-    REAL_CONST(6322.104162/8.0),
-    REAL_CONST(6333.996197/8.0),
-    REAL_CONST(6345.893817/8.0),
-    REAL_CONST(6357.797016/8.0),
-    REAL_CONST(6369.705789/8.0),
-    REAL_CONST(6381.620131/8.0),
-    REAL_CONST(6393.540036/8.0),
-    REAL_CONST(6405.465500/8.0),
-    REAL_CONST(6417.396517/8.0),
-    REAL_CONST(6429.333082/8.0),
-    REAL_CONST(6441.275190/8.0),
-    REAL_CONST(6453.222835/8.0),
-    REAL_CONST(6465.176013/8.0),
-    REAL_CONST(6477.134719/8.0),
-    REAL_CONST(6489.098947/8.0),
-    REAL_CONST(6501.068692/8.0),
-    REAL_CONST(6513.043949/8.0),
-    REAL_CONST(6525.024714/8.0),
-    REAL_CONST(6537.010981/8.0),
-    REAL_CONST(6549.002744/8.0),
-    REAL_CONST(6561.000000/8.0),
-    REAL_CONST(6573.002743/8.0),
-    REAL_CONST(6585.010967/8.0),
-    REAL_CONST(6597.024669/8.0),
-    REAL_CONST(6609.043842/8.0),
-    REAL_CONST(6621.068483/8.0),
-    REAL_CONST(6633.098585/8.0),
-    REAL_CONST(6645.134145/8.0),
-    REAL_CONST(6657.175157/8.0),
-    REAL_CONST(6669.221616/8.0),
-    REAL_CONST(6681.273517/8.0),
-    REAL_CONST(6693.330855/8.0),
-    REAL_CONST(6705.393626/8.0),
-    REAL_CONST(6717.461825/8.0),
-    REAL_CONST(6729.535446/8.0),
-    REAL_CONST(6741.614485/8.0),
-    REAL_CONST(6753.698937/8.0),
-    REAL_CONST(6765.788798/8.0),
-    REAL_CONST(6777.884061/8.0),
-    REAL_CONST(6789.984723/8.0),
-    REAL_CONST(6802.090779/8.0),
-    REAL_CONST(6814.202223/8.0),
-    REAL_CONST(6826.319052/8.0),
-    REAL_CONST(6838.441259/8.0),
-    REAL_CONST(6850.568842/8.0),
-    REAL_CONST(6862.701794/8.0),
-    REAL_CONST(6874.840111/8.0),
-    REAL_CONST(6886.983788/8.0),
-    REAL_CONST(6899.132821/8.0),
-    REAL_CONST(6911.287205/8.0),
-    REAL_CONST(6923.446935/8.0),
-    REAL_CONST(6935.612006/8.0),
-    REAL_CONST(6947.782414/8.0),
-    REAL_CONST(6959.958154/8.0),
-    REAL_CONST(6972.139221/8.0),
-    REAL_CONST(6984.325611/8.0),
-    REAL_CONST(6996.517319/8.0),
-    REAL_CONST(7008.714341/8.0),
-    REAL_CONST(7020.916672/8.0),
-    REAL_CONST(7033.124306/8.0),
-    REAL_CONST(7045.337241/8.0),
-    REAL_CONST(7057.555470/8.0),
-    REAL_CONST(7069.778990/8.0),
-    REAL_CONST(7082.007795/8.0),
-    REAL_CONST(7094.241882/8.0),
-    REAL_CONST(7106.481246/8.0),
-    REAL_CONST(7118.725881/8.0),
-    REAL_CONST(7130.975785/8.0),
-    REAL_CONST(7143.230951/8.0),
-    REAL_CONST(7155.491376/8.0),
-    REAL_CONST(7167.757056/8.0),
-    REAL_CONST(7180.027984/8.0),
-    REAL_CONST(7192.304158/8.0),
-    REAL_CONST(7204.585573/8.0),
-    REAL_CONST(7216.872224/8.0),
-    REAL_CONST(7229.164106/8.0),
-    REAL_CONST(7241.461216/8.0),
-    REAL_CONST(7253.763548/8.0),
-    REAL_CONST(7266.071099/8.0),
-    REAL_CONST(7278.383864/8.0),
-    REAL_CONST(7290.701838/8.0),
-    REAL_CONST(7303.025018/8.0),
-    REAL_CONST(7315.353398/8.0),
-    REAL_CONST(7327.686975/8.0),
-    REAL_CONST(7340.025743/8.0),
-    REAL_CONST(7352.369699/8.0),
-    REAL_CONST(7364.718839/8.0),
-    REAL_CONST(7377.073157/8.0),
-    REAL_CONST(7389.432650/8.0),
-    REAL_CONST(7401.797314/8.0),
-    REAL_CONST(7414.167143/8.0),
-    REAL_CONST(7426.542134/8.0),
-    REAL_CONST(7438.922282/8.0),
-    REAL_CONST(7451.307583/8.0),
-    REAL_CONST(7463.698033/8.0),
-    REAL_CONST(7476.093627/8.0),
-    REAL_CONST(7488.494362/8.0),
-    REAL_CONST(7500.900233/8.0),
-    REAL_CONST(7513.311235/8.0),
-    REAL_CONST(7525.727365/8.0),
-    REAL_CONST(7538.148618/8.0),
-    REAL_CONST(7550.574989/8.0),
-    REAL_CONST(7563.006476/8.0),
-    REAL_CONST(7575.443073/8.0),
-    REAL_CONST(7587.884777/8.0),
-    REAL_CONST(7600.331583/8.0),
-    REAL_CONST(7612.783487/8.0),
-    REAL_CONST(7625.240485/8.0),
-    REAL_CONST(7637.702572/8.0),
-    REAL_CONST(7650.169745/8.0),
-    REAL_CONST(7662.641999/8.0),
-    REAL_CONST(7675.119331/8.0),
-    REAL_CONST(7687.601736/8.0),
-    REAL_CONST(7700.089209/8.0),
-    REAL_CONST(7712.581748/8.0),
-    REAL_CONST(7725.079347/8.0),
-    REAL_CONST(7737.582003/8.0),
-    REAL_CONST(7750.089712/8.0),
-    REAL_CONST(7762.602469/8.0),
-    REAL_CONST(7775.120271/8.0),
-    REAL_CONST(7787.643113/8.0),
-    REAL_CONST(7800.170991/8.0),
-    REAL_CONST(7812.703902/8.0),
-    REAL_CONST(7825.241841/8.0),
-    REAL_CONST(7837.784804/8.0),
-    REAL_CONST(7850.332787/8.0),
-    REAL_CONST(7862.885787/8.0),
-    REAL_CONST(7875.443798/8.0),
-    REAL_CONST(7888.006818/8.0),
-    REAL_CONST(7900.574842/8.0),
-    REAL_CONST(7913.147866/8.0),
-    REAL_CONST(7925.725887/8.0),
-    REAL_CONST(7938.308900/8.0),
-    REAL_CONST(7950.896901/8.0),
-    REAL_CONST(7963.489886/8.0),
-    REAL_CONST(7976.087852/8.0),
-    REAL_CONST(7988.690794/8.0),
-    REAL_CONST(8001.298709/8.0),
-    REAL_CONST(8013.911593/8.0),
-    REAL_CONST(8026.529441/8.0),
-    REAL_CONST(8039.152250/8.0),
-    REAL_CONST(8051.780016/8.0),
-    REAL_CONST(8064.412735/8.0),
-    REAL_CONST(8077.050403/8.0),
-    REAL_CONST(8089.693017/8.0),
-    REAL_CONST(8102.340572/8.0),
-    REAL_CONST(8114.993064/8.0),
-    REAL_CONST(8127.650490/8.0),
-    REAL_CONST(8140.312846/8.0),
-    REAL_CONST(8152.980128/8.0),
-    REAL_CONST(8165.652333/8.0),
-    REAL_CONST(8178.329455/8.0),
-    REAL_CONST(8191.011492/8.0),
-    REAL_CONST(8203.698440/8.0),
-    REAL_CONST(8216.390295/8.0),
-    REAL_CONST(8229.087053/8.0),
-    REAL_CONST(8241.788711/8.0),
-    REAL_CONST(8254.495264/8.0),
-    REAL_CONST(8267.206709/8.0),
-    REAL_CONST(8279.923042/8.0),
-    REAL_CONST(8292.644259/8.0),
-    REAL_CONST(8305.370357/8.0),
-    REAL_CONST(8318.101332/8.0),
-    REAL_CONST(8330.837180/8.0),
-    REAL_CONST(8343.577897/8.0),
-    REAL_CONST(8356.323480/8.0),
-    REAL_CONST(8369.073925/8.0),
-    REAL_CONST(8381.829228/8.0),
-    REAL_CONST(8394.589385/8.0),
-    REAL_CONST(8407.354394/8.0),
-    REAL_CONST(8420.124249/8.0),
-    REAL_CONST(8432.898948/8.0),
-    REAL_CONST(8445.678487/8.0),
-    REAL_CONST(8458.462862/8.0),
-    REAL_CONST(8471.252070/8.0),
-    REAL_CONST(8484.046106/8.0),
-    REAL_CONST(8496.844968/8.0),
-    REAL_CONST(8509.648651/8.0),
-    REAL_CONST(8522.457152/8.0),
-    REAL_CONST(8535.270468/8.0),
-    REAL_CONST(8548.088594/8.0),
-    REAL_CONST(8560.911527/8.0),
-    REAL_CONST(8573.739264/8.0),
-    REAL_CONST(8586.571801/8.0),
-    REAL_CONST(8599.409134/8.0),
-    REAL_CONST(8612.251259/8.0),
-    REAL_CONST(8625.098174/8.0),
-    REAL_CONST(8637.949875/8.0),
-    REAL_CONST(8650.806357/8.0),
-    REAL_CONST(8663.667618/8.0),
-    REAL_CONST(8676.533654/8.0),
-    REAL_CONST(8689.404461/8.0),
-    REAL_CONST(8702.280037/8.0),
-    REAL_CONST(8715.160376/8.0),
-    REAL_CONST(8728.045476/8.0),
-    REAL_CONST(8740.935334/8.0),
-    REAL_CONST(8753.829945/8.0),
-    REAL_CONST(8766.729307/8.0),
-    REAL_CONST(8779.633415/8.0),
-    REAL_CONST(8792.542267/8.0),
-    REAL_CONST(8805.455858/8.0),
-    REAL_CONST(8818.374186/8.0),
-    REAL_CONST(8831.297247/8.0),
-    REAL_CONST(8844.225037/8.0),
-    REAL_CONST(8857.157553/8.0),
-    REAL_CONST(8870.094791/8.0),
-    REAL_CONST(8883.036748/8.0),
-    REAL_CONST(8895.983422/8.0),
-    REAL_CONST(8908.934807/8.0),
-    REAL_CONST(8921.890901/8.0),
-    REAL_CONST(8934.851700/8.0),
-    REAL_CONST(8947.817201/8.0),
-    REAL_CONST(8960.787401/8.0),
-    REAL_CONST(8973.762296/8.0),
-    REAL_CONST(8986.741882/8.0),
-    REAL_CONST(8999.726157/8.0),
-    REAL_CONST(9012.715117/8.0),
-    REAL_CONST(9025.708758/8.0),
-    REAL_CONST(9038.707077/8.0),
-    REAL_CONST(9051.710072/8.0),
-    REAL_CONST(9064.717737/8.0),
-    REAL_CONST(9077.730071/8.0),
-    REAL_CONST(9090.747070/8.0),
-    REAL_CONST(9103.768730/8.0),
-    REAL_CONST(9116.795048/8.0),
-    REAL_CONST(9129.826021/8.0),
-    REAL_CONST(9142.861645/8.0),
-    REAL_CONST(9155.901917/8.0),
-    REAL_CONST(9168.946835/8.0),
-    REAL_CONST(9181.996393/8.0),
-    REAL_CONST(9195.050590/8.0),
-    REAL_CONST(9208.109422/8.0),
-    REAL_CONST(9221.172885/8.0),
-    REAL_CONST(9234.240977/8.0),
-    REAL_CONST(9247.313694/8.0),
-    REAL_CONST(9260.391032/8.0),
-    REAL_CONST(9273.472989/8.0),
-    REAL_CONST(9286.559562/8.0),
-    REAL_CONST(9299.650746/8.0),
-    REAL_CONST(9312.746539/8.0),
-    REAL_CONST(9325.846938/8.0),
-    REAL_CONST(9338.951939/8.0),
-    REAL_CONST(9352.061539/8.0),
-    REAL_CONST(9365.175734/8.0),
-    REAL_CONST(9378.294523/8.0),
-    REAL_CONST(9391.417901/8.0),
-    REAL_CONST(9404.545865/8.0),
-    REAL_CONST(9417.678412/8.0),
-    REAL_CONST(9430.815538/8.0),
-    REAL_CONST(9443.957242/8.0),
-    REAL_CONST(9457.103518/8.0),
-    REAL_CONST(9470.254365/8.0),
-    REAL_CONST(9483.409779/8.0),
-    REAL_CONST(9496.569757/8.0),
-    REAL_CONST(9509.734296/8.0),
-    REAL_CONST(9522.903392/8.0),
-    REAL_CONST(9536.077043/8.0),
-    REAL_CONST(9549.255245/8.0),
-    REAL_CONST(9562.437995/8.0),
-    REAL_CONST(9575.625290/8.0),
-    REAL_CONST(9588.817127/8.0),
-    REAL_CONST(9602.013503/8.0),
-    REAL_CONST(9615.214414/8.0),
-    REAL_CONST(9628.419858/8.0),
-    REAL_CONST(9641.629831/8.0),
-    REAL_CONST(9654.844330/8.0),
-    REAL_CONST(9668.063353/8.0),
-    REAL_CONST(9681.286896/8.0),
-    REAL_CONST(9694.514956/8.0),
-    REAL_CONST(9707.747529/8.0),
-    REAL_CONST(9720.984614/8.0),
-    REAL_CONST(9734.226206/8.0),
-    REAL_CONST(9747.472303/8.0),
-    REAL_CONST(9760.722902/8.0),
-    REAL_CONST(9773.977999/8.0),
-    REAL_CONST(9787.237592/8.0),
-    REAL_CONST(9800.501677/8.0),
-    REAL_CONST(9813.770252/8.0),
-    REAL_CONST(9827.043313/8.0),
-    REAL_CONST(9840.320858/8.0),
-    REAL_CONST(9853.602883/8.0),
-    REAL_CONST(9866.889385/8.0),
-    REAL_CONST(9880.180361/8.0),
-    REAL_CONST(9893.475809/8.0),
-    REAL_CONST(9906.775725/8.0),
-    REAL_CONST(9920.080107/8.0),
-    REAL_CONST(9933.388951/8.0),
-    REAL_CONST(9946.702254/8.0),
-    REAL_CONST(9960.020013/8.0),
-    REAL_CONST(9973.342226/8.0),
-    REAL_CONST(9986.668889/8.0),
-    REAL_CONST(10000.000000/8.0),
-    REAL_CONST(10013.335555/8.0),
-    REAL_CONST(10026.675552/8.0),
-    REAL_CONST(10040.019987/8.0),
-    REAL_CONST(10053.368857/8.0),
-    REAL_CONST(10066.722161/8.0),
-    REAL_CONST(10080.079894/8.0),
-    REAL_CONST(10093.442053/8.0),
-    REAL_CONST(10106.808637/8.0),
-    REAL_CONST(10120.179641/8.0),
-    REAL_CONST(10133.555064/8.0),
-    REAL_CONST(10146.934901/8.0),
-    REAL_CONST(10160.319151/8.0),
-    REAL_CONST(10173.707810/8.0),
-    REAL_CONST(10187.100875/8.0),
-    REAL_CONST(10200.498344/8.0),
-    REAL_CONST(10213.900213/8.0),
-    REAL_CONST(10227.306480/8.0),
-    REAL_CONST(10240.717141/8.0),
-    REAL_CONST(10254.132195/8.0),
-    REAL_CONST(10267.551638/8.0),
-    REAL_CONST(10280.975466/8.0),
-    REAL_CONST(10294.403678/8.0),
-    REAL_CONST(10307.836271/8.0),
-    REAL_CONST(10321.273241/8.0),
-    REAL_CONST(10334.714585/8.0)
-#endif
+    REAL_CONST(0.0),
+    REAL_CONST(1.0/8.0),
+    REAL_CONST(2.5198420997897464/8.0),
+    REAL_CONST(4.3267487109222245/8.0),
+    REAL_CONST(6.3496042078727974/8.0),
+    REAL_CONST(8.5498797333834844/8.0),
+    REAL_CONST(10.902723556992836/8.0),
+    REAL_CONST(13.390518279406722/8.0),
+    REAL_CONST(15.999999999999998/8.0),
+    REAL_CONST(18.720754407467133/8.0),
+    REAL_CONST(21.544346900318832/8.0),
+    REAL_CONST(24.463780996262464/8.0),
+    REAL_CONST(27.47314182127996/8.0),
+    REAL_CONST(30.567350940369842/8.0),
+    REAL_CONST(33.741991698453212/8.0),
+    REAL_CONST(36.993181114957046/8.0),
+    REAL_CONST(40.317473596635935/8.0),
+    REAL_CONST(43.711787041189993/8.0),
+    REAL_CONST(47.173345095760126/8.0),
+    REAL_CONST(50.699631325716943/8.0),
+    REAL_CONST(54.288352331898118/8.0),
+    REAL_CONST(57.937407704003519/8.0),
+    REAL_CONST(61.6448652744185/8.0),
+    REAL_CONST(65.408940536585988/8.0),
+    REAL_CONST(69.227979374755591/8.0),
+    REAL_CONST(73.100443455321638/8.0),
+    REAL_CONST(77.024897778591622/8.0),
+    REAL_CONST(80.999999999999986/8.0),
+    REAL_CONST(85.024491212518527/8.0),
+    REAL_CONST(89.097187944889555/8.0),
+    REAL_CONST(93.216975178615741/8.0),
+    REAL_CONST(97.382800224133163/8.0),
+    REAL_CONST(101.59366732596474/8.0),
+    REAL_CONST(105.84863288986224/8.0),
+    REAL_CONST(110.14680124343441/8.0),
+    REAL_CONST(114.4873208566006/8.0),
+    REAL_CONST(118.86938096020653/8.0),
+    REAL_CONST(123.29220851090024/8.0),
+    REAL_CONST(127.75506545836058/8.0),
+    REAL_CONST(132.25724627755247/8.0),
+    REAL_CONST(136.79807573413572/8.0),
+    REAL_CONST(141.37690685569191/8.0),
+    REAL_CONST(145.99311908523086/8.0),
+    REAL_CONST(150.6461165966291/8.0),
+    REAL_CONST(155.33532675434674/8.0),
+    REAL_CONST(160.06019870205279/8.0),
+    REAL_CONST(164.82020206673349/8.0),
+    REAL_CONST(169.61482576651861/8.0),
+    REAL_CONST(174.44357691188537/8.0),
+    REAL_CONST(179.30597979112557/8.0),
+    REAL_CONST(184.20157493201927/8.0),
+    REAL_CONST(189.12991823257562/8.0),
+    REAL_CONST(194.09058015449685/8.0),
+    REAL_CONST(199.08314497371677/8.0),
+    REAL_CONST(204.1072100829694/8.0),
+    REAL_CONST(209.16238534187647/8.0),
+    REAL_CONST(214.24829247050752/8.0),
+    REAL_CONST(219.36456448277784/8.0),
+    REAL_CONST(224.51084515641216/8.0),
+    REAL_CONST(229.6867885365223/8.0),
+    REAL_CONST(234.89205847013176/8.0),
+    REAL_CONST(240.12632816923249/8.0),
+    REAL_CONST(245.38927980018505/8.0),
+    REAL_CONST(250.68060409747261/8.0),
+    REAL_CONST(255.99999999999991/8.0),
+    REAL_CONST(261.34717430828869/8.0),
+    REAL_CONST(266.72184136106449/8.0),
+    REAL_CONST(272.12372272986045/8.0),
+    REAL_CONST(277.55254693037961/8.0),
+    REAL_CONST(283.0080491494619/8.0),
+    REAL_CONST(288.48997098659891/8.0),
+    REAL_CONST(293.99806020902247/8.0),
+    REAL_CONST(299.53207051947408/8.0),
+    REAL_CONST(305.0917613358298/8.0),
+    REAL_CONST(310.67689758182206/8.0),
+    REAL_CONST(316.28724948815585/8.0),
+    REAL_CONST(321.92259240337177/8.0),
+    REAL_CONST(327.58270661385535/8.0),
+    REAL_CONST(333.26737717243742/8.0),
+    REAL_CONST(338.97639373507025/8.0),
+    REAL_CONST(344.70955040510125/8.0),
+    REAL_CONST(350.46664558470013/8.0),
+    REAL_CONST(356.24748183302603/8.0),
+    REAL_CONST(362.05186573075139/8.0),
+    REAL_CONST(367.87960775058258/8.0),
+    REAL_CONST(373.73052213344511/8.0),
+    REAL_CONST(379.60442677002078/8.0),
+    REAL_CONST(385.50114308734607/8.0),
+    REAL_CONST(391.42049594019937/8.0),
+    REAL_CONST(397.36231350702371/8.0),
+    REAL_CONST(403.32642719014467/8.0),
+    REAL_CONST(409.31267152006262/8.0),
+    REAL_CONST(415.32088406360799/8.0),
+    REAL_CONST(421.35090533576471/8.0),
+    REAL_CONST(427.40257871497619/8.0),
+    REAL_CONST(433.4757503617617/8.0),
+    REAL_CONST(439.5702691404793/8.0),
+    REAL_CONST(445.68598654408271/8.0),
+    REAL_CONST(451.82275662172759/8.0),
+    REAL_CONST(457.98043590909128/8.0),
+    REAL_CONST(464.15888336127773/8.0),
+    REAL_CONST(470.35796028818726/8.0),
+    REAL_CONST(476.5775302922363/8.0),
+    REAL_CONST(482.81745920832043/8.0),
+    REAL_CONST(489.07761504591741/8.0),
+    REAL_CONST(495.35786793323581/8.0),
+    REAL_CONST(501.65809006331688/8.0),
+    REAL_CONST(507.97815564200368/8.0),
+    REAL_CONST(514.31794083769648/8.0),
+    REAL_CONST(520.67732373281672/8.0),
+    REAL_CONST(527.05618427690604/8.0),
+    REAL_CONST(533.45440424129174/8.0),
+    REAL_CONST(539.87186717525128/8.0),
+    REAL_CONST(546.30845836361505/8.0),
+    REAL_CONST(552.76406478574609/8.0),
+    REAL_CONST(559.23857507584194/8.0),
+    REAL_CONST(565.73187948450413/8.0),
+    REAL_CONST(572.24386984152341/8.0),
+    REAL_CONST(578.77443951983378/8.0),
+    REAL_CONST(585.32348340058843/8.0),
+    REAL_CONST(591.89089783931263/8.0),
+    REAL_CONST(598.47658063309257/8.0),
+    REAL_CONST(605.08043098876044/8.0),
+    REAL_CONST(611.70234949203643/8.0),
+    REAL_CONST(618.3422380775919/8.0),
+    REAL_CONST(624.99999999999977/8.0),
+    REAL_CONST(631.67553980553748/8.0),
+    REAL_CONST(638.36876330481164/8.0),
+    REAL_CONST(645.07957754617485/8.0),
+    REAL_CONST(651.80789078990415/8.0),
+    REAL_CONST(658.55361248311499/8.0),
+    REAL_CONST(665.31665323538357/8.0),
+    REAL_CONST(672.09692479505225/8.0),
+    REAL_CONST(678.8943400261943/8.0),
+    REAL_CONST(685.70881288621433/8.0),
+    REAL_CONST(692.540258404062/8.0),
+    REAL_CONST(699.38859265903977/8.0),
+    REAL_CONST(706.25373276018058/8.0),
+    REAL_CONST(713.13559682617972/8.0),
+    REAL_CONST(720.03410396586037/8.0),
+    REAL_CONST(726.94917425915435/8.0),
+    REAL_CONST(733.88072873858209/8.0),
+    REAL_CONST(740.82868937121543/8.0),
+    REAL_CONST(747.79297904110535/8.0),
+    REAL_CONST(754.77352153216191/8.0),
+    REAL_CONST(761.77024151147043/8.0),
+    REAL_CONST(768.78306451302956/8.0),
+    REAL_CONST(775.81191692189896/8.0),
+    REAL_CONST(782.85672595874246/8.0),
+    REAL_CONST(789.91741966475445/8.0),
+    REAL_CONST(796.99392688695798/8.0),
+    REAL_CONST(804.08617726386274/8.0),
+    REAL_CONST(811.19410121147098/8.0),
+    REAL_CONST(818.31762990962227/8.0),
+    REAL_CONST(825.45669528866563/8.0),
+    REAL_CONST(832.61123001644864/8.0),
+    REAL_CONST(839.78116748561604/8.0),
+    REAL_CONST(846.96644180120552/8.0),
+    REAL_CONST(854.16698776853514/8.0),
+    REAL_CONST(861.38274088137143/8.0),
+    REAL_CONST(868.61363731036977/8.0),
+    REAL_CONST(875.85961389178203/8.0),
+    REAL_CONST(883.12060811641959/8.0),
+    REAL_CONST(890.39655811886757/8.0),
+    REAL_CONST(897.68740266694181/8.0),
+    REAL_CONST(904.99308115138172/8.0),
+    REAL_CONST(912.31353357577188/8.0),
+    REAL_CONST(919.64870054668756/8.0),
+    REAL_CONST(926.99852326405619/8.0),
+    REAL_CONST(934.36294351172899/8.0),
+    REAL_CONST(941.74190364825859/8.0),
+    REAL_CONST(949.13534659787422/8.0),
+    REAL_CONST(956.54321584165211/8.0),
+    REAL_CONST(963.96545540887348/8.0),
+    REAL_CONST(971.40200986856541/8.0),
+    REAL_CONST(978.85282432122176/8.0),
+    REAL_CONST(986.31784439069588/8.0),
+    REAL_CONST(993.7970162162635/8.0),
+    REAL_CONST(1001.29028644485/8.0),
+    REAL_CONST(1008.797602223418/8.0),
+    REAL_CONST(1016.3189111915103/8.0),
+    REAL_CONST(1023.8541614739464/8.0),
+    REAL_CONST(1031.4033016736653/8.0),
+    REAL_CONST(1038.9662808647138/8.0),
+    REAL_CONST(1046.5430485853758/8.0),
+    REAL_CONST(1054.1335548314366/8.0),
+    REAL_CONST(1061.7377500495838/8.0),
+    REAL_CONST(1069.3555851309357/8.0),
+    REAL_CONST(1076.9870114046978/8.0),
+    REAL_CONST(1084.6319806319441/8.0),
+    REAL_CONST(1092.2904449995174/8.0),
+    REAL_CONST(1099.9623571140482/8.0),
+    REAL_CONST(1107.6476699960892/8.0),
+    REAL_CONST(1115.3463370743607/8.0),
+    REAL_CONST(1123.058312180106/8.0),
+    REAL_CONST(1130.7835495415541/8.0),
+    REAL_CONST(1138.5220037784854/8.0),
+    REAL_CONST(1146.273629896901/8.0),
+    REAL_CONST(1154.0383832837879/8.0),
+    REAL_CONST(1161.816219701986/8.0),
+    REAL_CONST(1169.607095285146/8.0),
+    REAL_CONST(1177.4109665327808/8.0),
+    REAL_CONST(1185.2277903054078/8.0),
+    REAL_CONST(1193.0575238197798/8.0),
+    REAL_CONST(1200.9001246442001/8.0),
+    REAL_CONST(1208.7555506939248/8.0),
+    REAL_CONST(1216.6237602266442/8.0),
+    REAL_CONST(1224.5047118380478/8.0),
+    REAL_CONST(1232.3983644574657/8.0),
+    REAL_CONST(1240.3046773435874/8.0),
+    REAL_CONST(1248.2236100802568/8.0),
+    REAL_CONST(1256.1551225723395/8.0),
+    REAL_CONST(1264.099175041662/8.0),
+    REAL_CONST(1272.0557280230228/8.0),
+    REAL_CONST(1280.0247423602691/8.0),
+    REAL_CONST(1288.0061792024444/8.0),
+    REAL_CONST(1295.9999999999995/8.0),
+    REAL_CONST(1304.006166501068/8.0),
+    REAL_CONST(1312.0246407478062/8.0),
+    REAL_CONST(1320.0553850727929/8.0),
+    REAL_CONST(1328.0983620954903/8.0),
+    REAL_CONST(1336.1535347187651/8.0),
+    REAL_CONST(1344.2208661254647/8.0),
+    REAL_CONST(1352.3003197750522/8.0),
+    REAL_CONST(1360.3918594002962/8.0),
+    REAL_CONST(1368.4954490040145/8.0),
+    REAL_CONST(1376.6110528558709/8.0),
+    REAL_CONST(1384.7386354892244/8.0),
+    REAL_CONST(1392.8781616980295/8.0),
+    REAL_CONST(1401.0295965337855/8.0),
+    REAL_CONST(1409.1929053025353/8.0),
+    REAL_CONST(1417.3680535619119/8.0),
+    REAL_CONST(1425.5550071182327/8.0),
+    REAL_CONST(1433.7537320236374/8.0),
+    REAL_CONST(1441.9641945732744/8.0),
+    REAL_CONST(1450.1863613025282/8.0),
+    REAL_CONST(1458.4201989842913/8.0),
+    REAL_CONST(1466.6656746262797/8.0),
+    REAL_CONST(1474.9227554683875/8.0),
+    REAL_CONST(1483.1914089800841/8.0),
+    REAL_CONST(1491.4716028578516/8.0),
+    REAL_CONST(1499.7633050226596/8.0),
+    REAL_CONST(1508.0664836174794/8.0),
+    REAL_CONST(1516.3811070048375/8.0),
+    REAL_CONST(1524.7071437644029/8.0),
+    REAL_CONST(1533.0445626906128/8.0),
+    REAL_CONST(1541.3933327903342/8.0),
+    REAL_CONST(1549.7534232805581/8.0),
+    REAL_CONST(1558.1248035861302/8.0),
+    REAL_CONST(1566.507443337515/8.0),
+    REAL_CONST(1574.9013123685909/8.0),
+    REAL_CONST(1583.3063807144795/8.0),
+    REAL_CONST(1591.7226186094069/8.0),
+    REAL_CONST(1600.1499964845941/8.0),
+    REAL_CONST(1608.58848496618/8.0),
+    REAL_CONST(1617.0380548731737/8.0),
+    REAL_CONST(1625.4986772154357/8.0),
+    REAL_CONST(1633.9703231916887/8.0),
+    REAL_CONST(1642.4529641875577/8.0),
+    REAL_CONST(1650.9465717736346/8.0),
+    REAL_CONST(1659.4511177035752/8.0),
+    REAL_CONST(1667.9665739122186/8.0),
+    REAL_CONST(1676.4929125137353/8.0),
+    REAL_CONST(1685.030105799801/8.0),
+    REAL_CONST(1693.5781262377957/8.0),
+    REAL_CONST(1702.136946469027/8.0),
+    REAL_CONST(1710.7065393069795/8.0),
+    REAL_CONST(1719.2868777355877/8.0),
+    REAL_CONST(1727.8779349075323/8.0),
+    REAL_CONST(1736.4796841425596/8.0),
+    REAL_CONST(1745.092098925825/8.0),
+    REAL_CONST(1753.7151529062583/8.0),
+    REAL_CONST(1762.3488198949503/8.0),
+    REAL_CONST(1770.9930738635628/8.0),
+    REAL_CONST(1779.6478889427597/8.0),
+    REAL_CONST(1788.3132394206564/8.0),
+    REAL_CONST(1796.9890997412947/8.0),
+    REAL_CONST(1805.6754445031333/8.0),
+    REAL_CONST(1814.3722484575621/8.0),
+    REAL_CONST(1823.0794865074322/8.0),
+    REAL_CONST(1831.7971337056094/8.0),
+    REAL_CONST(1840.5251652535437/8.0),
+    REAL_CONST(1849.2635564998579/8.0),
+    REAL_CONST(1858.0122829389563/8.0),
+    REAL_CONST(1866.7713202096493/8.0),
+    REAL_CONST(1875.5406440937966/8.0),
+    REAL_CONST(1884.3202305149687/8.0),
+    REAL_CONST(1893.110055537124/8.0),
+    REAL_CONST(1901.9100953633042/8.0),
+    REAL_CONST(1910.7203263343454/8.0),
+    REAL_CONST(1919.5407249276057/8.0),
+    REAL_CONST(1928.3712677557098/8.0),
+    REAL_CONST(1937.2119315653083/8.0),
+    REAL_CONST(1946.0626932358525/8.0),
+    REAL_CONST(1954.923529778386/8.0),
+    REAL_CONST(1963.79441833435/8.0),
+    REAL_CONST(1972.6753361744036/8.0),
+    REAL_CONST(1981.5662606972594/8.0),
+    REAL_CONST(1990.467169428533/8.0),
+    REAL_CONST(1999.3780400196069/8.0),
+    REAL_CONST(2008.2988502465078/8.0),
+    REAL_CONST(2017.2295780087982/8.0),
+    REAL_CONST(2026.1702013284819/8.0),
+    REAL_CONST(2035.1206983489212/8.0),
+    REAL_CONST(2044.0810473337688/8.0),
+    REAL_CONST(2053.0512266659125/8.0),
+    REAL_CONST(2062.0312148464309/8.0),
+    REAL_CONST(2071.0209904935646/8.0),
+    REAL_CONST(2080.0205323416958/8.0),
+    REAL_CONST(2089.0298192403443/8.0),
+    REAL_CONST(2098.0488301531714/8.0),
+    REAL_CONST(2107.0775441569995/8.0),
+    REAL_CONST(2116.115940440839/8.0),
+    REAL_CONST(2125.1639983049317/8.0),
+    REAL_CONST(2134.2216971597995/8.0),
+    REAL_CONST(2143.2890165253098/8.0),
+    REAL_CONST(2152.3659360297484/8.0),
+    REAL_CONST(2161.4524354089031/8.0),
+    REAL_CONST(2170.5484945051617/8.0),
+    REAL_CONST(2179.6540932666144/8.0),
+    REAL_CONST(2188.7692117461711/8.0),
+    REAL_CONST(2197.8938301006888/8.0),
+    REAL_CONST(2207.0279285901042/8.0),
+    REAL_CONST(2216.1714875765838/8.0),
+    REAL_CONST(2225.324487523676/8.0),
+    REAL_CONST(2234.4869089954782/8.0),
+    REAL_CONST(2243.6587326558101/8.0),
+    REAL_CONST(2252.8399392673982/8.0),
+    REAL_CONST(2262.0305096910702/8.0),
+    REAL_CONST(2271.2304248849537/8.0),
+    REAL_CONST(2280.4396659036897/8.0),
+    REAL_CONST(2289.6582138976523/8.0),
+    REAL_CONST(2298.8860501121762/8.0),
+    REAL_CONST(2308.1231558867926/8.0),
+    REAL_CONST(2317.3695126544767/8.0),
+    REAL_CONST(2326.6251019409005/8.0),
+    REAL_CONST(2335.8899053636933/8.0),
+    REAL_CONST(2345.1639046317132/8.0),
+    REAL_CONST(2354.4470815443233/8.0),
+    REAL_CONST(2363.7394179906792/8.0),
+    REAL_CONST(2373.0408959490205/8.0),
+    REAL_CONST(2382.3514974859731/8.0),
+    REAL_CONST(2391.6712047558558/8.0),
+    REAL_CONST(2400.9999999999991/8.0),
+    REAL_CONST(2410.3378655460651/8.0),
+    REAL_CONST(2419.6847838073813/8.0),
+    REAL_CONST(2429.0407372822747/8.0),
+    REAL_CONST(2438.4057085534191/8.0),
+    REAL_CONST(2447.7796802871858/8.0),
+    REAL_CONST(2457.1626352330004/8.0),
+    REAL_CONST(2466.5545562227112/8.0),
+    REAL_CONST(2475.9554261699564/8.0),
+    REAL_CONST(2485.3652280695474/8.0),
+    REAL_CONST(2494.7839449968492/8.0),
+    REAL_CONST(2504.2115601071737/8.0),
+    REAL_CONST(2513.6480566351788/8.0),
+    REAL_CONST(2523.0934178942675/8.0),
+    REAL_CONST(2532.5476272760025/8.0),
+    REAL_CONST(2542.0106682495189/8.0),
+    REAL_CONST(2551.482524360948/8.0),
+    REAL_CONST(2560.9631792328441/8.0),
+    REAL_CONST(2570.4526165636184/8.0),
+    REAL_CONST(2579.9508201269791/8.0),
+    REAL_CONST(2589.4577737713744/8.0),
+    REAL_CONST(2598.9734614194458/8.0),
+    REAL_CONST(2608.4978670674823/8.0),
+    REAL_CONST(2618.0309747848837/8.0),
+    REAL_CONST(2627.5727687136259/8.0),
+    REAL_CONST(2637.1232330677353/8.0),
+    REAL_CONST(2646.6823521327647/8.0),
+    REAL_CONST(2656.2501102652768/8.0),
+    REAL_CONST(2665.8264918923328/8.0),
+    REAL_CONST(2675.4114815109842/8.0),
+    REAL_CONST(2685.0050636877722/8.0),
+    REAL_CONST(2694.6072230582295/8.0),
+    REAL_CONST(2704.2179443263894/8.0),
+    REAL_CONST(2713.8372122642972/8.0),
+    REAL_CONST(2723.4650117115279/8.0),
+    REAL_CONST(2733.1013275747096/8.0),
+    REAL_CONST(2742.7461448270483/8.0),
+    REAL_CONST(2752.3994485078601/8.0),
+    REAL_CONST(2762.0612237221085/8.0),
+    REAL_CONST(2771.7314556399419/8.0),
+    REAL_CONST(2781.4101294962406/8.0),
+    REAL_CONST(2791.0972305901655/8.0),
+    REAL_CONST(2800.7927442847094/8.0),
+    REAL_CONST(2810.4966560062589/8.0),
+    REAL_CONST(2820.2089512441521/8.0),
+    REAL_CONST(2829.9296155502466/8.0),
+    REAL_CONST(2839.6586345384894/8.0),
+    REAL_CONST(2849.3959938844923/8.0),
+    REAL_CONST(2859.1416793251065/8.0),
+    REAL_CONST(2868.8956766580086/8.0),
+    REAL_CONST(2878.6579717412847/8.0),
+    REAL_CONST(2888.4285504930212/8.0),
+    REAL_CONST(2898.2073988908974/8.0),
+    REAL_CONST(2907.9945029717837/8.0),
+    REAL_CONST(2917.789848831344/8.0),
+    REAL_CONST(2927.5934226236377/8.0),
+    REAL_CONST(2937.4052105607311/8.0),
+    REAL_CONST(2947.2251989123079/8.0),
+    REAL_CONST(2957.0533740052865/8.0),
+    REAL_CONST(2966.8897222234368/8.0),
+    REAL_CONST(2976.734230007005/8.0),
+    REAL_CONST(2986.5868838523397/8.0),
+    REAL_CONST(2996.4476703115197/8.0),
+    REAL_CONST(3006.3165759919889/8.0),
+    REAL_CONST(3016.1935875561908/8.0),
+    REAL_CONST(3026.0786917212095/8.0),
+    REAL_CONST(3035.9718752584108/8.0),
+    REAL_CONST(3045.8731249930906/8.0),
+    REAL_CONST(3055.7824278041207/8.0),
+    REAL_CONST(3065.6997706236039/8.0),
+    REAL_CONST(3075.625140436528/8.0),
+    REAL_CONST(3085.5585242804245/8.0),
+    REAL_CONST(3095.4999092450298/8.0),
+    REAL_CONST(3105.4492824719491/8.0),
+    REAL_CONST(3115.4066311543256/8.0),
+    REAL_CONST(3125.3719425365089/8.0),
+    REAL_CONST(3135.3452039137287/8.0),
+    REAL_CONST(3145.3264026317715/8.0),
+    REAL_CONST(3155.3155260866592/8.0),
+    REAL_CONST(3165.3125617243295/8.0),
+    REAL_CONST(3175.3174970403229/8.0),
+    REAL_CONST(3185.3303195794679/8.0),
+    REAL_CONST(3195.35101693557/8.0),
+    REAL_CONST(3205.3795767511078/8.0),
+    REAL_CONST(3215.4159867169251/8.0),
+    REAL_CONST(3225.460234571929/8.0),
+    REAL_CONST(3235.5123081027928/8.0),
+    REAL_CONST(3245.5721951436558/8.0),
+    REAL_CONST(3255.63988357583/8.0),
+    REAL_CONST(3265.7153613275095/8.0),
+    REAL_CONST(3275.7986163734795/8.0),
+    REAL_CONST(3285.8896367348289/8.0),
+    REAL_CONST(3295.9884104786665/8.0),
+    REAL_CONST(3306.0949257178395/8.0),
+    REAL_CONST(3316.2091706106517/8.0),
+    REAL_CONST(3326.331133360588/8.0),
+    REAL_CONST(3336.4608022160378/8.0),
+    REAL_CONST(3346.5981654700231/8.0),
+    REAL_CONST(3356.7432114599264/8.0),
+    REAL_CONST(3366.8959285672249/8.0),
+    REAL_CONST(3377.0563052172211/8.0),
+    REAL_CONST(3387.2243298787821/8.0),
+    REAL_CONST(3397.3999910640764/8.0),
+    REAL_CONST(3407.5832773283128/8.0),
+    REAL_CONST(3417.7741772694862/8.0),
+    REAL_CONST(3427.9726795281199/8.0),
+    REAL_CONST(3438.1787727870123/8.0),
+    REAL_CONST(3448.3924457709873/8.0),
+    REAL_CONST(3458.6136872466445/8.0),
+    REAL_CONST(3468.8424860221107/8.0),
+    REAL_CONST(3479.0788309467976/8.0),
+    REAL_CONST(3489.3227109111554/8.0),
+    REAL_CONST(3499.5741148464344/8.0),
+    REAL_CONST(3509.8330317244445/8.0),
+    REAL_CONST(3520.0994505573185/8.0),
+    REAL_CONST(3530.3733603972751/8.0),
+    REAL_CONST(3540.6547503363886/8.0),
+    REAL_CONST(3550.9436095063534/8.0),
+    REAL_CONST(3561.239927078258/8.0),
+    REAL_CONST(3571.5436922623535/8.0),
+    REAL_CONST(3581.8548943078308/8.0),
+    REAL_CONST(3592.1735225025936/8.0),
+    REAL_CONST(3602.4995661730372/8.0),
+    REAL_CONST(3612.8330146838275/8.0),
+    REAL_CONST(3623.1738574376814/8.0),
+    REAL_CONST(3633.5220838751502/8.0),
+    REAL_CONST(3643.8776834744031/8.0),
+    REAL_CONST(3654.2406457510142/8.0),
+    REAL_CONST(3664.6109602577494/8.0),
+    REAL_CONST(3674.9886165843564/8.0),
+    REAL_CONST(3685.3736043573545/8.0),
+    REAL_CONST(3695.7659132398294/8.0),
+    REAL_CONST(3706.1655329312248/8.0),
+    REAL_CONST(3716.5724531671399/8.0),
+    REAL_CONST(3726.9866637191262/8.0),
+    REAL_CONST(3737.4081543944876/8.0),
+    REAL_CONST(3747.8369150360782/8.0),
+    REAL_CONST(3758.2729355221072/8.0),
+    REAL_CONST(3768.7162057659411/8.0),
+    REAL_CONST(3779.1667157159077/8.0),
+    REAL_CONST(3789.6244553551055/8.0),
+    REAL_CONST(3800.0894147012082/8.0),
+    REAL_CONST(3810.5615838062768/8.0),
+    REAL_CONST(3821.0409527565694/8.0),
+    REAL_CONST(3831.5275116723533/8.0),
+    REAL_CONST(3842.0212507077194/8.0),
+    REAL_CONST(3852.522160050396/8.0),
+    REAL_CONST(3863.0302299215673/8.0),
+    REAL_CONST(3873.5454505756893/8.0),
+    REAL_CONST(3884.0678123003108/8.0),
+    REAL_CONST(3894.5973054158922/8.0),
+    REAL_CONST(3905.1339202756285/8.0),
+    REAL_CONST(3915.6776472652732/8.0),
+    REAL_CONST(3926.2284768029604/8.0),
+    REAL_CONST(3936.7863993390338/8.0),
+    REAL_CONST(3947.3514053558706/8.0),
+    REAL_CONST(3957.9234853677135/8.0),
+    REAL_CONST(3968.5026299204969/8.0),
+    REAL_CONST(3979.0888295916798/8.0),
+    REAL_CONST(3989.6820749900776/8.0),
+    REAL_CONST(4000.2823567556948/8.0),
+    REAL_CONST(4010.8896655595613/8.0),
+    REAL_CONST(4021.5039921035655/8.0),
+    REAL_CONST(4032.1253271202945/8.0),
+    REAL_CONST(4042.7536613728694/8.0),
+    REAL_CONST(4053.3889856547858/8.0),
+    REAL_CONST(4064.0312907897551/8.0),
+    REAL_CONST(4074.6805676315448/8.0),
+    REAL_CONST(4085.3368070638221/8.0),
+    REAL_CONST(4095.9999999999982/8.0),
+    REAL_CONST(4106.6701373830711/8.0),
+    REAL_CONST(4117.347210185475/8.0),
+    REAL_CONST(4128.0312094089259/8.0),
+    REAL_CONST(4138.722126084268/8.0),
+    REAL_CONST(4149.4199512713267/8.0),
+    REAL_CONST(4160.1246760587583/8.0),
+    REAL_CONST(4170.8362915638982/8.0),
+    REAL_CONST(4181.5547889326181/8.0),
+    REAL_CONST(4192.2801593391769/8.0),
+    REAL_CONST(4203.0123939860741/8.0),
+    REAL_CONST(4213.7514841039101/8.0),
+    REAL_CONST(4224.4974209512384/8.0),
+    REAL_CONST(4235.2501958144258/8.0),
+    REAL_CONST(4246.0098000075095/8.0),
+    REAL_CONST(4256.7762248720574/8.0),
+    REAL_CONST(4267.549461777031/8.0),
+    REAL_CONST(4278.3295021186423/8.0),
+    REAL_CONST(4289.1163373202198/8.0),
+    REAL_CONST(4299.9099588320714/8.0),
+    REAL_CONST(4310.7103581313495/8.0),
+    REAL_CONST(4321.5175267219138/8.0),
+    REAL_CONST(4332.3314561342004/8.0),
+    REAL_CONST(4343.152137925088/8.0),
+    REAL_CONST(4353.9795636777671/8.0),
+    REAL_CONST(4364.8137250016052/8.0),
+    REAL_CONST(4375.6546135320223/8.0),
+    REAL_CONST(4386.5022209303588/8.0),
+    REAL_CONST(4397.3565388837469/8.0),
+    REAL_CONST(4408.2175591049827/8.0),
+    REAL_CONST(4419.0852733324018/8.0),
+    REAL_CONST(4429.9596733297531/8.0),
+    REAL_CONST(4440.8407508860728/8.0),
+    REAL_CONST(4451.7284978155603/8.0),
+    REAL_CONST(4462.6229059574571/8.0),
+    REAL_CONST(4473.5239671759227/8.0),
+    REAL_CONST(4484.4316733599126/8.0),
+    REAL_CONST(4495.3460164230582/8.0),
+    REAL_CONST(4506.2669883035496/8.0),
+    REAL_CONST(4517.1945809640119/8.0),
+    REAL_CONST(4528.1287863913894/8.0),
+    REAL_CONST(4539.069596596828/8.0),
+    REAL_CONST(4550.0170036155587/8.0),
+    REAL_CONST(4560.9709995067806/8.0),
+    REAL_CONST(4571.931576353546/8.0),
+    REAL_CONST(4582.898726262647/8.0),
+    REAL_CONST(4593.8724413645004/8.0),
+    REAL_CONST(4604.8527138130348/8.0),
+    REAL_CONST(4615.8395357855816/8.0),
+    REAL_CONST(4626.8328994827571/8.0),
+    REAL_CONST(4637.8327971283588/8.0),
+    REAL_CONST(4648.8392209692511/8.0),
+    REAL_CONST(4659.8521632752563/8.0),
+    REAL_CONST(4670.8716163390473/8.0),
+    REAL_CONST(4681.8975724760394/8.0),
+    REAL_CONST(4692.9300240242837/8.0),
+    REAL_CONST(4703.9689633443595/8.0),
+    REAL_CONST(4715.0143828192668/8.0),
+    REAL_CONST(4726.0662748543255/8.0),
+    REAL_CONST(4737.1246318770682/8.0),
+    REAL_CONST(4748.1894463371373/8.0),
+    REAL_CONST(4759.2607107061804/8.0),
+    REAL_CONST(4770.3384174777493/8.0),
+    REAL_CONST(4781.4225591671993/8.0),
+    REAL_CONST(4792.5131283115852/8.0),
+    REAL_CONST(4803.6101174695614/8.0),
+    REAL_CONST(4814.7135192212854/8.0),
+    REAL_CONST(4825.8233261683154/8.0),
+    REAL_CONST(4836.9395309335096/8.0),
+    REAL_CONST(4848.0621261609349/8.0),
+    REAL_CONST(4859.1911045157631/8.0),
+    REAL_CONST(4870.3264586841779/8.0),
+    REAL_CONST(4881.4681813732768/8.0),
+    REAL_CONST(4892.6162653109768/8.0),
+    REAL_CONST(4903.7707032459193/8.0),
+    REAL_CONST(4914.931487947375/8.0),
+    REAL_CONST(4926.0986122051509/8.0),
+    REAL_CONST(4937.2720688294967/8.0),
+    REAL_CONST(4948.4518506510112/8.0),
+    REAL_CONST(4959.637950520555/8.0),
+    REAL_CONST(4970.8303613091521/8.0),
+    REAL_CONST(4982.0290759079044/8.0),
+    REAL_CONST(4993.2340872278974/8.0),
+    REAL_CONST(5004.4453882001153/8.0),
+    REAL_CONST(5015.6629717753467/8.0),
+    REAL_CONST(5026.8868309241007/8.0),
+    REAL_CONST(5038.1169586365131/8.0),
+    REAL_CONST(5049.353347922266/8.0),
+    REAL_CONST(5060.5959918104927/8.0),
+    REAL_CONST(5071.8448833496996/8.0),
+    REAL_CONST(5083.1000156076734/8.0),
+    REAL_CONST(5094.3613816713996/8.0),
+    REAL_CONST(5105.6289746469747/8.0),
+    REAL_CONST(5116.9027876595246/8.0),
+    REAL_CONST(5128.18281385312/8.0),
+    REAL_CONST(5139.4690463906918/8.0),
+    REAL_CONST(5150.7614784539473/8.0),
+    REAL_CONST(5162.0601032432933/8.0),
+    REAL_CONST(5173.3649139777472/8.0),
+    REAL_CONST(5184.6759038948594/8.0),
+    REAL_CONST(5195.9930662506322/8.0),
+    REAL_CONST(5207.3163943194386/8.0),
+    REAL_CONST(5218.6458813939435/8.0),
+    REAL_CONST(5229.9815207850224/8.0),
+    REAL_CONST(5241.3233058216847/8.0),
+    REAL_CONST(5252.6712298509919/8.0),
+    REAL_CONST(5264.025286237983/8.0),
+    REAL_CONST(5275.3854683655954/8.0),
+    REAL_CONST(5286.7517696345885/8.0),
+    REAL_CONST(5298.1241834634639/8.0),
+    REAL_CONST(5309.5027032883945/8.0),
+    REAL_CONST(5320.887322563146/8.0),
+    REAL_CONST(5332.2780347589978/8.0),
+    REAL_CONST(5343.6748333646756/8.0),
+    REAL_CONST(5355.0777118862716/8.0),
+    REAL_CONST(5366.4866638471722/8.0),
+    REAL_CONST(5377.901682787985/8.0),
+    REAL_CONST(5389.3227622664635/8.0),
+    REAL_CONST(5400.749895857437/8.0),
+    REAL_CONST(5412.1830771527357/8.0),
+    REAL_CONST(5423.622299761123/8.0),
+    REAL_CONST(5435.067557308219/8.0),
+    REAL_CONST(5446.5188434364318/8.0),
+    REAL_CONST(5457.9761518048872/8.0),
+    REAL_CONST(5469.4394760893592/8.0),
+    REAL_CONST(5480.9088099821975/8.0),
+    REAL_CONST(5492.3841471922606/8.0),
+    REAL_CONST(5503.8654814448455/8.0),
+    REAL_CONST(5515.3528064816201/8.0),
+    REAL_CONST(5526.846116060552/8.0),
+    REAL_CONST(5538.3454039558474/8.0),
+    REAL_CONST(5549.8506639578736/8.0),
+    REAL_CONST(5561.3618898731029/8.0),
+    REAL_CONST(5572.8790755240361/8.0),
+    REAL_CONST(5584.4022147491451/8.0),
+    REAL_CONST(5595.9313014027975/8.0),
+    REAL_CONST(5607.4663293552012/8.0),
+    REAL_CONST(5619.0072924923297/8.0),
+    REAL_CONST(5630.5541847158656/8.0),
+    REAL_CONST(5642.1069999431284/8.0),
+    REAL_CONST(5653.665732107017/8.0),
+    REAL_CONST(5665.230375155943/8.0),
+    REAL_CONST(5676.8009230537655/8.0),
+    REAL_CONST(5688.3773697797333/8.0),
+    REAL_CONST(5699.9597093284156/8.0),
+    REAL_CONST(5711.5479357096474/8.0),
+    REAL_CONST(5723.1420429484588/8.0),
+    REAL_CONST(5734.7420250850209/8.0),
+    REAL_CONST(5746.347876174581/8.0),
+    REAL_CONST(5757.9595902874016/8.0),
+    REAL_CONST(5769.5771615087006/8.0),
+    REAL_CONST(5781.2005839385911/8.0),
+    REAL_CONST(5792.8298516920213/8.0),
+    REAL_CONST(5804.4649588987149/8.0),
+    REAL_CONST(5816.1058997031105/8.0),
+    REAL_CONST(5827.7526682643065/8.0),
+    REAL_CONST(5839.4052587559972/8.0),
+    REAL_CONST(5851.0636653664196/8.0),
+    REAL_CONST(5862.7278822982908/8.0),
+    REAL_CONST(5874.3979037687541/8.0),
+    REAL_CONST(5886.0737240093204/8.0),
+    REAL_CONST(5897.7553372658094/8.0),
+    REAL_CONST(5909.4427377982956/8.0),
+    REAL_CONST(5921.1359198810505/8.0),
+    REAL_CONST(5932.8348778024874/8.0),
+    REAL_CONST(5944.5396058651031/8.0),
+    REAL_CONST(5956.2500983854261/8.0),
+    REAL_CONST(5967.9663496939575/8.0),
+    REAL_CONST(5979.6883541351208/8.0),
+    REAL_CONST(5991.4161060672022/8.0),
+    REAL_CONST(6003.1495998623004/8.0),
+    REAL_CONST(6014.8888299062692/8.0),
+    REAL_CONST(6026.6337905986684/8.0),
+    REAL_CONST(6038.3844763527022/8.0),
+    REAL_CONST(6050.1408815951781/8.0),
+    REAL_CONST(6061.9030007664414/8.0),
+    REAL_CONST(6073.6708283203316/8.0),
+    REAL_CONST(6085.4443587241267/8.0),
+    REAL_CONST(6097.2235864584891/8.0),
+    REAL_CONST(6109.0085060174197/8.0),
+    REAL_CONST(6120.7991119081998/8.0),
+    REAL_CONST(6132.595398651345/8.0),
+    REAL_CONST(6144.3973607805519/8.0),
+    REAL_CONST(6156.2049928426459/8.0),
+    REAL_CONST(6168.0182893975361/8.0),
+    REAL_CONST(6179.8372450181578/8.0),
+    REAL_CONST(6191.6618542904307/8.0),
+    REAL_CONST(6203.4921118132024/8.0),
+    REAL_CONST(6215.3280121982016/8.0),
+    REAL_CONST(6227.1695500699925/8.0),
+    REAL_CONST(6239.0167200659189/8.0),
+    REAL_CONST(6250.8695168360628/8.0),
+    REAL_CONST(6262.7279350431891/8.0),
+    REAL_CONST(6274.5919693627056/8.0),
+    REAL_CONST(6286.4616144826068/8.0),
+    REAL_CONST(6298.3368651034316/8.0),
+    REAL_CONST(6310.2177159382172/8.0),
+    REAL_CONST(6322.1041617124456/8.0),
+    REAL_CONST(6333.9961971640032/8.0),
+    REAL_CONST(6345.8938170431311/8.0),
+    REAL_CONST(6357.7970161123785/8.0),
+    REAL_CONST(6369.7057891465583/8.0),
+    REAL_CONST(6381.6201309327007/8.0),
+    REAL_CONST(6393.5400362700075/8.0),
+    REAL_CONST(6405.4654999698032/8.0),
+    REAL_CONST(6417.3965168554978/8.0),
+    REAL_CONST(6429.3330817625329/8.0),
+    REAL_CONST(6441.2751895383453/8.0),
+    REAL_CONST(6453.2228350423138/8.0),
+    REAL_CONST(6465.176013145724/8.0),
+    REAL_CONST(6477.134718731716/8.0),
+    REAL_CONST(6489.0989466952469/8.0),
+    REAL_CONST(6501.0686919430445/8.0),
+    REAL_CONST(6513.0439493935628/8.0),
+    REAL_CONST(6525.0247139769417/8.0),
+    REAL_CONST(6537.010980634961/8.0),
+    REAL_CONST(6549.002744321001/8.0),
+    REAL_CONST(6560.9999999999973/8.0),
+    REAL_CONST(6573.0027426483985/8.0),
+    REAL_CONST(6585.0109672541284/8.0),
+    REAL_CONST(6597.0246688165371/8.0),
+    REAL_CONST(6609.0438423463656/8.0),
+    REAL_CONST(6621.0684828657004/8.0),
+    REAL_CONST(6633.0985854079354/8.0),
+    REAL_CONST(6645.134145017727/8.0),
+    REAL_CONST(6657.1751567509573/8.0),
+    REAL_CONST(6669.2216156746908/8.0),
+    REAL_CONST(6681.2735168671343/8.0),
+    REAL_CONST(6693.3308554176001/8.0),
+    REAL_CONST(6705.3936264264594/8.0),
+    REAL_CONST(6717.461825005108/8.0),
+    REAL_CONST(6729.535446275926/8.0),
+    REAL_CONST(6741.6144853722335/8.0),
+    REAL_CONST(6753.6989374382601/8.0),
+    REAL_CONST(6765.7887976290967/8.0),
+    REAL_CONST(6777.8840611106634/8.0),
+    REAL_CONST(6789.9847230596661/8.0),
+    REAL_CONST(6802.0907786635626/8.0),
+    REAL_CONST(6814.2022231205201/8.0),
+    REAL_CONST(6826.3190516393797/8.0),
+    REAL_CONST(6838.4412594396181/8.0),
+    REAL_CONST(6850.5688417513074/8.0),
+    REAL_CONST(6862.701793815083/8.0),
+    REAL_CONST(6874.840110882099/8.0),
+    REAL_CONST(6886.9837882139991/8.0),
+    REAL_CONST(6899.1328210828724/8.0),
+    REAL_CONST(6911.2872047712199/8.0),
+    REAL_CONST(6923.4469345719199/8.0),
+    REAL_CONST(6935.6120057881863/8.0),
+    REAL_CONST(6947.7824137335365/8.0),
+    REAL_CONST(6959.9581537317536/8.0),
+    REAL_CONST(6972.1392211168532/8.0),
+    REAL_CONST(6984.3256112330409/8.0),
+    REAL_CONST(6996.5173194346862/8.0),
+    REAL_CONST(7008.7143410862773/8.0),
+    REAL_CONST(7020.9166715623942/8.0),
+    REAL_CONST(7033.1243062476678/8.0),
+    REAL_CONST(7045.3372405367481/8.0),
+    REAL_CONST(7057.5554698342685/8.0),
+    REAL_CONST(7069.7789895548103/8.0),
+    REAL_CONST(7082.0077951228714/8.0),
+    REAL_CONST(7094.2418819728273/8.0),
+    REAL_CONST(7106.4812455489018/8.0),
+    REAL_CONST(7118.7258813051285/8.0),
+    REAL_CONST(7130.9757847053224/8.0),
+    REAL_CONST(7143.2309512230404/8.0),
+    REAL_CONST(7155.4913763415516/8.0),
+    REAL_CONST(7167.7570555538041/8.0),
+    REAL_CONST(7180.0279843623894/8.0),
+    REAL_CONST(7192.3041582795131/8.0),
+    REAL_CONST(7204.5855728269571/8.0),
+    REAL_CONST(7216.8722235360519/8.0),
+    REAL_CONST(7229.1641059476406/8.0),
+    REAL_CONST(7241.4612156120484/8.0),
+    REAL_CONST(7253.7635480890503/8.0),
+    REAL_CONST(7266.0710989478375/8.0),
+    REAL_CONST(7278.3838637669869/8.0),
+    REAL_CONST(7290.7018381344296/8.0),
+    REAL_CONST(7303.0250176474174/8.0),
+    REAL_CONST(7315.3533979124932/8.0),
+    REAL_CONST(7327.6869745454596/8.0),
+    REAL_CONST(7340.0257431713462/8.0),
+    REAL_CONST(7352.3696994243801/8.0),
+    REAL_CONST(7364.7188389479543/8.0),
+    REAL_CONST(7377.0731573945968/8.0),
+    REAL_CONST(7389.4326504259407/8.0),
+    REAL_CONST(7401.7973137126937/8.0),
+    REAL_CONST(7414.1671429346061/8.0),
+    REAL_CONST(7426.5421337804428/8.0),
+    REAL_CONST(7438.922281947951/8.0),
+    REAL_CONST(7451.3075831438346/8.0),
+    REAL_CONST(7463.6980330837177/8.0),
+    REAL_CONST(7476.0936274921214/8.0),
+    REAL_CONST(7488.4943621024304/8.0),
+    REAL_CONST(7500.9002326568652/8.0),
+    REAL_CONST(7513.3112349064522/8.0),
+    REAL_CONST(7525.7273646109943/8.0),
+    REAL_CONST(7538.1486175390446/8.0),
+    REAL_CONST(7550.5749894678729/8.0),
+    REAL_CONST(7563.0064761834419/8.0),
+    REAL_CONST(7575.4430734803736/8.0),
+    REAL_CONST(7587.8847771619248/8.0),
+    REAL_CONST(7600.3315830399597/8.0),
+    REAL_CONST(7612.7834869349153/8.0),
+    REAL_CONST(7625.24048467578/8.0),
+    REAL_CONST(7637.7025721000637/8.0),
+    REAL_CONST(7650.1697450537677/8.0),
+    REAL_CONST(7662.6419993913596/8.0),
+    REAL_CONST(7675.1193309757446/8.0),
+    REAL_CONST(7687.6017356782404/8.0),
+    REAL_CONST(7700.0892093785433/8.0),
+    REAL_CONST(7712.5817479647112/8.0),
+    REAL_CONST(7725.079347333125/8.0),
+    REAL_CONST(7737.5820033884729/8.0),
+    REAL_CONST(7750.0897120437139/8.0),
+    REAL_CONST(7762.6024692200581/8.0),
+    REAL_CONST(7775.1202708469355/8.0),
+    REAL_CONST(7787.6431128619733/8.0),
+    REAL_CONST(7800.1709912109645/8.0),
+    REAL_CONST(7812.7039018478481/8.0),
+    REAL_CONST(7825.2418407346768/8.0),
+    REAL_CONST(7837.7848038415968/8.0),
+    REAL_CONST(7850.3327871468155/8.0),
+    REAL_CONST(7862.8857866365806/8.0),
+    REAL_CONST(7875.4437983051539/8.0),
+    REAL_CONST(7888.006818154784/8.0),
+    REAL_CONST(7900.5748421956796/8.0),
+    REAL_CONST(7913.1478664459901/8.0),
+    REAL_CONST(7925.725886931772/8.0),
+    REAL_CONST(7938.3088996869719/8.0),
+    REAL_CONST(7950.8969007533951/8.0),
+    REAL_CONST(7963.4898861806851/8.0),
+    REAL_CONST(7976.0878520262959/8.0),
+    REAL_CONST(7988.6907943554688/8.0),
+    REAL_CONST(8001.2987092412086/8.0),
+    REAL_CONST(8013.911592764257/8.0),
+    REAL_CONST(8026.5294410130691/8.0),
+    REAL_CONST(8039.1522500837891/8.0),
+    REAL_CONST(8051.7800160802271/8.0),
+    REAL_CONST(8064.412735113835/8.0),
+    REAL_CONST(8077.0504033036796/8.0),
+    REAL_CONST(8089.6930167764222/8.0),
+    REAL_CONST(8102.3405716662946/8.0),
+    REAL_CONST(8114.9930641150731/8.0),
+    REAL_CONST(8127.6504902720571/8.0),
+    REAL_CONST(8140.3128462940449/8.0),
+    REAL_CONST(8152.9801283453098/8.0),
+    REAL_CONST(8165.6523325975786/8.0),
+    REAL_CONST(8178.3294552300049/8.0),
+    REAL_CONST(8191.0114924291529/8.0),
+    REAL_CONST(8203.6984403889655/8.0),
+    REAL_CONST(8216.3902953107463/8.0),
+    REAL_CONST(8229.0870534031419/8.0),
+    REAL_CONST(8241.7887108821069/8.0),
+    REAL_CONST(8254.4952639708936/8.0),
+    REAL_CONST(8267.2067089000211/8.0),
+    REAL_CONST(8279.9230419072574/8.0),
+    REAL_CONST(8292.6442592375952/8.0),
+    REAL_CONST(8305.3703571432306/8.0),
+    REAL_CONST(8318.101331883543/8.0),
+    REAL_CONST(8330.8371797250657/8.0),
+    REAL_CONST(8343.577896941475/8.0),
+    REAL_CONST(8356.3234798135582/8.0),
+    REAL_CONST(8369.0739246291978/8.0),
+    REAL_CONST(8381.8292276833508/8.0),
+    REAL_CONST(8394.5893852780209/8.0),
+    REAL_CONST(8407.3543937222421/8.0),
+    REAL_CONST(8420.1242493320569/8.0),
+    REAL_CONST(8432.8989484304948/8.0),
+    REAL_CONST(8445.6784873475499/8.0),
+    REAL_CONST(8458.4628624201578/8.0),
+    REAL_CONST(8471.2520699921806/8.0),
+    REAL_CONST(8484.0461064143838/8.0),
+    REAL_CONST(8496.8449680444082/8.0),
+    REAL_CONST(8509.6486512467636/8.0),
+    REAL_CONST(8522.4571523927953/8.0),
+    REAL_CONST(8535.270467860666/8.0),
+    REAL_CONST(8548.0885940353437/8.0),
+    REAL_CONST(8560.9115273085663/8.0),
+    REAL_CONST(8573.7392640788403/8.0),
+    REAL_CONST(8586.5718007514006/8.0),
+    REAL_CONST(8599.4091337382069/8.0),
+    REAL_CONST(8612.2512594579148/8.0),
+    REAL_CONST(8625.0981743358552/8.0),
+    REAL_CONST(8637.9498748040205/8.0),
+    REAL_CONST(8650.8063573010386/8.0),
+    REAL_CONST(8663.6676182721567/8.0),
+    REAL_CONST(8676.533654169225/8.0),
+    REAL_CONST(8689.4044614506638/8.0),
+    REAL_CONST(8702.2800365814601/8.0),
+    REAL_CONST(8715.1603760331418/8.0),
+    REAL_CONST(8728.0454762837508/8.0),
+    REAL_CONST(8740.9353338178389/8.0),
+    REAL_CONST(8753.8299451264356/8.0),
+    REAL_CONST(8766.7293067070332/8.0),
+    REAL_CONST(8779.6334150635721/8.0),
+    REAL_CONST(8792.5422667064158/8.0),
+    REAL_CONST(8805.4558581523324/8.0),
+    REAL_CONST(8818.3741859244819/8.0),
+    REAL_CONST(8831.2972465523908/8.0),
+    REAL_CONST(8844.2250365719356/8.0),
+    REAL_CONST(8857.1575525253265/8.0),
+    REAL_CONST(8870.0947909610859/8.0),
+    REAL_CONST(8883.0367484340295/8.0),
+    REAL_CONST(8895.9834215052524/8.0),
+    REAL_CONST(8908.934806742107/8.0),
+    REAL_CONST(8921.8909007181846/8.0),
+    REAL_CONST(8934.8517000132997/8.0),
+    REAL_CONST(8947.817201213471/8.0),
+    REAL_CONST(8960.7874009109/8.0),
+    REAL_CONST(8973.7622957039603/8.0),
+    REAL_CONST(8986.7418821971733/8.0),
+    REAL_CONST(8999.7261570011924/8.0),
+    REAL_CONST(9012.7151167327884/8.0),
+    REAL_CONST(9025.7087580148236/8.0),
+    REAL_CONST(9038.7070774762469/8.0),
+    REAL_CONST(9051.7100717520643/8.0),
+    REAL_CONST(9064.7177374833282/8.0),
+    REAL_CONST(9077.7300713171153/8.0),
+    REAL_CONST(9090.7470699065179/8.0),
+    REAL_CONST(9103.7687299106146/8.0),
+    REAL_CONST(9116.7950479944648/8.0),
+    REAL_CONST(9129.8260208290812/8.0),
+    REAL_CONST(9142.8616450914233/8.0),
+    REAL_CONST(9155.9019174643727/8.0),
+    REAL_CONST(9168.9468346367157/8.0),
+    REAL_CONST(9181.9963933031358/8.0),
+    REAL_CONST(9195.0505901641845/8.0),
+    REAL_CONST(9208.1094219262741/8.0),
+    REAL_CONST(9221.1728853016557/8.0),
+    REAL_CONST(9234.240977008405/8.0),
+    REAL_CONST(9247.3136937704076/8.0),
+    REAL_CONST(9260.3910323173386/8.0),
+    REAL_CONST(9273.472989384647/8.0),
+    REAL_CONST(9286.5595617135423/8.0),
+    REAL_CONST(9299.6507460509747/8.0),
+    REAL_CONST(9312.7465391496207/8.0),
+    REAL_CONST(9325.8469377678684/8.0),
+    REAL_CONST(9338.9519386698012/8.0),
+    REAL_CONST(9352.0615386251757/8.0),
+    REAL_CONST(9365.1757344094131/8.0),
+    REAL_CONST(9378.2945228035842/8.0),
+    REAL_CONST(9391.4179005943843/8.0),
+    REAL_CONST(9404.5458645741273/8.0),
+    REAL_CONST(9417.6784115407263/8.0),
+    REAL_CONST(9430.8155382976747/8.0),
+    REAL_CONST(9443.9572416540359/8.0),
+    REAL_CONST(9457.1035184244265/8.0),
+    REAL_CONST(9470.2543654290002/8.0),
+    REAL_CONST(9483.4097794934296/8.0),
+    REAL_CONST(9496.5697574488931/8.0),
+    REAL_CONST(9509.7342961320664/8.0),
+    REAL_CONST(9522.9033923850911/8.0),
+    REAL_CONST(9536.0770430555804/8.0),
+    REAL_CONST(9549.2552449965824/8.0),
+    REAL_CONST(9562.4379950665825/8.0),
+    REAL_CONST(9575.6252901294793/8.0),
+    REAL_CONST(9588.8171270545736/8.0),
+    REAL_CONST(9602.0135027165488/8.0),
+    REAL_CONST(9615.2144139954635/8.0),
+    REAL_CONST(9628.4198577767274/8.0),
+    REAL_CONST(9641.629830951093/8.0),
+    REAL_CONST(9654.844330414644/8.0),
+    REAL_CONST(9668.0633530687719/8.0),
+    REAL_CONST(9681.286895820167/8.0),
+    REAL_CONST(9694.5149555808002/8.0),
+    REAL_CONST(9707.7475292679192/8.0),
+    REAL_CONST(9720.9846138040157/8.0),
+    REAL_CONST(9734.2262061168276/8.0),
+    REAL_CONST(9747.4723031393187/8.0),
+    REAL_CONST(9760.7229018096641/8.0),
+    REAL_CONST(9773.9779990712323/8.0),
+    REAL_CONST(9787.2375918725811/8.0),
+    REAL_CONST(9800.5016771674327/8.0),
+    REAL_CONST(9813.7702519146696/8.0),
+    REAL_CONST(9827.0433130783094/8.0),
+    REAL_CONST(9840.3208576275028/8.0),
+    REAL_CONST(9853.602882536512/8.0),
+    REAL_CONST(9866.8893847846994/8.0),
+    REAL_CONST(9880.1803613565116/8.0),
+    REAL_CONST(9893.4758092414686/8.0),
+    REAL_CONST(9906.7757254341523/8.0),
+    REAL_CONST(9920.0801069341851/8.0),
+    REAL_CONST(9933.3889507462245/8.0),
+    REAL_CONST(9946.7022538799429/8.0),
+    REAL_CONST(9960.0200133500221/8.0),
+    REAL_CONST(9973.3422261761298/8.0),
+    REAL_CONST(9986.6688893829159/8.0),
+    REAL_CONST(9999.9999999999945/8.0),
+    REAL_CONST(10013.335555061929/8.0),
+    REAL_CONST(10026.675551608221/8.0),
+    REAL_CONST(10040.019986683301/8.0),
+    REAL_CONST(10053.368857336509/8.0),
+    REAL_CONST(10066.722160622081/8.0),
+    REAL_CONST(10080.079893599144/8.0),
+    REAL_CONST(10093.442053331697/8.0),
+    REAL_CONST(10106.808636888598/8.0),
+    REAL_CONST(10120.179641343551/8.0),
+    REAL_CONST(10133.555063775095/8.0),
+    REAL_CONST(10146.934901266595/8.0),
+    REAL_CONST(10160.31915090622/8.0),
+    REAL_CONST(10173.707809786936/8.0),
+    REAL_CONST(10187.100875006496/8.0),
+    REAL_CONST(10200.498343667417/8.0),
+    REAL_CONST(10213.900212876984/8.0),
+    REAL_CONST(10227.306479747222/8.0),
+    REAL_CONST(10240.717141394889/8.0),
+    REAL_CONST(10254.132194941467/8.0),
+    REAL_CONST(10267.551637513146/8.0),
+    REAL_CONST(10280.975466240814/8.0),
+    REAL_CONST(10294.40367826004/8.0),
+    REAL_CONST(10307.836270711066/8.0),
+    REAL_CONST(10321.273240738796/8.0),
+    REAL_CONST(10334.71458549278/8.0)
 };
 
 #endif
--- a/libfaad/is.c
+++ b/libfaad/is.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: is.c,v 1.16 2003/11/04 21:43:30 menno Exp $
+** $Id: is.c,v 1.17 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
@@ -86,13 +86,13 @@
                     {
                         k = (group*nshort)+i;
 #ifndef FIXED_POINT
-                        r_spec[k] = MUL(l_spec[k], scale);
+                        r_spec[k] = MUL_R(l_spec[k], scale);
 #else
                         if (exp < 0)
                             r_spec[k] = l_spec[k] << -exp;
                         else
                             r_spec[k] = l_spec[k] >> exp;
-                        r_spec[k] = MUL_R_C(r_spec[k], pow05_table[frac + 3]);
+                        r_spec[k] = MUL_C(r_spec[k], pow05_table[frac + 3]);
 #endif
                         if (is_intensity(icsr, g, sfb) != invert_intensity(ics, g, sfb))
                             r_spec[k] = -r_spec[k];
--- a/libfaad/kbd_win.h
+++ b/libfaad/kbd_win.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: kbd_win.h,v 1.10 2003/11/04 21:43:30 menno Exp $
+** $Id: kbd_win.h,v 1.11 2003/11/12 20:47:58 menno Exp $
 **/
 
 #ifndef __KBD_WIN_H__
@@ -39,2252 +39,2252 @@
 
 real_t kbd_long_1024[] =
 {
-    COEF_CONST(0.00029256153896361),
-    COEF_CONST(0.00042998567353047),
-    COEF_CONST(0.00054674074589540),
-    COEF_CONST(0.00065482304299792),
-    COEF_CONST(0.00075870195068747),
-    COEF_CONST(0.00086059331713336),
-    COEF_CONST(0.00096177541439010),
-    COEF_CONST(0.0010630609410878),
-    COEF_CONST(0.0011650036308132),
-    COEF_CONST(0.0012680012194148),
-    COEF_CONST(0.0013723517232956),
-    COEF_CONST(0.0014782864109136),
-    COEF_CONST(0.0015859901976719),
-    COEF_CONST(0.0016956148252373),
-    COEF_CONST(0.0018072876903517),
-    COEF_CONST(0.0019211179405514),
-    COEF_CONST(0.0020372007924215),
-    COEF_CONST(0.0021556206591754),
-    COEF_CONST(0.0022764534599614),
-    COEF_CONST(0.0023997683540995),
-    COEF_CONST(0.0025256290631156),
-    COEF_CONST(0.0026540948920831),
-    COEF_CONST(0.0027852215281403),
-    COEF_CONST(0.0029190616715331),
-    COEF_CONST(0.0030556655443223),
-    COEF_CONST(0.0031950812943391),
-    COEF_CONST(0.0033373553240392),
-    COEF_CONST(0.0034825325586930),
-    COEF_CONST(0.0036306566699199),
-    COEF_CONST(0.0037817702604646),
-    COEF_CONST(0.0039359150179719),
-    COEF_CONST(0.0040931318437260),
-    COEF_CONST(0.0042534609610026),
-    COEF_CONST(0.0044169420066964),
-    COEF_CONST(0.0045836141091341),
-    COEF_CONST(0.0047535159544086),
-    COEF_CONST(0.0049266858431214),
-    COEF_CONST(0.0051031617390698),
-    COEF_CONST(0.0052829813111335),
-    COEF_CONST(0.0054661819693975),
-    COEF_CONST(0.0056528008963682),
-    COEF_CONST(0.0058428750739943),
-    COEF_CONST(0.0060364413070882),
-    COEF_CONST(0.0062335362436492),
-    COEF_CONST(0.0064341963925079),
-    COEF_CONST(0.0066384581386503),
-    COEF_CONST(0.0068463577565218),
-    COEF_CONST(0.0070579314215715),
-    COEF_CONST(0.0072732152202559),
-    COEF_CONST(0.0074922451586909),
-    COEF_CONST(0.0077150571701162),
-    COEF_CONST(0.0079416871213115),
-    COEF_CONST(0.0081721708180857),
-    COEF_CONST(0.0084065440099458),
-    COEF_CONST(0.0086448423940363),
-    COEF_CONST(0.0088871016184291),
-    COEF_CONST(0.0091333572848345),
-    COEF_CONST(0.0093836449507939),
-    COEF_CONST(0.0096380001314086),
-    COEF_CONST(0.0098964583006517),
-    COEF_CONST(0.010159054892306),
-    COEF_CONST(0.010425825300561),
-    COEF_CONST(0.010696804880310),
-    COEF_CONST(0.010972028947167),
-    COEF_CONST(0.011251532777236),
-    COEF_CONST(0.011535351606646),
-    COEF_CONST(0.011823520630897),
-    COEF_CONST(0.012116075003993),
-    COEF_CONST(0.012413049837429),
-    COEF_CONST(0.012714480198999),
-    COEF_CONST(0.013020401111478),
-    COEF_CONST(0.013330847551161),
-    COEF_CONST(0.013645854446288),
-    COEF_CONST(0.013965456675352),
-    COEF_CONST(0.014289689065314),
-    COEF_CONST(0.014618586389712),
-    COEF_CONST(0.014952183366697),
-    COEF_CONST(0.015290514656976),
-    COEF_CONST(0.015633614861688),
-    COEF_CONST(0.015981518520214),
-    COEF_CONST(0.016334260107915),
-    COEF_CONST(0.016691874033817),
-    COEF_CONST(0.017054394638241),
-    COEF_CONST(0.017421856190380),
-    COEF_CONST(0.017794292885832),
-    COEF_CONST(0.018171738844085),
-    COEF_CONST(0.018554228105962),
-    COEF_CONST(0.018941794631032),
-    COEF_CONST(0.019334472294980),
-    COEF_CONST(0.019732294886947),
-    COEF_CONST(0.020135296106839),
-    COEF_CONST(0.020543509562604),
-    COEF_CONST(0.020956968767488),
-    COEF_CONST(0.021375707137257),
-    COEF_CONST(0.021799757987407),
-    COEF_CONST(0.022229154530343),
-    COEF_CONST(0.022663929872540),
-    COEF_CONST(0.023104117011689),
-    COEF_CONST(0.023549748833816),
-    COEF_CONST(0.024000858110398),
-    COEF_CONST(0.024457477495451),
-    COEF_CONST(0.024919639522613),
-    COEF_CONST(0.025387376602207),
-    COEF_CONST(0.025860721018295),
-    COEF_CONST(0.026339704925726),
-    COEF_CONST(0.026824360347160),
-    COEF_CONST(0.027314719170100),
-    COEF_CONST(0.027810813143900),
-    COEF_CONST(0.028312673876775),
-    COEF_CONST(0.028820332832801),
-    COEF_CONST(0.029333821328905),
-    COEF_CONST(0.029853170531859),
-    COEF_CONST(0.030378411455255),
-    COEF_CONST(0.030909574956490),
-    COEF_CONST(0.031446691733739),
-    COEF_CONST(0.031989792322926),
-    COEF_CONST(0.032538907094693),
-    COEF_CONST(0.033094066251369),
-    COEF_CONST(0.033655299823935),
-    COEF_CONST(0.034222637668991),
-    COEF_CONST(0.034796109465717),
-    COEF_CONST(0.035375744712844),
-    COEF_CONST(0.035961572725616),
-    COEF_CONST(0.036553622632758),
-    COEF_CONST(0.037151923373446),
-    COEF_CONST(0.037756503694277),
-    COEF_CONST(0.038367392146243),
-    COEF_CONST(0.038984617081711),
-    COEF_CONST(0.039608206651398),
-    COEF_CONST(0.040238188801359),
-    COEF_CONST(0.040874591269976),
-    COEF_CONST(0.041517441584950),
-    COEF_CONST(0.042166767060301),
-    COEF_CONST(0.042822594793376),
-    COEF_CONST(0.043484951661852),
-    COEF_CONST(0.044153864320760),
-    COEF_CONST(0.044829359199509),
-    COEF_CONST(0.045511462498913),
-    COEF_CONST(0.046200200188234),
-    COEF_CONST(0.046895598002228),
-    COEF_CONST(0.047597681438201),
-    COEF_CONST(0.048306475753074),
-    COEF_CONST(0.049022005960455),
-    COEF_CONST(0.049744296827725),
-    COEF_CONST(0.050473372873129),
-    COEF_CONST(0.051209258362879),
-    COEF_CONST(0.051951977308273),
-    COEF_CONST(0.052701553462813),
-    COEF_CONST(0.053458010319350),
-    COEF_CONST(0.054221371107223),
-    COEF_CONST(0.054991658789428),
-    COEF_CONST(0.055768896059787),
-    COEF_CONST(0.056553105340134),
-    COEF_CONST(0.057344308777513),
-    COEF_CONST(0.058142528241393),
-    COEF_CONST(0.058947785320893),
-    COEF_CONST(0.059760101322019),
-    COEF_CONST(0.060579497264926),
-    COEF_CONST(0.061405993881180),
-    COEF_CONST(0.062239611611049),
-    COEF_CONST(0.063080370600799),
-    COEF_CONST(0.063928290700012),
-    COEF_CONST(0.064783391458919),
-    COEF_CONST(0.065645692125747),
-    COEF_CONST(0.066515211644086),
-    COEF_CONST(0.067391968650269),
-    COEF_CONST(0.068275981470777),
-    COEF_CONST(0.069167268119652),
-    COEF_CONST(0.070065846295935),
-    COEF_CONST(0.070971733381121),
-    COEF_CONST(0.071884946436630),
-    COEF_CONST(0.072805502201299),
-    COEF_CONST(0.073733417088896),
-    COEF_CONST(0.074668707185649),
-    COEF_CONST(0.075611388247794),
-    COEF_CONST(0.076561475699152),
-    COEF_CONST(0.077518984628715),
-    COEF_CONST(0.078483929788261),
-    COEF_CONST(0.079456325589986),
-    COEF_CONST(0.080436186104162),
-    COEF_CONST(0.081423525056808),
-    COEF_CONST(0.082418355827392),
-    COEF_CONST(0.083420691446553),
-    COEF_CONST(0.084430544593841),
-    COEF_CONST(0.085447927595483),
-    COEF_CONST(0.086472852422178),
-    COEF_CONST(0.087505330686900),
-    COEF_CONST(0.088545373642744),
-    COEF_CONST(0.089592992180780),
-    COEF_CONST(0.090648196827937),
-    COEF_CONST(0.091710997744919),
-    COEF_CONST(0.092781404724131),
-    COEF_CONST(0.093859427187640),
-    COEF_CONST(0.094945074185163),
-    COEF_CONST(0.096038354392069),
-    COEF_CONST(0.097139276107423),
-    COEF_CONST(0.098247847252041),
-    COEF_CONST(0.099364075366580),
-    COEF_CONST(0.10048796760965),
-    COEF_CONST(0.10161953075597),
-    COEF_CONST(0.10275877119451),
-    COEF_CONST(0.10390569492671),
-    COEF_CONST(0.10506030756469),
-    COEF_CONST(0.10622261432949),
-    COEF_CONST(0.10739262004941),
-    COEF_CONST(0.10857032915821),
-    COEF_CONST(0.10975574569357),
-    COEF_CONST(0.11094887329534),
-    COEF_CONST(0.11214971520402),
-    COEF_CONST(0.11335827425914),
-    COEF_CONST(0.11457455289772),
-    COEF_CONST(0.11579855315274),
-    COEF_CONST(0.11703027665170),
-    COEF_CONST(0.11826972461510),
-    COEF_CONST(0.11951689785504),
-    COEF_CONST(0.12077179677383),
-    COEF_CONST(0.12203442136263),
-    COEF_CONST(0.12330477120008),
-    COEF_CONST(0.12458284545102),
-    COEF_CONST(0.12586864286523),
-    COEF_CONST(0.12716216177615),
-    COEF_CONST(0.12846340009971),
-    COEF_CONST(0.12977235533312),
-    COEF_CONST(0.13108902455375),
-    COEF_CONST(0.13241340441801),
-    COEF_CONST(0.13374549116025),
-    COEF_CONST(0.13508528059173),
-    COEF_CONST(0.13643276809961),
-    COEF_CONST(0.13778794864595),
-    COEF_CONST(0.13915081676677),
-    COEF_CONST(0.14052136657114),
-    COEF_CONST(0.14189959174027),
-    COEF_CONST(0.14328548552671),
-    COEF_CONST(0.14467904075349),
-    COEF_CONST(0.14608024981336),
-    COEF_CONST(0.14748910466804),
-    COEF_CONST(0.14890559684750),
-    COEF_CONST(0.15032971744929),
-    COEF_CONST(0.15176145713790),
-    COEF_CONST(0.15320080614414),
-    COEF_CONST(0.15464775426459),
-    COEF_CONST(0.15610229086100),
-    COEF_CONST(0.15756440485987),
-    COEF_CONST(0.15903408475193),
-    COEF_CONST(0.16051131859170),
-    COEF_CONST(0.16199609399712),
-    COEF_CONST(0.16348839814917),
-    COEF_CONST(0.16498821779156),
-    COEF_CONST(0.16649553923042),
-    COEF_CONST(0.16801034833404),
-    COEF_CONST(0.16953263053270),
-    COEF_CONST(0.17106237081842),
-    COEF_CONST(0.17259955374484),
-    COEF_CONST(0.17414416342714),
-    COEF_CONST(0.17569618354193),
-    COEF_CONST(0.17725559732720),
-    COEF_CONST(0.17882238758238),
-    COEF_CONST(0.18039653666830),
-    COEF_CONST(0.18197802650733),
-    COEF_CONST(0.18356683858343),
-    COEF_CONST(0.18516295394233),
-    COEF_CONST(0.18676635319174),
-    COEF_CONST(0.18837701650148),
-    COEF_CONST(0.18999492360384),
-    COEF_CONST(0.19162005379380),
-    COEF_CONST(0.19325238592940),
-    COEF_CONST(0.19489189843209),
-    COEF_CONST(0.19653856928714),
-    COEF_CONST(0.19819237604409),
-    COEF_CONST(0.19985329581721),
-    COEF_CONST(0.20152130528605),
-    COEF_CONST(0.20319638069594),
-    COEF_CONST(0.20487849785865),
-    COEF_CONST(0.20656763215298),
-    COEF_CONST(0.20826375852540),
-    COEF_CONST(0.20996685149083),
-    COEF_CONST(0.21167688513330),
-    COEF_CONST(0.21339383310678),
-    COEF_CONST(0.21511766863598),
-    COEF_CONST(0.21684836451719),
-    COEF_CONST(0.21858589311922),
-    COEF_CONST(0.22033022638425),
-    COEF_CONST(0.22208133582887),
-    COEF_CONST(0.22383919254503),
-    COEF_CONST(0.22560376720111),
-    COEF_CONST(0.22737503004300),
-    COEF_CONST(0.22915295089517),
-    COEF_CONST(0.23093749916189),
-    COEF_CONST(0.23272864382838),
-    COEF_CONST(0.23452635346201),
-    COEF_CONST(0.23633059621364),
-    COEF_CONST(0.23814133981883),
-    COEF_CONST(0.23995855159925),
-    COEF_CONST(0.24178219846403),
-    COEF_CONST(0.24361224691114),
-    COEF_CONST(0.24544866302890),
-    COEF_CONST(0.24729141249740),
-    COEF_CONST(0.24914046059007),
-    COEF_CONST(0.25099577217522),
-    COEF_CONST(0.25285731171763),
-    COEF_CONST(0.25472504328019),
-    COEF_CONST(0.25659893052556),
-    COEF_CONST(0.25847893671788),
-    COEF_CONST(0.26036502472451),
-    COEF_CONST(0.26225715701781),
-    COEF_CONST(0.26415529567692),
-    COEF_CONST(0.26605940238966),
-    COEF_CONST(0.26796943845439),
-    COEF_CONST(0.26988536478190),
-    COEF_CONST(0.27180714189742),
-    COEF_CONST(0.27373472994256),
-    COEF_CONST(0.27566808867736),
-    COEF_CONST(0.27760717748238),
-    COEF_CONST(0.27955195536071),
-    COEF_CONST(0.28150238094021),
-    COEF_CONST(0.28345841247557),
-    COEF_CONST(0.28542000785059),
-    COEF_CONST(0.28738712458038),
-    COEF_CONST(0.28935971981364),
-    COEF_CONST(0.29133775033492),
-    COEF_CONST(0.29332117256704),
-    COEF_CONST(0.29530994257338),
-    COEF_CONST(0.29730401606034),
-    COEF_CONST(0.29930334837974),
-    COEF_CONST(0.30130789453132),
-    COEF_CONST(0.30331760916521),
-    COEF_CONST(0.30533244658452),
-    COEF_CONST(0.30735236074785),
-    COEF_CONST(0.30937730527195),
-    COEF_CONST(0.31140723343430),
-    COEF_CONST(0.31344209817583),
-    COEF_CONST(0.31548185210356),
-    COEF_CONST(0.31752644749341),
-    COEF_CONST(0.31957583629288),
-    COEF_CONST(0.32162997012390),
-    COEF_CONST(0.32368880028565),
-    COEF_CONST(0.32575227775738),
-    COEF_CONST(0.32782035320134),
-    COEF_CONST(0.32989297696566),
-    COEF_CONST(0.33197009908736),
-    COEF_CONST(0.33405166929523),
-    COEF_CONST(0.33613763701295),
-    COEF_CONST(0.33822795136203),
-    COEF_CONST(0.34032256116495),
-    COEF_CONST(0.34242141494820),
-    COEF_CONST(0.34452446094547),
-    COEF_CONST(0.34663164710072),
-    COEF_CONST(0.34874292107143),
-    COEF_CONST(0.35085823023181),
-    COEF_CONST(0.35297752167598),
-    COEF_CONST(0.35510074222129),
-    COEF_CONST(0.35722783841160),
-    COEF_CONST(0.35935875652060),
-    COEF_CONST(0.36149344255514),
-    COEF_CONST(0.36363184225864),
-    COEF_CONST(0.36577390111444),
-    COEF_CONST(0.36791956434930),
-    COEF_CONST(0.37006877693676),
-    COEF_CONST(0.37222148360070),
-    COEF_CONST(0.37437762881878),
-    COEF_CONST(0.37653715682603),
-    COEF_CONST(0.37870001161834),
-    COEF_CONST(0.38086613695607),
-    COEF_CONST(0.38303547636766),
-    COEF_CONST(0.38520797315322),
-    COEF_CONST(0.38738357038821),
-    COEF_CONST(0.38956221092708),
-    COEF_CONST(0.39174383740701),
-    COEF_CONST(0.39392839225157),
-    COEF_CONST(0.39611581767449),
-    COEF_CONST(0.39830605568342),
-    COEF_CONST(0.40049904808370),
-    COEF_CONST(0.40269473648218),
-    COEF_CONST(0.40489306229101),
-    COEF_CONST(0.40709396673153),
-    COEF_CONST(0.40929739083810),
-    COEF_CONST(0.41150327546197),
-    COEF_CONST(0.41371156127524),
-    COEF_CONST(0.41592218877472),
-    COEF_CONST(0.41813509828594),
-    COEF_CONST(0.42035022996702),
-    COEF_CONST(0.42256752381274),
-    COEF_CONST(0.42478691965848),
-    COEF_CONST(0.42700835718423),
-    COEF_CONST(0.42923177591866),
-    COEF_CONST(0.43145711524314),
-    COEF_CONST(0.43368431439580),
-    COEF_CONST(0.43591331247564),
-    COEF_CONST(0.43814404844658),
-    COEF_CONST(0.44037646114161),
-    COEF_CONST(0.44261048926688),
-    COEF_CONST(0.44484607140589),
-    COEF_CONST(0.44708314602359),
-    COEF_CONST(0.44932165147057),
-    COEF_CONST(0.45156152598727),
-    COEF_CONST(0.45380270770813),
-    COEF_CONST(0.45604513466581),
-    COEF_CONST(0.45828874479543),
-    COEF_CONST(0.46053347593880),
-    COEF_CONST(0.46277926584861),
-    COEF_CONST(0.46502605219277),
-    COEF_CONST(0.46727377255861),
-    COEF_CONST(0.46952236445718),
-    COEF_CONST(0.47177176532752),
-    COEF_CONST(0.47402191254100),
-    COEF_CONST(0.47627274340557),
-    COEF_CONST(0.47852419517009),
-    COEF_CONST(0.48077620502869),
-    COEF_CONST(0.48302871012505),
-    COEF_CONST(0.48528164755674),
-    COEF_CONST(0.48753495437962),
-    COEF_CONST(0.48978856761212),
-    COEF_CONST(0.49204242423966),
-    COEF_CONST(0.49429646121898),
-    COEF_CONST(0.49655061548250),
-    COEF_CONST(0.49880482394273),
-    COEF_CONST(0.50105902349665),
-    COEF_CONST(0.50331315103004),
-    COEF_CONST(0.50556714342194),
-    COEF_CONST(0.50782093754901),
-    COEF_CONST(0.51007447028990),
-    COEF_CONST(0.51232767852971),
-    COEF_CONST(0.51458049916433),
-    COEF_CONST(0.51683286910489),
-    COEF_CONST(0.51908472528213),
-    COEF_CONST(0.52133600465083),
-    COEF_CONST(0.52358664419420),
-    COEF_CONST(0.52583658092832),
-    COEF_CONST(0.52808575190648),
-    COEF_CONST(0.53033409422367),
-    COEF_CONST(0.53258154502092),
-    COEF_CONST(0.53482804148974),
-    COEF_CONST(0.53707352087652),
-    COEF_CONST(0.53931792048690),
-    COEF_CONST(0.54156117769021),
-    COEF_CONST(0.54380322992385),
-    COEF_CONST(0.54604401469766),
-    COEF_CONST(0.54828346959835),
-    COEF_CONST(0.55052153229384),
-    COEF_CONST(0.55275814053768),
-    COEF_CONST(0.55499323217338),
-    COEF_CONST(0.55722674513883),
-    COEF_CONST(0.55945861747062),
-    COEF_CONST(0.56168878730842),
-    COEF_CONST(0.56391719289930),
-    COEF_CONST(0.56614377260214),
-    COEF_CONST(0.56836846489188),
-    COEF_CONST(0.57059120836390),
-    COEF_CONST(0.57281194173835),
-    COEF_CONST(0.57503060386439),
-    COEF_CONST(0.57724713372458),
-    COEF_CONST(0.57946147043912),
-    COEF_CONST(0.58167355327012),
-    COEF_CONST(0.58388332162591),
-    COEF_CONST(0.58609071506528),
-    COEF_CONST(0.58829567330173),
-    COEF_CONST(0.59049813620770),
-    COEF_CONST(0.59269804381879),
-    COEF_CONST(0.59489533633802),
-    COEF_CONST(0.59708995413996),
-    COEF_CONST(0.59928183777495),
-    COEF_CONST(0.60147092797329),
-    COEF_CONST(0.60365716564937),
-    COEF_CONST(0.60584049190582),
-    COEF_CONST(0.60802084803764),
-    COEF_CONST(0.61019817553632),
-    COEF_CONST(0.61237241609393),
-    COEF_CONST(0.61454351160718),
-    COEF_CONST(0.61671140418155),
-    COEF_CONST(0.61887603613527),
-    COEF_CONST(0.62103735000336),
-    COEF_CONST(0.62319528854167),
-    COEF_CONST(0.62534979473088),
-    COEF_CONST(0.62750081178042),
-    COEF_CONST(0.62964828313250),
-    COEF_CONST(0.63179215246597),
-    COEF_CONST(0.63393236370030),
-    COEF_CONST(0.63606886099946),
-    COEF_CONST(0.63820158877577),
-    COEF_CONST(0.64033049169379),
-    COEF_CONST(0.64245551467413),
-    COEF_CONST(0.64457660289729),
-    COEF_CONST(0.64669370180740),
-    COEF_CONST(0.64880675711607),
-    COEF_CONST(0.65091571480603),
-    COEF_CONST(0.65302052113494),
-    COEF_CONST(0.65512112263906),
-    COEF_CONST(0.65721746613689),
-    COEF_CONST(0.65930949873289),
-    COEF_CONST(0.66139716782102),
-    COEF_CONST(0.66348042108842),
-    COEF_CONST(0.66555920651892),
-    COEF_CONST(0.66763347239664),
-    COEF_CONST(0.66970316730947),
-    COEF_CONST(0.67176824015260),
-    COEF_CONST(0.67382864013196),
-    COEF_CONST(0.67588431676768),
-    COEF_CONST(0.67793521989751),
-    COEF_CONST(0.67998129968017),
-    COEF_CONST(0.68202250659876),
-    COEF_CONST(0.68405879146403),
-    COEF_CONST(0.68609010541774),
-    COEF_CONST(0.68811639993588),
-    COEF_CONST(0.69013762683195),
-    COEF_CONST(0.69215373826012),
-    COEF_CONST(0.69416468671849),
-    COEF_CONST(0.69617042505214),
-    COEF_CONST(0.69817090645634),
-    COEF_CONST(0.70016608447958),
-    COEF_CONST(0.70215591302664),
-    COEF_CONST(0.70414034636163),
-    COEF_CONST(0.70611933911096),
-    COEF_CONST(0.70809284626630),
-    COEF_CONST(0.71006082318751),
-    COEF_CONST(0.71202322560554),
-    COEF_CONST(0.71398000962530),
-    COEF_CONST(0.71593113172842),
-    COEF_CONST(0.71787654877613),
-    COEF_CONST(0.71981621801195),
-    COEF_CONST(0.72175009706445),
-    COEF_CONST(0.72367814394990),
-    COEF_CONST(0.72560031707496),
-    COEF_CONST(0.72751657523927),
-    COEF_CONST(0.72942687763803),
-    COEF_CONST(0.73133118386457),
-    COEF_CONST(0.73322945391280),
-    COEF_CONST(0.73512164817975),
-    COEF_CONST(0.73700772746796),
-    COEF_CONST(0.73888765298787),
-    COEF_CONST(0.74076138636020),
-    COEF_CONST(0.74262888961827),
-    COEF_CONST(0.74449012521027),
-    COEF_CONST(0.74634505600152),
-    COEF_CONST(0.74819364527663),
-    COEF_CONST(0.75003585674175),
-    COEF_CONST(0.75187165452661),
-    COEF_CONST(0.75370100318668),
-    COEF_CONST(0.75552386770515),
-    COEF_CONST(0.75734021349500),
-    COEF_CONST(0.75915000640095),
-    COEF_CONST(0.76095321270137),
-    COEF_CONST(0.76274979911019),
-    COEF_CONST(0.76453973277875),
-    COEF_CONST(0.76632298129757),
-    COEF_CONST(0.76809951269819),
-    COEF_CONST(0.76986929545481),
-    COEF_CONST(0.77163229848604),
-    COEF_CONST(0.77338849115651),
-    COEF_CONST(0.77513784327849),
-    COEF_CONST(0.77688032511340),
-    COEF_CONST(0.77861590737340),
-    COEF_CONST(0.78034456122283),
-    COEF_CONST(0.78206625827961),
-    COEF_CONST(0.78378097061667),
-    COEF_CONST(0.78548867076330),
-    COEF_CONST(0.78718933170643),
-    COEF_CONST(0.78888292689189),
-    COEF_CONST(0.79056943022564),
-    COEF_CONST(0.79224881607494),
-    COEF_CONST(0.79392105926949),
-    COEF_CONST(0.79558613510249),
-    COEF_CONST(0.79724401933170),
-    COEF_CONST(0.79889468818046),
-    COEF_CONST(0.80053811833858),
-    COEF_CONST(0.80217428696334),
-    COEF_CONST(0.80380317168028),
-    COEF_CONST(0.80542475058405),
-    COEF_CONST(0.80703900223920),
-    COEF_CONST(0.80864590568089),
-    COEF_CONST(0.81024544041560),
-    COEF_CONST(0.81183758642175),
-    COEF_CONST(0.81342232415032),
-    COEF_CONST(0.81499963452540),
-    COEF_CONST(0.81656949894467),
-    COEF_CONST(0.81813189927991),
-    COEF_CONST(0.81968681787738),
-    COEF_CONST(0.82123423755821),
-    COEF_CONST(0.82277414161874),
-    COEF_CONST(0.82430651383076),
-    COEF_CONST(0.82583133844180),
-    COEF_CONST(0.82734860017528),
-    COEF_CONST(0.82885828423070),
-    COEF_CONST(0.83036037628369),
-    COEF_CONST(0.83185486248609),
-    COEF_CONST(0.83334172946597),
-    COEF_CONST(0.83482096432759),
-    COEF_CONST(0.83629255465130),
-    COEF_CONST(0.83775648849344),
-    COEF_CONST(0.83921275438615),
-    COEF_CONST(0.84066134133716),
-    COEF_CONST(0.84210223882952),
-    COEF_CONST(0.84353543682130),
-    COEF_CONST(0.84496092574524),
-    COEF_CONST(0.84637869650833),
-    COEF_CONST(0.84778874049138),
-    COEF_CONST(0.84919104954855),
-    COEF_CONST(0.85058561600677),
-    COEF_CONST(0.85197243266520),
-    COEF_CONST(0.85335149279457),
-    COEF_CONST(0.85472279013653),
-    COEF_CONST(0.85608631890295),
-    COEF_CONST(0.85744207377513),
-    COEF_CONST(0.85879004990298),
-    COEF_CONST(0.86013024290422),
-    COEF_CONST(0.86146264886346),
-    COEF_CONST(0.86278726433124),
-    COEF_CONST(0.86410408632306),
-    COEF_CONST(0.86541311231838),
-    COEF_CONST(0.86671434025950),
-    COEF_CONST(0.86800776855046),
-    COEF_CONST(0.86929339605590),
-    COEF_CONST(0.87057122209981),
-    COEF_CONST(0.87184124646433),
-    COEF_CONST(0.87310346938840),
-    COEF_CONST(0.87435789156650),
-    COEF_CONST(0.87560451414719),
-    COEF_CONST(0.87684333873173),
-    COEF_CONST(0.87807436737261),
-    COEF_CONST(0.87929760257204),
-    COEF_CONST(0.88051304728038),
-    COEF_CONST(0.88172070489456),
-    COEF_CONST(0.88292057925645),
-    COEF_CONST(0.88411267465117),
-    COEF_CONST(0.88529699580537),
-    COEF_CONST(0.88647354788545),
-    COEF_CONST(0.88764233649580),
-    COEF_CONST(0.88880336767692),
-    COEF_CONST(0.88995664790351),
-    COEF_CONST(0.89110218408260),
-    COEF_CONST(0.89223998355154),
-    COEF_CONST(0.89337005407600),
-    COEF_CONST(0.89449240384793),
-    COEF_CONST(0.89560704148345),
-    COEF_CONST(0.89671397602074),
-    COEF_CONST(0.89781321691786),
-    COEF_CONST(0.89890477405053),
-    COEF_CONST(0.89998865770993),
-    COEF_CONST(0.90106487860034),
-    COEF_CONST(0.90213344783689),
-    COEF_CONST(0.90319437694315),
-    COEF_CONST(0.90424767784873),
-    COEF_CONST(0.90529336288690),
-    COEF_CONST(0.90633144479201),
-    COEF_CONST(0.90736193669708),
-    COEF_CONST(0.90838485213119),
-    COEF_CONST(0.90940020501694),
-    COEF_CONST(0.91040800966776),
-    COEF_CONST(0.91140828078533),
-    COEF_CONST(0.91240103345685),
-    COEF_CONST(0.91338628315231),
-    COEF_CONST(0.91436404572173),
-    COEF_CONST(0.91533433739238),
-    COEF_CONST(0.91629717476594),
-    COEF_CONST(0.91725257481564),
-    COEF_CONST(0.91820055488334),
-    COEF_CONST(0.91914113267664),
-    COEF_CONST(0.92007432626589),
-    COEF_CONST(0.92100015408120),
-    COEF_CONST(0.92191863490944),
-    COEF_CONST(0.92282978789113),
-    COEF_CONST(0.92373363251740),
-    COEF_CONST(0.92463018862687),
-    COEF_CONST(0.92551947640245),
-    COEF_CONST(0.92640151636824),
-    COEF_CONST(0.92727632938624),
-    COEF_CONST(0.92814393665320),
-    COEF_CONST(0.92900435969727),
-    COEF_CONST(0.92985762037477),
-    COEF_CONST(0.93070374086684),
-    COEF_CONST(0.93154274367610),
-    COEF_CONST(0.93237465162328),
-    COEF_CONST(0.93319948784382),
-    COEF_CONST(0.93401727578443),
-    COEF_CONST(0.93482803919967),
-    COEF_CONST(0.93563180214841),
-    COEF_CONST(0.93642858899043),
-    COEF_CONST(0.93721842438279),
-    COEF_CONST(0.93800133327637),
-    COEF_CONST(0.93877734091223),
-    COEF_CONST(0.93954647281807),
-    COEF_CONST(0.94030875480458),
-    COEF_CONST(0.94106421296182),
-    COEF_CONST(0.94181287365556),
-    COEF_CONST(0.94255476352362),
-    COEF_CONST(0.94328990947213),
-    COEF_CONST(0.94401833867184),
-    COEF_CONST(0.94474007855439),
-    COEF_CONST(0.94545515680855),
-    COEF_CONST(0.94616360137644),
-    COEF_CONST(0.94686544044975),
-    COEF_CONST(0.94756070246592),
-    COEF_CONST(0.94824941610434),
-    COEF_CONST(0.94893161028248),
-    COEF_CONST(0.94960731415209),
-    COEF_CONST(0.95027655709525),
-    COEF_CONST(0.95093936872056),
-    COEF_CONST(0.95159577885924),
-    COEF_CONST(0.95224581756115),
-    COEF_CONST(0.95288951509097),
-    COEF_CONST(0.95352690192417),
-    COEF_CONST(0.95415800874314),
-    COEF_CONST(0.95478286643320),
-    COEF_CONST(0.95540150607863),
-    COEF_CONST(0.95601395895871),
-    COEF_CONST(0.95662025654373),
-    COEF_CONST(0.95722043049100),
-    COEF_CONST(0.95781451264084),
-    COEF_CONST(0.95840253501260),
-    COEF_CONST(0.95898452980058),
-    COEF_CONST(0.95956052937008),
-    COEF_CONST(0.96013056625336),
-    COEF_CONST(0.96069467314557),
-    COEF_CONST(0.96125288290073),
-    COEF_CONST(0.96180522852773),
-    COEF_CONST(0.96235174318622),
-    COEF_CONST(0.96289246018262),
-    COEF_CONST(0.96342741296604),
-    COEF_CONST(0.96395663512424),
-    COEF_CONST(0.96448016037959),
-    COEF_CONST(0.96499802258499),
-    COEF_CONST(0.96551025571985),
-    COEF_CONST(0.96601689388602),
-    COEF_CONST(0.96651797130376),
-    COEF_CONST(0.96701352230768),
-    COEF_CONST(0.96750358134269),
-    COEF_CONST(0.96798818295998),
-    COEF_CONST(0.96846736181297),
-    COEF_CONST(0.96894115265327),
-    COEF_CONST(0.96940959032667),
-    COEF_CONST(0.96987270976912),
-    COEF_CONST(0.97033054600270),
-    COEF_CONST(0.97078313413161),
-    COEF_CONST(0.97123050933818),
-    COEF_CONST(0.97167270687887),
-    COEF_CONST(0.97210976208030),
-    COEF_CONST(0.97254171033525),
-    COEF_CONST(0.97296858709871),
-    COEF_CONST(0.97339042788392),
-    COEF_CONST(0.97380726825843),
-    COEF_CONST(0.97421914384017),
-    COEF_CONST(0.97462609029350),
-    COEF_CONST(0.97502814332534),
-    COEF_CONST(0.97542533868127),
-    COEF_CONST(0.97581771214160),
-    COEF_CONST(0.97620529951759),
-    COEF_CONST(0.97658813664749),
-    COEF_CONST(0.97696625939282),
-    COEF_CONST(0.97733970363445),
-    COEF_CONST(0.97770850526884),
-    COEF_CONST(0.97807270020427),
-    COEF_CONST(0.97843232435704),
-    COEF_CONST(0.97878741364771),
-    COEF_CONST(0.97913800399743),
-    COEF_CONST(0.97948413132414),
-    COEF_CONST(0.97982583153895),
-    COEF_CONST(0.98016314054243),
-    COEF_CONST(0.98049609422096),
-    COEF_CONST(0.98082472844313),
-    COEF_CONST(0.98114907905608),
-    COEF_CONST(0.98146918188197),
-    COEF_CONST(0.98178507271438),
-    COEF_CONST(0.98209678731477),
-    COEF_CONST(0.98240436140902),
-    COEF_CONST(0.98270783068385),
-    COEF_CONST(0.98300723078342),
-    COEF_CONST(0.98330259730589),
-    COEF_CONST(0.98359396579995),
-    COEF_CONST(0.98388137176152),
-    COEF_CONST(0.98416485063031),
-    COEF_CONST(0.98444443778651),
-    COEF_CONST(0.98472016854752),
-    COEF_CONST(0.98499207816463),
-    COEF_CONST(0.98526020181980),
-    COEF_CONST(0.98552457462240),
-    COEF_CONST(0.98578523160609),
-    COEF_CONST(0.98604220772560),
-    COEF_CONST(0.98629553785362),
-    COEF_CONST(0.98654525677772),
-    COEF_CONST(0.98679139919726),
-    COEF_CONST(0.98703399972035),
-    COEF_CONST(0.98727309286089),
-    COEF_CONST(0.98750871303556),
-    COEF_CONST(0.98774089456089),
-    COEF_CONST(0.98796967165036),
-    COEF_CONST(0.98819507841154),
-    COEF_CONST(0.98841714884323),
-    COEF_CONST(0.98863591683269),
-    COEF_CONST(0.98885141615285),
-    COEF_CONST(0.98906368045957),
-    COEF_CONST(0.98927274328896),
-    COEF_CONST(0.98947863805473),
-    COEF_CONST(0.98968139804554),
-    COEF_CONST(0.98988105642241),
-    COEF_CONST(0.99007764621618),
-    COEF_CONST(0.99027120032501),
-    COEF_CONST(0.99046175151186),
-    COEF_CONST(0.99064933240208),
-    COEF_CONST(0.99083397548099),
-    COEF_CONST(0.99101571309153),
-    COEF_CONST(0.99119457743191),
-    COEF_CONST(0.99137060055337),
-    COEF_CONST(0.99154381435784),
-    COEF_CONST(0.99171425059582),
-    COEF_CONST(0.99188194086414),
-    COEF_CONST(0.99204691660388),
-    COEF_CONST(0.99220920909823),
-    COEF_CONST(0.99236884947045),
-    COEF_CONST(0.99252586868186),
-    COEF_CONST(0.99268029752989),
-    COEF_CONST(0.99283216664606),
-    COEF_CONST(0.99298150649419),
-    COEF_CONST(0.99312834736847),
-    COEF_CONST(0.99327271939167),
-    COEF_CONST(0.99341465251338),
-    COEF_CONST(0.99355417650825),
-    COEF_CONST(0.99369132097430),
-    COEF_CONST(0.99382611533130),
-    COEF_CONST(0.99395858881910),
-    COEF_CONST(0.99408877049612),
-    COEF_CONST(0.99421668923778),
-    COEF_CONST(0.99434237373503),
-    COEF_CONST(0.99446585249289),
-    COEF_CONST(0.99458715382906),
-    COEF_CONST(0.99470630587254),
-    COEF_CONST(0.99482333656229),
-    COEF_CONST(0.99493827364600),
-    COEF_CONST(0.99505114467878),
-    COEF_CONST(0.99516197702200),
-    COEF_CONST(0.99527079784214),
-    COEF_CONST(0.99537763410962),
-    COEF_CONST(0.99548251259777),
-    COEF_CONST(0.99558545988178),
-    COEF_CONST(0.99568650233767),
-    COEF_CONST(0.99578566614138),
-    COEF_CONST(0.99588297726783),
-    COEF_CONST(0.99597846149005),
-    COEF_CONST(0.99607214437834),
-    COEF_CONST(0.99616405129947),
-    COEF_CONST(0.99625420741595),
-    COEF_CONST(0.99634263768527),
-    COEF_CONST(0.99642936685928),
-    COEF_CONST(0.99651441948352),
-    COEF_CONST(0.99659781989663),
-    COEF_CONST(0.99667959222978),
-    COEF_CONST(0.99675976040620),
-    COEF_CONST(0.99683834814063),
-    COEF_CONST(0.99691537893895),
-    COEF_CONST(0.99699087609774),
-    COEF_CONST(0.99706486270391),
-    COEF_CONST(0.99713736163442),
-    COEF_CONST(0.99720839555593),
-    COEF_CONST(0.99727798692461),
-    COEF_CONST(0.99734615798589),
-    COEF_CONST(0.99741293077431),
-    COEF_CONST(0.99747832711337),
-    COEF_CONST(0.99754236861541),
-    COEF_CONST(0.99760507668158),
-    COEF_CONST(0.99766647250181),
-    COEF_CONST(0.99772657705478),
-    COEF_CONST(0.99778541110799),
-    COEF_CONST(0.99784299521785),
-    COEF_CONST(0.99789934972976),
-    COEF_CONST(0.99795449477828),
-    COEF_CONST(0.99800845028730),
-    COEF_CONST(0.99806123597027),
-    COEF_CONST(0.99811287133042),
-    COEF_CONST(0.99816337566108),
-    COEF_CONST(0.99821276804596),
-    COEF_CONST(0.99826106735952),
-    COEF_CONST(0.99830829226732),
-    COEF_CONST(0.99835446122649),
-    COEF_CONST(0.99839959248609),
-    COEF_CONST(0.99844370408765),
-    COEF_CONST(0.99848681386566),
-    COEF_CONST(0.99852893944805),
-    COEF_CONST(0.99857009825685),
-    COEF_CONST(0.99861030750869),
-    COEF_CONST(0.99864958421549),
-    COEF_CONST(0.99868794518504),
-    COEF_CONST(0.99872540702178),
-    COEF_CONST(0.99876198612738),
-    COEF_CONST(0.99879769870160),
-    COEF_CONST(0.99883256074295),
-    COEF_CONST(0.99886658804953),
-    COEF_CONST(0.99889979621983),
-    COEF_CONST(0.99893220065356),
-    COEF_CONST(0.99896381655254),
-    COEF_CONST(0.99899465892154),
-    COEF_CONST(0.99902474256924),
-    COEF_CONST(0.99905408210916),
-    COEF_CONST(0.99908269196056),
-    COEF_CONST(0.99911058634952),
-    COEF_CONST(0.99913777930986),
-    COEF_CONST(0.99916428468421),
-    COEF_CONST(0.99919011612505),
-    COEF_CONST(0.99921528709576),
-    COEF_CONST(0.99923981087174),
-    COEF_CONST(0.99926370054150),
-    COEF_CONST(0.99928696900779),
-    COEF_CONST(0.99930962898876),
-    COEF_CONST(0.99933169301910),
-    COEF_CONST(0.99935317345126),
-    COEF_CONST(0.99937408245662),
-    COEF_CONST(0.99939443202674),
-    COEF_CONST(0.99941423397457),
-    COEF_CONST(0.99943349993572),
-    COEF_CONST(0.99945224136972),
-    COEF_CONST(0.99947046956130),
-    COEF_CONST(0.99948819562171),
-    COEF_CONST(0.99950543049000),
-    COEF_CONST(0.99952218493439),
-    COEF_CONST(0.99953846955355),
-    COEF_CONST(0.99955429477803),
-    COEF_CONST(0.99956967087154),
-    COEF_CONST(0.99958460793242),
-    COEF_CONST(0.99959911589494),
-    COEF_CONST(0.99961320453077),
-    COEF_CONST(0.99962688345035),
-    COEF_CONST(0.99964016210433),
-    COEF_CONST(0.99965304978499),
-    COEF_CONST(0.99966555562769),
-    COEF_CONST(0.99967768861231),
-    COEF_CONST(0.99968945756473),
-    COEF_CONST(0.99970087115825),
-    COEF_CONST(0.99971193791510),
-    COEF_CONST(0.99972266620792),
-    COEF_CONST(0.99973306426121),
-    COEF_CONST(0.99974314015288),
-    COEF_CONST(0.99975290181568),
-    COEF_CONST(0.99976235703876),
-    COEF_CONST(0.99977151346914),
-    COEF_CONST(0.99978037861326),
-    COEF_CONST(0.99978895983845),
-    COEF_CONST(0.99979726437448),
-    COEF_CONST(0.99980529931507),
-    COEF_CONST(0.99981307161943),
-    COEF_CONST(0.99982058811377),
-    COEF_CONST(0.99982785549283),
-    COEF_CONST(0.99983488032144),
-    COEF_CONST(0.99984166903600),
-    COEF_CONST(0.99984822794606),
-    COEF_CONST(0.99985456323584),
-    COEF_CONST(0.99986068096572),
-    COEF_CONST(0.99986658707386),
-    COEF_CONST(0.99987228737764),
-    COEF_CONST(0.99987778757524),
-    COEF_CONST(0.99988309324717),
-    COEF_CONST(0.99988820985777),
-    COEF_CONST(0.99989314275675),
-    COEF_CONST(0.99989789718072),
-    COEF_CONST(0.99990247825468),
-    COEF_CONST(0.99990689099357),
-    COEF_CONST(0.99991114030376),
-    COEF_CONST(0.99991523098456),
-    COEF_CONST(0.99991916772971),
-    COEF_CONST(0.99992295512891),
-    COEF_CONST(0.99992659766930),
-    COEF_CONST(0.99993009973692),
-    COEF_CONST(0.99993346561824),
-    COEF_CONST(0.99993669950161),
-    COEF_CONST(0.99993980547870),
-    COEF_CONST(0.99994278754604),
-    COEF_CONST(0.99994564960642),
-    COEF_CONST(0.99994839547033),
-    COEF_CONST(0.99995102885747),
-    COEF_CONST(0.99995355339809),
-    COEF_CONST(0.99995597263451),
-    COEF_CONST(0.99995829002249),
-    COEF_CONST(0.99996050893264),
-    COEF_CONST(0.99996263265183),
-    COEF_CONST(0.99996466438460),
-    COEF_CONST(0.99996660725452),
-    COEF_CONST(0.99996846430558),
-    COEF_CONST(0.99997023850356),
-    COEF_CONST(0.99997193273736),
-    COEF_CONST(0.99997354982037),
-    COEF_CONST(0.99997509249183),
-    COEF_CONST(0.99997656341810),
-    COEF_CONST(0.99997796519400),
-    COEF_CONST(0.99997930034415),
-    COEF_CONST(0.99998057132421),
-    COEF_CONST(0.99998178052220),
-    COEF_CONST(0.99998293025975),
-    COEF_CONST(0.99998402279338),
-    COEF_CONST(0.99998506031574),
-    COEF_CONST(0.99998604495686),
-    COEF_CONST(0.99998697878536),
-    COEF_CONST(0.99998786380966),
-    COEF_CONST(0.99998870197921),
-    COEF_CONST(0.99998949518567),
-    COEF_CONST(0.99999024526408),
-    COEF_CONST(0.99999095399401),
-    COEF_CONST(0.99999162310077),
-    COEF_CONST(0.99999225425649),
-    COEF_CONST(0.99999284908128),
-    COEF_CONST(0.99999340914435),
-    COEF_CONST(0.99999393596510),
-    COEF_CONST(0.99999443101421),
-    COEF_CONST(0.99999489571473),
-    COEF_CONST(0.99999533144314),
-    COEF_CONST(0.99999573953040),
-    COEF_CONST(0.99999612126300),
-    COEF_CONST(0.99999647788395),
-    COEF_CONST(0.99999681059383),
-    COEF_CONST(0.99999712055178),
-    COEF_CONST(0.99999740887647),
-    COEF_CONST(0.99999767664709),
-    COEF_CONST(0.99999792490431),
-    COEF_CONST(0.99999815465123),
-    COEF_CONST(0.99999836685427),
-    COEF_CONST(0.99999856244415),
-    COEF_CONST(0.99999874231676),
-    COEF_CONST(0.99999890733405),
-    COEF_CONST(0.99999905832493),
-    COEF_CONST(0.99999919608613),
-    COEF_CONST(0.99999932138304),
-    COEF_CONST(0.99999943495056),
-    COEF_CONST(0.99999953749392),
-    COEF_CONST(0.99999962968950),
-    COEF_CONST(0.99999971218563),
-    COEF_CONST(0.99999978560337),
-    COEF_CONST(0.99999985053727),
-    COEF_CONST(0.99999990755616),
-    COEF_CONST(0.99999995720387)
+    FRAC_CONST(0.00029256153896361),
+    FRAC_CONST(0.00042998567353047),
+    FRAC_CONST(0.00054674074589540),
+    FRAC_CONST(0.00065482304299792),
+    FRAC_CONST(0.00075870195068747),
+    FRAC_CONST(0.00086059331713336),
+    FRAC_CONST(0.00096177541439010),
+    FRAC_CONST(0.0010630609410878),
+    FRAC_CONST(0.0011650036308132),
+    FRAC_CONST(0.0012680012194148),
+    FRAC_CONST(0.0013723517232956),
+    FRAC_CONST(0.0014782864109136),
+    FRAC_CONST(0.0015859901976719),
+    FRAC_CONST(0.0016956148252373),
+    FRAC_CONST(0.0018072876903517),
+    FRAC_CONST(0.0019211179405514),
+    FRAC_CONST(0.0020372007924215),
+    FRAC_CONST(0.0021556206591754),
+    FRAC_CONST(0.0022764534599614),
+    FRAC_CONST(0.0023997683540995),
+    FRAC_CONST(0.0025256290631156),
+    FRAC_CONST(0.0026540948920831),
+    FRAC_CONST(0.0027852215281403),
+    FRAC_CONST(0.0029190616715331),
+    FRAC_CONST(0.0030556655443223),
+    FRAC_CONST(0.0031950812943391),
+    FRAC_CONST(0.0033373553240392),
+    FRAC_CONST(0.0034825325586930),
+    FRAC_CONST(0.0036306566699199),
+    FRAC_CONST(0.0037817702604646),
+    FRAC_CONST(0.0039359150179719),
+    FRAC_CONST(0.0040931318437260),
+    FRAC_CONST(0.0042534609610026),
+    FRAC_CONST(0.0044169420066964),
+    FRAC_CONST(0.0045836141091341),
+    FRAC_CONST(0.0047535159544086),
+    FRAC_CONST(0.0049266858431214),
+    FRAC_CONST(0.0051031617390698),
+    FRAC_CONST(0.0052829813111335),
+    FRAC_CONST(0.0054661819693975),
+    FRAC_CONST(0.0056528008963682),
+    FRAC_CONST(0.0058428750739943),
+    FRAC_CONST(0.0060364413070882),
+    FRAC_CONST(0.0062335362436492),
+    FRAC_CONST(0.0064341963925079),
+    FRAC_CONST(0.0066384581386503),
+    FRAC_CONST(0.0068463577565218),
+    FRAC_CONST(0.0070579314215715),
+    FRAC_CONST(0.0072732152202559),
+    FRAC_CONST(0.0074922451586909),
+    FRAC_CONST(0.0077150571701162),
+    FRAC_CONST(0.0079416871213115),
+    FRAC_CONST(0.0081721708180857),
+    FRAC_CONST(0.0084065440099458),
+    FRAC_CONST(0.0086448423940363),
+    FRAC_CONST(0.0088871016184291),
+    FRAC_CONST(0.0091333572848345),
+    FRAC_CONST(0.0093836449507939),
+    FRAC_CONST(0.0096380001314086),
+    FRAC_CONST(0.0098964583006517),
+    FRAC_CONST(0.010159054892306),
+    FRAC_CONST(0.010425825300561),
+    FRAC_CONST(0.010696804880310),
+    FRAC_CONST(0.010972028947167),
+    FRAC_CONST(0.011251532777236),
+    FRAC_CONST(0.011535351606646),
+    FRAC_CONST(0.011823520630897),
+    FRAC_CONST(0.012116075003993),
+    FRAC_CONST(0.012413049837429),
+    FRAC_CONST(0.012714480198999),
+    FRAC_CONST(0.013020401111478),
+    FRAC_CONST(0.013330847551161),
+    FRAC_CONST(0.013645854446288),
+    FRAC_CONST(0.013965456675352),
+    FRAC_CONST(0.014289689065314),
+    FRAC_CONST(0.014618586389712),
+    FRAC_CONST(0.014952183366697),
+    FRAC_CONST(0.015290514656976),
+    FRAC_CONST(0.015633614861688),
+    FRAC_CONST(0.015981518520214),
+    FRAC_CONST(0.016334260107915),
+    FRAC_CONST(0.016691874033817),
+    FRAC_CONST(0.017054394638241),
+    FRAC_CONST(0.017421856190380),
+    FRAC_CONST(0.017794292885832),
+    FRAC_CONST(0.018171738844085),
+    FRAC_CONST(0.018554228105962),
+    FRAC_CONST(0.018941794631032),
+    FRAC_CONST(0.019334472294980),
+    FRAC_CONST(0.019732294886947),
+    FRAC_CONST(0.020135296106839),
+    FRAC_CONST(0.020543509562604),
+    FRAC_CONST(0.020956968767488),
+    FRAC_CONST(0.021375707137257),
+    FRAC_CONST(0.021799757987407),
+    FRAC_CONST(0.022229154530343),
+    FRAC_CONST(0.022663929872540),
+    FRAC_CONST(0.023104117011689),
+    FRAC_CONST(0.023549748833816),
+    FRAC_CONST(0.024000858110398),
+    FRAC_CONST(0.024457477495451),
+    FRAC_CONST(0.024919639522613),
+    FRAC_CONST(0.025387376602207),
+    FRAC_CONST(0.025860721018295),
+    FRAC_CONST(0.026339704925726),
+    FRAC_CONST(0.026824360347160),
+    FRAC_CONST(0.027314719170100),
+    FRAC_CONST(0.027810813143900),
+    FRAC_CONST(0.028312673876775),
+    FRAC_CONST(0.028820332832801),
+    FRAC_CONST(0.029333821328905),
+    FRAC_CONST(0.029853170531859),
+    FRAC_CONST(0.030378411455255),
+    FRAC_CONST(0.030909574956490),
+    FRAC_CONST(0.031446691733739),
+    FRAC_CONST(0.031989792322926),
+    FRAC_CONST(0.032538907094693),
+    FRAC_CONST(0.033094066251369),
+    FRAC_CONST(0.033655299823935),
+    FRAC_CONST(0.034222637668991),
+    FRAC_CONST(0.034796109465717),
+    FRAC_CONST(0.035375744712844),
+    FRAC_CONST(0.035961572725616),
+    FRAC_CONST(0.036553622632758),
+    FRAC_CONST(0.037151923373446),
+    FRAC_CONST(0.037756503694277),
+    FRAC_CONST(0.038367392146243),
+    FRAC_CONST(0.038984617081711),
+    FRAC_CONST(0.039608206651398),
+    FRAC_CONST(0.040238188801359),
+    FRAC_CONST(0.040874591269976),
+    FRAC_CONST(0.041517441584950),
+    FRAC_CONST(0.042166767060301),
+    FRAC_CONST(0.042822594793376),
+    FRAC_CONST(0.043484951661852),
+    FRAC_CONST(0.044153864320760),
+    FRAC_CONST(0.044829359199509),
+    FRAC_CONST(0.045511462498913),
+    FRAC_CONST(0.046200200188234),
+    FRAC_CONST(0.046895598002228),
+    FRAC_CONST(0.047597681438201),
+    FRAC_CONST(0.048306475753074),
+    FRAC_CONST(0.049022005960455),
+    FRAC_CONST(0.049744296827725),
+    FRAC_CONST(0.050473372873129),
+    FRAC_CONST(0.051209258362879),
+    FRAC_CONST(0.051951977308273),
+    FRAC_CONST(0.052701553462813),
+    FRAC_CONST(0.053458010319350),
+    FRAC_CONST(0.054221371107223),
+    FRAC_CONST(0.054991658789428),
+    FRAC_CONST(0.055768896059787),
+    FRAC_CONST(0.056553105340134),
+    FRAC_CONST(0.057344308777513),
+    FRAC_CONST(0.058142528241393),
+    FRAC_CONST(0.058947785320893),
+    FRAC_CONST(0.059760101322019),
+    FRAC_CONST(0.060579497264926),
+    FRAC_CONST(0.061405993881180),
+    FRAC_CONST(0.062239611611049),
+    FRAC_CONST(0.063080370600799),
+    FRAC_CONST(0.063928290700012),
+    FRAC_CONST(0.064783391458919),
+    FRAC_CONST(0.065645692125747),
+    FRAC_CONST(0.066515211644086),
+    FRAC_CONST(0.067391968650269),
+    FRAC_CONST(0.068275981470777),
+    FRAC_CONST(0.069167268119652),
+    FRAC_CONST(0.070065846295935),
+    FRAC_CONST(0.070971733381121),
+    FRAC_CONST(0.071884946436630),
+    FRAC_CONST(0.072805502201299),
+    FRAC_CONST(0.073733417088896),
+    FRAC_CONST(0.074668707185649),
+    FRAC_CONST(0.075611388247794),
+    FRAC_CONST(0.076561475699152),
+    FRAC_CONST(0.077518984628715),
+    FRAC_CONST(0.078483929788261),
+    FRAC_CONST(0.079456325589986),
+    FRAC_CONST(0.080436186104162),
+    FRAC_CONST(0.081423525056808),
+    FRAC_CONST(0.082418355827392),
+    FRAC_CONST(0.083420691446553),
+    FRAC_CONST(0.084430544593841),
+    FRAC_CONST(0.085447927595483),
+    FRAC_CONST(0.086472852422178),
+    FRAC_CONST(0.087505330686900),
+    FRAC_CONST(0.088545373642744),
+    FRAC_CONST(0.089592992180780),
+    FRAC_CONST(0.090648196827937),
+    FRAC_CONST(0.091710997744919),
+    FRAC_CONST(0.092781404724131),
+    FRAC_CONST(0.093859427187640),
+    FRAC_CONST(0.094945074185163),
+    FRAC_CONST(0.096038354392069),
+    FRAC_CONST(0.097139276107423),
+    FRAC_CONST(0.098247847252041),
+    FRAC_CONST(0.099364075366580),
+    FRAC_CONST(0.10048796760965),
+    FRAC_CONST(0.10161953075597),
+    FRAC_CONST(0.10275877119451),
+    FRAC_CONST(0.10390569492671),
+    FRAC_CONST(0.10506030756469),
+    FRAC_CONST(0.10622261432949),
+    FRAC_CONST(0.10739262004941),
+    FRAC_CONST(0.10857032915821),
+    FRAC_CONST(0.10975574569357),
+    FRAC_CONST(0.11094887329534),
+    FRAC_CONST(0.11214971520402),
+    FRAC_CONST(0.11335827425914),
+    FRAC_CONST(0.11457455289772),
+    FRAC_CONST(0.11579855315274),
+    FRAC_CONST(0.11703027665170),
+    FRAC_CONST(0.11826972461510),
+    FRAC_CONST(0.11951689785504),
+    FRAC_CONST(0.12077179677383),
+    FRAC_CONST(0.12203442136263),
+    FRAC_CONST(0.12330477120008),
+    FRAC_CONST(0.12458284545102),
+    FRAC_CONST(0.12586864286523),
+    FRAC_CONST(0.12716216177615),
+    FRAC_CONST(0.12846340009971),
+    FRAC_CONST(0.12977235533312),
+    FRAC_CONST(0.13108902455375),
+    FRAC_CONST(0.13241340441801),
+    FRAC_CONST(0.13374549116025),
+    FRAC_CONST(0.13508528059173),
+    FRAC_CONST(0.13643276809961),
+    FRAC_CONST(0.13778794864595),
+    FRAC_CONST(0.13915081676677),
+    FRAC_CONST(0.14052136657114),
+    FRAC_CONST(0.14189959174027),
+    FRAC_CONST(0.14328548552671),
+    FRAC_CONST(0.14467904075349),
+    FRAC_CONST(0.14608024981336),
+    FRAC_CONST(0.14748910466804),
+    FRAC_CONST(0.14890559684750),
+    FRAC_CONST(0.15032971744929),
+    FRAC_CONST(0.15176145713790),
+    FRAC_CONST(0.15320080614414),
+    FRAC_CONST(0.15464775426459),
+    FRAC_CONST(0.15610229086100),
+    FRAC_CONST(0.15756440485987),
+    FRAC_CONST(0.15903408475193),
+    FRAC_CONST(0.16051131859170),
+    FRAC_CONST(0.16199609399712),
+    FRAC_CONST(0.16348839814917),
+    FRAC_CONST(0.16498821779156),
+    FRAC_CONST(0.16649553923042),
+    FRAC_CONST(0.16801034833404),
+    FRAC_CONST(0.16953263053270),
+    FRAC_CONST(0.17106237081842),
+    FRAC_CONST(0.17259955374484),
+    FRAC_CONST(0.17414416342714),
+    FRAC_CONST(0.17569618354193),
+    FRAC_CONST(0.17725559732720),
+    FRAC_CONST(0.17882238758238),
+    FRAC_CONST(0.18039653666830),
+    FRAC_CONST(0.18197802650733),
+    FRAC_CONST(0.18356683858343),
+    FRAC_CONST(0.18516295394233),
+    FRAC_CONST(0.18676635319174),
+    FRAC_CONST(0.18837701650148),
+    FRAC_CONST(0.18999492360384),
+    FRAC_CONST(0.19162005379380),
+    FRAC_CONST(0.19325238592940),
+    FRAC_CONST(0.19489189843209),
+    FRAC_CONST(0.19653856928714),
+    FRAC_CONST(0.19819237604409),
+    FRAC_CONST(0.19985329581721),
+    FRAC_CONST(0.20152130528605),
+    FRAC_CONST(0.20319638069594),
+    FRAC_CONST(0.20487849785865),
+    FRAC_CONST(0.20656763215298),
+    FRAC_CONST(0.20826375852540),
+    FRAC_CONST(0.20996685149083),
+    FRAC_CONST(0.21167688513330),
+    FRAC_CONST(0.21339383310678),
+    FRAC_CONST(0.21511766863598),
+    FRAC_CONST(0.21684836451719),
+    FRAC_CONST(0.21858589311922),
+    FRAC_CONST(0.22033022638425),
+    FRAC_CONST(0.22208133582887),
+    FRAC_CONST(0.22383919254503),
+    FRAC_CONST(0.22560376720111),
+    FRAC_CONST(0.22737503004300),
+    FRAC_CONST(0.22915295089517),
+    FRAC_CONST(0.23093749916189),
+    FRAC_CONST(0.23272864382838),
+    FRAC_CONST(0.23452635346201),
+    FRAC_CONST(0.23633059621364),
+    FRAC_CONST(0.23814133981883),
+    FRAC_CONST(0.23995855159925),
+    FRAC_CONST(0.24178219846403),
+    FRAC_CONST(0.24361224691114),
+    FRAC_CONST(0.24544866302890),
+    FRAC_CONST(0.24729141249740),
+    FRAC_CONST(0.24914046059007),
+    FRAC_CONST(0.25099577217522),
+    FRAC_CONST(0.25285731171763),
+    FRAC_CONST(0.25472504328019),
+    FRAC_CONST(0.25659893052556),
+    FRAC_CONST(0.25847893671788),
+    FRAC_CONST(0.26036502472451),
+    FRAC_CONST(0.26225715701781),
+    FRAC_CONST(0.26415529567692),
+    FRAC_CONST(0.26605940238966),
+    FRAC_CONST(0.26796943845439),
+    FRAC_CONST(0.26988536478190),
+    FRAC_CONST(0.27180714189742),
+    FRAC_CONST(0.27373472994256),
+    FRAC_CONST(0.27566808867736),
+    FRAC_CONST(0.27760717748238),
+    FRAC_CONST(0.27955195536071),
+    FRAC_CONST(0.28150238094021),
+    FRAC_CONST(0.28345841247557),
+    FRAC_CONST(0.28542000785059),
+    FRAC_CONST(0.28738712458038),
+    FRAC_CONST(0.28935971981364),
+    FRAC_CONST(0.29133775033492),
+    FRAC_CONST(0.29332117256704),
+    FRAC_CONST(0.29530994257338),
+    FRAC_CONST(0.29730401606034),
+    FRAC_CONST(0.29930334837974),
+    FRAC_CONST(0.30130789453132),
+    FRAC_CONST(0.30331760916521),
+    FRAC_CONST(0.30533244658452),
+    FRAC_CONST(0.30735236074785),
+    FRAC_CONST(0.30937730527195),
+    FRAC_CONST(0.31140723343430),
+    FRAC_CONST(0.31344209817583),
+    FRAC_CONST(0.31548185210356),
+    FRAC_CONST(0.31752644749341),
+    FRAC_CONST(0.31957583629288),
+    FRAC_CONST(0.32162997012390),
+    FRAC_CONST(0.32368880028565),
+    FRAC_CONST(0.32575227775738),
+    FRAC_CONST(0.32782035320134),
+    FRAC_CONST(0.32989297696566),
+    FRAC_CONST(0.33197009908736),
+    FRAC_CONST(0.33405166929523),
+    FRAC_CONST(0.33613763701295),
+    FRAC_CONST(0.33822795136203),
+    FRAC_CONST(0.34032256116495),
+    FRAC_CONST(0.34242141494820),
+    FRAC_CONST(0.34452446094547),
+    FRAC_CONST(0.34663164710072),
+    FRAC_CONST(0.34874292107143),
+    FRAC_CONST(0.35085823023181),
+    FRAC_CONST(0.35297752167598),
+    FRAC_CONST(0.35510074222129),
+    FRAC_CONST(0.35722783841160),
+    FRAC_CONST(0.35935875652060),
+    FRAC_CONST(0.36149344255514),
+    FRAC_CONST(0.36363184225864),
+    FRAC_CONST(0.36577390111444),
+    FRAC_CONST(0.36791956434930),
+    FRAC_CONST(0.37006877693676),
+    FRAC_CONST(0.37222148360070),
+    FRAC_CONST(0.37437762881878),
+    FRAC_CONST(0.37653715682603),
+    FRAC_CONST(0.37870001161834),
+    FRAC_CONST(0.38086613695607),
+    FRAC_CONST(0.38303547636766),
+    FRAC_CONST(0.38520797315322),
+    FRAC_CONST(0.38738357038821),
+    FRAC_CONST(0.38956221092708),
+    FRAC_CONST(0.39174383740701),
+    FRAC_CONST(0.39392839225157),
+    FRAC_CONST(0.39611581767449),
+    FRAC_CONST(0.39830605568342),
+    FRAC_CONST(0.40049904808370),
+    FRAC_CONST(0.40269473648218),
+    FRAC_CONST(0.40489306229101),
+    FRAC_CONST(0.40709396673153),
+    FRAC_CONST(0.40929739083810),
+    FRAC_CONST(0.41150327546197),
+    FRAC_CONST(0.41371156127524),
+    FRAC_CONST(0.41592218877472),
+    FRAC_CONST(0.41813509828594),
+    FRAC_CONST(0.42035022996702),
+    FRAC_CONST(0.42256752381274),
+    FRAC_CONST(0.42478691965848),
+    FRAC_CONST(0.42700835718423),
+    FRAC_CONST(0.42923177591866),
+    FRAC_CONST(0.43145711524314),
+    FRAC_CONST(0.43368431439580),
+    FRAC_CONST(0.43591331247564),
+    FRAC_CONST(0.43814404844658),
+    FRAC_CONST(0.44037646114161),
+    FRAC_CONST(0.44261048926688),
+    FRAC_CONST(0.44484607140589),
+    FRAC_CONST(0.44708314602359),
+    FRAC_CONST(0.44932165147057),
+    FRAC_CONST(0.45156152598727),
+    FRAC_CONST(0.45380270770813),
+    FRAC_CONST(0.45604513466581),
+    FRAC_CONST(0.45828874479543),
+    FRAC_CONST(0.46053347593880),
+    FRAC_CONST(0.46277926584861),
+    FRAC_CONST(0.46502605219277),
+    FRAC_CONST(0.46727377255861),
+    FRAC_CONST(0.46952236445718),
+    FRAC_CONST(0.47177176532752),
+    FRAC_CONST(0.47402191254100),
+    FRAC_CONST(0.47627274340557),
+    FRAC_CONST(0.47852419517009),
+    FRAC_CONST(0.48077620502869),
+    FRAC_CONST(0.48302871012505),
+    FRAC_CONST(0.48528164755674),
+    FRAC_CONST(0.48753495437962),
+    FRAC_CONST(0.48978856761212),
+    FRAC_CONST(0.49204242423966),
+    FRAC_CONST(0.49429646121898),
+    FRAC_CONST(0.49655061548250),
+    FRAC_CONST(0.49880482394273),
+    FRAC_CONST(0.50105902349665),
+    FRAC_CONST(0.50331315103004),
+    FRAC_CONST(0.50556714342194),
+    FRAC_CONST(0.50782093754901),
+    FRAC_CONST(0.51007447028990),
+    FRAC_CONST(0.51232767852971),
+    FRAC_CONST(0.51458049916433),
+    FRAC_CONST(0.51683286910489),
+    FRAC_CONST(0.51908472528213),
+    FRAC_CONST(0.52133600465083),
+    FRAC_CONST(0.52358664419420),
+    FRAC_CONST(0.52583658092832),
+    FRAC_CONST(0.52808575190648),
+    FRAC_CONST(0.53033409422367),
+    FRAC_CONST(0.53258154502092),
+    FRAC_CONST(0.53482804148974),
+    FRAC_CONST(0.53707352087652),
+    FRAC_CONST(0.53931792048690),
+    FRAC_CONST(0.54156117769021),
+    FRAC_CONST(0.54380322992385),
+    FRAC_CONST(0.54604401469766),
+    FRAC_CONST(0.54828346959835),
+    FRAC_CONST(0.55052153229384),
+    FRAC_CONST(0.55275814053768),
+    FRAC_CONST(0.55499323217338),
+    FRAC_CONST(0.55722674513883),
+    FRAC_CONST(0.55945861747062),
+    FRAC_CONST(0.56168878730842),
+    FRAC_CONST(0.56391719289930),
+    FRAC_CONST(0.56614377260214),
+    FRAC_CONST(0.56836846489188),
+    FRAC_CONST(0.57059120836390),
+    FRAC_CONST(0.57281194173835),
+    FRAC_CONST(0.57503060386439),
+    FRAC_CONST(0.57724713372458),
+    FRAC_CONST(0.57946147043912),
+    FRAC_CONST(0.58167355327012),
+    FRAC_CONST(0.58388332162591),
+    FRAC_CONST(0.58609071506528),
+    FRAC_CONST(0.58829567330173),
+    FRAC_CONST(0.59049813620770),
+    FRAC_CONST(0.59269804381879),
+    FRAC_CONST(0.59489533633802),
+    FRAC_CONST(0.59708995413996),
+    FRAC_CONST(0.59928183777495),
+    FRAC_CONST(0.60147092797329),
+    FRAC_CONST(0.60365716564937),
+    FRAC_CONST(0.60584049190582),
+    FRAC_CONST(0.60802084803764),
+    FRAC_CONST(0.61019817553632),
+    FRAC_CONST(0.61237241609393),
+    FRAC_CONST(0.61454351160718),
+    FRAC_CONST(0.61671140418155),
+    FRAC_CONST(0.61887603613527),
+    FRAC_CONST(0.62103735000336),
+    FRAC_CONST(0.62319528854167),
+    FRAC_CONST(0.62534979473088),
+    FRAC_CONST(0.62750081178042),
+    FRAC_CONST(0.62964828313250),
+    FRAC_CONST(0.63179215246597),
+    FRAC_CONST(0.63393236370030),
+    FRAC_CONST(0.63606886099946),
+    FRAC_CONST(0.63820158877577),
+    FRAC_CONST(0.64033049169379),
+    FRAC_CONST(0.64245551467413),
+    FRAC_CONST(0.64457660289729),
+    FRAC_CONST(0.64669370180740),
+    FRAC_CONST(0.64880675711607),
+    FRAC_CONST(0.65091571480603),
+    FRAC_CONST(0.65302052113494),
+    FRAC_CONST(0.65512112263906),
+    FRAC_CONST(0.65721746613689),
+    FRAC_CONST(0.65930949873289),
+    FRAC_CONST(0.66139716782102),
+    FRAC_CONST(0.66348042108842),
+    FRAC_CONST(0.66555920651892),
+    FRAC_CONST(0.66763347239664),
+    FRAC_CONST(0.66970316730947),
+    FRAC_CONST(0.67176824015260),
+    FRAC_CONST(0.67382864013196),
+    FRAC_CONST(0.67588431676768),
+    FRAC_CONST(0.67793521989751),
+    FRAC_CONST(0.67998129968017),
+    FRAC_CONST(0.68202250659876),
+    FRAC_CONST(0.68405879146403),
+    FRAC_CONST(0.68609010541774),
+    FRAC_CONST(0.68811639993588),
+    FRAC_CONST(0.69013762683195),
+    FRAC_CONST(0.69215373826012),
+    FRAC_CONST(0.69416468671849),
+    FRAC_CONST(0.69617042505214),
+    FRAC_CONST(0.69817090645634),
+    FRAC_CONST(0.70016608447958),
+    FRAC_CONST(0.70215591302664),
+    FRAC_CONST(0.70414034636163),
+    FRAC_CONST(0.70611933911096),
+    FRAC_CONST(0.70809284626630),
+    FRAC_CONST(0.71006082318751),
+    FRAC_CONST(0.71202322560554),
+    FRAC_CONST(0.71398000962530),
+    FRAC_CONST(0.71593113172842),
+    FRAC_CONST(0.71787654877613),
+    FRAC_CONST(0.71981621801195),
+    FRAC_CONST(0.72175009706445),
+    FRAC_CONST(0.72367814394990),
+    FRAC_CONST(0.72560031707496),
+    FRAC_CONST(0.72751657523927),
+    FRAC_CONST(0.72942687763803),
+    FRAC_CONST(0.73133118386457),
+    FRAC_CONST(0.73322945391280),
+    FRAC_CONST(0.73512164817975),
+    FRAC_CONST(0.73700772746796),
+    FRAC_CONST(0.73888765298787),
+    FRAC_CONST(0.74076138636020),
+    FRAC_CONST(0.74262888961827),
+    FRAC_CONST(0.74449012521027),
+    FRAC_CONST(0.74634505600152),
+    FRAC_CONST(0.74819364527663),
+    FRAC_CONST(0.75003585674175),
+    FRAC_CONST(0.75187165452661),
+    FRAC_CONST(0.75370100318668),
+    FRAC_CONST(0.75552386770515),
+    FRAC_CONST(0.75734021349500),
+    FRAC_CONST(0.75915000640095),
+    FRAC_CONST(0.76095321270137),
+    FRAC_CONST(0.76274979911019),
+    FRAC_CONST(0.76453973277875),
+    FRAC_CONST(0.76632298129757),
+    FRAC_CONST(0.76809951269819),
+    FRAC_CONST(0.76986929545481),
+    FRAC_CONST(0.77163229848604),
+    FRAC_CONST(0.77338849115651),
+    FRAC_CONST(0.77513784327849),
+    FRAC_CONST(0.77688032511340),
+    FRAC_CONST(0.77861590737340),
+    FRAC_CONST(0.78034456122283),
+    FRAC_CONST(0.78206625827961),
+    FRAC_CONST(0.78378097061667),
+    FRAC_CONST(0.78548867076330),
+    FRAC_CONST(0.78718933170643),
+    FRAC_CONST(0.78888292689189),
+    FRAC_CONST(0.79056943022564),
+    FRAC_CONST(0.79224881607494),
+    FRAC_CONST(0.79392105926949),
+    FRAC_CONST(0.79558613510249),
+    FRAC_CONST(0.79724401933170),
+    FRAC_CONST(0.79889468818046),
+    FRAC_CONST(0.80053811833858),
+    FRAC_CONST(0.80217428696334),
+    FRAC_CONST(0.80380317168028),
+    FRAC_CONST(0.80542475058405),
+    FRAC_CONST(0.80703900223920),
+    FRAC_CONST(0.80864590568089),
+    FRAC_CONST(0.81024544041560),
+    FRAC_CONST(0.81183758642175),
+    FRAC_CONST(0.81342232415032),
+    FRAC_CONST(0.81499963452540),
+    FRAC_CONST(0.81656949894467),
+    FRAC_CONST(0.81813189927991),
+    FRAC_CONST(0.81968681787738),
+    FRAC_CONST(0.82123423755821),
+    FRAC_CONST(0.82277414161874),
+    FRAC_CONST(0.82430651383076),
+    FRAC_CONST(0.82583133844180),
+    FRAC_CONST(0.82734860017528),
+    FRAC_CONST(0.82885828423070),
+    FRAC_CONST(0.83036037628369),
+    FRAC_CONST(0.83185486248609),
+    FRAC_CONST(0.83334172946597),
+    FRAC_CONST(0.83482096432759),
+    FRAC_CONST(0.83629255465130),
+    FRAC_CONST(0.83775648849344),
+    FRAC_CONST(0.83921275438615),
+    FRAC_CONST(0.84066134133716),
+    FRAC_CONST(0.84210223882952),
+    FRAC_CONST(0.84353543682130),
+    FRAC_CONST(0.84496092574524),
+    FRAC_CONST(0.84637869650833),
+    FRAC_CONST(0.84778874049138),
+    FRAC_CONST(0.84919104954855),
+    FRAC_CONST(0.85058561600677),
+    FRAC_CONST(0.85197243266520),
+    FRAC_CONST(0.85335149279457),
+    FRAC_CONST(0.85472279013653),
+    FRAC_CONST(0.85608631890295),
+    FRAC_CONST(0.85744207377513),
+    FRAC_CONST(0.85879004990298),
+    FRAC_CONST(0.86013024290422),
+    FRAC_CONST(0.86146264886346),
+    FRAC_CONST(0.86278726433124),
+    FRAC_CONST(0.86410408632306),
+    FRAC_CONST(0.86541311231838),
+    FRAC_CONST(0.86671434025950),
+    FRAC_CONST(0.86800776855046),
+    FRAC_CONST(0.86929339605590),
+    FRAC_CONST(0.87057122209981),
+    FRAC_CONST(0.87184124646433),
+    FRAC_CONST(0.87310346938840),
+    FRAC_CONST(0.87435789156650),
+    FRAC_CONST(0.87560451414719),
+    FRAC_CONST(0.87684333873173),
+    FRAC_CONST(0.87807436737261),
+    FRAC_CONST(0.87929760257204),
+    FRAC_CONST(0.88051304728038),
+    FRAC_CONST(0.88172070489456),
+    FRAC_CONST(0.88292057925645),
+    FRAC_CONST(0.88411267465117),
+    FRAC_CONST(0.88529699580537),
+    FRAC_CONST(0.88647354788545),
+    FRAC_CONST(0.88764233649580),
+    FRAC_CONST(0.88880336767692),
+    FRAC_CONST(0.88995664790351),
+    FRAC_CONST(0.89110218408260),
+    FRAC_CONST(0.89223998355154),
+    FRAC_CONST(0.89337005407600),
+    FRAC_CONST(0.89449240384793),
+    FRAC_CONST(0.89560704148345),
+    FRAC_CONST(0.89671397602074),
+    FRAC_CONST(0.89781321691786),
+    FRAC_CONST(0.89890477405053),
+    FRAC_CONST(0.89998865770993),
+    FRAC_CONST(0.90106487860034),
+    FRAC_CONST(0.90213344783689),
+    FRAC_CONST(0.90319437694315),
+    FRAC_CONST(0.90424767784873),
+    FRAC_CONST(0.90529336288690),
+    FRAC_CONST(0.90633144479201),
+    FRAC_CONST(0.90736193669708),
+    FRAC_CONST(0.90838485213119),
+    FRAC_CONST(0.90940020501694),
+    FRAC_CONST(0.91040800966776),
+    FRAC_CONST(0.91140828078533),
+    FRAC_CONST(0.91240103345685),
+    FRAC_CONST(0.91338628315231),
+    FRAC_CONST(0.91436404572173),
+    FRAC_CONST(0.91533433739238),
+    FRAC_CONST(0.91629717476594),
+    FRAC_CONST(0.91725257481564),
+    FRAC_CONST(0.91820055488334),
+    FRAC_CONST(0.91914113267664),
+    FRAC_CONST(0.92007432626589),
+    FRAC_CONST(0.92100015408120),
+    FRAC_CONST(0.92191863490944),
+    FRAC_CONST(0.92282978789113),
+    FRAC_CONST(0.92373363251740),
+    FRAC_CONST(0.92463018862687),
+    FRAC_CONST(0.92551947640245),
+    FRAC_CONST(0.92640151636824),
+    FRAC_CONST(0.92727632938624),
+    FRAC_CONST(0.92814393665320),
+    FRAC_CONST(0.92900435969727),
+    FRAC_CONST(0.92985762037477),
+    FRAC_CONST(0.93070374086684),
+    FRAC_CONST(0.93154274367610),
+    FRAC_CONST(0.93237465162328),
+    FRAC_CONST(0.93319948784382),
+    FRAC_CONST(0.93401727578443),
+    FRAC_CONST(0.93482803919967),
+    FRAC_CONST(0.93563180214841),
+    FRAC_CONST(0.93642858899043),
+    FRAC_CONST(0.93721842438279),
+    FRAC_CONST(0.93800133327637),
+    FRAC_CONST(0.93877734091223),
+    FRAC_CONST(0.93954647281807),
+    FRAC_CONST(0.94030875480458),
+    FRAC_CONST(0.94106421296182),
+    FRAC_CONST(0.94181287365556),
+    FRAC_CONST(0.94255476352362),
+    FRAC_CONST(0.94328990947213),
+    FRAC_CONST(0.94401833867184),
+    FRAC_CONST(0.94474007855439),
+    FRAC_CONST(0.94545515680855),
+    FRAC_CONST(0.94616360137644),
+    FRAC_CONST(0.94686544044975),
+    FRAC_CONST(0.94756070246592),
+    FRAC_CONST(0.94824941610434),
+    FRAC_CONST(0.94893161028248),
+    FRAC_CONST(0.94960731415209),
+    FRAC_CONST(0.95027655709525),
+    FRAC_CONST(0.95093936872056),
+    FRAC_CONST(0.95159577885924),
+    FRAC_CONST(0.95224581756115),
+    FRAC_CONST(0.95288951509097),
+    FRAC_CONST(0.95352690192417),
+    FRAC_CONST(0.95415800874314),
+    FRAC_CONST(0.95478286643320),
+    FRAC_CONST(0.95540150607863),
+    FRAC_CONST(0.95601395895871),
+    FRAC_CONST(0.95662025654373),
+    FRAC_CONST(0.95722043049100),
+    FRAC_CONST(0.95781451264084),
+    FRAC_CONST(0.95840253501260),
+    FRAC_CONST(0.95898452980058),
+    FRAC_CONST(0.95956052937008),
+    FRAC_CONST(0.96013056625336),
+    FRAC_CONST(0.96069467314557),
+    FRAC_CONST(0.96125288290073),
+    FRAC_CONST(0.96180522852773),
+    FRAC_CONST(0.96235174318622),
+    FRAC_CONST(0.96289246018262),
+    FRAC_CONST(0.96342741296604),
+    FRAC_CONST(0.96395663512424),
+    FRAC_CONST(0.96448016037959),
+    FRAC_CONST(0.96499802258499),
+    FRAC_CONST(0.96551025571985),
+    FRAC_CONST(0.96601689388602),
+    FRAC_CONST(0.96651797130376),
+    FRAC_CONST(0.96701352230768),
+    FRAC_CONST(0.96750358134269),
+    FRAC_CONST(0.96798818295998),
+    FRAC_CONST(0.96846736181297),
+    FRAC_CONST(0.96894115265327),
+    FRAC_CONST(0.96940959032667),
+    FRAC_CONST(0.96987270976912),
+    FRAC_CONST(0.97033054600270),
+    FRAC_CONST(0.97078313413161),
+    FRAC_CONST(0.97123050933818),
+    FRAC_CONST(0.97167270687887),
+    FRAC_CONST(0.97210976208030),
+    FRAC_CONST(0.97254171033525),
+    FRAC_CONST(0.97296858709871),
+    FRAC_CONST(0.97339042788392),
+    FRAC_CONST(0.97380726825843),
+    FRAC_CONST(0.97421914384017),
+    FRAC_CONST(0.97462609029350),
+    FRAC_CONST(0.97502814332534),
+    FRAC_CONST(0.97542533868127),
+    FRAC_CONST(0.97581771214160),
+    FRAC_CONST(0.97620529951759),
+    FRAC_CONST(0.97658813664749),
+    FRAC_CONST(0.97696625939282),
+    FRAC_CONST(0.97733970363445),
+    FRAC_CONST(0.97770850526884),
+    FRAC_CONST(0.97807270020427),
+    FRAC_CONST(0.97843232435704),
+    FRAC_CONST(0.97878741364771),
+    FRAC_CONST(0.97913800399743),
+    FRAC_CONST(0.97948413132414),
+    FRAC_CONST(0.97982583153895),
+    FRAC_CONST(0.98016314054243),
+    FRAC_CONST(0.98049609422096),
+    FRAC_CONST(0.98082472844313),
+    FRAC_CONST(0.98114907905608),
+    FRAC_CONST(0.98146918188197),
+    FRAC_CONST(0.98178507271438),
+    FRAC_CONST(0.98209678731477),
+    FRAC_CONST(0.98240436140902),
+    FRAC_CONST(0.98270783068385),
+    FRAC_CONST(0.98300723078342),
+    FRAC_CONST(0.98330259730589),
+    FRAC_CONST(0.98359396579995),
+    FRAC_CONST(0.98388137176152),
+    FRAC_CONST(0.98416485063031),
+    FRAC_CONST(0.98444443778651),
+    FRAC_CONST(0.98472016854752),
+    FRAC_CONST(0.98499207816463),
+    FRAC_CONST(0.98526020181980),
+    FRAC_CONST(0.98552457462240),
+    FRAC_CONST(0.98578523160609),
+    FRAC_CONST(0.98604220772560),
+    FRAC_CONST(0.98629553785362),
+    FRAC_CONST(0.98654525677772),
+    FRAC_CONST(0.98679139919726),
+    FRAC_CONST(0.98703399972035),
+    FRAC_CONST(0.98727309286089),
+    FRAC_CONST(0.98750871303556),
+    FRAC_CONST(0.98774089456089),
+    FRAC_CONST(0.98796967165036),
+    FRAC_CONST(0.98819507841154),
+    FRAC_CONST(0.98841714884323),
+    FRAC_CONST(0.98863591683269),
+    FRAC_CONST(0.98885141615285),
+    FRAC_CONST(0.98906368045957),
+    FRAC_CONST(0.98927274328896),
+    FRAC_CONST(0.98947863805473),
+    FRAC_CONST(0.98968139804554),
+    FRAC_CONST(0.98988105642241),
+    FRAC_CONST(0.99007764621618),
+    FRAC_CONST(0.99027120032501),
+    FRAC_CONST(0.99046175151186),
+    FRAC_CONST(0.99064933240208),
+    FRAC_CONST(0.99083397548099),
+    FRAC_CONST(0.99101571309153),
+    FRAC_CONST(0.99119457743191),
+    FRAC_CONST(0.99137060055337),
+    FRAC_CONST(0.99154381435784),
+    FRAC_CONST(0.99171425059582),
+    FRAC_CONST(0.99188194086414),
+    FRAC_CONST(0.99204691660388),
+    FRAC_CONST(0.99220920909823),
+    FRAC_CONST(0.99236884947045),
+    FRAC_CONST(0.99252586868186),
+    FRAC_CONST(0.99268029752989),
+    FRAC_CONST(0.99283216664606),
+    FRAC_CONST(0.99298150649419),
+    FRAC_CONST(0.99312834736847),
+    FRAC_CONST(0.99327271939167),
+    FRAC_CONST(0.99341465251338),
+    FRAC_CONST(0.99355417650825),
+    FRAC_CONST(0.99369132097430),
+    FRAC_CONST(0.99382611533130),
+    FRAC_CONST(0.99395858881910),
+    FRAC_CONST(0.99408877049612),
+    FRAC_CONST(0.99421668923778),
+    FRAC_CONST(0.99434237373503),
+    FRAC_CONST(0.99446585249289),
+    FRAC_CONST(0.99458715382906),
+    FRAC_CONST(0.99470630587254),
+    FRAC_CONST(0.99482333656229),
+    FRAC_CONST(0.99493827364600),
+    FRAC_CONST(0.99505114467878),
+    FRAC_CONST(0.99516197702200),
+    FRAC_CONST(0.99527079784214),
+    FRAC_CONST(0.99537763410962),
+    FRAC_CONST(0.99548251259777),
+    FRAC_CONST(0.99558545988178),
+    FRAC_CONST(0.99568650233767),
+    FRAC_CONST(0.99578566614138),
+    FRAC_CONST(0.99588297726783),
+    FRAC_CONST(0.99597846149005),
+    FRAC_CONST(0.99607214437834),
+    FRAC_CONST(0.99616405129947),
+    FRAC_CONST(0.99625420741595),
+    FRAC_CONST(0.99634263768527),
+    FRAC_CONST(0.99642936685928),
+    FRAC_CONST(0.99651441948352),
+    FRAC_CONST(0.99659781989663),
+    FRAC_CONST(0.99667959222978),
+    FRAC_CONST(0.99675976040620),
+    FRAC_CONST(0.99683834814063),
+    FRAC_CONST(0.99691537893895),
+    FRAC_CONST(0.99699087609774),
+    FRAC_CONST(0.99706486270391),
+    FRAC_CONST(0.99713736163442),
+    FRAC_CONST(0.99720839555593),
+    FRAC_CONST(0.99727798692461),
+    FRAC_CONST(0.99734615798589),
+    FRAC_CONST(0.99741293077431),
+    FRAC_CONST(0.99747832711337),
+    FRAC_CONST(0.99754236861541),
+    FRAC_CONST(0.99760507668158),
+    FRAC_CONST(0.99766647250181),
+    FRAC_CONST(0.99772657705478),
+    FRAC_CONST(0.99778541110799),
+    FRAC_CONST(0.99784299521785),
+    FRAC_CONST(0.99789934972976),
+    FRAC_CONST(0.99795449477828),
+    FRAC_CONST(0.99800845028730),
+    FRAC_CONST(0.99806123597027),
+    FRAC_CONST(0.99811287133042),
+    FRAC_CONST(0.99816337566108),
+    FRAC_CONST(0.99821276804596),
+    FRAC_CONST(0.99826106735952),
+    FRAC_CONST(0.99830829226732),
+    FRAC_CONST(0.99835446122649),
+    FRAC_CONST(0.99839959248609),
+    FRAC_CONST(0.99844370408765),
+    FRAC_CONST(0.99848681386566),
+    FRAC_CONST(0.99852893944805),
+    FRAC_CONST(0.99857009825685),
+    FRAC_CONST(0.99861030750869),
+    FRAC_CONST(0.99864958421549),
+    FRAC_CONST(0.99868794518504),
+    FRAC_CONST(0.99872540702178),
+    FRAC_CONST(0.99876198612738),
+    FRAC_CONST(0.99879769870160),
+    FRAC_CONST(0.99883256074295),
+    FRAC_CONST(0.99886658804953),
+    FRAC_CONST(0.99889979621983),
+    FRAC_CONST(0.99893220065356),
+    FRAC_CONST(0.99896381655254),
+    FRAC_CONST(0.99899465892154),
+    FRAC_CONST(0.99902474256924),
+    FRAC_CONST(0.99905408210916),
+    FRAC_CONST(0.99908269196056),
+    FRAC_CONST(0.99911058634952),
+    FRAC_CONST(0.99913777930986),
+    FRAC_CONST(0.99916428468421),
+    FRAC_CONST(0.99919011612505),
+    FRAC_CONST(0.99921528709576),
+    FRAC_CONST(0.99923981087174),
+    FRAC_CONST(0.99926370054150),
+    FRAC_CONST(0.99928696900779),
+    FRAC_CONST(0.99930962898876),
+    FRAC_CONST(0.99933169301910),
+    FRAC_CONST(0.99935317345126),
+    FRAC_CONST(0.99937408245662),
+    FRAC_CONST(0.99939443202674),
+    FRAC_CONST(0.99941423397457),
+    FRAC_CONST(0.99943349993572),
+    FRAC_CONST(0.99945224136972),
+    FRAC_CONST(0.99947046956130),
+    FRAC_CONST(0.99948819562171),
+    FRAC_CONST(0.99950543049000),
+    FRAC_CONST(0.99952218493439),
+    FRAC_CONST(0.99953846955355),
+    FRAC_CONST(0.99955429477803),
+    FRAC_CONST(0.99956967087154),
+    FRAC_CONST(0.99958460793242),
+    FRAC_CONST(0.99959911589494),
+    FRAC_CONST(0.99961320453077),
+    FRAC_CONST(0.99962688345035),
+    FRAC_CONST(0.99964016210433),
+    FRAC_CONST(0.99965304978499),
+    FRAC_CONST(0.99966555562769),
+    FRAC_CONST(0.99967768861231),
+    FRAC_CONST(0.99968945756473),
+    FRAC_CONST(0.99970087115825),
+    FRAC_CONST(0.99971193791510),
+    FRAC_CONST(0.99972266620792),
+    FRAC_CONST(0.99973306426121),
+    FRAC_CONST(0.99974314015288),
+    FRAC_CONST(0.99975290181568),
+    FRAC_CONST(0.99976235703876),
+    FRAC_CONST(0.99977151346914),
+    FRAC_CONST(0.99978037861326),
+    FRAC_CONST(0.99978895983845),
+    FRAC_CONST(0.99979726437448),
+    FRAC_CONST(0.99980529931507),
+    FRAC_CONST(0.99981307161943),
+    FRAC_CONST(0.99982058811377),
+    FRAC_CONST(0.99982785549283),
+    FRAC_CONST(0.99983488032144),
+    FRAC_CONST(0.99984166903600),
+    FRAC_CONST(0.99984822794606),
+    FRAC_CONST(0.99985456323584),
+    FRAC_CONST(0.99986068096572),
+    FRAC_CONST(0.99986658707386),
+    FRAC_CONST(0.99987228737764),
+    FRAC_CONST(0.99987778757524),
+    FRAC_CONST(0.99988309324717),
+    FRAC_CONST(0.99988820985777),
+    FRAC_CONST(0.99989314275675),
+    FRAC_CONST(0.99989789718072),
+    FRAC_CONST(0.99990247825468),
+    FRAC_CONST(0.99990689099357),
+    FRAC_CONST(0.99991114030376),
+    FRAC_CONST(0.99991523098456),
+    FRAC_CONST(0.99991916772971),
+    FRAC_CONST(0.99992295512891),
+    FRAC_CONST(0.99992659766930),
+    FRAC_CONST(0.99993009973692),
+    FRAC_CONST(0.99993346561824),
+    FRAC_CONST(0.99993669950161),
+    FRAC_CONST(0.99993980547870),
+    FRAC_CONST(0.99994278754604),
+    FRAC_CONST(0.99994564960642),
+    FRAC_CONST(0.99994839547033),
+    FRAC_CONST(0.99995102885747),
+    FRAC_CONST(0.99995355339809),
+    FRAC_CONST(0.99995597263451),
+    FRAC_CONST(0.99995829002249),
+    FRAC_CONST(0.99996050893264),
+    FRAC_CONST(0.99996263265183),
+    FRAC_CONST(0.99996466438460),
+    FRAC_CONST(0.99996660725452),
+    FRAC_CONST(0.99996846430558),
+    FRAC_CONST(0.99997023850356),
+    FRAC_CONST(0.99997193273736),
+    FRAC_CONST(0.99997354982037),
+    FRAC_CONST(0.99997509249183),
+    FRAC_CONST(0.99997656341810),
+    FRAC_CONST(0.99997796519400),
+    FRAC_CONST(0.99997930034415),
+    FRAC_CONST(0.99998057132421),
+    FRAC_CONST(0.99998178052220),
+    FRAC_CONST(0.99998293025975),
+    FRAC_CONST(0.99998402279338),
+    FRAC_CONST(0.99998506031574),
+    FRAC_CONST(0.99998604495686),
+    FRAC_CONST(0.99998697878536),
+    FRAC_CONST(0.99998786380966),
+    FRAC_CONST(0.99998870197921),
+    FRAC_CONST(0.99998949518567),
+    FRAC_CONST(0.99999024526408),
+    FRAC_CONST(0.99999095399401),
+    FRAC_CONST(0.99999162310077),
+    FRAC_CONST(0.99999225425649),
+    FRAC_CONST(0.99999284908128),
+    FRAC_CONST(0.99999340914435),
+    FRAC_CONST(0.99999393596510),
+    FRAC_CONST(0.99999443101421),
+    FRAC_CONST(0.99999489571473),
+    FRAC_CONST(0.99999533144314),
+    FRAC_CONST(0.99999573953040),
+    FRAC_CONST(0.99999612126300),
+    FRAC_CONST(0.99999647788395),
+    FRAC_CONST(0.99999681059383),
+    FRAC_CONST(0.99999712055178),
+    FRAC_CONST(0.99999740887647),
+    FRAC_CONST(0.99999767664709),
+    FRAC_CONST(0.99999792490431),
+    FRAC_CONST(0.99999815465123),
+    FRAC_CONST(0.99999836685427),
+    FRAC_CONST(0.99999856244415),
+    FRAC_CONST(0.99999874231676),
+    FRAC_CONST(0.99999890733405),
+    FRAC_CONST(0.99999905832493),
+    FRAC_CONST(0.99999919608613),
+    FRAC_CONST(0.99999932138304),
+    FRAC_CONST(0.99999943495056),
+    FRAC_CONST(0.99999953749392),
+    FRAC_CONST(0.99999962968950),
+    FRAC_CONST(0.99999971218563),
+    FRAC_CONST(0.99999978560337),
+    FRAC_CONST(0.99999985053727),
+    FRAC_CONST(0.99999990755616),
+    FRAC_CONST(0.99999995720387)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t kbd_long_960[] = {
-    COEF_CONST(0.0003021562530949),
-    COEF_CONST(0.0004452267024786),
-    COEF_CONST(0.0005674947527496),
-    COEF_CONST(0.0006812465553466),
-    COEF_CONST(0.0007910496776387),
-    COEF_CONST(0.0008991655033895),
-    COEF_CONST(0.0010068978259384),
-    COEF_CONST(0.0011150758515751),
-    COEF_CONST(0.0012242653193642),
-    COEF_CONST(0.0013348735658205),
-    COEF_CONST(0.0014472068670273),
-    COEF_CONST(0.0015615039850448),
-    COEF_CONST(0.0016779568885263),
-    COEF_CONST(0.0017967241232412),
-    COEF_CONST(0.0019179397560955),
-    COEF_CONST(0.0020417195415393),
-    COEF_CONST(0.0021681652836642),
-    COEF_CONST(0.0022973679910599),
-    COEF_CONST(0.0024294102029937),
-    COEF_CONST(0.0025643677339078),
-    COEF_CONST(0.0027023110014772),
-    COEF_CONST(0.0028433060512612),
-    COEF_CONST(0.0029874153568025),
-    COEF_CONST(0.0031346984511728),
-    COEF_CONST(0.0032852124303662),
-    COEF_CONST(0.0034390123581190),
-    COEF_CONST(0.0035961515940931),
-    COEF_CONST(0.0037566820618961),
-    COEF_CONST(0.0039206544694386),
-    COEF_CONST(0.0040881184912194),
-    COEF_CONST(0.0042591229199617),
-    COEF_CONST(0.0044337157933972),
-    COEF_CONST(0.0046119445007641),
-    COEF_CONST(0.0047938558726415),
-    COEF_CONST(0.0049794962570131),
-    COEF_CONST(0.0051689115838900),
-    COEF_CONST(0.0053621474203763),
-    COEF_CONST(0.0055592490177131),
-    COEF_CONST(0.0057602613515573),
-    COEF_CONST(0.0059652291565289),
-    COEF_CONST(0.0061741969558843),
-    COEF_CONST(0.0063872090870253),
-    COEF_CONST(0.0066043097234387),
-    COEF_CONST(0.0068255428935640),
-    COEF_CONST(0.0070509524970088),
-    COEF_CONST(0.0072805823184660),
-    COEF_CONST(0.0075144760396340),
-    COEF_CONST(0.0077526772493942),
-    COEF_CONST(0.0079952294524673),
-    COEF_CONST(0.0082421760767325),
-    COEF_CONST(0.0084935604793733),
-    COEF_CONST(0.0087494259519870),
-    COEF_CONST(0.0090098157247792),
-    COEF_CONST(0.0092747729699467),
-    COEF_CONST(0.0095443408043399),
-    COEF_CONST(0.0098185622914832),
-    COEF_CONST(0.0100974804430226),
-    COEF_CONST(0.0103811382196612),
-    COEF_CONST(0.0106695785316351),
-    COEF_CONST(0.0109628442387771),
-    COEF_CONST(0.0112609781502091),
-    COEF_CONST(0.0115640230236993),
-    COEF_CONST(0.0118720215647169),
-    COEF_CONST(0.0121850164252137),
-    COEF_CONST(0.0125030502021561),
-    COEF_CONST(0.0128261654358321),
-    COEF_CONST(0.0131544046079532),
-    COEF_CONST(0.0134878101395681),
-    COEF_CONST(0.0138264243888068),
-    COEF_CONST(0.0141702896484671),
-    COEF_CONST(0.0145194481434592),
-    COEF_CONST(0.0148739420281182),
-    COEF_CONST(0.0152338133833959),
-    COEF_CONST(0.0155991042139432),
-    COEF_CONST(0.0159698564450882),
-    COEF_CONST(0.0163461119197227),
-    COEF_CONST(0.0167279123950996),
-    COEF_CONST(0.0171152995395520),
-    COEF_CONST(0.0175083149291368),
-    COEF_CONST(0.0179070000442104),
-    COEF_CONST(0.0183113962659409),
-    COEF_CONST(0.0187215448727609),
-    COEF_CONST(0.0191374870367659),
-    COEF_CONST(0.0195592638200623),
-    COEF_CONST(0.0199869161710679),
-    COEF_CONST(0.0204204849207691),
-    COEF_CONST(0.0208600107789370),
-    COEF_CONST(0.0213055343303066),
-    COEF_CONST(0.0217570960307201),
-    COEF_CONST(0.0222147362032386),
-    COEF_CONST(0.0226784950342228),
-    COEF_CONST(0.0231484125693867),
-    COEF_CONST(0.0236245287098244),
-    COEF_CONST(0.0241068832080138),
-    COEF_CONST(0.0245955156637973),
-    COEF_CONST(0.0250904655203431),
-    COEF_CONST(0.0255917720600868),
-    COEF_CONST(0.0260994744006559),
-    COEF_CONST(0.0266136114907790),
-    COEF_CONST(0.0271342221061795),
-    COEF_CONST(0.0276613448454576),
-    COEF_CONST(0.0281950181259587),
-    COEF_CONST(0.0287352801796329),
-    COEF_CONST(0.0292821690488833),
-    COEF_CONST(0.0298357225824074),
-    COEF_CONST(0.0303959784310299),
-    COEF_CONST(0.0309629740435296),
-    COEF_CONST(0.0315367466624615),
-    COEF_CONST(0.0321173333199732),
-    COEF_CONST(0.0327047708336193),
-    COEF_CONST(0.0332990958021720),
-    COEF_CONST(0.0339003446014307),
-    COEF_CONST(0.0345085533800302),
-    COEF_CONST(0.0351237580552491),
-    COEF_CONST(0.0357459943088193),
-    COEF_CONST(0.0363752975827358),
-    COEF_CONST(0.0370117030750704),
-    COEF_CONST(0.0376552457357870),
-    COEF_CONST(0.0383059602625614),
-    COEF_CONST(0.0389638810966056),
-    COEF_CONST(0.0396290424184964),
-    COEF_CONST(0.0403014781440112),
-    COEF_CONST(0.0409812219199691),
-    COEF_CONST(0.0416683071200799),
-    COEF_CONST(0.0423627668408009),
-    COEF_CONST(0.0430646338972016),
-    COEF_CONST(0.0437739408188385),
-    COEF_CONST(0.0444907198456388),
-    COEF_CONST(0.0452150029237951),
-    COEF_CONST(0.0459468217016708),
-    COEF_CONST(0.0466862075257170),
-    COEF_CONST(0.0474331914364021),
-    COEF_CONST(0.0481878041641539),
-    COEF_CONST(0.0489500761253148),
-    COEF_CONST(0.0497200374181119),
-    COEF_CONST(0.0504977178186404),
-    COEF_CONST(0.0512831467768636),
-    COEF_CONST(0.0520763534126273),
-    COEF_CONST(0.0528773665116913),
-    COEF_CONST(0.0536862145217772),
-    COEF_CONST(0.0545029255486345),
-    COEF_CONST(0.0553275273521232),
-    COEF_CONST(0.0561600473423164),
-    COEF_CONST(0.0570005125756209),
-    COEF_CONST(0.0578489497509179),
-    COEF_CONST(0.0587053852057233),
-    COEF_CONST(0.0595698449123695),
-    COEF_CONST(0.0604423544742077),
-    COEF_CONST(0.0613229391218317),
-    COEF_CONST(0.0622116237093247),
-    COEF_CONST(0.0631084327105284),
-    COEF_CONST(0.0640133902153352),
-    COEF_CONST(0.0649265199260043),
-    COEF_CONST(0.0658478451535027),
-    COEF_CONST(0.0667773888138695),
-    COEF_CONST(0.0677151734246072),
-    COEF_CONST(0.0686612211010977),
-    COEF_CONST(0.0696155535530446),
-    COEF_CONST(0.0705781920809429),
-    COEF_CONST(0.0715491575725758),
-    COEF_CONST(0.0725284704995383),
-    COEF_CONST(0.0735161509137906),
-    COEF_CONST(0.0745122184442388),
-    COEF_CONST(0.0755166922933461),
-    COEF_CONST(0.0765295912337720),
-    COEF_CONST(0.0775509336050437),
-    COEF_CONST(0.0785807373102561),
-    COEF_CONST(0.0796190198128044),
-    COEF_CONST(0.0806657981331473),
-    COEF_CONST(0.0817210888456026),
-    COEF_CONST(0.0827849080751753),
-    COEF_CONST(0.0838572714944183),
-    COEF_CONST(0.0849381943203265),
-    COEF_CONST(0.0860276913112652),
-    COEF_CONST(0.0871257767639319),
-    COEF_CONST(0.0882324645103534),
-    COEF_CONST(0.0893477679149177),
-    COEF_CONST(0.0904716998714418),
-    COEF_CONST(0.0916042728002747),
-    COEF_CONST(0.0927454986454381),
-    COEF_CONST(0.0938953888718020),
-    COEF_CONST(0.0950539544622996),
-    COEF_CONST(0.0962212059151784),
-    COEF_CONST(0.0973971532412897),
-    COEF_CONST(0.0985818059614169),
-    COEF_CONST(0.0997751731036425),
-    COEF_CONST(0.1009772632007537),
-    COEF_CONST(0.1021880842876888),
-    COEF_CONST(0.1034076438990227),
-    COEF_CONST(0.1046359490664932),
-    COEF_CONST(0.1058730063165681),
-    COEF_CONST(0.1071188216680533),
-    COEF_CONST(0.1083734006297428),
-    COEF_CONST(0.1096367481981100),
-    COEF_CONST(0.1109088688550422),
-    COEF_CONST(0.1121897665656167),
-    COEF_CONST(0.1134794447759207),
-    COEF_CONST(0.1147779064109143),
-    COEF_CONST(0.1160851538723372),
-    COEF_CONST(0.1174011890366591),
-    COEF_CONST(0.1187260132530751),
-    COEF_CONST(0.1200596273415457),
-    COEF_CONST(0.1214020315908810),
-    COEF_CONST(0.1227532257568719),
-    COEF_CONST(0.1241132090604651),
-    COEF_CONST(0.1254819801859856),
-    COEF_CONST(0.1268595372794049),
-    COEF_CONST(0.1282458779466558),
-    COEF_CONST(0.1296409992519942),
-    COEF_CONST(0.1310448977164081),
-    COEF_CONST(0.1324575693160745),
-    COEF_CONST(0.1338790094808633),
-    COEF_CONST(0.1353092130928902),
-    COEF_CONST(0.1367481744851168),
-    COEF_CONST(0.1381958874400010),
-    COEF_CONST(0.1396523451881945),
-    COEF_CONST(0.1411175404072910),
-    COEF_CONST(0.1425914652206223),
-    COEF_CONST(0.1440741111961058),
-    COEF_CONST(0.1455654693451402),
-    COEF_CONST(0.1470655301215526),
-    COEF_CONST(0.1485742834205956),
-    COEF_CONST(0.1500917185779945),
-    COEF_CONST(0.1516178243690463),
-    COEF_CONST(0.1531525890077689),
-    COEF_CONST(0.1546960001461024),
-    COEF_CONST(0.1562480448731608),
-    COEF_CONST(0.1578087097145364),
-    COEF_CONST(0.1593779806316558),
-    COEF_CONST(0.1609558430211876),
-    COEF_CONST(0.1625422817145027),
-    COEF_CONST(0.1641372809771871),
-    COEF_CONST(0.1657408245086070),
-    COEF_CONST(0.1673528954415270),
-    COEF_CONST(0.1689734763417811),
-    COEF_CONST(0.1706025492079969),
-    COEF_CONST(0.1722400954713725),
-    COEF_CONST(0.1738860959955082),
-    COEF_CONST(0.1755405310762898),
-    COEF_CONST(0.1772033804418275),
-    COEF_CONST(0.1788746232524467),
-    COEF_CONST(0.1805542381007349),
-    COEF_CONST(0.1822422030116404),
-    COEF_CONST(0.1839384954426268),
-    COEF_CONST(0.1856430922838810),
-    COEF_CONST(0.1873559698585756),
-    COEF_CONST(0.1890771039231862),
-    COEF_CONST(0.1908064696678625),
-    COEF_CONST(0.1925440417168546),
-    COEF_CONST(0.1942897941289937),
-    COEF_CONST(0.1960437003982277),
-    COEF_CONST(0.1978057334542116),
-    COEF_CONST(0.1995758656629525),
-    COEF_CONST(0.2013540688275098),
-    COEF_CONST(0.2031403141887507),
-    COEF_CONST(0.2049345724261595),
-    COEF_CONST(0.2067368136587033),
-    COEF_CONST(0.2085470074457521),
-    COEF_CONST(0.2103651227880538),
-    COEF_CONST(0.2121911281287646),
-    COEF_CONST(0.2140249913545346),
-    COEF_CONST(0.2158666797966480),
-    COEF_CONST(0.2177161602322188),
-    COEF_CONST(0.2195733988854414),
-    COEF_CONST(0.2214383614288963),
-    COEF_CONST(0.2233110129849106),
-    COEF_CONST(0.2251913181269740),
-    COEF_CONST(0.2270792408812093),
-    COEF_CONST(0.2289747447278976),
-    COEF_CONST(0.2308777926030592),
-    COEF_CONST(0.2327883469000885),
-    COEF_CONST(0.2347063694714437),
-    COEF_CONST(0.2366318216303919),
-    COEF_CONST(0.2385646641528076),
-    COEF_CONST(0.2405048572790267),
-    COEF_CONST(0.2424523607157545),
-    COEF_CONST(0.2444071336380283),
-    COEF_CONST(0.2463691346912334),
-    COEF_CONST(0.2483383219931741),
-    COEF_CONST(0.2503146531361985),
-    COEF_CONST(0.2522980851893767),
-    COEF_CONST(0.2542885747007335),
-    COEF_CONST(0.2562860776995335),
-    COEF_CONST(0.2582905496986215),
-    COEF_CONST(0.2603019456968142),
-    COEF_CONST(0.2623202201813464),
-    COEF_CONST(0.2643453271303700),
-    COEF_CONST(0.2663772200155053),
-    COEF_CONST(0.2684158518044454),
-    COEF_CONST(0.2704611749636135),
-    COEF_CONST(0.2725131414608710),
-    COEF_CONST(0.2745717027682799),
-    COEF_CONST(0.2766368098649151),
-    COEF_CONST(0.2787084132397296),
-    COEF_CONST(0.2807864628944707),
-    COEF_CONST(0.2828709083466482),
-    COEF_CONST(0.2849616986325523),
-    COEF_CONST(0.2870587823103237),
-    COEF_CONST(0.2891621074630737),
-    COEF_CONST(0.2912716217020546),
-    COEF_CONST(0.2933872721698803),
-    COEF_CONST(0.2955090055437973),
-    COEF_CONST(0.2976367680390041),
-    COEF_CONST(0.2997705054120213),
-    COEF_CONST(0.3019101629641097),
-    COEF_CONST(0.3040556855447379),
-    COEF_CONST(0.3062070175550981),
-    COEF_CONST(0.3083641029516701),
-    COEF_CONST(0.3105268852498334),
-    COEF_CONST(0.3126953075275265),
-    COEF_CONST(0.3148693124289546),
-    COEF_CONST(0.3170488421683428),
-    COEF_CONST(0.3192338385337370),
-    COEF_CONST(0.3214242428908514),
-    COEF_CONST(0.3236199961869606),
-    COEF_CONST(0.3258210389548392),
-    COEF_CONST(0.3280273113167459),
-    COEF_CONST(0.3302387529884521),
-    COEF_CONST(0.3324553032833160),
-    COEF_CONST(0.3346769011164010),
-    COEF_CONST(0.3369034850086373),
-    COEF_CONST(0.3391349930910280),
-    COEF_CONST(0.3413713631088974),
-    COEF_CONST(0.3436125324261830),
-    COEF_CONST(0.3458584380297697),
-    COEF_CONST(0.3481090165338656),
-    COEF_CONST(0.3503642041844199),
-    COEF_CONST(0.3526239368635820),
-    COEF_CONST(0.3548881500942010),
-    COEF_CONST(0.3571567790443668),
-    COEF_CONST(0.3594297585319891),
-    COEF_CONST(0.3617070230294185),
-    COEF_CONST(0.3639885066681048),
-    COEF_CONST(0.3662741432432950),
-    COEF_CONST(0.3685638662187693),
-    COEF_CONST(0.3708576087316147),
-    COEF_CONST(0.3731553035970366),
-    COEF_CONST(0.3754568833132069),
-    COEF_CONST(0.3777622800661488),
-    COEF_CONST(0.3800714257346570),
-    COEF_CONST(0.3823842518952546),
-    COEF_CONST(0.3847006898271841),
-    COEF_CONST(0.3870206705174334),
-    COEF_CONST(0.3893441246657958),
-    COEF_CONST(0.3916709826899639),
-    COEF_CONST(0.3940011747306560),
-    COEF_CONST(0.3963346306567764),
-    COEF_CONST(0.3986712800706062),
-    COEF_CONST(0.4010110523130271),
-    COEF_CONST(0.4033538764687756),
-    COEF_CONST(0.4056996813717284),
-    COEF_CONST(0.4080483956102172),
-    COEF_CONST(0.4103999475323736),
-    COEF_CONST(0.4127542652515031),
-    COEF_CONST(0.4151112766514873),
-    COEF_CONST(0.4174709093922143),
-    COEF_CONST(0.4198330909150365),
-    COEF_CONST(0.4221977484482556),
-    COEF_CONST(0.4245648090126334),
-    COEF_CONST(0.4269341994269293),
-    COEF_CONST(0.4293058463134616),
-    COEF_CONST(0.4316796761036958),
-    COEF_CONST(0.4340556150438547),
-    COEF_CONST(0.4364335892005536),
-    COEF_CONST(0.4388135244664580),
-    COEF_CONST(0.4411953465659639),
-    COEF_CONST(0.4435789810609000),
-    COEF_CONST(0.4459643533562509),
-    COEF_CONST(0.4483513887059016),
-    COEF_CONST(0.4507400122184019),
-    COEF_CONST(0.4531301488627497),
-    COEF_CONST(0.4555217234741947),
-    COEF_CONST(0.4579146607600593),
-    COEF_CONST(0.4603088853055777),
-    COEF_CONST(0.4627043215797521),
-    COEF_CONST(0.4651008939412254),
-    COEF_CONST(0.4674985266441709),
-    COEF_CONST(0.4698971438441951),
-    COEF_CONST(0.4722966696042580),
-    COEF_CONST(0.4746970279006055),
-    COEF_CONST(0.4770981426287164),
-    COEF_CONST(0.4794999376092619),
-    COEF_CONST(0.4819023365940778),
-    COEF_CONST(0.4843052632721476),
-    COEF_CONST(0.4867086412755978),
-    COEF_CONST(0.4891123941857028),
-    COEF_CONST(0.4915164455388997),
-    COEF_CONST(0.4939207188328126),
-    COEF_CONST(0.4963251375322855),
-    COEF_CONST(0.4987296250754225),
-    COEF_CONST(0.5011341048796359),
-    COEF_CONST(0.5035385003477012),
-    COEF_CONST(0.5059427348738168),
-    COEF_CONST(0.5083467318496706),
-    COEF_CONST(0.5107504146705106),
-    COEF_CONST(0.5131537067412193),
-    COEF_CONST(0.5155565314823923),
-    COEF_CONST(0.5179588123364193),
-    COEF_CONST(0.5203604727735667),
-    COEF_CONST(0.5227614362980630),
-    COEF_CONST(0.5251616264541841),
-    COEF_CONST(0.5275609668323384),
-    COEF_CONST(0.5299593810751532),
-    COEF_CONST(0.5323567928835578),
-    COEF_CONST(0.5347531260228663),
-    COEF_CONST(0.5371483043288580),
-    COEF_CONST(0.5395422517138538),
-    COEF_CONST(0.5419348921727899),
-    COEF_CONST(0.5443261497892862),
-    COEF_CONST(0.5467159487417104),
-    COEF_CONST(0.5491042133092364),
-    COEF_CONST(0.5514908678778958),
-    COEF_CONST(0.5538758369466227),
-    COEF_CONST(0.5562590451332913),
-    COEF_CONST(0.5586404171807443),
-    COEF_CONST(0.5610198779628133),
-    COEF_CONST(0.5633973524903286),
-    COEF_CONST(0.5657727659171199),
-    COEF_CONST(0.5681460435460047),
-    COEF_CONST(0.5705171108347663),
-    COEF_CONST(0.5728858934021188),
-    COEF_CONST(0.5752523170336598),
-    COEF_CONST(0.5776163076878088),
-    COEF_CONST(0.5799777915017323),
-    COEF_CONST(0.5823366947972535),
-    COEF_CONST(0.5846929440867458),
-    COEF_CONST(0.5870464660790119),
-    COEF_CONST(0.5893971876851449),
-    COEF_CONST(0.5917450360243719),
-    COEF_CONST(0.5940899384298793),
-    COEF_CONST(0.5964318224546208),
-    COEF_CONST(0.5987706158771039),
-    COEF_CONST(0.6011062467071583),
-    COEF_CONST(0.6034386431916822),
-    COEF_CONST(0.6057677338203681),
-    COEF_CONST(0.6080934473314057),
-    COEF_CONST(0.6104157127171639),
-    COEF_CONST(0.6127344592298474),
-    COEF_CONST(0.6150496163871310),
-    COEF_CONST(0.6173611139777690),
-    COEF_CONST(0.6196688820671789),
-    COEF_CONST(0.6219728510029997),
-    COEF_CONST(0.6242729514206247),
-    COEF_CONST(0.6265691142487051),
-    COEF_CONST(0.6288612707146283),
-    COEF_CONST(0.6311493523499663),
-    COEF_CONST(0.6334332909958958),
-    COEF_CONST(0.6357130188085891),
-    COEF_CONST(0.6379884682645743),
-    COEF_CONST(0.6402595721660647),
-    COEF_CONST(0.6425262636462578),
-    COEF_CONST(0.6447884761746012),
-    COEF_CONST(0.6470461435620266),
-    COEF_CONST(0.6492991999661505),
-    COEF_CONST(0.6515475798964411),
-    COEF_CONST(0.6537912182193508),
-    COEF_CONST(0.6560300501634142),
-    COEF_CONST(0.6582640113243098),
-    COEF_CONST(0.6604930376698862),
-    COEF_CONST(0.6627170655451516),
-    COEF_CONST(0.6649360316772256),
-    COEF_CONST(0.6671498731802533),
-    COEF_CONST(0.6693585275602818),
-    COEF_CONST(0.6715619327200959),
-    COEF_CONST(0.6737600269640164),
-    COEF_CONST(0.6759527490026566),
-    COEF_CONST(0.6781400379576392),
-    COEF_CONST(0.6803218333662715),
-    COEF_CONST(0.6824980751861787),
-    COEF_CONST(0.6846687037998949),
-    COEF_CONST(0.6868336600194123),
-    COEF_CONST(0.6889928850906855),
-    COEF_CONST(0.6911463206980928),
-    COEF_CONST(0.6932939089688525),
-    COEF_CONST(0.6954355924773949),
-    COEF_CONST(0.6975713142496884),
-    COEF_CONST(0.6997010177675195),
-    COEF_CONST(0.7018246469727265),
-    COEF_CONST(0.7039421462713862),
-    COEF_CONST(0.7060534605379528),
-    COEF_CONST(0.7081585351193496),
-    COEF_CONST(0.7102573158390105),
-    COEF_CONST(0.7123497490008750),
-    COEF_CONST(0.7144357813933307),
-    COEF_CONST(0.7165153602931092),
-    COEF_CONST(0.7185884334691287),
-    COEF_CONST(0.7206549491862871),
-    COEF_CONST(0.7227148562092042),
-    COEF_CONST(0.7247681038059106),
-    COEF_CONST(0.7268146417514855),
-    COEF_CONST(0.7288544203316418),
-    COEF_CONST(0.7308873903462577),
-    COEF_CONST(0.7329135031128549),
-    COEF_CONST(0.7349327104700221),
-    COEF_CONST(0.7369449647807855),
-    COEF_CONST(0.7389502189359237),
-    COEF_CONST(0.7409484263572271),
-    COEF_CONST(0.7429395410007016),
-    COEF_CONST(0.7449235173597176),
-    COEF_CONST(0.7469003104681008),
-    COEF_CONST(0.7488698759031670),
-    COEF_CONST(0.7508321697887005),
-    COEF_CONST(0.7527871487978728),
-    COEF_CONST(0.7547347701561059),
-    COEF_CONST(0.7566749916438754),
-    COEF_CONST(0.7586077715994560),
-    COEF_CONST(0.7605330689216074),
-    COEF_CONST(0.7624508430722016),
-    COEF_CONST(0.7643610540787891),
-    COEF_CONST(0.7662636625371070),
-    COEF_CONST(0.7681586296135255),
-    COEF_CONST(0.7700459170474343),
-    COEF_CONST(0.7719254871535672),
-    COEF_CONST(0.7737973028242671),
-    COEF_CONST(0.7756613275316875),
-    COEF_CONST(0.7775175253299340),
-    COEF_CONST(0.7793658608571425),
-    COEF_CONST(0.7812062993374951),
-    COEF_CONST(0.7830388065831744),
-    COEF_CONST(0.7848633489962533),
-    COEF_CONST(0.7866798935705233),
-    COEF_CONST(0.7884884078932579),
-    COEF_CONST(0.7902888601469138),
-    COEF_CONST(0.7920812191107668),
-    COEF_CONST(0.7938654541624850),
-    COEF_CONST(0.7956415352796368),
-    COEF_CONST(0.7974094330411343),
-    COEF_CONST(0.7991691186286133),
-    COEF_CONST(0.8009205638277465),
-    COEF_CONST(0.8026637410294932),
-    COEF_CONST(0.8043986232312831),
-    COEF_CONST(0.8061251840381346),
-    COEF_CONST(0.8078433976637077),
-    COEF_CONST(0.8095532389312917),
-    COEF_CONST(0.8112546832747255),
-    COEF_CONST(0.8129477067392539),
-    COEF_CONST(0.8146322859823164),
-    COEF_CONST(0.8163083982742698),
-    COEF_CONST(0.8179760214990457),
-    COEF_CONST(0.8196351341547393),
-    COEF_CONST(0.8212857153541345),
-    COEF_CONST(0.8229277448251595),
-    COEF_CONST(0.8245612029112778),
-    COEF_CONST(0.8261860705718113),
-    COEF_CONST(0.8278023293821971),
-    COEF_CONST(0.8294099615341773),
-    COEF_CONST(0.8310089498359212),
-    COEF_CONST(0.8325992777120815),
-    COEF_CONST(0.8341809292037831),
-    COEF_CONST(0.8357538889685445),
-    COEF_CONST(0.8373181422801330),
-    COEF_CONST(0.8388736750283521),
-    COEF_CONST(0.8404204737187619),
-    COEF_CONST(0.8419585254723335),
-    COEF_CONST(0.8434878180250348),
-    COEF_CONST(0.8450083397273509),
-    COEF_CONST(0.8465200795437368),
-    COEF_CONST(0.8480230270520029),
-    COEF_CONST(0.8495171724426350),
-    COEF_CONST(0.8510025065180464),
-    COEF_CONST(0.8524790206917633),
-    COEF_CONST(0.8539467069875448),
-    COEF_CONST(0.8554055580384357),
-    COEF_CONST(0.8568555670857525),
-    COEF_CONST(0.8582967279780043),
-    COEF_CONST(0.8597290351697464),
-    COEF_CONST(0.8611524837203691),
-    COEF_CONST(0.8625670692928198),
-    COEF_CONST(0.8639727881522599),
-    COEF_CONST(0.8653696371646555),
-    COEF_CONST(0.8667576137953045),
-    COEF_CONST(0.8681367161072958),
-    COEF_CONST(0.8695069427599065),
-    COEF_CONST(0.8708682930069319),
-    COEF_CONST(0.8722207666949527),
-    COEF_CONST(0.8735643642615368),
-    COEF_CONST(0.8748990867333771),
-    COEF_CONST(0.8762249357243662),
-    COEF_CONST(0.8775419134336067),
-    COEF_CONST(0.8788500226433579),
-    COEF_CONST(0.8801492667169208),
-    COEF_CONST(0.8814396495964587),
-    COEF_CONST(0.8827211758007560),
-    COEF_CONST(0.8839938504229149),
-    COEF_CONST(0.8852576791279895),
-    COEF_CONST(0.8865126681505587),
-    COEF_CONST(0.8877588242922386),
-    COEF_CONST(0.8889961549191320),
-    COEF_CONST(0.8902246679592184),
-    COEF_CONST(0.8914443718996848),
-    COEF_CONST(0.8926552757841945),
-    COEF_CONST(0.8938573892100969),
-    COEF_CONST(0.8950507223255798),
-    COEF_CONST(0.8962352858267605),
-    COEF_CONST(0.8974110909547198),
-    COEF_CONST(0.8985781494924783),
-    COEF_CONST(0.8997364737619142),
-    COEF_CONST(0.9008860766206249),
-    COEF_CONST(0.9020269714587307),
-    COEF_CONST(0.9031591721956235),
-    COEF_CONST(0.9042826932766591),
-    COEF_CONST(0.9053975496697941),
-    COEF_CONST(0.9065037568621681),
-    COEF_CONST(0.9076013308566311),
-    COEF_CONST(0.9086902881682180),
-    COEF_CONST(0.9097706458205682),
-    COEF_CONST(0.9108424213422940),
-    COEF_CONST(0.9119056327632955),
-    COEF_CONST(0.9129602986110235),
-    COEF_CONST(0.9140064379066919),
-    COEF_CONST(0.9150440701614393),
-    COEF_CONST(0.9160732153724396),
-    COEF_CONST(0.9170938940189634),
-    COEF_CONST(0.9181061270583908),
-    COEF_CONST(0.9191099359221748),
-    COEF_CONST(0.9201053425117579),
-    COEF_CONST(0.9210923691944400),
-    COEF_CONST(0.9220710387992010),
-    COEF_CONST(0.9230413746124764),
-    COEF_CONST(0.9240034003738882),
-    COEF_CONST(0.9249571402719298),
-    COEF_CONST(0.9259026189396085),
-    COEF_CONST(0.9268398614500427),
-    COEF_CONST(0.9277688933120170),
-    COEF_CONST(0.9286897404654957),
-    COEF_CONST(0.9296024292770939),
-    COEF_CONST(0.9305069865355076),
-    COEF_CONST(0.9314034394469048),
-    COEF_CONST(0.9322918156302762),
-    COEF_CONST(0.9331721431127471),
-    COEF_CONST(0.9340444503248519),
-    COEF_CONST(0.9349087660957711),
-    COEF_CONST(0.9357651196485313),
-    COEF_CONST(0.9366135405951697),
-    COEF_CONST(0.9374540589318637),
-    COEF_CONST(0.9382867050340261),
-    COEF_CONST(0.9391115096513655),
-    COEF_CONST(0.9399285039029165),
-    COEF_CONST(0.9407377192720349),
-    COEF_CONST(0.9415391876013639),
-    COEF_CONST(0.9423329410877687),
-    COEF_CONST(0.9431190122772415),
-    COEF_CONST(0.9438974340597782),
-    COEF_CONST(0.9446682396642262),
-    COEF_CONST(0.9454314626531054),
-    COEF_CONST(0.9461871369174033),
-    COEF_CONST(0.9469352966713429),
-    COEF_CONST(0.9476759764471278),
-    COEF_CONST(0.9484092110896616),
-    COEF_CONST(0.9491350357512457),
-    COEF_CONST(0.9498534858862532),
-    COEF_CONST(0.9505645972457831),
-    COEF_CONST(0.9512684058722927),
-    COEF_CONST(0.9519649480942105),
-    COEF_CONST(0.9526542605205314),
-    COEF_CONST(0.9533363800353921),
-    COEF_CONST(0.9540113437926313),
-    COEF_CONST(0.9546791892103320),
-    COEF_CONST(0.9553399539653500),
-    COEF_CONST(0.9559936759878265),
-    COEF_CONST(0.9566403934556893),
-    COEF_CONST(0.9572801447891388),
-    COEF_CONST(0.9579129686451244),
-    COEF_CONST(0.9585389039118085),
-    COEF_CONST(0.9591579897030224),
-    COEF_CONST(0.9597702653527108),
-    COEF_CONST(0.9603757704093711),
-    COEF_CONST(0.9609745446304828),
-    COEF_CONST(0.9615666279769324),
-    COEF_CONST(0.9621520606074324),
-    COEF_CONST(0.9627308828729358),
-    COEF_CONST(0.9633031353110477),
-    COEF_CONST(0.9638688586404335),
-    COEF_CONST(0.9644280937552258),
-    COEF_CONST(0.9649808817194311),
-    COEF_CONST(0.9655272637613366),
-    COEF_CONST(0.9660672812679171),
-    COEF_CONST(0.9666009757792454),
-    COEF_CONST(0.9671283889829055),
-    COEF_CONST(0.9676495627084089),
-    COEF_CONST(0.9681645389216160),
-    COEF_CONST(0.9686733597191652),
-    COEF_CONST(0.9691760673229058),
-    COEF_CONST(0.9696727040743406),
-    COEF_CONST(0.9701633124290767),
-    COEF_CONST(0.9706479349512860),
-    COEF_CONST(0.9711266143081750),
-    COEF_CONST(0.9715993932644684),
-    COEF_CONST(0.9720663146769026),
-    COEF_CONST(0.9725274214887337),
-    COEF_CONST(0.9729827567242596),
-    COEF_CONST(0.9734323634833574),
-    COEF_CONST(0.9738762849360358),
-    COEF_CONST(0.9743145643170059),
-    COEF_CONST(0.9747472449202687),
-    COEF_CONST(0.9751743700937215),
-    COEF_CONST(0.9755959832337850),
-    COEF_CONST(0.9760121277800496),
-    COEF_CONST(0.9764228472099433),
-    COEF_CONST(0.9768281850334235),
-    COEF_CONST(0.9772281847876897),
-    COEF_CONST(0.9776228900319223),
-    COEF_CONST(0.9780123443420448),
-    COEF_CONST(0.9783965913055132),
-    COEF_CONST(0.9787756745161313),
-    COEF_CONST(0.9791496375688939),
-    COEF_CONST(0.9795185240548578),
-    COEF_CONST(0.9798823775560431),
-    COEF_CONST(0.9802412416403639),
-    COEF_CONST(0.9805951598565897),
-    COEF_CONST(0.9809441757293399),
-    COEF_CONST(0.9812883327541090),
-    COEF_CONST(0.9816276743923267),
-    COEF_CONST(0.9819622440664515),
-    COEF_CONST(0.9822920851550995),
-    COEF_CONST(0.9826172409882086),
-    COEF_CONST(0.9829377548422400),
-    COEF_CONST(0.9832536699354163),
-    COEF_CONST(0.9835650294229984),
-    COEF_CONST(0.9838718763926001),
-    COEF_CONST(0.9841742538595437),
-    COEF_CONST(0.9844722047622547),
-    COEF_CONST(0.9847657719576983),
-    COEF_CONST(0.9850549982168574),
-    COEF_CONST(0.9853399262202529),
-    COEF_CONST(0.9856205985535073),
-    COEF_CONST(0.9858970577029519),
-    COEF_CONST(0.9861693460512790),
-    COEF_CONST(0.9864375058732389),
-    COEF_CONST(0.9867015793313820),
-    COEF_CONST(0.9869616084718489),
-    COEF_CONST(0.9872176352202061),
-    COEF_CONST(0.9874697013773301),
-    COEF_CONST(0.9877178486153397),
-    COEF_CONST(0.9879621184735767),
-    COEF_CONST(0.9882025523546365),
-    COEF_CONST(0.9884391915204485),
-    COEF_CONST(0.9886720770884069),
-    COEF_CONST(0.9889012500275530),
-    COEF_CONST(0.9891267511548089),
-    COEF_CONST(0.9893486211312621),
-    COEF_CONST(0.9895669004585049),
-    COEF_CONST(0.9897816294750255),
-    COEF_CONST(0.9899928483526520),
-    COEF_CONST(0.9902005970930525),
-    COEF_CONST(0.9904049155242876),
-    COEF_CONST(0.9906058432974180),
-    COEF_CONST(0.9908034198831690),
-    COEF_CONST(0.9909976845686489),
-    COEF_CONST(0.9911886764541239),
-    COEF_CONST(0.9913764344498495),
-    COEF_CONST(0.9915609972729590),
-    COEF_CONST(0.9917424034444086),
-    COEF_CONST(0.9919206912859797),
-    COEF_CONST(0.9920958989173397),
-    COEF_CONST(0.9922680642531603),
-    COEF_CONST(0.9924372250002933),
-    COEF_CONST(0.9926034186550070),
-    COEF_CONST(0.9927666825002789),
-    COEF_CONST(0.9929270536031491),
-    COEF_CONST(0.9930845688121325),
-    COEF_CONST(0.9932392647546895),
-    COEF_CONST(0.9933911778347579),
-    COEF_CONST(0.9935403442303433),
-    COEF_CONST(0.9936867998911693),
-    COEF_CONST(0.9938305805363887),
-    COEF_CONST(0.9939717216523539),
-    COEF_CONST(0.9941102584904481),
-    COEF_CONST(0.9942462260649764),
-    COEF_CONST(0.9943796591511174),
-    COEF_CONST(0.9945105922829353),
-    COEF_CONST(0.9946390597514524),
-    COEF_CONST(0.9947650956027824),
-    COEF_CONST(0.9948887336363228),
-    COEF_CONST(0.9950100074030103),
-    COEF_CONST(0.9951289502036336),
-    COEF_CONST(0.9952455950872091),
-    COEF_CONST(0.9953599748494155),
-    COEF_CONST(0.9954721220310890),
-    COEF_CONST(0.9955820689167787),
-    COEF_CONST(0.9956898475333619),
-    COEF_CONST(0.9957954896487196),
-    COEF_CONST(0.9958990267704713),
-    COEF_CONST(0.9960004901447701),
-    COEF_CONST(0.9960999107551559),
-    COEF_CONST(0.9961973193214694),
-    COEF_CONST(0.9962927462988245),
-    COEF_CONST(0.9963862218766388),
-    COEF_CONST(0.9964777759777242),
-    COEF_CONST(0.9965674382574342),
-    COEF_CONST(0.9966552381028704),
-    COEF_CONST(0.9967412046321465),
-    COEF_CONST(0.9968253666937095),
-    COEF_CONST(0.9969077528657186),
-    COEF_CONST(0.9969883914554805),
-    COEF_CONST(0.9970673104989413),
-    COEF_CONST(0.9971445377602348),
-    COEF_CONST(0.9972201007312871),
-    COEF_CONST(0.9972940266314749),
-    COEF_CONST(0.9973663424073412),
-    COEF_CONST(0.9974370747323638),
-    COEF_CONST(0.9975062500067785),
-    COEF_CONST(0.9975738943574574),
-    COEF_CONST(0.9976400336378379),
-    COEF_CONST(0.9977046934279079),
-    COEF_CONST(0.9977678990342401),
-    COEF_CONST(0.9978296754900812),
-    COEF_CONST(0.9978900475554902),
-    COEF_CONST(0.9979490397175296),
-    COEF_CONST(0.9980066761905056),
-    COEF_CONST(0.9980629809162593),
-    COEF_CONST(0.9981179775645063),
-    COEF_CONST(0.9981716895332257),
-    COEF_CONST(0.9982241399490979),
-    COEF_CONST(0.9982753516679893),
-    COEF_CONST(0.9983253472754841),
-    COEF_CONST(0.9983741490874634),
-    COEF_CONST(0.9984217791507299),
-    COEF_CONST(0.9984682592436778),
-    COEF_CONST(0.9985136108770075),
-    COEF_CONST(0.9985578552944850),
-    COEF_CONST(0.9986010134737439),
-    COEF_CONST(0.9986431061271304),
-    COEF_CONST(0.9986841537025921),
-    COEF_CONST(0.9987241763846056),
-    COEF_CONST(0.9987631940951476),
-    COEF_CONST(0.9988012264947044),
-    COEF_CONST(0.9988382929833222),
-    COEF_CONST(0.9988744127016956),
-    COEF_CONST(0.9989096045322947),
-    COEF_CONST(0.9989438871005292),
-    COEF_CONST(0.9989772787759494),
-    COEF_CONST(0.9990097976734847),
-    COEF_CONST(0.9990414616547146),
-    COEF_CONST(0.9990722883291779),
-    COEF_CONST(0.9991022950557125),
-    COEF_CONST(0.9991314989438310),
-    COEF_CONST(0.9991599168551279),
-    COEF_CONST(0.9991875654047181),
-    COEF_CONST(0.9992144609627068),
-    COEF_CONST(0.9992406196556911),
-    COEF_CONST(0.9992660573682882),
-    COEF_CONST(0.9992907897446957),
-    COEF_CONST(0.9993148321902777),
-    COEF_CONST(0.9993381998731797),
-    COEF_CONST(0.9993609077259696),
-    COEF_CONST(0.9993829704473038),
-    COEF_CONST(0.9994044025036201),
-    COEF_CONST(0.9994252181308537),
-    COEF_CONST(0.9994454313361775),
-    COEF_CONST(0.9994650558997651),
-    COEF_CONST(0.9994841053765757),
-    COEF_CONST(0.9995025930981609),
-    COEF_CONST(0.9995205321744921),
-    COEF_CONST(0.9995379354958073),
-    COEF_CONST(0.9995548157344778),
-    COEF_CONST(0.9995711853468930),
-    COEF_CONST(0.9995870565753632),
-    COEF_CONST(0.9996024414500382),
-    COEF_CONST(0.9996173517908444),
-    COEF_CONST(0.9996317992094352),
-    COEF_CONST(0.9996457951111574),
-    COEF_CONST(0.9996593506970310),
-    COEF_CONST(0.9996724769657434),
-    COEF_CONST(0.9996851847156547),
-    COEF_CONST(0.9996974845468164),
-    COEF_CONST(0.9997093868630000),
-    COEF_CONST(0.9997209018737374),
-    COEF_CONST(0.9997320395963699),
-    COEF_CONST(0.9997428098581069),
-    COEF_CONST(0.9997532222980933),
-    COEF_CONST(0.9997632863694836),
-    COEF_CONST(0.9997730113415246),
-    COEF_CONST(0.9997824063016426),
-    COEF_CONST(0.9997914801575380),
-    COEF_CONST(0.9998002416392840),
-    COEF_CONST(0.9998086993014300),
-    COEF_CONST(0.9998168615251084),
-    COEF_CONST(0.9998247365201450),
-    COEF_CONST(0.9998323323271717),
-    COEF_CONST(0.9998396568197407),
-    COEF_CONST(0.9998467177064404),
-    COEF_CONST(0.9998535225330116),
-    COEF_CONST(0.9998600786844637),
-    COEF_CONST(0.9998663933871905),
-    COEF_CONST(0.9998724737110845),
-    COEF_CONST(0.9998783265716498),
-    COEF_CONST(0.9998839587321121),
-    COEF_CONST(0.9998893768055266),
-    COEF_CONST(0.9998945872568815),
-    COEF_CONST(0.9998995964051983),
-    COEF_CONST(0.9999044104256269),
-    COEF_CONST(0.9999090353515359),
-    COEF_CONST(0.9999134770765971),
-    COEF_CONST(0.9999177413568642),
-    COEF_CONST(0.9999218338128448),
-    COEF_CONST(0.9999257599315647),
-    COEF_CONST(0.9999295250686255),
-    COEF_CONST(0.9999331344502529),
-    COEF_CONST(0.9999365931753376),
-    COEF_CONST(0.9999399062174669),
-    COEF_CONST(0.9999430784269460),
-    COEF_CONST(0.9999461145328103),
-    COEF_CONST(0.9999490191448277),
-    COEF_CONST(0.9999517967554878),
-    COEF_CONST(0.9999544517419835),
-    COEF_CONST(0.9999569883681778),
-    COEF_CONST(0.9999594107865607),
-    COEF_CONST(0.9999617230401926),
-    COEF_CONST(0.9999639290646355),
-    COEF_CONST(0.9999660326898712),
-    COEF_CONST(0.9999680376422052),
-    COEF_CONST(0.9999699475461585),
-    COEF_CONST(0.9999717659263435),
-    COEF_CONST(0.9999734962093266),
-    COEF_CONST(0.9999751417254756),
-    COEF_CONST(0.9999767057107922),
-    COEF_CONST(0.9999781913087290),
-    COEF_CONST(0.9999796015719915),
-    COEF_CONST(0.9999809394643231),
-    COEF_CONST(0.9999822078622751),
-    COEF_CONST(0.9999834095569596),
-    COEF_CONST(0.9999845472557860),
-    COEF_CONST(0.9999856235841805),
-    COEF_CONST(0.9999866410872889),
-    COEF_CONST(0.9999876022316609),
-    COEF_CONST(0.9999885094069193),
-    COEF_CONST(0.9999893649274085),
-    COEF_CONST(0.9999901710338274),
-    COEF_CONST(0.9999909298948430),
-    COEF_CONST(0.9999916436086862),
-    COEF_CONST(0.9999923142047299),
-    COEF_CONST(0.9999929436450469),
-    COEF_CONST(0.9999935338259505),
-    COEF_CONST(0.9999940865795161),
-    COEF_CONST(0.9999946036750835),
-    COEF_CONST(0.9999950868207405),
-    COEF_CONST(0.9999955376647868),
-    COEF_CONST(0.9999959577971798),
-    COEF_CONST(0.9999963487509599),
-    COEF_CONST(0.9999967120036571),
-    COEF_CONST(0.9999970489786785),
-    COEF_CONST(0.9999973610466748),
-    COEF_CONST(0.9999976495268890),
-    COEF_CONST(0.9999979156884846),
-    COEF_CONST(0.9999981607518545),
-    COEF_CONST(0.9999983858899099),
-    COEF_CONST(0.9999985922293493),
-    COEF_CONST(0.9999987808519092),
-    COEF_CONST(0.9999989527955938),
-    COEF_CONST(0.9999991090558848),
-    COEF_CONST(0.9999992505869332),
-    COEF_CONST(0.9999993783027293),
-    COEF_CONST(0.9999994930782556),
-    COEF_CONST(0.9999995957506171),
-    COEF_CONST(0.9999996871201549),
-    COEF_CONST(0.9999997679515386),
-    COEF_CONST(0.9999998389748399),
-    COEF_CONST(0.9999999008865869),
-    COEF_CONST(0.9999999543507984)
+    FRAC_CONST(0.0003021562530949),
+    FRAC_CONST(0.0004452267024786),
+    FRAC_CONST(0.0005674947527496),
+    FRAC_CONST(0.0006812465553466),
+    FRAC_CONST(0.0007910496776387),
+    FRAC_CONST(0.0008991655033895),
+    FRAC_CONST(0.0010068978259384),
+    FRAC_CONST(0.0011150758515751),
+    FRAC_CONST(0.0012242653193642),
+    FRAC_CONST(0.0013348735658205),
+    FRAC_CONST(0.0014472068670273),
+    FRAC_CONST(0.0015615039850448),
+    FRAC_CONST(0.0016779568885263),
+    FRAC_CONST(0.0017967241232412),
+    FRAC_CONST(0.0019179397560955),
+    FRAC_CONST(0.0020417195415393),
+    FRAC_CONST(0.0021681652836642),
+    FRAC_CONST(0.0022973679910599),
+    FRAC_CONST(0.0024294102029937),
+    FRAC_CONST(0.0025643677339078),
+    FRAC_CONST(0.0027023110014772),
+    FRAC_CONST(0.0028433060512612),
+    FRAC_CONST(0.0029874153568025),
+    FRAC_CONST(0.0031346984511728),
+    FRAC_CONST(0.0032852124303662),
+    FRAC_CONST(0.0034390123581190),
+    FRAC_CONST(0.0035961515940931),
+    FRAC_CONST(0.0037566820618961),
+    FRAC_CONST(0.0039206544694386),
+    FRAC_CONST(0.0040881184912194),
+    FRAC_CONST(0.0042591229199617),
+    FRAC_CONST(0.0044337157933972),
+    FRAC_CONST(0.0046119445007641),
+    FRAC_CONST(0.0047938558726415),
+    FRAC_CONST(0.0049794962570131),
+    FRAC_CONST(0.0051689115838900),
+    FRAC_CONST(0.0053621474203763),
+    FRAC_CONST(0.0055592490177131),
+    FRAC_CONST(0.0057602613515573),
+    FRAC_CONST(0.0059652291565289),
+    FRAC_CONST(0.0061741969558843),
+    FRAC_CONST(0.0063872090870253),
+    FRAC_CONST(0.0066043097234387),
+    FRAC_CONST(0.0068255428935640),
+    FRAC_CONST(0.0070509524970088),
+    FRAC_CONST(0.0072805823184660),
+    FRAC_CONST(0.0075144760396340),
+    FRAC_CONST(0.0077526772493942),
+    FRAC_CONST(0.0079952294524673),
+    FRAC_CONST(0.0082421760767325),
+    FRAC_CONST(0.0084935604793733),
+    FRAC_CONST(0.0087494259519870),
+    FRAC_CONST(0.0090098157247792),
+    FRAC_CONST(0.0092747729699467),
+    FRAC_CONST(0.0095443408043399),
+    FRAC_CONST(0.0098185622914832),
+    FRAC_CONST(0.0100974804430226),
+    FRAC_CONST(0.0103811382196612),
+    FRAC_CONST(0.0106695785316351),
+    FRAC_CONST(0.0109628442387771),
+    FRAC_CONST(0.0112609781502091),
+    FRAC_CONST(0.0115640230236993),
+    FRAC_CONST(0.0118720215647169),
+    FRAC_CONST(0.0121850164252137),
+    FRAC_CONST(0.0125030502021561),
+    FRAC_CONST(0.0128261654358321),
+    FRAC_CONST(0.0131544046079532),
+    FRAC_CONST(0.0134878101395681),
+    FRAC_CONST(0.0138264243888068),
+    FRAC_CONST(0.0141702896484671),
+    FRAC_CONST(0.0145194481434592),
+    FRAC_CONST(0.0148739420281182),
+    FRAC_CONST(0.0152338133833959),
+    FRAC_CONST(0.0155991042139432),
+    FRAC_CONST(0.0159698564450882),
+    FRAC_CONST(0.0163461119197227),
+    FRAC_CONST(0.0167279123950996),
+    FRAC_CONST(0.0171152995395520),
+    FRAC_CONST(0.0175083149291368),
+    FRAC_CONST(0.0179070000442104),
+    FRAC_CONST(0.0183113962659409),
+    FRAC_CONST(0.0187215448727609),
+    FRAC_CONST(0.0191374870367659),
+    FRAC_CONST(0.0195592638200623),
+    FRAC_CONST(0.0199869161710679),
+    FRAC_CONST(0.0204204849207691),
+    FRAC_CONST(0.0208600107789370),
+    FRAC_CONST(0.0213055343303066),
+    FRAC_CONST(0.0217570960307201),
+    FRAC_CONST(0.0222147362032386),
+    FRAC_CONST(0.0226784950342228),
+    FRAC_CONST(0.0231484125693867),
+    FRAC_CONST(0.0236245287098244),
+    FRAC_CONST(0.0241068832080138),
+    FRAC_CONST(0.0245955156637973),
+    FRAC_CONST(0.0250904655203431),
+    FRAC_CONST(0.0255917720600868),
+    FRAC_CONST(0.0260994744006559),
+    FRAC_CONST(0.0266136114907790),
+    FRAC_CONST(0.0271342221061795),
+    FRAC_CONST(0.0276613448454576),
+    FRAC_CONST(0.0281950181259587),
+    FRAC_CONST(0.0287352801796329),
+    FRAC_CONST(0.0292821690488833),
+    FRAC_CONST(0.0298357225824074),
+    FRAC_CONST(0.0303959784310299),
+    FRAC_CONST(0.0309629740435296),
+    FRAC_CONST(0.0315367466624615),
+    FRAC_CONST(0.0321173333199732),
+    FRAC_CONST(0.0327047708336193),
+    FRAC_CONST(0.0332990958021720),
+    FRAC_CONST(0.0339003446014307),
+    FRAC_CONST(0.0345085533800302),
+    FRAC_CONST(0.0351237580552491),
+    FRAC_CONST(0.0357459943088193),
+    FRAC_CONST(0.0363752975827358),
+    FRAC_CONST(0.0370117030750704),
+    FRAC_CONST(0.0376552457357870),
+    FRAC_CONST(0.0383059602625614),
+    FRAC_CONST(0.0389638810966056),
+    FRAC_CONST(0.0396290424184964),
+    FRAC_CONST(0.0403014781440112),
+    FRAC_CONST(0.0409812219199691),
+    FRAC_CONST(0.0416683071200799),
+    FRAC_CONST(0.0423627668408009),
+    FRAC_CONST(0.0430646338972016),
+    FRAC_CONST(0.0437739408188385),
+    FRAC_CONST(0.0444907198456388),
+    FRAC_CONST(0.0452150029237951),
+    FRAC_CONST(0.0459468217016708),
+    FRAC_CONST(0.0466862075257170),
+    FRAC_CONST(0.0474331914364021),
+    FRAC_CONST(0.0481878041641539),
+    FRAC_CONST(0.0489500761253148),
+    FRAC_CONST(0.0497200374181119),
+    FRAC_CONST(0.0504977178186404),
+    FRAC_CONST(0.0512831467768636),
+    FRAC_CONST(0.0520763534126273),
+    FRAC_CONST(0.0528773665116913),
+    FRAC_CONST(0.0536862145217772),
+    FRAC_CONST(0.0545029255486345),
+    FRAC_CONST(0.0553275273521232),
+    FRAC_CONST(0.0561600473423164),
+    FRAC_CONST(0.0570005125756209),
+    FRAC_CONST(0.0578489497509179),
+    FRAC_CONST(0.0587053852057233),
+    FRAC_CONST(0.0595698449123695),
+    FRAC_CONST(0.0604423544742077),
+    FRAC_CONST(0.0613229391218317),
+    FRAC_CONST(0.0622116237093247),
+    FRAC_CONST(0.0631084327105284),
+    FRAC_CONST(0.0640133902153352),
+    FRAC_CONST(0.0649265199260043),
+    FRAC_CONST(0.0658478451535027),
+    FRAC_CONST(0.0667773888138695),
+    FRAC_CONST(0.0677151734246072),
+    FRAC_CONST(0.0686612211010977),
+    FRAC_CONST(0.0696155535530446),
+    FRAC_CONST(0.0705781920809429),
+    FRAC_CONST(0.0715491575725758),
+    FRAC_CONST(0.0725284704995383),
+    FRAC_CONST(0.0735161509137906),
+    FRAC_CONST(0.0745122184442388),
+    FRAC_CONST(0.0755166922933461),
+    FRAC_CONST(0.0765295912337720),
+    FRAC_CONST(0.0775509336050437),
+    FRAC_CONST(0.0785807373102561),
+    FRAC_CONST(0.0796190198128044),
+    FRAC_CONST(0.0806657981331473),
+    FRAC_CONST(0.0817210888456026),
+    FRAC_CONST(0.0827849080751753),
+    FRAC_CONST(0.0838572714944183),
+    FRAC_CONST(0.0849381943203265),
+    FRAC_CONST(0.0860276913112652),
+    FRAC_CONST(0.0871257767639319),
+    FRAC_CONST(0.0882324645103534),
+    FRAC_CONST(0.0893477679149177),
+    FRAC_CONST(0.0904716998714418),
+    FRAC_CONST(0.0916042728002747),
+    FRAC_CONST(0.0927454986454381),
+    FRAC_CONST(0.0938953888718020),
+    FRAC_CONST(0.0950539544622996),
+    FRAC_CONST(0.0962212059151784),
+    FRAC_CONST(0.0973971532412897),
+    FRAC_CONST(0.0985818059614169),
+    FRAC_CONST(0.0997751731036425),
+    FRAC_CONST(0.1009772632007537),
+    FRAC_CONST(0.1021880842876888),
+    FRAC_CONST(0.1034076438990227),
+    FRAC_CONST(0.1046359490664932),
+    FRAC_CONST(0.1058730063165681),
+    FRAC_CONST(0.1071188216680533),
+    FRAC_CONST(0.1083734006297428),
+    FRAC_CONST(0.1096367481981100),
+    FRAC_CONST(0.1109088688550422),
+    FRAC_CONST(0.1121897665656167),
+    FRAC_CONST(0.1134794447759207),
+    FRAC_CONST(0.1147779064109143),
+    FRAC_CONST(0.1160851538723372),
+    FRAC_CONST(0.1174011890366591),
+    FRAC_CONST(0.1187260132530751),
+    FRAC_CONST(0.1200596273415457),
+    FRAC_CONST(0.1214020315908810),
+    FRAC_CONST(0.1227532257568719),
+    FRAC_CONST(0.1241132090604651),
+    FRAC_CONST(0.1254819801859856),
+    FRAC_CONST(0.1268595372794049),
+    FRAC_CONST(0.1282458779466558),
+    FRAC_CONST(0.1296409992519942),
+    FRAC_CONST(0.1310448977164081),
+    FRAC_CONST(0.1324575693160745),
+    FRAC_CONST(0.1338790094808633),
+    FRAC_CONST(0.1353092130928902),
+    FRAC_CONST(0.1367481744851168),
+    FRAC_CONST(0.1381958874400010),
+    FRAC_CONST(0.1396523451881945),
+    FRAC_CONST(0.1411175404072910),
+    FRAC_CONST(0.1425914652206223),
+    FRAC_CONST(0.1440741111961058),
+    FRAC_CONST(0.1455654693451402),
+    FRAC_CONST(0.1470655301215526),
+    FRAC_CONST(0.1485742834205956),
+    FRAC_CONST(0.1500917185779945),
+    FRAC_CONST(0.1516178243690463),
+    FRAC_CONST(0.1531525890077689),
+    FRAC_CONST(0.1546960001461024),
+    FRAC_CONST(0.1562480448731608),
+    FRAC_CONST(0.1578087097145364),
+    FRAC_CONST(0.1593779806316558),
+    FRAC_CONST(0.1609558430211876),
+    FRAC_CONST(0.1625422817145027),
+    FRAC_CONST(0.1641372809771871),
+    FRAC_CONST(0.1657408245086070),
+    FRAC_CONST(0.1673528954415270),
+    FRAC_CONST(0.1689734763417811),
+    FRAC_CONST(0.1706025492079969),
+    FRAC_CONST(0.1722400954713725),
+    FRAC_CONST(0.1738860959955082),
+    FRAC_CONST(0.1755405310762898),
+    FRAC_CONST(0.1772033804418275),
+    FRAC_CONST(0.1788746232524467),
+    FRAC_CONST(0.1805542381007349),
+    FRAC_CONST(0.1822422030116404),
+    FRAC_CONST(0.1839384954426268),
+    FRAC_CONST(0.1856430922838810),
+    FRAC_CONST(0.1873559698585756),
+    FRAC_CONST(0.1890771039231862),
+    FRAC_CONST(0.1908064696678625),
+    FRAC_CONST(0.1925440417168546),
+    FRAC_CONST(0.1942897941289937),
+    FRAC_CONST(0.1960437003982277),
+    FRAC_CONST(0.1978057334542116),
+    FRAC_CONST(0.1995758656629525),
+    FRAC_CONST(0.2013540688275098),
+    FRAC_CONST(0.2031403141887507),
+    FRAC_CONST(0.2049345724261595),
+    FRAC_CONST(0.2067368136587033),
+    FRAC_CONST(0.2085470074457521),
+    FRAC_CONST(0.2103651227880538),
+    FRAC_CONST(0.2121911281287646),
+    FRAC_CONST(0.2140249913545346),
+    FRAC_CONST(0.2158666797966480),
+    FRAC_CONST(0.2177161602322188),
+    FRAC_CONST(0.2195733988854414),
+    FRAC_CONST(0.2214383614288963),
+    FRAC_CONST(0.2233110129849106),
+    FRAC_CONST(0.2251913181269740),
+    FRAC_CONST(0.2270792408812093),
+    FRAC_CONST(0.2289747447278976),
+    FRAC_CONST(0.2308777926030592),
+    FRAC_CONST(0.2327883469000885),
+    FRAC_CONST(0.2347063694714437),
+    FRAC_CONST(0.2366318216303919),
+    FRAC_CONST(0.2385646641528076),
+    FRAC_CONST(0.2405048572790267),
+    FRAC_CONST(0.2424523607157545),
+    FRAC_CONST(0.2444071336380283),
+    FRAC_CONST(0.2463691346912334),
+    FRAC_CONST(0.2483383219931741),
+    FRAC_CONST(0.2503146531361985),
+    FRAC_CONST(0.2522980851893767),
+    FRAC_CONST(0.2542885747007335),
+    FRAC_CONST(0.2562860776995335),
+    FRAC_CONST(0.2582905496986215),
+    FRAC_CONST(0.2603019456968142),
+    FRAC_CONST(0.2623202201813464),
+    FRAC_CONST(0.2643453271303700),
+    FRAC_CONST(0.2663772200155053),
+    FRAC_CONST(0.2684158518044454),
+    FRAC_CONST(0.2704611749636135),
+    FRAC_CONST(0.2725131414608710),
+    FRAC_CONST(0.2745717027682799),
+    FRAC_CONST(0.2766368098649151),
+    FRAC_CONST(0.2787084132397296),
+    FRAC_CONST(0.2807864628944707),
+    FRAC_CONST(0.2828709083466482),
+    FRAC_CONST(0.2849616986325523),
+    FRAC_CONST(0.2870587823103237),
+    FRAC_CONST(0.2891621074630737),
+    FRAC_CONST(0.2912716217020546),
+    FRAC_CONST(0.2933872721698803),
+    FRAC_CONST(0.2955090055437973),
+    FRAC_CONST(0.2976367680390041),
+    FRAC_CONST(0.2997705054120213),
+    FRAC_CONST(0.3019101629641097),
+    FRAC_CONST(0.3040556855447379),
+    FRAC_CONST(0.3062070175550981),
+    FRAC_CONST(0.3083641029516701),
+    FRAC_CONST(0.3105268852498334),
+    FRAC_CONST(0.3126953075275265),
+    FRAC_CONST(0.3148693124289546),
+    FRAC_CONST(0.3170488421683428),
+    FRAC_CONST(0.3192338385337370),
+    FRAC_CONST(0.3214242428908514),
+    FRAC_CONST(0.3236199961869606),
+    FRAC_CONST(0.3258210389548392),
+    FRAC_CONST(0.3280273113167459),
+    FRAC_CONST(0.3302387529884521),
+    FRAC_CONST(0.3324553032833160),
+    FRAC_CONST(0.3346769011164010),
+    FRAC_CONST(0.3369034850086373),
+    FRAC_CONST(0.3391349930910280),
+    FRAC_CONST(0.3413713631088974),
+    FRAC_CONST(0.3436125324261830),
+    FRAC_CONST(0.3458584380297697),
+    FRAC_CONST(0.3481090165338656),
+    FRAC_CONST(0.3503642041844199),
+    FRAC_CONST(0.3526239368635820),
+    FRAC_CONST(0.3548881500942010),
+    FRAC_CONST(0.3571567790443668),
+    FRAC_CONST(0.3594297585319891),
+    FRAC_CONST(0.3617070230294185),
+    FRAC_CONST(0.3639885066681048),
+    FRAC_CONST(0.3662741432432950),
+    FRAC_CONST(0.3685638662187693),
+    FRAC_CONST(0.3708576087316147),
+    FRAC_CONST(0.3731553035970366),
+    FRAC_CONST(0.3754568833132069),
+    FRAC_CONST(0.3777622800661488),
+    FRAC_CONST(0.3800714257346570),
+    FRAC_CONST(0.3823842518952546),
+    FRAC_CONST(0.3847006898271841),
+    FRAC_CONST(0.3870206705174334),
+    FRAC_CONST(0.3893441246657958),
+    FRAC_CONST(0.3916709826899639),
+    FRAC_CONST(0.3940011747306560),
+    FRAC_CONST(0.3963346306567764),
+    FRAC_CONST(0.3986712800706062),
+    FRAC_CONST(0.4010110523130271),
+    FRAC_CONST(0.4033538764687756),
+    FRAC_CONST(0.4056996813717284),
+    FRAC_CONST(0.4080483956102172),
+    FRAC_CONST(0.4103999475323736),
+    FRAC_CONST(0.4127542652515031),
+    FRAC_CONST(0.4151112766514873),
+    FRAC_CONST(0.4174709093922143),
+    FRAC_CONST(0.4198330909150365),
+    FRAC_CONST(0.4221977484482556),
+    FRAC_CONST(0.4245648090126334),
+    FRAC_CONST(0.4269341994269293),
+    FRAC_CONST(0.4293058463134616),
+    FRAC_CONST(0.4316796761036958),
+    FRAC_CONST(0.4340556150438547),
+    FRAC_CONST(0.4364335892005536),
+    FRAC_CONST(0.4388135244664580),
+    FRAC_CONST(0.4411953465659639),
+    FRAC_CONST(0.4435789810609000),
+    FRAC_CONST(0.4459643533562509),
+    FRAC_CONST(0.4483513887059016),
+    FRAC_CONST(0.4507400122184019),
+    FRAC_CONST(0.4531301488627497),
+    FRAC_CONST(0.4555217234741947),
+    FRAC_CONST(0.4579146607600593),
+    FRAC_CONST(0.4603088853055777),
+    FRAC_CONST(0.4627043215797521),
+    FRAC_CONST(0.4651008939412254),
+    FRAC_CONST(0.4674985266441709),
+    FRAC_CONST(0.4698971438441951),
+    FRAC_CONST(0.4722966696042580),
+    FRAC_CONST(0.4746970279006055),
+    FRAC_CONST(0.4770981426287164),
+    FRAC_CONST(0.4794999376092619),
+    FRAC_CONST(0.4819023365940778),
+    FRAC_CONST(0.4843052632721476),
+    FRAC_CONST(0.4867086412755978),
+    FRAC_CONST(0.4891123941857028),
+    FRAC_CONST(0.4915164455388997),
+    FRAC_CONST(0.4939207188328126),
+    FRAC_CONST(0.4963251375322855),
+    FRAC_CONST(0.4987296250754225),
+    FRAC_CONST(0.5011341048796359),
+    FRAC_CONST(0.5035385003477012),
+    FRAC_CONST(0.5059427348738168),
+    FRAC_CONST(0.5083467318496706),
+    FRAC_CONST(0.5107504146705106),
+    FRAC_CONST(0.5131537067412193),
+    FRAC_CONST(0.5155565314823923),
+    FRAC_CONST(0.5179588123364193),
+    FRAC_CONST(0.5203604727735667),
+    FRAC_CONST(0.5227614362980630),
+    FRAC_CONST(0.5251616264541841),
+    FRAC_CONST(0.5275609668323384),
+    FRAC_CONST(0.5299593810751532),
+    FRAC_CONST(0.5323567928835578),
+    FRAC_CONST(0.5347531260228663),
+    FRAC_CONST(0.5371483043288580),
+    FRAC_CONST(0.5395422517138538),
+    FRAC_CONST(0.5419348921727899),
+    FRAC_CONST(0.5443261497892862),
+    FRAC_CONST(0.5467159487417104),
+    FRAC_CONST(0.5491042133092364),
+    FRAC_CONST(0.5514908678778958),
+    FRAC_CONST(0.5538758369466227),
+    FRAC_CONST(0.5562590451332913),
+    FRAC_CONST(0.5586404171807443),
+    FRAC_CONST(0.5610198779628133),
+    FRAC_CONST(0.5633973524903286),
+    FRAC_CONST(0.5657727659171199),
+    FRAC_CONST(0.5681460435460047),
+    FRAC_CONST(0.5705171108347663),
+    FRAC_CONST(0.5728858934021188),
+    FRAC_CONST(0.5752523170336598),
+    FRAC_CONST(0.5776163076878088),
+    FRAC_CONST(0.5799777915017323),
+    FRAC_CONST(0.5823366947972535),
+    FRAC_CONST(0.5846929440867458),
+    FRAC_CONST(0.5870464660790119),
+    FRAC_CONST(0.5893971876851449),
+    FRAC_CONST(0.5917450360243719),
+    FRAC_CONST(0.5940899384298793),
+    FRAC_CONST(0.5964318224546208),
+    FRAC_CONST(0.5987706158771039),
+    FRAC_CONST(0.6011062467071583),
+    FRAC_CONST(0.6034386431916822),
+    FRAC_CONST(0.6057677338203681),
+    FRAC_CONST(0.6080934473314057),
+    FRAC_CONST(0.6104157127171639),
+    FRAC_CONST(0.6127344592298474),
+    FRAC_CONST(0.6150496163871310),
+    FRAC_CONST(0.6173611139777690),
+    FRAC_CONST(0.6196688820671789),
+    FRAC_CONST(0.6219728510029997),
+    FRAC_CONST(0.6242729514206247),
+    FRAC_CONST(0.6265691142487051),
+    FRAC_CONST(0.6288612707146283),
+    FRAC_CONST(0.6311493523499663),
+    FRAC_CONST(0.6334332909958958),
+    FRAC_CONST(0.6357130188085891),
+    FRAC_CONST(0.6379884682645743),
+    FRAC_CONST(0.6402595721660647),
+    FRAC_CONST(0.6425262636462578),
+    FRAC_CONST(0.6447884761746012),
+    FRAC_CONST(0.6470461435620266),
+    FRAC_CONST(0.6492991999661505),
+    FRAC_CONST(0.6515475798964411),
+    FRAC_CONST(0.6537912182193508),
+    FRAC_CONST(0.6560300501634142),
+    FRAC_CONST(0.6582640113243098),
+    FRAC_CONST(0.6604930376698862),
+    FRAC_CONST(0.6627170655451516),
+    FRAC_CONST(0.6649360316772256),
+    FRAC_CONST(0.6671498731802533),
+    FRAC_CONST(0.6693585275602818),
+    FRAC_CONST(0.6715619327200959),
+    FRAC_CONST(0.6737600269640164),
+    FRAC_CONST(0.6759527490026566),
+    FRAC_CONST(0.6781400379576392),
+    FRAC_CONST(0.6803218333662715),
+    FRAC_CONST(0.6824980751861787),
+    FRAC_CONST(0.6846687037998949),
+    FRAC_CONST(0.6868336600194123),
+    FRAC_CONST(0.6889928850906855),
+    FRAC_CONST(0.6911463206980928),
+    FRAC_CONST(0.6932939089688525),
+    FRAC_CONST(0.6954355924773949),
+    FRAC_CONST(0.6975713142496884),
+    FRAC_CONST(0.6997010177675195),
+    FRAC_CONST(0.7018246469727265),
+    FRAC_CONST(0.7039421462713862),
+    FRAC_CONST(0.7060534605379528),
+    FRAC_CONST(0.7081585351193496),
+    FRAC_CONST(0.7102573158390105),
+    FRAC_CONST(0.7123497490008750),
+    FRAC_CONST(0.7144357813933307),
+    FRAC_CONST(0.7165153602931092),
+    FRAC_CONST(0.7185884334691287),
+    FRAC_CONST(0.7206549491862871),
+    FRAC_CONST(0.7227148562092042),
+    FRAC_CONST(0.7247681038059106),
+    FRAC_CONST(0.7268146417514855),
+    FRAC_CONST(0.7288544203316418),
+    FRAC_CONST(0.7308873903462577),
+    FRAC_CONST(0.7329135031128549),
+    FRAC_CONST(0.7349327104700221),
+    FRAC_CONST(0.7369449647807855),
+    FRAC_CONST(0.7389502189359237),
+    FRAC_CONST(0.7409484263572271),
+    FRAC_CONST(0.7429395410007016),
+    FRAC_CONST(0.7449235173597176),
+    FRAC_CONST(0.7469003104681008),
+    FRAC_CONST(0.7488698759031670),
+    FRAC_CONST(0.7508321697887005),
+    FRAC_CONST(0.7527871487978728),
+    FRAC_CONST(0.7547347701561059),
+    FRAC_CONST(0.7566749916438754),
+    FRAC_CONST(0.7586077715994560),
+    FRAC_CONST(0.7605330689216074),
+    FRAC_CONST(0.7624508430722016),
+    FRAC_CONST(0.7643610540787891),
+    FRAC_CONST(0.7662636625371070),
+    FRAC_CONST(0.7681586296135255),
+    FRAC_CONST(0.7700459170474343),
+    FRAC_CONST(0.7719254871535672),
+    FRAC_CONST(0.7737973028242671),
+    FRAC_CONST(0.7756613275316875),
+    FRAC_CONST(0.7775175253299340),
+    FRAC_CONST(0.7793658608571425),
+    FRAC_CONST(0.7812062993374951),
+    FRAC_CONST(0.7830388065831744),
+    FRAC_CONST(0.7848633489962533),
+    FRAC_CONST(0.7866798935705233),
+    FRAC_CONST(0.7884884078932579),
+    FRAC_CONST(0.7902888601469138),
+    FRAC_CONST(0.7920812191107668),
+    FRAC_CONST(0.7938654541624850),
+    FRAC_CONST(0.7956415352796368),
+    FRAC_CONST(0.7974094330411343),
+    FRAC_CONST(0.7991691186286133),
+    FRAC_CONST(0.8009205638277465),
+    FRAC_CONST(0.8026637410294932),
+    FRAC_CONST(0.8043986232312831),
+    FRAC_CONST(0.8061251840381346),
+    FRAC_CONST(0.8078433976637077),
+    FRAC_CONST(0.8095532389312917),
+    FRAC_CONST(0.8112546832747255),
+    FRAC_CONST(0.8129477067392539),
+    FRAC_CONST(0.8146322859823164),
+    FRAC_CONST(0.8163083982742698),
+    FRAC_CONST(0.8179760214990457),
+    FRAC_CONST(0.8196351341547393),
+    FRAC_CONST(0.8212857153541345),
+    FRAC_CONST(0.8229277448251595),
+    FRAC_CONST(0.8245612029112778),
+    FRAC_CONST(0.8261860705718113),
+    FRAC_CONST(0.8278023293821971),
+    FRAC_CONST(0.8294099615341773),
+    FRAC_CONST(0.8310089498359212),
+    FRAC_CONST(0.8325992777120815),
+    FRAC_CONST(0.8341809292037831),
+    FRAC_CONST(0.8357538889685445),
+    FRAC_CONST(0.8373181422801330),
+    FRAC_CONST(0.8388736750283521),
+    FRAC_CONST(0.8404204737187619),
+    FRAC_CONST(0.8419585254723335),
+    FRAC_CONST(0.8434878180250348),
+    FRAC_CONST(0.8450083397273509),
+    FRAC_CONST(0.8465200795437368),
+    FRAC_CONST(0.8480230270520029),
+    FRAC_CONST(0.8495171724426350),
+    FRAC_CONST(0.8510025065180464),
+    FRAC_CONST(0.8524790206917633),
+    FRAC_CONST(0.8539467069875448),
+    FRAC_CONST(0.8554055580384357),
+    FRAC_CONST(0.8568555670857525),
+    FRAC_CONST(0.8582967279780043),
+    FRAC_CONST(0.8597290351697464),
+    FRAC_CONST(0.8611524837203691),
+    FRAC_CONST(0.8625670692928198),
+    FRAC_CONST(0.8639727881522599),
+    FRAC_CONST(0.8653696371646555),
+    FRAC_CONST(0.8667576137953045),
+    FRAC_CONST(0.8681367161072958),
+    FRAC_CONST(0.8695069427599065),
+    FRAC_CONST(0.8708682930069319),
+    FRAC_CONST(0.8722207666949527),
+    FRAC_CONST(0.8735643642615368),
+    FRAC_CONST(0.8748990867333771),
+    FRAC_CONST(0.8762249357243662),
+    FRAC_CONST(0.8775419134336067),
+    FRAC_CONST(0.8788500226433579),
+    FRAC_CONST(0.8801492667169208),
+    FRAC_CONST(0.8814396495964587),
+    FRAC_CONST(0.8827211758007560),
+    FRAC_CONST(0.8839938504229149),
+    FRAC_CONST(0.8852576791279895),
+    FRAC_CONST(0.8865126681505587),
+    FRAC_CONST(0.8877588242922386),
+    FRAC_CONST(0.8889961549191320),
+    FRAC_CONST(0.8902246679592184),
+    FRAC_CONST(0.8914443718996848),
+    FRAC_CONST(0.8926552757841945),
+    FRAC_CONST(0.8938573892100969),
+    FRAC_CONST(0.8950507223255798),
+    FRAC_CONST(0.8962352858267605),
+    FRAC_CONST(0.8974110909547198),
+    FRAC_CONST(0.8985781494924783),
+    FRAC_CONST(0.8997364737619142),
+    FRAC_CONST(0.9008860766206249),
+    FRAC_CONST(0.9020269714587307),
+    FRAC_CONST(0.9031591721956235),
+    FRAC_CONST(0.9042826932766591),
+    FRAC_CONST(0.9053975496697941),
+    FRAC_CONST(0.9065037568621681),
+    FRAC_CONST(0.9076013308566311),
+    FRAC_CONST(0.9086902881682180),
+    FRAC_CONST(0.9097706458205682),
+    FRAC_CONST(0.9108424213422940),
+    FRAC_CONST(0.9119056327632955),
+    FRAC_CONST(0.9129602986110235),
+    FRAC_CONST(0.9140064379066919),
+    FRAC_CONST(0.9150440701614393),
+    FRAC_CONST(0.9160732153724396),
+    FRAC_CONST(0.9170938940189634),
+    FRAC_CONST(0.9181061270583908),
+    FRAC_CONST(0.9191099359221748),
+    FRAC_CONST(0.9201053425117579),
+    FRAC_CONST(0.9210923691944400),
+    FRAC_CONST(0.9220710387992010),
+    FRAC_CONST(0.9230413746124764),
+    FRAC_CONST(0.9240034003738882),
+    FRAC_CONST(0.9249571402719298),
+    FRAC_CONST(0.9259026189396085),
+    FRAC_CONST(0.9268398614500427),
+    FRAC_CONST(0.9277688933120170),
+    FRAC_CONST(0.9286897404654957),
+    FRAC_CONST(0.9296024292770939),
+    FRAC_CONST(0.9305069865355076),
+    FRAC_CONST(0.9314034394469048),
+    FRAC_CONST(0.9322918156302762),
+    FRAC_CONST(0.9331721431127471),
+    FRAC_CONST(0.9340444503248519),
+    FRAC_CONST(0.9349087660957711),
+    FRAC_CONST(0.9357651196485313),
+    FRAC_CONST(0.9366135405951697),
+    FRAC_CONST(0.9374540589318637),
+    FRAC_CONST(0.9382867050340261),
+    FRAC_CONST(0.9391115096513655),
+    FRAC_CONST(0.9399285039029165),
+    FRAC_CONST(0.9407377192720349),
+    FRAC_CONST(0.9415391876013639),
+    FRAC_CONST(0.9423329410877687),
+    FRAC_CONST(0.9431190122772415),
+    FRAC_CONST(0.9438974340597782),
+    FRAC_CONST(0.9446682396642262),
+    FRAC_CONST(0.9454314626531054),
+    FRAC_CONST(0.9461871369174033),
+    FRAC_CONST(0.9469352966713429),
+    FRAC_CONST(0.9476759764471278),
+    FRAC_CONST(0.9484092110896616),
+    FRAC_CONST(0.9491350357512457),
+    FRAC_CONST(0.9498534858862532),
+    FRAC_CONST(0.9505645972457831),
+    FRAC_CONST(0.9512684058722927),
+    FRAC_CONST(0.9519649480942105),
+    FRAC_CONST(0.9526542605205314),
+    FRAC_CONST(0.9533363800353921),
+    FRAC_CONST(0.9540113437926313),
+    FRAC_CONST(0.9546791892103320),
+    FRAC_CONST(0.9553399539653500),
+    FRAC_CONST(0.9559936759878265),
+    FRAC_CONST(0.9566403934556893),
+    FRAC_CONST(0.9572801447891388),
+    FRAC_CONST(0.9579129686451244),
+    FRAC_CONST(0.9585389039118085),
+    FRAC_CONST(0.9591579897030224),
+    FRAC_CONST(0.9597702653527108),
+    FRAC_CONST(0.9603757704093711),
+    FRAC_CONST(0.9609745446304828),
+    FRAC_CONST(0.9615666279769324),
+    FRAC_CONST(0.9621520606074324),
+    FRAC_CONST(0.9627308828729358),
+    FRAC_CONST(0.9633031353110477),
+    FRAC_CONST(0.9638688586404335),
+    FRAC_CONST(0.9644280937552258),
+    FRAC_CONST(0.9649808817194311),
+    FRAC_CONST(0.9655272637613366),
+    FRAC_CONST(0.9660672812679171),
+    FRAC_CONST(0.9666009757792454),
+    FRAC_CONST(0.9671283889829055),
+    FRAC_CONST(0.9676495627084089),
+    FRAC_CONST(0.9681645389216160),
+    FRAC_CONST(0.9686733597191652),
+    FRAC_CONST(0.9691760673229058),
+    FRAC_CONST(0.9696727040743406),
+    FRAC_CONST(0.9701633124290767),
+    FRAC_CONST(0.9706479349512860),
+    FRAC_CONST(0.9711266143081750),
+    FRAC_CONST(0.9715993932644684),
+    FRAC_CONST(0.9720663146769026),
+    FRAC_CONST(0.9725274214887337),
+    FRAC_CONST(0.9729827567242596),
+    FRAC_CONST(0.9734323634833574),
+    FRAC_CONST(0.9738762849360358),
+    FRAC_CONST(0.9743145643170059),
+    FRAC_CONST(0.9747472449202687),
+    FRAC_CONST(0.9751743700937215),
+    FRAC_CONST(0.9755959832337850),
+    FRAC_CONST(0.9760121277800496),
+    FRAC_CONST(0.9764228472099433),
+    FRAC_CONST(0.9768281850334235),
+    FRAC_CONST(0.9772281847876897),
+    FRAC_CONST(0.9776228900319223),
+    FRAC_CONST(0.9780123443420448),
+    FRAC_CONST(0.9783965913055132),
+    FRAC_CONST(0.9787756745161313),
+    FRAC_CONST(0.9791496375688939),
+    FRAC_CONST(0.9795185240548578),
+    FRAC_CONST(0.9798823775560431),
+    FRAC_CONST(0.9802412416403639),
+    FRAC_CONST(0.9805951598565897),
+    FRAC_CONST(0.9809441757293399),
+    FRAC_CONST(0.9812883327541090),
+    FRAC_CONST(0.9816276743923267),
+    FRAC_CONST(0.9819622440664515),
+    FRAC_CONST(0.9822920851550995),
+    FRAC_CONST(0.9826172409882086),
+    FRAC_CONST(0.9829377548422400),
+    FRAC_CONST(0.9832536699354163),
+    FRAC_CONST(0.9835650294229984),
+    FRAC_CONST(0.9838718763926001),
+    FRAC_CONST(0.9841742538595437),
+    FRAC_CONST(0.9844722047622547),
+    FRAC_CONST(0.9847657719576983),
+    FRAC_CONST(0.9850549982168574),
+    FRAC_CONST(0.9853399262202529),
+    FRAC_CONST(0.9856205985535073),
+    FRAC_CONST(0.9858970577029519),
+    FRAC_CONST(0.9861693460512790),
+    FRAC_CONST(0.9864375058732389),
+    FRAC_CONST(0.9867015793313820),
+    FRAC_CONST(0.9869616084718489),
+    FRAC_CONST(0.9872176352202061),
+    FRAC_CONST(0.9874697013773301),
+    FRAC_CONST(0.9877178486153397),
+    FRAC_CONST(0.9879621184735767),
+    FRAC_CONST(0.9882025523546365),
+    FRAC_CONST(0.9884391915204485),
+    FRAC_CONST(0.9886720770884069),
+    FRAC_CONST(0.9889012500275530),
+    FRAC_CONST(0.9891267511548089),
+    FRAC_CONST(0.9893486211312621),
+    FRAC_CONST(0.9895669004585049),
+    FRAC_CONST(0.9897816294750255),
+    FRAC_CONST(0.9899928483526520),
+    FRAC_CONST(0.9902005970930525),
+    FRAC_CONST(0.9904049155242876),
+    FRAC_CONST(0.9906058432974180),
+    FRAC_CONST(0.9908034198831690),
+    FRAC_CONST(0.9909976845686489),
+    FRAC_CONST(0.9911886764541239),
+    FRAC_CONST(0.9913764344498495),
+    FRAC_CONST(0.9915609972729590),
+    FRAC_CONST(0.9917424034444086),
+    FRAC_CONST(0.9919206912859797),
+    FRAC_CONST(0.9920958989173397),
+    FRAC_CONST(0.9922680642531603),
+    FRAC_CONST(0.9924372250002933),
+    FRAC_CONST(0.9926034186550070),
+    FRAC_CONST(0.9927666825002789),
+    FRAC_CONST(0.9929270536031491),
+    FRAC_CONST(0.9930845688121325),
+    FRAC_CONST(0.9932392647546895),
+    FRAC_CONST(0.9933911778347579),
+    FRAC_CONST(0.9935403442303433),
+    FRAC_CONST(0.9936867998911693),
+    FRAC_CONST(0.9938305805363887),
+    FRAC_CONST(0.9939717216523539),
+    FRAC_CONST(0.9941102584904481),
+    FRAC_CONST(0.9942462260649764),
+    FRAC_CONST(0.9943796591511174),
+    FRAC_CONST(0.9945105922829353),
+    FRAC_CONST(0.9946390597514524),
+    FRAC_CONST(0.9947650956027824),
+    FRAC_CONST(0.9948887336363228),
+    FRAC_CONST(0.9950100074030103),
+    FRAC_CONST(0.9951289502036336),
+    FRAC_CONST(0.9952455950872091),
+    FRAC_CONST(0.9953599748494155),
+    FRAC_CONST(0.9954721220310890),
+    FRAC_CONST(0.9955820689167787),
+    FRAC_CONST(0.9956898475333619),
+    FRAC_CONST(0.9957954896487196),
+    FRAC_CONST(0.9958990267704713),
+    FRAC_CONST(0.9960004901447701),
+    FRAC_CONST(0.9960999107551559),
+    FRAC_CONST(0.9961973193214694),
+    FRAC_CONST(0.9962927462988245),
+    FRAC_CONST(0.9963862218766388),
+    FRAC_CONST(0.9964777759777242),
+    FRAC_CONST(0.9965674382574342),
+    FRAC_CONST(0.9966552381028704),
+    FRAC_CONST(0.9967412046321465),
+    FRAC_CONST(0.9968253666937095),
+    FRAC_CONST(0.9969077528657186),
+    FRAC_CONST(0.9969883914554805),
+    FRAC_CONST(0.9970673104989413),
+    FRAC_CONST(0.9971445377602348),
+    FRAC_CONST(0.9972201007312871),
+    FRAC_CONST(0.9972940266314749),
+    FRAC_CONST(0.9973663424073412),
+    FRAC_CONST(0.9974370747323638),
+    FRAC_CONST(0.9975062500067785),
+    FRAC_CONST(0.9975738943574574),
+    FRAC_CONST(0.9976400336378379),
+    FRAC_CONST(0.9977046934279079),
+    FRAC_CONST(0.9977678990342401),
+    FRAC_CONST(0.9978296754900812),
+    FRAC_CONST(0.9978900475554902),
+    FRAC_CONST(0.9979490397175296),
+    FRAC_CONST(0.9980066761905056),
+    FRAC_CONST(0.9980629809162593),
+    FRAC_CONST(0.9981179775645063),
+    FRAC_CONST(0.9981716895332257),
+    FRAC_CONST(0.9982241399490979),
+    FRAC_CONST(0.9982753516679893),
+    FRAC_CONST(0.9983253472754841),
+    FRAC_CONST(0.9983741490874634),
+    FRAC_CONST(0.9984217791507299),
+    FRAC_CONST(0.9984682592436778),
+    FRAC_CONST(0.9985136108770075),
+    FRAC_CONST(0.9985578552944850),
+    FRAC_CONST(0.9986010134737439),
+    FRAC_CONST(0.9986431061271304),
+    FRAC_CONST(0.9986841537025921),
+    FRAC_CONST(0.9987241763846056),
+    FRAC_CONST(0.9987631940951476),
+    FRAC_CONST(0.9988012264947044),
+    FRAC_CONST(0.9988382929833222),
+    FRAC_CONST(0.9988744127016956),
+    FRAC_CONST(0.9989096045322947),
+    FRAC_CONST(0.9989438871005292),
+    FRAC_CONST(0.9989772787759494),
+    FRAC_CONST(0.9990097976734847),
+    FRAC_CONST(0.9990414616547146),
+    FRAC_CONST(0.9990722883291779),
+    FRAC_CONST(0.9991022950557125),
+    FRAC_CONST(0.9991314989438310),
+    FRAC_CONST(0.9991599168551279),
+    FRAC_CONST(0.9991875654047181),
+    FRAC_CONST(0.9992144609627068),
+    FRAC_CONST(0.9992406196556911),
+    FRAC_CONST(0.9992660573682882),
+    FRAC_CONST(0.9992907897446957),
+    FRAC_CONST(0.9993148321902777),
+    FRAC_CONST(0.9993381998731797),
+    FRAC_CONST(0.9993609077259696),
+    FRAC_CONST(0.9993829704473038),
+    FRAC_CONST(0.9994044025036201),
+    FRAC_CONST(0.9994252181308537),
+    FRAC_CONST(0.9994454313361775),
+    FRAC_CONST(0.9994650558997651),
+    FRAC_CONST(0.9994841053765757),
+    FRAC_CONST(0.9995025930981609),
+    FRAC_CONST(0.9995205321744921),
+    FRAC_CONST(0.9995379354958073),
+    FRAC_CONST(0.9995548157344778),
+    FRAC_CONST(0.9995711853468930),
+    FRAC_CONST(0.9995870565753632),
+    FRAC_CONST(0.9996024414500382),
+    FRAC_CONST(0.9996173517908444),
+    FRAC_CONST(0.9996317992094352),
+    FRAC_CONST(0.9996457951111574),
+    FRAC_CONST(0.9996593506970310),
+    FRAC_CONST(0.9996724769657434),
+    FRAC_CONST(0.9996851847156547),
+    FRAC_CONST(0.9996974845468164),
+    FRAC_CONST(0.9997093868630000),
+    FRAC_CONST(0.9997209018737374),
+    FRAC_CONST(0.9997320395963699),
+    FRAC_CONST(0.9997428098581069),
+    FRAC_CONST(0.9997532222980933),
+    FRAC_CONST(0.9997632863694836),
+    FRAC_CONST(0.9997730113415246),
+    FRAC_CONST(0.9997824063016426),
+    FRAC_CONST(0.9997914801575380),
+    FRAC_CONST(0.9998002416392840),
+    FRAC_CONST(0.9998086993014300),
+    FRAC_CONST(0.9998168615251084),
+    FRAC_CONST(0.9998247365201450),
+    FRAC_CONST(0.9998323323271717),
+    FRAC_CONST(0.9998396568197407),
+    FRAC_CONST(0.9998467177064404),
+    FRAC_CONST(0.9998535225330116),
+    FRAC_CONST(0.9998600786844637),
+    FRAC_CONST(0.9998663933871905),
+    FRAC_CONST(0.9998724737110845),
+    FRAC_CONST(0.9998783265716498),
+    FRAC_CONST(0.9998839587321121),
+    FRAC_CONST(0.9998893768055266),
+    FRAC_CONST(0.9998945872568815),
+    FRAC_CONST(0.9998995964051983),
+    FRAC_CONST(0.9999044104256269),
+    FRAC_CONST(0.9999090353515359),
+    FRAC_CONST(0.9999134770765971),
+    FRAC_CONST(0.9999177413568642),
+    FRAC_CONST(0.9999218338128448),
+    FRAC_CONST(0.9999257599315647),
+    FRAC_CONST(0.9999295250686255),
+    FRAC_CONST(0.9999331344502529),
+    FRAC_CONST(0.9999365931753376),
+    FRAC_CONST(0.9999399062174669),
+    FRAC_CONST(0.9999430784269460),
+    FRAC_CONST(0.9999461145328103),
+    FRAC_CONST(0.9999490191448277),
+    FRAC_CONST(0.9999517967554878),
+    FRAC_CONST(0.9999544517419835),
+    FRAC_CONST(0.9999569883681778),
+    FRAC_CONST(0.9999594107865607),
+    FRAC_CONST(0.9999617230401926),
+    FRAC_CONST(0.9999639290646355),
+    FRAC_CONST(0.9999660326898712),
+    FRAC_CONST(0.9999680376422052),
+    FRAC_CONST(0.9999699475461585),
+    FRAC_CONST(0.9999717659263435),
+    FRAC_CONST(0.9999734962093266),
+    FRAC_CONST(0.9999751417254756),
+    FRAC_CONST(0.9999767057107922),
+    FRAC_CONST(0.9999781913087290),
+    FRAC_CONST(0.9999796015719915),
+    FRAC_CONST(0.9999809394643231),
+    FRAC_CONST(0.9999822078622751),
+    FRAC_CONST(0.9999834095569596),
+    FRAC_CONST(0.9999845472557860),
+    FRAC_CONST(0.9999856235841805),
+    FRAC_CONST(0.9999866410872889),
+    FRAC_CONST(0.9999876022316609),
+    FRAC_CONST(0.9999885094069193),
+    FRAC_CONST(0.9999893649274085),
+    FRAC_CONST(0.9999901710338274),
+    FRAC_CONST(0.9999909298948430),
+    FRAC_CONST(0.9999916436086862),
+    FRAC_CONST(0.9999923142047299),
+    FRAC_CONST(0.9999929436450469),
+    FRAC_CONST(0.9999935338259505),
+    FRAC_CONST(0.9999940865795161),
+    FRAC_CONST(0.9999946036750835),
+    FRAC_CONST(0.9999950868207405),
+    FRAC_CONST(0.9999955376647868),
+    FRAC_CONST(0.9999959577971798),
+    FRAC_CONST(0.9999963487509599),
+    FRAC_CONST(0.9999967120036571),
+    FRAC_CONST(0.9999970489786785),
+    FRAC_CONST(0.9999973610466748),
+    FRAC_CONST(0.9999976495268890),
+    FRAC_CONST(0.9999979156884846),
+    FRAC_CONST(0.9999981607518545),
+    FRAC_CONST(0.9999983858899099),
+    FRAC_CONST(0.9999985922293493),
+    FRAC_CONST(0.9999987808519092),
+    FRAC_CONST(0.9999989527955938),
+    FRAC_CONST(0.9999991090558848),
+    FRAC_CONST(0.9999992505869332),
+    FRAC_CONST(0.9999993783027293),
+    FRAC_CONST(0.9999994930782556),
+    FRAC_CONST(0.9999995957506171),
+    FRAC_CONST(0.9999996871201549),
+    FRAC_CONST(0.9999997679515386),
+    FRAC_CONST(0.9999998389748399),
+    FRAC_CONST(0.9999999008865869),
+    FRAC_CONST(0.9999999543507984)
 };
 #endif
 
 real_t kbd_short_128[] =
 {
-    COEF_CONST(4.3795702929468881e-005),
-    COEF_CONST(0.00011867384265436617),
-    COEF_CONST(0.0002307165763996192),
-    COEF_CONST(0.00038947282760568383),
-    COEF_CONST(0.00060581272288302553),
-    COEF_CONST(0.00089199695169487453),
-    COEF_CONST(0.0012617254423430522),
-    COEF_CONST(0.0017301724373162003),
-    COEF_CONST(0.0023140071937421476),
-    COEF_CONST(0.0030313989666022221),
-    COEF_CONST(0.0039020049735530842),
-    COEF_CONST(0.0049469401815512024),
-    COEF_CONST(0.0061887279335368318),
-    COEF_CONST(0.0076512306364647726),
-    COEF_CONST(0.0093595599562652423),
-    COEF_CONST(0.011339966208377799),
-    COEF_CONST(0.013619706891715299),
-    COEF_CONST(0.016226894586323766),
-    COEF_CONST(0.019190324717288168),
-    COEF_CONST(0.022539283975960878),
-    COEF_CONST(0.026303340480472455),
-    COEF_CONST(0.030512117046644357),
-    COEF_CONST(0.03519504922365594),
-    COEF_CONST(0.040381130021856941),
-    COEF_CONST(0.046098643518702249),
-    COEF_CONST(0.052374889768730587),
-    COEF_CONST(0.059235903660769147),
-    COEF_CONST(0.066706170556282418),
-    COEF_CONST(0.074808341703430481),
-    COEF_CONST(0.083562952548726227),
-    COEF_CONST(0.092988147159339674),
-    COEF_CONST(0.1030994120216919),
-    COEF_CONST(0.11390932249409955),
-    COEF_CONST(0.12542730516149531),
-    COEF_CONST(0.13765941926783826),
-    COEF_CONST(0.15060816028651081),
-    COEF_CONST(0.16427228853114245),
-    COEF_CONST(0.17864668550988483),
-    COEF_CONST(0.19372224048676889),
-    COEF_CONST(0.20948576943658073),
-    COEF_CONST(0.22591996826744942),
-    COEF_CONST(0.24300340184133981),
-    COEF_CONST(0.26071052995068139),
-    COEF_CONST(0.27901177101369551),
-    COEF_CONST(0.29787360383626599),
-    COEF_CONST(0.3172587073594233),
-    COEF_CONST(0.33712613787396362),
-    COEF_CONST(0.35743154274286698),
-    COEF_CONST(0.37812740923363009),
-    COEF_CONST(0.39916334663203618),
-    COEF_CONST(0.42048639939189658),
-    COEF_CONST(0.4420413886774246),
-    COEF_CONST(0.4637712792815169),
-    COEF_CONST(0.4856175685594023),
-    COEF_CONST(0.50752069370766872),
-    COEF_CONST(0.52942045344797806),
-    COEF_CONST(0.55125643994680196),
-    COEF_CONST(0.57296847662071559),
-    COEF_CONST(0.59449705734411495),
-    COEF_CONST(0.61578378249506627),
-    COEF_CONST(0.63677178724712891),
-    COEF_CONST(0.65740615754163356),
-    COEF_CONST(0.67763432925662526),
-    COEF_CONST(0.69740646622548552),
-    COEF_CONST(0.71667581294953808),
-    COEF_CONST(0.73539901809352737),
-    COEF_CONST(0.75353642514900732),
-    COEF_CONST(0.77105232699609816),
-    COEF_CONST(0.78791518148597028),
-    COEF_CONST(0.80409778560147072),
-    COEF_CONST(0.81957740622770781),
-    COEF_CONST(0.83433586607383625),
-    COEF_CONST(0.84835958382689225),
-    COEF_CONST(0.86163956818294229),
-    COEF_CONST(0.87417136598406997),
-    COEF_CONST(0.88595496528524853),
-    COEF_CONST(0.89699465477567619),
-    COEF_CONST(0.90729884157670959),
-    COEF_CONST(0.91687983002436779),
-    COEF_CONST(0.92575356460899649),
-    COEF_CONST(0.93393934077779084),
-    COEF_CONST(0.94145948779657318),
-    COEF_CONST(0.94833902830402828),
-    COEF_CONST(0.95460531956280026),
-    COEF_CONST(0.96028768170574896),
-    COEF_CONST(0.96541701848104766),
-    COEF_CONST(0.97002543610646474),
-    COEF_CONST(0.97414586584250062),
-    COEF_CONST(0.97781169577969584),
-    COEF_CONST(0.98105641710392333),
-    COEF_CONST(0.98391328975491177),
-    COEF_CONST(0.98641503193166202),
-    COEF_CONST(0.98859353733226141),
-    COEF_CONST(0.99047962335771556),
-    COEF_CONST(0.9921028127769449),
-    COEF_CONST(0.99349115056397752),
-    COEF_CONST(0.99467105680259038),
-    COEF_CONST(0.9956672157341897),
-    COEF_CONST(0.99650250022834352),
-    COEF_CONST(0.99719793020823266),
-    COEF_CONST(0.99777266288955657),
-    COEF_CONST(0.99824401211201486),
-    COEF_CONST(0.99862749357391212),
-    COEF_CONST(0.99893689243401962),
-    COEF_CONST(0.99918434952623147),
-    COEF_CONST(0.99938046234161726),
-    COEF_CONST(0.99953439696357238),
-    COEF_CONST(0.99965400728430465),
-    COEF_CONST(0.99974595807027455),
-    COEF_CONST(0.99981584876278362),
-    COEF_CONST(0.99986833527824281),
-    COEF_CONST(0.99990724749057802),
-    COEF_CONST(0.99993570051598468),
-    COEF_CONST(0.99995619835942084),
-    COEF_CONST(0.99997072890647543),
-    COEF_CONST(0.9999808496399144),
-    COEF_CONST(0.99998776381655818),
-    COEF_CONST(0.99999238714961569),
-    COEF_CONST(0.99999540529959718),
-    COEF_CONST(0.99999732268176988),
-    COEF_CONST(0.99999850325054862),
-    COEF_CONST(0.99999920402413744),
-    COEF_CONST(0.9999996021706401),
-    COEF_CONST(0.99999981649545566),
-    COEF_CONST(0.99999992415545547),
-    COEF_CONST(0.99999997338493041),
-    COEF_CONST(0.99999999295825959),
-    COEF_CONST(0.99999999904096815)
+    FRAC_CONST(4.3795702929468881e-005),
+    FRAC_CONST(0.00011867384265436617),
+    FRAC_CONST(0.0002307165763996192),
+    FRAC_CONST(0.00038947282760568383),
+    FRAC_CONST(0.00060581272288302553),
+    FRAC_CONST(0.00089199695169487453),
+    FRAC_CONST(0.0012617254423430522),
+    FRAC_CONST(0.0017301724373162003),
+    FRAC_CONST(0.0023140071937421476),
+    FRAC_CONST(0.0030313989666022221),
+    FRAC_CONST(0.0039020049735530842),
+    FRAC_CONST(0.0049469401815512024),
+    FRAC_CONST(0.0061887279335368318),
+    FRAC_CONST(0.0076512306364647726),
+    FRAC_CONST(0.0093595599562652423),
+    FRAC_CONST(0.011339966208377799),
+    FRAC_CONST(0.013619706891715299),
+    FRAC_CONST(0.016226894586323766),
+    FRAC_CONST(0.019190324717288168),
+    FRAC_CONST(0.022539283975960878),
+    FRAC_CONST(0.026303340480472455),
+    FRAC_CONST(0.030512117046644357),
+    FRAC_CONST(0.03519504922365594),
+    FRAC_CONST(0.040381130021856941),
+    FRAC_CONST(0.046098643518702249),
+    FRAC_CONST(0.052374889768730587),
+    FRAC_CONST(0.059235903660769147),
+    FRAC_CONST(0.066706170556282418),
+    FRAC_CONST(0.074808341703430481),
+    FRAC_CONST(0.083562952548726227),
+    FRAC_CONST(0.092988147159339674),
+    FRAC_CONST(0.1030994120216919),
+    FRAC_CONST(0.11390932249409955),
+    FRAC_CONST(0.12542730516149531),
+    FRAC_CONST(0.13765941926783826),
+    FRAC_CONST(0.15060816028651081),
+    FRAC_CONST(0.16427228853114245),
+    FRAC_CONST(0.17864668550988483),
+    FRAC_CONST(0.19372224048676889),
+    FRAC_CONST(0.20948576943658073),
+    FRAC_CONST(0.22591996826744942),
+    FRAC_CONST(0.24300340184133981),
+    FRAC_CONST(0.26071052995068139),
+    FRAC_CONST(0.27901177101369551),
+    FRAC_CONST(0.29787360383626599),
+    FRAC_CONST(0.3172587073594233),
+    FRAC_CONST(0.33712613787396362),
+    FRAC_CONST(0.35743154274286698),
+    FRAC_CONST(0.37812740923363009),
+    FRAC_CONST(0.39916334663203618),
+    FRAC_CONST(0.42048639939189658),
+    FRAC_CONST(0.4420413886774246),
+    FRAC_CONST(0.4637712792815169),
+    FRAC_CONST(0.4856175685594023),
+    FRAC_CONST(0.50752069370766872),
+    FRAC_CONST(0.52942045344797806),
+    FRAC_CONST(0.55125643994680196),
+    FRAC_CONST(0.57296847662071559),
+    FRAC_CONST(0.59449705734411495),
+    FRAC_CONST(0.61578378249506627),
+    FRAC_CONST(0.63677178724712891),
+    FRAC_CONST(0.65740615754163356),
+    FRAC_CONST(0.67763432925662526),
+    FRAC_CONST(0.69740646622548552),
+    FRAC_CONST(0.71667581294953808),
+    FRAC_CONST(0.73539901809352737),
+    FRAC_CONST(0.75353642514900732),
+    FRAC_CONST(0.77105232699609816),
+    FRAC_CONST(0.78791518148597028),
+    FRAC_CONST(0.80409778560147072),
+    FRAC_CONST(0.81957740622770781),
+    FRAC_CONST(0.83433586607383625),
+    FRAC_CONST(0.84835958382689225),
+    FRAC_CONST(0.86163956818294229),
+    FRAC_CONST(0.87417136598406997),
+    FRAC_CONST(0.88595496528524853),
+    FRAC_CONST(0.89699465477567619),
+    FRAC_CONST(0.90729884157670959),
+    FRAC_CONST(0.91687983002436779),
+    FRAC_CONST(0.92575356460899649),
+    FRAC_CONST(0.93393934077779084),
+    FRAC_CONST(0.94145948779657318),
+    FRAC_CONST(0.94833902830402828),
+    FRAC_CONST(0.95460531956280026),
+    FRAC_CONST(0.96028768170574896),
+    FRAC_CONST(0.96541701848104766),
+    FRAC_CONST(0.97002543610646474),
+    FRAC_CONST(0.97414586584250062),
+    FRAC_CONST(0.97781169577969584),
+    FRAC_CONST(0.98105641710392333),
+    FRAC_CONST(0.98391328975491177),
+    FRAC_CONST(0.98641503193166202),
+    FRAC_CONST(0.98859353733226141),
+    FRAC_CONST(0.99047962335771556),
+    FRAC_CONST(0.9921028127769449),
+    FRAC_CONST(0.99349115056397752),
+    FRAC_CONST(0.99467105680259038),
+    FRAC_CONST(0.9956672157341897),
+    FRAC_CONST(0.99650250022834352),
+    FRAC_CONST(0.99719793020823266),
+    FRAC_CONST(0.99777266288955657),
+    FRAC_CONST(0.99824401211201486),
+    FRAC_CONST(0.99862749357391212),
+    FRAC_CONST(0.99893689243401962),
+    FRAC_CONST(0.99918434952623147),
+    FRAC_CONST(0.99938046234161726),
+    FRAC_CONST(0.99953439696357238),
+    FRAC_CONST(0.99965400728430465),
+    FRAC_CONST(0.99974595807027455),
+    FRAC_CONST(0.99981584876278362),
+    FRAC_CONST(0.99986833527824281),
+    FRAC_CONST(0.99990724749057802),
+    FRAC_CONST(0.99993570051598468),
+    FRAC_CONST(0.99995619835942084),
+    FRAC_CONST(0.99997072890647543),
+    FRAC_CONST(0.9999808496399144),
+    FRAC_CONST(0.99998776381655818),
+    FRAC_CONST(0.99999238714961569),
+    FRAC_CONST(0.99999540529959718),
+    FRAC_CONST(0.99999732268176988),
+    FRAC_CONST(0.99999850325054862),
+    FRAC_CONST(0.99999920402413744),
+    FRAC_CONST(0.9999996021706401),
+    FRAC_CONST(0.99999981649545566),
+    FRAC_CONST(0.99999992415545547),
+    FRAC_CONST(0.99999997338493041),
+    FRAC_CONST(0.99999999295825959),
+    FRAC_CONST(0.99999999904096815)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t kbd_short_120[] =
 {
-    COEF_CONST(0.0000452320086910),
-    COEF_CONST(0.0001274564692111),
-    COEF_CONST(0.0002529398385345),
-    COEF_CONST(0.0004335140496648),
-    COEF_CONST(0.0006827100966952),
-    COEF_CONST(0.0010158708222246),
-    COEF_CONST(0.0014502162869659),
-    COEF_CONST(0.0020048865156264),
-    COEF_CONST(0.0027009618393178),
-    COEF_CONST(0.0035614590925043),
-    COEF_CONST(0.0046113018122711),
-    COEF_CONST(0.0058772627936484),
-    COEF_CONST(0.0073878776584103),
-    COEF_CONST(0.0091733284512589),
-    COEF_CONST(0.0112652966728373),
-    COEF_CONST(0.0136967855861945),
-    COEF_CONST(0.0165019120857793),
-    COEF_CONST(0.0197156688892217),
-    COEF_CONST(0.0233736582950619),
-    COEF_CONST(0.0275117992367496),
-    COEF_CONST(0.0321660098468534),
-    COEF_CONST(0.0373718682174417),
-    COEF_CONST(0.0431642544948834),
-    COEF_CONST(0.0495769778717676),
-    COEF_CONST(0.0566423924273392),
-    COEF_CONST(0.0643910061132260),
-    COEF_CONST(0.0728510874761729),
-    COEF_CONST(0.0820482749475221),
-    COEF_CONST(0.0920051937045235),
-    COEF_CONST(0.1027410852163450),
-    COEF_CONST(0.1142714546239370),
-    COEF_CONST(0.1266077410648368),
-    COEF_CONST(0.1397570159398145),
-    COEF_CONST(0.1537217139274270),
-    COEF_CONST(0.1684994012857075),
-    COEF_CONST(0.1840825856392944),
-    COEF_CONST(0.2004585710384133),
-    COEF_CONST(0.2176093615976121),
-    COEF_CONST(0.2355116164824983),
-    COEF_CONST(0.2541366584185075),
-    COEF_CONST(0.2734505372545160),
-    COEF_CONST(0.2934141494343369),
-    COEF_CONST(0.3139834135200387),
-    COEF_CONST(0.3351095011824163),
-    COEF_CONST(0.3567391223361566),
-    COEF_CONST(0.3788148623608774),
-    COEF_CONST(0.4012755686250732),
-    COEF_CONST(0.4240567828288110),
-    COEF_CONST(0.4470912150133537),
-    COEF_CONST(0.4703092544619664),
-    COEF_CONST(0.4936395121456694),
-    COEF_CONST(0.5170093888596962),
-    COEF_CONST(0.5403456627591340),
-    COEF_CONST(0.5635750896430154),
-    COEF_CONST(0.5866250090612892),
-    COEF_CONST(0.6094239491338723),
-    COEF_CONST(0.6319022228794100),
-    COEF_CONST(0.6539925088563087),
-    COEF_CONST(0.6756304090216887),
-    COEF_CONST(0.6967549769155277),
-    COEF_CONST(0.7173092095766250),
-    COEF_CONST(0.7372404969921184),
-    COEF_CONST(0.7565010233699827),
-    COEF_CONST(0.7750481150999984),
-    COEF_CONST(0.7928445309277697),
-    COEF_CONST(0.8098586906021583),
-    COEF_CONST(0.8260648390616000),
-    COEF_CONST(0.8414431440907889),
-    COEF_CONST(0.8559797262966709),
-    COEF_CONST(0.8696666212110165),
-    COEF_CONST(0.8825016743142358),
-    COEF_CONST(0.8944883707784486),
-    COEF_CONST(0.9056356027326216),
-    COEF_CONST(0.9159573778427816),
-    COEF_CONST(0.9254724739583072),
-    COEF_CONST(0.9342040454819434),
-    COEF_CONST(0.9421791879559176),
-    COEF_CONST(0.9494284680976784),
-    COEF_CONST(0.9559854271440150),
-    COEF_CONST(0.9618860658493898),
-    COEF_CONST(0.9671683198119525),
-    COEF_CONST(0.9718715339497299),
-    COEF_CONST(0.9760359449042233),
-    COEF_CONST(0.9797021798981759),
-    COEF_CONST(0.9829107801140203),
-    COEF_CONST(0.9857017559923277),
-    COEF_CONST(0.9881141809867999),
-    COEF_CONST(0.9901858292742826),
-    COEF_CONST(0.9919528617340944),
-    COEF_CONST(0.9934495632180476),
-    COEF_CONST(0.9947081327749199),
-    COEF_CONST(0.9957585271195989),
-    COEF_CONST(0.9966283562984427),
-    COEF_CONST(0.9973428292485683),
-    COEF_CONST(0.9979247458259197),
-    COEF_CONST(0.9983945309245774),
-    COEF_CONST(0.9987703055583410),
-    COEF_CONST(0.9990679892449266),
-    COEF_CONST(0.9993014277313617),
-    COEF_CONST(0.9994825400228521),
-    COEF_CONST(0.9996214788122335),
-    COEF_CONST(0.9997267987294857),
-    COEF_CONST(0.9998056273097539),
-    COEF_CONST(0.9998638341781910),
-    COEF_CONST(0.9999061946325793),
-    COEF_CONST(0.9999365445321382),
-    COEF_CONST(0.9999579241373735),
-    COEF_CONST(0.9999727092594598),
-    COEF_CONST(0.9999827287418790),
-    COEF_CONST(0.9999893678912771),
-    COEF_CONST(0.9999936579844555),
-    COEF_CONST(0.9999963523959187),
-    COEF_CONST(0.9999979902130101),
-    COEF_CONST(0.9999989484358076),
-    COEF_CONST(0.9999994840031031),
-    COEF_CONST(0.9999997669534347),
-    COEF_CONST(0.9999999060327799),
-    COEF_CONST(0.9999999680107184),
-    COEF_CONST(0.9999999918774242),
-    COEF_CONST(0.9999999989770326)
+    FRAC_CONST(0.0000452320086910),
+    FRAC_CONST(0.0001274564692111),
+    FRAC_CONST(0.0002529398385345),
+    FRAC_CONST(0.0004335140496648),
+    FRAC_CONST(0.0006827100966952),
+    FRAC_CONST(0.0010158708222246),
+    FRAC_CONST(0.0014502162869659),
+    FRAC_CONST(0.0020048865156264),
+    FRAC_CONST(0.0027009618393178),
+    FRAC_CONST(0.0035614590925043),
+    FRAC_CONST(0.0046113018122711),
+    FRAC_CONST(0.0058772627936484),
+    FRAC_CONST(0.0073878776584103),
+    FRAC_CONST(0.0091733284512589),
+    FRAC_CONST(0.0112652966728373),
+    FRAC_CONST(0.0136967855861945),
+    FRAC_CONST(0.0165019120857793),
+    FRAC_CONST(0.0197156688892217),
+    FRAC_CONST(0.0233736582950619),
+    FRAC_CONST(0.0275117992367496),
+    FRAC_CONST(0.0321660098468534),
+    FRAC_CONST(0.0373718682174417),
+    FRAC_CONST(0.0431642544948834),
+    FRAC_CONST(0.0495769778717676),
+    FRAC_CONST(0.0566423924273392),
+    FRAC_CONST(0.0643910061132260),
+    FRAC_CONST(0.0728510874761729),
+    FRAC_CONST(0.0820482749475221),
+    FRAC_CONST(0.0920051937045235),
+    FRAC_CONST(0.1027410852163450),
+    FRAC_CONST(0.1142714546239370),
+    FRAC_CONST(0.1266077410648368),
+    FRAC_CONST(0.1397570159398145),
+    FRAC_CONST(0.1537217139274270),
+    FRAC_CONST(0.1684994012857075),
+    FRAC_CONST(0.1840825856392944),
+    FRAC_CONST(0.2004585710384133),
+    FRAC_CONST(0.2176093615976121),
+    FRAC_CONST(0.2355116164824983),
+    FRAC_CONST(0.2541366584185075),
+    FRAC_CONST(0.2734505372545160),
+    FRAC_CONST(0.2934141494343369),
+    FRAC_CONST(0.3139834135200387),
+    FRAC_CONST(0.3351095011824163),
+    FRAC_CONST(0.3567391223361566),
+    FRAC_CONST(0.3788148623608774),
+    FRAC_CONST(0.4012755686250732),
+    FRAC_CONST(0.4240567828288110),
+    FRAC_CONST(0.4470912150133537),
+    FRAC_CONST(0.4703092544619664),
+    FRAC_CONST(0.4936395121456694),
+    FRAC_CONST(0.5170093888596962),
+    FRAC_CONST(0.5403456627591340),
+    FRAC_CONST(0.5635750896430154),
+    FRAC_CONST(0.5866250090612892),
+    FRAC_CONST(0.6094239491338723),
+    FRAC_CONST(0.6319022228794100),
+    FRAC_CONST(0.6539925088563087),
+    FRAC_CONST(0.6756304090216887),
+    FRAC_CONST(0.6967549769155277),
+    FRAC_CONST(0.7173092095766250),
+    FRAC_CONST(0.7372404969921184),
+    FRAC_CONST(0.7565010233699827),
+    FRAC_CONST(0.7750481150999984),
+    FRAC_CONST(0.7928445309277697),
+    FRAC_CONST(0.8098586906021583),
+    FRAC_CONST(0.8260648390616000),
+    FRAC_CONST(0.8414431440907889),
+    FRAC_CONST(0.8559797262966709),
+    FRAC_CONST(0.8696666212110165),
+    FRAC_CONST(0.8825016743142358),
+    FRAC_CONST(0.8944883707784486),
+    FRAC_CONST(0.9056356027326216),
+    FRAC_CONST(0.9159573778427816),
+    FRAC_CONST(0.9254724739583072),
+    FRAC_CONST(0.9342040454819434),
+    FRAC_CONST(0.9421791879559176),
+    FRAC_CONST(0.9494284680976784),
+    FRAC_CONST(0.9559854271440150),
+    FRAC_CONST(0.9618860658493898),
+    FRAC_CONST(0.9671683198119525),
+    FRAC_CONST(0.9718715339497299),
+    FRAC_CONST(0.9760359449042233),
+    FRAC_CONST(0.9797021798981759),
+    FRAC_CONST(0.9829107801140203),
+    FRAC_CONST(0.9857017559923277),
+    FRAC_CONST(0.9881141809867999),
+    FRAC_CONST(0.9901858292742826),
+    FRAC_CONST(0.9919528617340944),
+    FRAC_CONST(0.9934495632180476),
+    FRAC_CONST(0.9947081327749199),
+    FRAC_CONST(0.9957585271195989),
+    FRAC_CONST(0.9966283562984427),
+    FRAC_CONST(0.9973428292485683),
+    FRAC_CONST(0.9979247458259197),
+    FRAC_CONST(0.9983945309245774),
+    FRAC_CONST(0.9987703055583410),
+    FRAC_CONST(0.9990679892449266),
+    FRAC_CONST(0.9993014277313617),
+    FRAC_CONST(0.9994825400228521),
+    FRAC_CONST(0.9996214788122335),
+    FRAC_CONST(0.9997267987294857),
+    FRAC_CONST(0.9998056273097539),
+    FRAC_CONST(0.9998638341781910),
+    FRAC_CONST(0.9999061946325793),
+    FRAC_CONST(0.9999365445321382),
+    FRAC_CONST(0.9999579241373735),
+    FRAC_CONST(0.9999727092594598),
+    FRAC_CONST(0.9999827287418790),
+    FRAC_CONST(0.9999893678912771),
+    FRAC_CONST(0.9999936579844555),
+    FRAC_CONST(0.9999963523959187),
+    FRAC_CONST(0.9999979902130101),
+    FRAC_CONST(0.9999989484358076),
+    FRAC_CONST(0.9999994840031031),
+    FRAC_CONST(0.9999997669534347),
+    FRAC_CONST(0.9999999060327799),
+    FRAC_CONST(0.9999999680107184),
+    FRAC_CONST(0.9999999918774242),
+    FRAC_CONST(0.9999999989770326)
 };
 #endif
 
--- a/libfaad/lt_predict.c
+++ b/libfaad/lt_predict.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: lt_predict.c,v 1.17 2003/11/07 21:04:14 menno Exp $
+** $Id: lt_predict.c,v 1.18 2003/11/12 20:47:58 menno Exp $
 **/
 
 
--- a/libfaad/lt_predict.h
+++ b/libfaad/lt_predict.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: lt_predict.h,v 1.10 2003/11/04 21:43:30 menno Exp $
+** $Id: lt_predict.h,v 1.12 2003/12/17 14:43:16 menno Exp $
 **/
 
 #ifdef LTP_DEC
--- a/libfaad/mdct.c
+++ b/libfaad/mdct.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: mdct.c,v 1.33 2003/11/06 14:08:58 menno Exp $
+** $Id: mdct.c,v 1.34 2003/11/12 20:47:58 menno Exp $
 **/
 
 /*
@@ -64,23 +64,57 @@
 #ifdef FIXED_POINT
 real_t const_tab[][5] =
 {
-    { COEF_CONST(1), COEF_CONST(0.9999952938), COEF_CONST(0.0030679568),
-        COEF_CONST(0.9999999265), COEF_CONST(0.0003834952) }, /* 2048 */
-    { COEF_CONST(/* sqrt(1024/960) */ 1.03279556), COEF_CONST(0.9999946356), COEF_CONST(0.0032724866),
-        COEF_CONST(0), COEF_CONST(0.0004090615) }, /* 1920 */
-    { COEF_CONST(1), COEF_CONST(0.9999811649), COEF_CONST(0.0061358847),
-        COEF_CONST(0.9999997020), COEF_CONST(0.0007669903) }, /* 1024 */
-    { COEF_CONST(/* sqrt(512/480) */ 1.03279556), COEF_CONST(0.9999786019), COEF_CONST(0.0065449383),
-        COEF_CONST(0.9999996424), COEF_CONST(0.0008181230) }, /* 960 */
-    { COEF_CONST(1), COEF_CONST(0.9996988177), COEF_CONST(0.0245412290),
-        COEF_CONST(0.9999952912), COEF_CONST(0.0030679568) }, /* 256 */
-    { COEF_CONST(/* sqrt(256/240) */ 1.03279556), COEF_CONST(0.9996573329), COEF_CONST(0.0261769500),
-        COEF_CONST(0.9999946356), COEF_CONST(0.0032724866) }  /* 240 */
+    {    /* 2048 */
+        COEF_CONST(1),
+        FRAC_CONST(0.99999529380957619),
+        FRAC_CONST(0.0030679567629659761),
+        FRAC_CONST(0.99999992646571789),
+        FRAC_CONST(0.00038349518757139556)
+    }, { /* 1920 */
+        COEF_CONST(/* sqrt(1024/960) */ 1.0327955589886444),
+        FRAC_CONST(0.99999464540169647),
+        FRAC_CONST(0.0032724865065266251),
+        FRAC_CONST(0.99999991633432805),
+        FRAC_CONST(0.00040906153202803459)
+    }, { /* 1024 */
+        COEF_CONST(1),
+        FRAC_CONST(0.99998117528260111),
+        FRAC_CONST(0.0061358846491544753),
+        FRAC_CONST(0.99999970586288223),
+        FRAC_CONST(0.00076699031874270449)
+    }, { /* 960 */
+        COEF_CONST(/* sqrt(512/480) */ 1.0327955589886444),
+        FRAC_CONST(0.99997858166412923),
+        FRAC_CONST(0.0065449379673518581),
+        FRAC_CONST(0.99999966533732598),
+        FRAC_CONST(0.00081812299560725323)
+    }, { /* 256 */
+        COEF_CONST(1),
+        FRAC_CONST(0.99969881869620425),
+        FRAC_CONST(0.024541228522912288),
+        FRAC_CONST(0.99999529380957619),
+        FRAC_CONST(0.0030679567629659761)
+    }, {  /* 240 */
+        COEF_CONST(/* sqrt(256/240) */ 1.0327955589886444),
+        FRAC_CONST(0.99965732497555726),
+        FRAC_CONST(0.026176948307873149),
+        FRAC_CONST(0.99999464540169647),
+        FRAC_CONST(0.0032724865065266251)
+    }
 #ifdef SSR_DEC
-   ,{ COEF_CONST(0), COEF_CONST(0.999924702), COEF_CONST(0.012271538),
-        COEF_CONST(0.999998823), COEF_CONST(0.00153398) }, /* 512 */
-    { COEF_CONST(0), COEF_CONST(0.995184727), COEF_CONST(0.09801714),
-        COEF_CONST(0.999924702), COEF_CONST(0.012271538) }  /* 64 */
+    ,{   /* 512 */
+        COEF_CONST(1),
+        FRAC_CONST(0.9999247018391445),
+        FRAC_CONST(0.012271538285719925),
+        FRAC_CONST(0.99999882345170188),
+        FRAC_CONST(0.0015339801862847655)
+    }, { /* 64 */
+        COEF_CONST(1),
+        FRAC_CONST(0.99518472667219693),
+        FRAC_CONST(0.098017140329560604),
+        FRAC_CONST(0.9999247018391445),
+        FRAC_CONST(0.012271538285719925)
+    }
 #endif
 };
 #endif
@@ -140,16 +174,16 @@
     for (k = 0; k < N/4; k++)
     {
 #ifdef FIXED_POINT
-        RE(mdct->sincos[k]) = -1*MUL_C_C(c,scale);
-        IM(mdct->sincos[k]) = -1*MUL_C_C(s,scale);
+        RE(mdct->sincos[k]) = c; //MUL_C_C(c,scale);
+        IM(mdct->sincos[k]) = s; //MUL_C_C(s,scale);
 
         cold = c;
-        c = MUL_C_C(c,cangle) - MUL_C_C(s,sangle);
-        s = MUL_C_C(s,cangle) + MUL_C_C(cold,sangle);
+        c = MUL_F(c,cangle) - MUL_F(s,sangle);
+        s = MUL_F(s,cangle) + MUL_F(cold,sangle);
 #else
         /* no recurrence, just sines */
-        RE(mdct->sincos[k]) = -scale*(real_t)(cos(2.0*M_PI*(k+1./8.) / (real_t)N));
-        IM(mdct->sincos[k]) = -scale*(real_t)(sin(2.0*M_PI*(k+1./8.) / (real_t)N));
+        RE(mdct->sincos[k]) = scale*(real_t)(cos(2.0*M_PI*(k+1./8.) / (real_t)N));
+        IM(mdct->sincos[k]) = scale*(real_t)(sin(2.0*M_PI*(k+1./8.) / (real_t)N));
 #endif
     }
 
@@ -187,8 +221,8 @@
     /* pre-IFFT complex multiplication */
     for (k = 0; k < N4; k++)
     {
-        RE(Z1[k]) = MUL_R_C(X_in[N2 - 1 - 2*k], RE(sincos[k])) - MUL_R_C(X_in[2*k], IM(sincos[k]));
-        IM(Z1[k]) = MUL_R_C(X_in[2*k], RE(sincos[k])) + MUL_R_C(X_in[N2 - 1 - 2*k], IM(sincos[k]));
+        ComplexMult(&IM(Z1[k]), &RE(Z1[k]),
+            X_in[2*k], X_in[N2 - 1 - 2*k], RE(sincos[k]), IM(sincos[k]));
     }
 
     /* complex IFFT, any non-scaling FFT can be used here */
@@ -199,9 +233,9 @@
     {
         RE(x) = RE(Z1[k]);
         IM(x) = IM(Z1[k]);
+        ComplexMult(&IM(Z1[k]), &RE(Z1[k]),
+            IM(x), RE(x), RE(sincos[k]), IM(sincos[k]));
 
-        RE(Z1[k]) = MUL_R_C(RE(x), RE(sincos[k])) - MUL_R_C(IM(x), IM(sincos[k]));
-        IM(Z1[k]) = MUL_R_C(IM(x), RE(sincos[k])) + MUL_R_C(RE(x), IM(sincos[k]));
 #ifdef FIXED_POINT
 #if (REAL_BITS == 16)
         if (abs(RE(Z1[k])) > REAL_CONST(16383.5))
@@ -263,20 +297,20 @@
         RE(x) = X_in[N - N4 - 1 - n] + X_in[N - N4 +     n];
         IM(x) = X_in[    N4 +     n] - X_in[    N4 - 1 - n];
 
-        RE(Z1[k]) = -MUL_R_C(RE(x), RE(sincos[k])) - MUL_R_C(IM(x), IM(sincos[k]));
-        IM(Z1[k]) = -MUL_R_C(IM(x), RE(sincos[k])) + MUL_R_C(RE(x), IM(sincos[k]));
+        ComplexMult(&RE(Z1[k]), &IM(Z1[k]),
+            RE(x), IM(x), RE(sincos[k]), IM(sincos[k]));
 
-        RE(Z1[k]) = MUL(RE(Z1[k]), scale);
-        IM(Z1[k]) = MUL(IM(Z1[k]), scale);
+        RE(Z1[k]) = MUL_R(RE(Z1[k]), scale);
+        IM(Z1[k]) = MUL_R(IM(Z1[k]), scale);
 
         RE(x) =  X_in[N2 - 1 - n] - X_in[        n];
         IM(x) =  X_in[N2 +     n] + X_in[N - 1 - n];
 
-        RE(Z1[k + N8]) = -MUL_R_C(RE(x), RE(sincos[k + N8])) - MUL_R_C(IM(x), IM(sincos[k + N8]));
-        IM(Z1[k + N8]) = -MUL_R_C(IM(x), RE(sincos[k + N8])) + MUL_R_C(RE(x), IM(sincos[k + N8]));
+        ComplexMult(&RE(Z1[k + N8]), &IM(Z1[k + N8]),
+            RE(x), IM(x), RE(sincos[k + N8]), IM(sincos[k + N8]));
 
-        RE(Z1[k + N8]) = MUL(RE(Z1[k + N8]), scale);
-        IM(Z1[k + N8]) = MUL(IM(Z1[k + N8]), scale);
+        RE(Z1[k + N8]) = MUL_R(RE(Z1[k + N8]), scale);
+        IM(Z1[k + N8]) = MUL_R(IM(Z1[k + N8]), scale);
     }
 
     /* complex FFT, any non-scaling FFT can be used here  */
@@ -286,13 +320,13 @@
     for (k = 0; k < N4; k++)
     {
         uint16_t n = k << 1;
-        RE(x) = MUL_R_C(RE(Z1[k]), RE(sincos[k])) + MUL_R_C(IM(Z1[k]), IM(sincos[k]));
-        IM(x) = MUL_R_C(IM(Z1[k]), RE(sincos[k])) - MUL_R_C(RE(Z1[k]), IM(sincos[k]));
+        ComplexMult(&RE(x), &IM(x),
+            RE(Z1[k]), IM(Z1[k]), RE(sincos[k]), IM(sincos[k]));
 
-        X_out[         n] =  RE(x);
-        X_out[N2 - 1 - n] = -IM(x);
-        X_out[N2 +     n] =  IM(x);
-        X_out[N  - 1 - n] = -RE(x);
+        X_out[         n] = -RE(x);
+        X_out[N2 - 1 - n] =  IM(x);
+        X_out[N2 +     n] = -IM(x);
+        X_out[N  - 1 - n] =  RE(x);
     }
 }
 #endif
--- a/libfaad/output.c
+++ b/libfaad/output.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: output.c,v 1.28 2003/11/07 21:04:14 menno Exp $
+** $Id: output.c,v 1.29 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
--- a/libfaad/pns.c
+++ b/libfaad/pns.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: pns.c,v 1.26 2003/11/04 21:43:30 menno Exp $
+** $Id: pns.c,v 1.28 2003/12/17 14:43:16 menno Exp $
 **/
 
 #include "common.h"
@@ -116,7 +116,7 @@
         else
             tmp = (tmp & ((1<<(REAL_BITS-1))-1));
 
-        energy += MUL(tmp,tmp);
+        energy += MUL_R(tmp,tmp);
 
         spec[i] = tmp;
     }
@@ -138,11 +138,11 @@
             scale <<= exp;
 
         if (frac)
-            scale = MUL_R_C(scale, pow2_table[frac + 3]);
+            scale = MUL_C(scale, pow2_table[frac + 3]);
 
         for (i = 0; i < size; i++)
         {
-            spec[i] = MUL(spec[i], scale);
+            spec[i] = MUL_R(spec[i], scale);
         }
     }
 #endif
--- a/libfaad/rvlc.c
+++ b/libfaad/rvlc.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: rvlc.c,v 1.10 2003/11/04 21:43:30 menno Exp $
+** $Id: rvlc.c,v 1.11 2003/11/12 20:47:58 menno Exp $
 **/
 
 /* RVLC scalefactor decoding
--- a/libfaad/sbr_dct.c
+++ b/libfaad/sbr_dct.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_dct.c,v 1.7 2003/11/02 20:24:04 menno Exp $
+** $Id: sbr_dct.c,v 1.8 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
@@ -34,7 +34,6 @@
 #pragma warning(disable:4244)
 #endif
 
-#define MUL_C_R(B,A) MUL_R_C(A,B)
 
 #include "sbr_dct.h"
 
@@ -71,13 +70,13 @@
     real_t f261, f262, f263, f264, f265, f266, f267, f268, f269, f270;
     real_t f271, f272;
 
-    f0 = MUL_C_R(COEF_CONST(0.7071067811865476), x[16]);
+    f0 = MUL_C(COEF_CONST(0.7071067811865476), x[16]);
     f1 = x[0] - f0;
     f2 = x[0] + f0;
     f3 = x[8] + x[24];
-    f4 = MUL_C_R(COEF_CONST(1.3065629648763766), x[8]);
-    f5 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f3);
-    f6 = MUL_C_R(COEF_CONST((-0.5411961001461967)), x[24]);
+    f4 = MUL_C(COEF_CONST(1.3065629648763766), x[8]);
+    f5 = MUL_C(COEF_CONST((-0.9238795325112866)), f3);
+    f6 = MUL_C(COEF_CONST((-0.5411961001461967)), x[24]);
     f7 = f4 + f5;
     f8 = f6 - f5;
     f9 = f2 - f8;
@@ -85,23 +84,23 @@
     f11 = f1 - f7;
     f12 = f1 + f7;
     f13 = x[4] + x[28];
-    f14 = MUL_C_R(COEF_CONST(1.1758756024193588), x[4]);
-    f15 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f13);
-    f16 = MUL_C_R(COEF_CONST((-0.7856949583871021)), x[28]);
+    f14 = MUL_C(COEF_CONST(1.1758756024193588), x[4]);
+    f15 = MUL_C(COEF_CONST((-0.9807852804032304)), f13);
+    f16 = MUL_C(COEF_CONST((-0.7856949583871021)), x[28]);
     f17 = f14 + f15;
     f18 = f16 - f15;
     f19 = x[12] + x[20];
-    f20 = MUL_C_R(COEF_CONST(1.3870398453221473), x[12]);
-    f21 = MUL_C_R(COEF_CONST((-0.8314696123025455)), f19);
-    f22 = MUL_C_R(COEF_CONST((-0.2758993792829436)), x[20]);
+    f20 = MUL_C(COEF_CONST(1.3870398453221473), x[12]);
+    f21 = MUL_C(COEF_CONST((-0.8314696123025455)), f19);
+    f22 = MUL_C(COEF_CONST((-0.2758993792829436)), x[20]);
     f23 = f20 + f21;
     f24 = f22 - f21;
     f25 = f18 - f24;
     f26 = f18 + f24;
-    f27 = MUL_C_R(COEF_CONST(0.7071067811865476), f25);
+    f27 = MUL_C(COEF_CONST(0.7071067811865476), f25);
     f28 = f17 - f23;
     f29 = f17 + f23;
-    f30 = MUL_C_R(COEF_CONST(0.7071067811865476), f29);
+    f30 = MUL_C(COEF_CONST(0.7071067811865476), f29);
     f31 = f27 - f30;
     f32 = f27 + f30;
     f33 = f10 - f26;
@@ -113,27 +112,27 @@
     f39 = f9 - f28;
     f40 = f9 + f28;
     f41 = x[2] + x[30];
-    f42 = MUL_C_R(COEF_CONST(1.0932018670017569), x[2]);
-    f43 = MUL_C_R(COEF_CONST((-0.9951847266721969)), f41);
-    f44 = MUL_C_R(COEF_CONST((-0.8971675863426368)), x[30]);
+    f42 = MUL_C(COEF_CONST(1.0932018670017569), x[2]);
+    f43 = MUL_C(COEF_CONST((-0.9951847266721969)), f41);
+    f44 = MUL_C(COEF_CONST((-0.8971675863426368)), x[30]);
     f45 = f42 + f43;
     f46 = f44 - f43;
     f47 = x[6] + x[26];
-    f48 = MUL_C_R(COEF_CONST(1.2472250129866711), x[6]);
-    f49 = MUL_C_R(COEF_CONST((-0.9569403357322089)), f47);
-    f50 = MUL_C_R(COEF_CONST((-0.6666556584777469)), x[26]);
+    f48 = MUL_C(COEF_CONST(1.2472250129866711), x[6]);
+    f49 = MUL_C(COEF_CONST((-0.9569403357322089)), f47);
+    f50 = MUL_C(COEF_CONST((-0.6666556584777469)), x[26]);
     f51 = f48 + f49;
     f52 = f50 - f49;
     f53 = x[10] + x[22];
-    f54 = MUL_C_R(COEF_CONST(1.3533180011743526), x[10]);
-    f55 = MUL_C_R(COEF_CONST((-0.8819212643483551)), f53);
-    f56 = MUL_C_R(COEF_CONST((-0.4105245275223575)), x[22]);
+    f54 = MUL_C(COEF_CONST(1.3533180011743526), x[10]);
+    f55 = MUL_C(COEF_CONST((-0.8819212643483551)), f53);
+    f56 = MUL_C(COEF_CONST((-0.4105245275223575)), x[22]);
     f57 = f54 + f55;
     f58 = f56 - f55;
     f59 = x[14] + x[18];
-    f60 = MUL_C_R(COEF_CONST(1.4074037375263826), x[14]);
-    f61 = MUL_C_R(COEF_CONST((-0.7730104533627369)), f59);
-    f62 = MUL_C_R(COEF_CONST((-0.1386171691990913)), x[18]);
+    f60 = MUL_C(COEF_CONST(1.4074037375263826), x[14]);
+    f61 = MUL_C(COEF_CONST((-0.7730104533627369)), f59);
+    f62 = MUL_C(COEF_CONST((-0.1386171691990913)), x[18]);
     f63 = f60 + f61;
     f64 = f62 - f61;
     f65 = f46 - f64;
@@ -142,11 +141,11 @@
     f68 = f52 + f58;
     f69 = f66 - f68;
     f70 = f66 + f68;
-    f71 = MUL_C_R(COEF_CONST(0.7071067811865476), f69);
+    f71 = MUL_C(COEF_CONST(0.7071067811865476), f69);
     f72 = f65 + f67;
-    f73 = MUL_C_R(COEF_CONST(1.3065629648763766), f65);
-    f74 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f72);
-    f75 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f67);
+    f73 = MUL_C(COEF_CONST(1.3065629648763766), f65);
+    f74 = MUL_C(COEF_CONST((-0.9238795325112866)), f72);
+    f75 = MUL_C(COEF_CONST((-0.5411961001461967)), f67);
     f76 = f73 + f74;
     f77 = f75 - f74;
     f78 = f45 - f63;
@@ -154,14 +153,14 @@
     f80 = f51 - f57;
     f81 = f51 + f57;
     f82 = f79 + f81;
-    f83 = MUL_C_R(COEF_CONST(1.3065629648763770), f79);
-    f84 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f82);
-    f85 = MUL_C_R(COEF_CONST(0.5411961001461961), f81);
+    f83 = MUL_C(COEF_CONST(1.3065629648763770), f79);
+    f84 = MUL_C(COEF_CONST((-0.3826834323650904)), f82);
+    f85 = MUL_C(COEF_CONST(0.5411961001461961), f81);
     f86 = f83 + f84;
     f87 = f85 - f84;
     f88 = f78 - f80;
     f89 = f78 + f80;
-    f90 = MUL_C_R(COEF_CONST(0.7071067811865476), f89);
+    f90 = MUL_C(COEF_CONST(0.7071067811865476), f89);
     f91 = f77 - f87;
     f92 = f77 + f87;
     f93 = f71 - f90;
@@ -185,51 +184,51 @@
     f111 = f33 - f88;
     f112 = f33 + f88;
     f113 = x[1] + x[31];
-    f114 = MUL_C_R(COEF_CONST(1.0478631305325901), x[1]);
-    f115 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f113);
-    f116 = MUL_C_R(COEF_CONST((-0.9497277818777548)), x[31]);
+    f114 = MUL_C(COEF_CONST(1.0478631305325901), x[1]);
+    f115 = MUL_C(COEF_CONST((-0.9987954562051724)), f113);
+    f116 = MUL_C(COEF_CONST((-0.9497277818777548)), x[31]);
     f117 = f114 + f115;
     f118 = f116 - f115;
     f119 = x[5] + x[27];
-    f120 = MUL_C_R(COEF_CONST(1.2130114330978077), x[5]);
-    f121 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f119);
-    f122 = MUL_C_R(COEF_CONST((-0.7270510732912803)), x[27]);
+    f120 = MUL_C(COEF_CONST(1.2130114330978077), x[5]);
+    f121 = MUL_C(COEF_CONST((-0.9700312531945440)), f119);
+    f122 = MUL_C(COEF_CONST((-0.7270510732912803)), x[27]);
     f123 = f120 + f121;
     f124 = f122 - f121;
     f125 = x[9] + x[23];
-    f126 = MUL_C_R(COEF_CONST(1.3315443865537255), x[9]);
-    f127 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f125);
-    f128 = MUL_C_R(COEF_CONST((-0.4764341996931612)), x[23]);
+    f126 = MUL_C(COEF_CONST(1.3315443865537255), x[9]);
+    f127 = MUL_C(COEF_CONST((-0.9039892931234433)), f125);
+    f128 = MUL_C(COEF_CONST((-0.4764341996931612)), x[23]);
     f129 = f126 + f127;
     f130 = f128 - f127;
     f131 = x[13] + x[19];
-    f132 = MUL_C_R(COEF_CONST(1.3989068359730781), x[13]);
-    f133 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f131);
-    f134 = MUL_C_R(COEF_CONST((-0.2075082269882124)), x[19]);
+    f132 = MUL_C(COEF_CONST(1.3989068359730781), x[13]);
+    f133 = MUL_C(COEF_CONST((-0.8032075314806453)), f131);
+    f134 = MUL_C(COEF_CONST((-0.2075082269882124)), x[19]);
     f135 = f132 + f133;
     f136 = f134 - f133;
     f137 = x[17] + x[15];
-    f138 = MUL_C_R(COEF_CONST(1.4125100802019777), x[17]);
-    f139 = MUL_C_R(COEF_CONST((-0.6715589548470187)), f137);
-    f140 = MUL_C_R(COEF_CONST(0.0693921705079402), x[15]);
+    f138 = MUL_C(COEF_CONST(1.4125100802019777), x[17]);
+    f139 = MUL_C(COEF_CONST((-0.6715589548470187)), f137);
+    f140 = MUL_C(COEF_CONST(0.0693921705079402), x[15]);
     f141 = f138 + f139;
     f142 = f140 - f139;
     f143 = x[21] + x[11];
-    f144 = MUL_C_R(COEF_CONST(1.3718313541934939), x[21]);
-    f145 = MUL_C_R(COEF_CONST((-0.5141027441932219)), f143);
-    f146 = MUL_C_R(COEF_CONST(0.3436258658070501), x[11]);
+    f144 = MUL_C(COEF_CONST(1.3718313541934939), x[21]);
+    f145 = MUL_C(COEF_CONST((-0.5141027441932219)), f143);
+    f146 = MUL_C(COEF_CONST(0.3436258658070501), x[11]);
     f147 = f144 + f145;
     f148 = f146 - f145;
     f149 = x[25] + x[7];
-    f150 = MUL_C_R(COEF_CONST(1.2784339185752409), x[25]);
-    f151 = MUL_C_R(COEF_CONST((-0.3368898533922200)), f149);
-    f152 = MUL_C_R(COEF_CONST(0.6046542117908008), x[7]);
+    f150 = MUL_C(COEF_CONST(1.2784339185752409), x[25]);
+    f151 = MUL_C(COEF_CONST((-0.3368898533922200)), f149);
+    f152 = MUL_C(COEF_CONST(0.6046542117908008), x[7]);
     f153 = f150 + f151;
     f154 = f152 - f151;
     f155 = x[29] + x[3];
-    f156 = MUL_C_R(COEF_CONST(1.1359069844201433), x[29]);
-    f157 = MUL_C_R(COEF_CONST((-0.1467304744553624)), f155);
-    f158 = MUL_C_R(COEF_CONST(0.8424460355094185), x[3]);
+    f156 = MUL_C(COEF_CONST(1.1359069844201433), x[29]);
+    f157 = MUL_C(COEF_CONST((-0.1467304744553624)), f155);
+    f158 = MUL_C(COEF_CONST(0.8424460355094185), x[3]);
     f159 = f156 + f157;
     f160 = f158 - f157;
     f161 = f118 - f142;
@@ -249,27 +248,27 @@
     f175 = f135 - f159;
     f176 = f135 + f159;
     f177 = f161 + f163;
-    f178 = MUL_C_R(COEF_CONST(1.1758756024193588), f161);
-    f179 = MUL_C_R(COEF_CONST((-0.9807852804032304)), f177);
-    f180 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f163);
+    f178 = MUL_C(COEF_CONST(1.1758756024193588), f161);
+    f179 = MUL_C(COEF_CONST((-0.9807852804032304)), f177);
+    f180 = MUL_C(COEF_CONST((-0.7856949583871021)), f163);
     f181 = f178 + f179;
     f182 = f180 - f179;
     f183 = f165 + f167;
-    f184 = MUL_C_R(COEF_CONST(1.3870398453221475), f165);
-    f185 = MUL_C_R(COEF_CONST((-0.5555702330196022)), f183);
-    f186 = MUL_C_R(COEF_CONST(0.2758993792829431), f167);
+    f184 = MUL_C(COEF_CONST(1.3870398453221475), f165);
+    f185 = MUL_C(COEF_CONST((-0.5555702330196022)), f183);
+    f186 = MUL_C(COEF_CONST(0.2758993792829431), f167);
     f187 = f184 + f185;
     f188 = f186 - f185;
     f189 = f169 + f171;
-    f190 = MUL_C_R(COEF_CONST(0.7856949583871022), f169);
-    f191 = MUL_C_R(COEF_CONST(0.1950903220161283), f189);
-    f192 = MUL_C_R(COEF_CONST(1.1758756024193586), f171);
+    f190 = MUL_C(COEF_CONST(0.7856949583871022), f169);
+    f191 = MUL_C(COEF_CONST(0.1950903220161283), f189);
+    f192 = MUL_C(COEF_CONST(1.1758756024193586), f171);
     f193 = f190 + f191;
     f194 = f192 - f191;
     f195 = f173 + f175;
-    f196 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f173);
-    f197 = MUL_C_R(COEF_CONST(0.8314696123025452), f195);
-    f198 = MUL_C_R(COEF_CONST(1.3870398453221475), f175);
+    f196 = MUL_C(COEF_CONST((-0.2758993792829430)), f173);
+    f197 = MUL_C(COEF_CONST(0.8314696123025452), f195);
+    f198 = MUL_C(COEF_CONST(1.3870398453221475), f175);
     f199 = f196 + f197;
     f200 = f198 - f197;
     f201 = f162 - f170;
@@ -289,27 +288,27 @@
     f215 = f187 - f199;
     f216 = f187 + f199;
     f217 = f201 + f203;
-    f218 = MUL_C_R(COEF_CONST(1.3065629648763766), f201);
-    f219 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f217);
-    f220 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f203);
+    f218 = MUL_C(COEF_CONST(1.3065629648763766), f201);
+    f219 = MUL_C(COEF_CONST((-0.9238795325112866)), f217);
+    f220 = MUL_C(COEF_CONST((-0.5411961001461967)), f203);
     f221 = f218 + f219;
     f222 = f220 - f219;
     f223 = f205 + f207;
-    f224 = MUL_C_R(COEF_CONST(0.5411961001461969), f205);
-    f225 = MUL_C_R(COEF_CONST(0.3826834323650898), f223);
-    f226 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
+    f224 = MUL_C(COEF_CONST(0.5411961001461969), f205);
+    f225 = MUL_C(COEF_CONST(0.3826834323650898), f223);
+    f226 = MUL_C(COEF_CONST(1.3065629648763766), f207);
     f227 = f224 + f225;
     f228 = f226 - f225;
     f229 = f209 + f211;
-    f230 = MUL_C_R(COEF_CONST(1.3065629648763766), f209);
-    f231 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f229);
-    f232 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f211);
+    f230 = MUL_C(COEF_CONST(1.3065629648763766), f209);
+    f231 = MUL_C(COEF_CONST((-0.9238795325112866)), f229);
+    f232 = MUL_C(COEF_CONST((-0.5411961001461967)), f211);
     f233 = f230 + f231;
     f234 = f232 - f231;
     f235 = f213 + f215;
-    f236 = MUL_C_R(COEF_CONST(0.5411961001461969), f213);
-    f237 = MUL_C_R(COEF_CONST(0.3826834323650898), f235);
-    f238 = MUL_C_R(COEF_CONST(1.3065629648763766), f215);
+    f236 = MUL_C(COEF_CONST(0.5411961001461969), f213);
+    f237 = MUL_C(COEF_CONST(0.3826834323650898), f235);
+    f238 = MUL_C(COEF_CONST(1.3065629648763766), f215);
     f239 = f236 + f237;
     f240 = f238 - f237;
     f241 = f202 - f206;
@@ -330,20 +329,20 @@
     f256 = f233 + f239;
     f257 = f241 - f243;
     f258 = f241 + f243;
-    f259 = MUL_C_R(COEF_CONST(0.7071067811865474), f257);
-    f260 = MUL_C_R(COEF_CONST(0.7071067811865474), f258);
+    f259 = MUL_C(COEF_CONST(0.7071067811865474), f257);
+    f260 = MUL_C(COEF_CONST(0.7071067811865474), f258);
     f261 = f245 - f247;
     f262 = f245 + f247;
-    f263 = MUL_C_R(COEF_CONST(0.7071067811865474), f261);
-    f264 = MUL_C_R(COEF_CONST(0.7071067811865474), f262);
+    f263 = MUL_C(COEF_CONST(0.7071067811865474), f261);
+    f264 = MUL_C(COEF_CONST(0.7071067811865474), f262);
     f265 = f249 - f251;
     f266 = f249 + f251;
-    f267 = MUL_C_R(COEF_CONST(0.7071067811865474), f265);
-    f268 = MUL_C_R(COEF_CONST(0.7071067811865474), f266);
+    f267 = MUL_C(COEF_CONST(0.7071067811865474), f265);
+    f268 = MUL_C(COEF_CONST(0.7071067811865474), f266);
     f269 = f253 - f255;
     f270 = f253 + f255;
-    f271 = MUL_C_R(COEF_CONST(0.7071067811865474), f269);
-    f272 = MUL_C_R(COEF_CONST(0.7071067811865474), f270);
+    f271 = MUL_C(COEF_CONST(0.7071067811865474), f269);
+    f272 = MUL_C(COEF_CONST(0.7071067811865474), f270);
     y[31] = f98 - f242;
     y[0] = f98 + f242;
     y[30] = f100 - f250;
@@ -509,41 +508,41 @@
     f61 = f53 + f55;
     f62 = f59 - f61;
     y[0] = f59 + f61;
-    y[32] = MUL_C_R(COEF_CONST(0.7071067811865476), f62);
+    y[32] = MUL_C(COEF_CONST(0.7071067811865476), f62);
     f65 = f58 + f60;
-    f66 = MUL_C_R(COEF_CONST(1.3065629648763766), f58);
-    f67 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f65);
-    f68 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f60);
+    f66 = MUL_C(COEF_CONST(1.3065629648763766), f58);
+    f67 = MUL_C(COEF_CONST((-0.9238795325112866)), f65);
+    f68 = MUL_C(COEF_CONST((-0.5411961001461967)), f60);
     y[48] = f66 + f67;
     y[16] = f68 - f67;
     f71 = f52 - f54;
     f72 = f52 + f54;
-    f73 = MUL_C_R(COEF_CONST(0.7071067811865476), f72);
-    f74 = MUL_C_R(COEF_CONST(0.7071067811865476), f71);
+    f73 = MUL_C(COEF_CONST(0.7071067811865476), f72);
+    f74 = MUL_C(COEF_CONST(0.7071067811865476), f71);
     f75 = f50 - f73;
     f76 = f50 + f73;
     f77 = f56 - f74;
     f78 = f56 + f74;
     f79 = f78 + f76;
-    f80 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f78);
-    f81 = MUL_C_R(COEF_CONST(0.9807852804032304), f79);
-    f82 = MUL_C_R(COEF_CONST(1.1758756024193588), f76);
+    f80 = MUL_C(COEF_CONST((-0.7856949583871021)), f78);
+    f81 = MUL_C(COEF_CONST(0.9807852804032304), f79);
+    f82 = MUL_C(COEF_CONST(1.1758756024193588), f76);
     y[8] = f80 + f81;
     y[56] = f82 - f81;
     f85 = f77 + f75;
-    f86 = MUL_C_R(COEF_CONST(0.2758993792829431), f77);
-    f87 = MUL_C_R(COEF_CONST(0.5555702330196022), f85);
-    f88 = MUL_C_R(COEF_CONST(1.3870398453221475), f75);
+    f86 = MUL_C(COEF_CONST(0.2758993792829431), f77);
+    f87 = MUL_C(COEF_CONST(0.5555702330196022), f85);
+    f88 = MUL_C(COEF_CONST(1.3870398453221475), f75);
     y[40] = f86 + f87;
     y[24] = f88 - f87;
     f91 = f40 - f42;
     f92 = f40 + f42;
-    f93 = MUL_C_R(COEF_CONST(0.7071067811865476), f92);
-    f94 = MUL_C_R(COEF_CONST(0.7071067811865476), f91);
+    f93 = MUL_C(COEF_CONST(0.7071067811865476), f92);
+    f94 = MUL_C(COEF_CONST(0.7071067811865476), f91);
     f95 = f38 - f44;
     f96 = f38 + f44;
-    f97 = MUL_C_R(COEF_CONST(0.7071067811865476), f96);
-    f98 = MUL_C_R(COEF_CONST(0.7071067811865476), f95);
+    f97 = MUL_C(COEF_CONST(0.7071067811865476), f96);
+    f98 = MUL_C(COEF_CONST(0.7071067811865476), f95);
     f99 = f34 - f93;
     f100 = f34 + f93;
     f101 = f48 - f94;
@@ -553,15 +552,15 @@
     f105 = f46 - f98;
     f106 = f46 + f98;
     f107 = f106 + f104;
-    f108 = MUL_C_R(COEF_CONST((-0.5411961001461969)), f106);
-    f109 = MUL_C_R(COEF_CONST(0.9238795325112867), f107);
-    f110 = MUL_C_R(COEF_CONST(1.3065629648763766), f104);
+    f108 = MUL_C(COEF_CONST((-0.5411961001461969)), f106);
+    f109 = MUL_C(COEF_CONST(0.9238795325112867), f107);
+    f110 = MUL_C(COEF_CONST(1.3065629648763766), f104);
     f111 = f108 + f109;
     f112 = f110 - f109;
     f113 = f105 + f103;
-    f114 = MUL_C_R(COEF_CONST(1.3065629648763770), f105);
-    f115 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f113);
-    f116 = MUL_C_R(COEF_CONST(0.5411961001461961), f103);
+    f114 = MUL_C(COEF_CONST(1.3065629648763770), f105);
+    f115 = MUL_C(COEF_CONST((-0.3826834323650904)), f113);
+    f116 = MUL_C(COEF_CONST(0.5411961001461961), f103);
     f117 = f114 + f115;
     f118 = f116 - f115;
     f119 = f100 - f111;
@@ -573,75 +572,75 @@
     f125 = f101 - f118;
     f126 = f101 + f118;
     f127 = f122 + f120;
-    f128 = MUL_C_R(COEF_CONST((-0.8971675863426361)), f122);
-    f129 = MUL_C_R(COEF_CONST(0.9951847266721968), f127);
-    f130 = MUL_C_R(COEF_CONST(1.0932018670017576), f120);
+    f128 = MUL_C(COEF_CONST((-0.8971675863426361)), f122);
+    f129 = MUL_C(COEF_CONST(0.9951847266721968), f127);
+    f130 = MUL_C(COEF_CONST(1.0932018670017576), f120);
     y[4] = f128 + f129;
     y[60] = f130 - f129;
     f133 = f126 + f124;
-    f134 = MUL_C_R(COEF_CONST((-0.4105245275223571)), f126);
-    f135 = MUL_C_R(COEF_CONST(0.8819212643483549), f133);
-    f136 = MUL_C_R(COEF_CONST(1.3533180011743529), f124);
+    f134 = MUL_C(COEF_CONST((-0.4105245275223571)), f126);
+    f135 = MUL_C(COEF_CONST(0.8819212643483549), f133);
+    f136 = MUL_C(COEF_CONST(1.3533180011743529), f124);
     y[20] = f134 + f135;
     y[44] = f136 - f135;
     f139 = f121 + f119;
-    f140 = MUL_C_R(COEF_CONST(0.1386171691990915), f121);
-    f141 = MUL_C_R(COEF_CONST(0.6343932841636455), f139);
-    f142 = MUL_C_R(COEF_CONST(1.4074037375263826), f119);
+    f140 = MUL_C(COEF_CONST(0.1386171691990915), f121);
+    f141 = MUL_C(COEF_CONST(0.6343932841636455), f139);
+    f142 = MUL_C(COEF_CONST(1.4074037375263826), f119);
     y[36] = f140 + f141;
     y[28] = f142 - f141;
     f145 = f125 + f123;
-    f146 = MUL_C_R(COEF_CONST(0.6666556584777466), f125);
-    f147 = MUL_C_R(COEF_CONST(0.2902846772544623), f145);
-    f148 = MUL_C_R(COEF_CONST(1.2472250129866711), f123);
+    f146 = MUL_C(COEF_CONST(0.6666556584777466), f125);
+    f147 = MUL_C(COEF_CONST(0.2902846772544623), f145);
+    f148 = MUL_C(COEF_CONST(1.2472250129866711), f123);
     y[52] = f146 + f147;
     y[12] = f148 - f147;
     f151 = f2 + f32;
-    f152 = MUL_C_R(COEF_CONST(1.0478631305325901), f2);
-    f153 = MUL_C_R(COEF_CONST((-0.9987954562051724)), f151);
-    f154 = MUL_C_R(COEF_CONST((-0.9497277818777548)), f32);
+    f152 = MUL_C(COEF_CONST(1.0478631305325901), f2);
+    f153 = MUL_C(COEF_CONST((-0.9987954562051724)), f151);
+    f154 = MUL_C(COEF_CONST((-0.9497277818777548)), f32);
     f155 = f152 + f153;
     f156 = f154 - f153;
     f157 = f4 + f30;
-    f158 = MUL_C_R(COEF_CONST(1.1359069844201428), f4);
-    f159 = MUL_C_R(COEF_CONST((-0.9891765099647809)), f157);
-    f160 = MUL_C_R(COEF_CONST((-0.8424460355094190)), f30);
+    f158 = MUL_C(COEF_CONST(1.1359069844201428), f4);
+    f159 = MUL_C(COEF_CONST((-0.9891765099647809)), f157);
+    f160 = MUL_C(COEF_CONST((-0.8424460355094190)), f30);
     f161 = f158 + f159;
     f162 = f160 - f159;
     f163 = f6 + f28;
-    f164 = MUL_C_R(COEF_CONST(1.2130114330978077), f6);
-    f165 = MUL_C_R(COEF_CONST((-0.9700312531945440)), f163);
-    f166 = MUL_C_R(COEF_CONST((-0.7270510732912803)), f28);
+    f164 = MUL_C(COEF_CONST(1.2130114330978077), f6);
+    f165 = MUL_C(COEF_CONST((-0.9700312531945440)), f163);
+    f166 = MUL_C(COEF_CONST((-0.7270510732912803)), f28);
     f167 = f164 + f165;
     f168 = f166 - f165;
     f169 = f8 + f26;
-    f170 = MUL_C_R(COEF_CONST(1.2784339185752405), f8);
-    f171 = MUL_C_R(COEF_CONST((-0.9415440651830209)), f169);
-    f172 = MUL_C_R(COEF_CONST((-0.6046542117908014)), f26);
+    f170 = MUL_C(COEF_CONST(1.2784339185752405), f8);
+    f171 = MUL_C(COEF_CONST((-0.9415440651830209)), f169);
+    f172 = MUL_C(COEF_CONST((-0.6046542117908014)), f26);
     f173 = f170 + f171;
     f174 = f172 - f171;
     f175 = f10 + f24;
-    f176 = MUL_C_R(COEF_CONST(1.3315443865537255), f10);
-    f177 = MUL_C_R(COEF_CONST((-0.9039892931234433)), f175);
-    f178 = MUL_C_R(COEF_CONST((-0.4764341996931612)), f24);
+    f176 = MUL_C(COEF_CONST(1.3315443865537255), f10);
+    f177 = MUL_C(COEF_CONST((-0.9039892931234433)), f175);
+    f178 = MUL_C(COEF_CONST((-0.4764341996931612)), f24);
     f179 = f176 + f177;
     f180 = f178 - f177;
     f181 = f12 + f22;
-    f182 = MUL_C_R(COEF_CONST(1.3718313541934939), f12);
-    f183 = MUL_C_R(COEF_CONST((-0.8577286100002722)), f181);
-    f184 = MUL_C_R(COEF_CONST((-0.3436258658070507)), f22);
+    f182 = MUL_C(COEF_CONST(1.3718313541934939), f12);
+    f183 = MUL_C(COEF_CONST((-0.8577286100002722)), f181);
+    f184 = MUL_C(COEF_CONST((-0.3436258658070507)), f22);
     f185 = f182 + f183;
     f186 = f184 - f183;
     f187 = f14 + f20;
-    f188 = MUL_C_R(COEF_CONST(1.3989068359730781), f14);
-    f189 = MUL_C_R(COEF_CONST((-0.8032075314806453)), f187);
-    f190 = MUL_C_R(COEF_CONST((-0.2075082269882124)), f20);
+    f188 = MUL_C(COEF_CONST(1.3989068359730781), f14);
+    f189 = MUL_C(COEF_CONST((-0.8032075314806453)), f187);
+    f190 = MUL_C(COEF_CONST((-0.2075082269882124)), f20);
     f191 = f188 + f189;
     f192 = f190 - f189;
     f193 = f16 + f18;
-    f194 = MUL_C_R(COEF_CONST(1.4125100802019774), f16);
-    f195 = MUL_C_R(COEF_CONST((-0.7409511253549591)), f193);
-    f196 = MUL_C_R(COEF_CONST((-0.0693921705079408)), f18);
+    f194 = MUL_C(COEF_CONST(1.4125100802019774), f16);
+    f195 = MUL_C(COEF_CONST((-0.7409511253549591)), f193);
+    f196 = MUL_C(COEF_CONST((-0.0693921705079408)), f18);
     f197 = f194 + f195;
     f198 = f196 - f195;
     f199 = f156 - f198;
@@ -658,31 +657,31 @@
     f210 = f202 + f204;
     f211 = f208 - f210;
     y[2] = f208 + f210;
-    f213 = MUL_C_R(COEF_CONST(0.7071067811865476), f211);
+    f213 = MUL_C(COEF_CONST(0.7071067811865476), f211);
     f214 = f207 + f209;
-    f215 = MUL_C_R(COEF_CONST(1.3065629648763766), f207);
-    f216 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f214);
-    f217 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f209);
+    f215 = MUL_C(COEF_CONST(1.3065629648763766), f207);
+    f216 = MUL_C(COEF_CONST((-0.9238795325112866)), f214);
+    f217 = MUL_C(COEF_CONST((-0.5411961001461967)), f209);
     f218 = f215 + f216;
     f219 = f217 - f216;
     f220 = f201 - f203;
     f221 = f201 + f203;
-    f222 = MUL_C_R(COEF_CONST(0.7071067811865476), f221);
-    f223 = MUL_C_R(COEF_CONST(0.7071067811865476), f220);
+    f222 = MUL_C(COEF_CONST(0.7071067811865476), f221);
+    f223 = MUL_C(COEF_CONST(0.7071067811865476), f220);
     f224 = f199 - f222;
     f225 = f199 + f222;
     f226 = f205 - f223;
     f227 = f205 + f223;
     f228 = f227 + f225;
-    f229 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f227);
-    f230 = MUL_C_R(COEF_CONST(0.9807852804032304), f228);
-    f231 = MUL_C_R(COEF_CONST(1.1758756024193588), f225);
+    f229 = MUL_C(COEF_CONST((-0.7856949583871021)), f227);
+    f230 = MUL_C(COEF_CONST(0.9807852804032304), f228);
+    f231 = MUL_C(COEF_CONST(1.1758756024193588), f225);
     f232 = f229 + f230;
     f233 = f231 - f230;
     f234 = f226 + f224;
-    f235 = MUL_C_R(COEF_CONST(0.2758993792829431), f226);
-    f236 = MUL_C_R(COEF_CONST(0.5555702330196022), f234);
-    f237 = MUL_C_R(COEF_CONST(1.3870398453221475), f224);
+    f235 = MUL_C(COEF_CONST(0.2758993792829431), f226);
+    f236 = MUL_C(COEF_CONST(0.5555702330196022), f234);
+    f237 = MUL_C(COEF_CONST(1.3870398453221475), f224);
     f238 = f235 + f236;
     f239 = f237 - f236;
     f240 = f155 - f197;
@@ -695,22 +694,22 @@
     f247 = f173 + f179;
     f248 = f245 - f243;
     f249 = f245 + f243;
-    f250 = MUL_C_R(COEF_CONST(0.7071067811865476), f249);
+    f250 = MUL_C(COEF_CONST(0.7071067811865476), f249);
     f251 = f247 - f250;
     f252 = f247 + f250;
-    f253 = MUL_C_R(COEF_CONST(0.7071067811865476), f248);
+    f253 = MUL_C(COEF_CONST(0.7071067811865476), f248);
     f254 = f253 - f241;
     f255 = f253 + f241;
     f256 = f255 + f252;
-    f257 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f255);
-    f258 = MUL_C_R(COEF_CONST(0.9807852804032304), f256);
-    f259 = MUL_C_R(COEF_CONST(1.1758756024193588), f252);
+    f257 = MUL_C(COEF_CONST((-0.7856949583871021)), f255);
+    f258 = MUL_C(COEF_CONST(0.9807852804032304), f256);
+    f259 = MUL_C(COEF_CONST(1.1758756024193588), f252);
     f260 = f257 + f258;
     f261 = f259 - f258;
     f262 = f254 + f251;
-    f263 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f254);
-    f264 = MUL_C_R(COEF_CONST(0.8314696123025452), f262);
-    f265 = MUL_C_R(COEF_CONST(1.3870398453221475), f251);
+    f263 = MUL_C(COEF_CONST((-0.2758993792829430)), f254);
+    f264 = MUL_C(COEF_CONST(0.8314696123025452), f262);
+    f265 = MUL_C(COEF_CONST(1.3870398453221475), f251);
     f266 = f263 + f264;
     f267 = f265 - f264;
     f268 = f240 - f246;
@@ -718,14 +717,14 @@
     f270 = f242 - f244;
     f271 = f242 + f244;
     f272 = f269 + f271;
-    f273 = MUL_C_R(COEF_CONST(1.3065629648763770), f269);
-    f274 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f272);
-    f275 = MUL_C_R(COEF_CONST(0.5411961001461961), f271);
+    f273 = MUL_C(COEF_CONST(1.3065629648763770), f269);
+    f274 = MUL_C(COEF_CONST((-0.3826834323650904)), f272);
+    f275 = MUL_C(COEF_CONST(0.5411961001461961), f271);
     f276 = f273 + f274;
     f277 = f275 - f274;
     y[62] = f268 - f270;
     f279 = f268 + f270;
-    f280 = MUL_C_R(COEF_CONST(0.7071067811865476), f279);
+    f280 = MUL_C(COEF_CONST(0.7071067811865476), f279);
     y[10] = f232 - f260;
     y[6] = f232 + f260;
     y[18] = f219 - f277;
@@ -770,13 +769,13 @@
     f322 = t2[55] + t2[57];
     f323 = t2[59] - t2[61];
     f324 = t2[59] + t2[61];
-    f325 = MUL_C_R(COEF_CONST(0.7071067811865476), f310);
+    f325 = MUL_C(COEF_CONST(0.7071067811865476), f310);
     f326 = t2[1] - f325;
     f327 = t2[1] + f325;
     f328 = f302 + f318;
-    f329 = MUL_C_R(COEF_CONST(1.3065629648763766), f302);
-    f330 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f328);
-    f331 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f318);
+    f329 = MUL_C(COEF_CONST(1.3065629648763766), f302);
+    f330 = MUL_C(COEF_CONST((-0.9238795325112866)), f328);
+    f331 = MUL_C(COEF_CONST((-0.5411961001461967)), f318);
     f332 = f329 + f330;
     f333 = f331 - f330;
     f334 = f327 - f333;
@@ -785,22 +784,22 @@
     f337 = f326 + f332;
     f338 = f306 - f314;
     f339 = f306 + f314;
-    f340 = MUL_C_R(COEF_CONST(0.7071067811865476), f339);
+    f340 = MUL_C(COEF_CONST(0.7071067811865476), f339);
     f341 = f298 - f340;
     f342 = f298 + f340;
-    f343 = MUL_C_R(COEF_CONST(0.7071067811865476), f338);
+    f343 = MUL_C(COEF_CONST(0.7071067811865476), f338);
     f344 = f343 - f322;
     f345 = f343 + f322;
     f346 = f345 + f342;
-    f347 = MUL_C_R(COEF_CONST((-0.7856949583871021)), f345);
-    f348 = MUL_C_R(COEF_CONST(0.9807852804032304), f346);
-    f349 = MUL_C_R(COEF_CONST(1.1758756024193588), f342);
+    f347 = MUL_C(COEF_CONST((-0.7856949583871021)), f345);
+    f348 = MUL_C(COEF_CONST(0.9807852804032304), f346);
+    f349 = MUL_C(COEF_CONST(1.1758756024193588), f342);
     f350 = f347 + f348;
     f351 = f349 - f348;
     f352 = f344 + f341;
-    f353 = MUL_C_R(COEF_CONST((-0.2758993792829430)), f344);
-    f354 = MUL_C_R(COEF_CONST(0.8314696123025452), f352);
-    f355 = MUL_C_R(COEF_CONST(1.3870398453221475), f341);
+    f353 = MUL_C(COEF_CONST((-0.2758993792829430)), f344);
+    f354 = MUL_C(COEF_CONST(0.8314696123025452), f352);
+    f355 = MUL_C(COEF_CONST(1.3870398453221475), f341);
     f356 = f353 + f354;
     f357 = f355 - f354;
     f358 = f335 - f350;
@@ -811,14 +810,14 @@
     f363 = f336 + f357;
     f364 = f334 - f351;
     f365 = f334 + f351;
-    f366 = MUL_C_R(COEF_CONST(5.1011486186891641), f296);
-    f367 = MUL_C_R(COEF_CONST(1.7224470982383342), f300);
-    f368 = MUL_C_R(COEF_CONST(1.0606776859903475), f304);
-    f369 = MUL_C_R(COEF_CONST(0.7881546234512502), f308);
-    f370 = MUL_C_R(COEF_CONST(0.5024192861881557), f324);
-    f371 = MUL_C_R(COEF_CONST(0.5224986149396889), f320);
-    f372 = MUL_C_R(COEF_CONST(0.5669440348163577), f316);
-    f373 = MUL_C_R(COEF_CONST(0.6468217833599901), f312);
+    f366 = MUL_C(COEF_CONST(5.1011486186891641), f296);
+    f367 = MUL_C(COEF_CONST(1.7224470982383342), f300);
+    f368 = MUL_C(COEF_CONST(1.0606776859903475), f304);
+    f369 = MUL_C(COEF_CONST(0.7881546234512502), f308);
+    f370 = MUL_C(COEF_CONST(0.5024192861881557), f324);
+    f371 = MUL_C(COEF_CONST(0.5224986149396889), f320);
+    f372 = MUL_C(COEF_CONST(0.5669440348163577), f316);
+    f373 = MUL_C(COEF_CONST(0.6468217833599901), f312);
     f374 = f366 - f370;
     f375 = f366 + f370;
     f376 = f367 - f371;
@@ -827,10 +826,10 @@
     f379 = f368 + f372;
     f380 = f369 - f373;
     f381 = f369 + f373;
-    f382 = MUL_C_R(COEF_CONST(0.5097955791041592), f375);
-    f383 = MUL_C_R(COEF_CONST(0.6013448869350453), f377);
-    f384 = MUL_C_R(COEF_CONST(0.8999762231364156), f379);
-    f385 = MUL_C_R(COEF_CONST(2.5629154477415055), f381);
+    f382 = MUL_C(COEF_CONST(0.5097955791041592), f375);
+    f383 = MUL_C(COEF_CONST(0.6013448869350453), f377);
+    f384 = MUL_C(COEF_CONST(0.8999762231364156), f379);
+    f385 = MUL_C(COEF_CONST(2.5629154477415055), f381);
     f386 = f382 + f385;
     f387 = f382 - f385;
     f388 = f383 + f384;
@@ -837,11 +836,11 @@
     f389 = f384 - f383;
     f390 = f387 - f389;
     f391 = f387 + f389;
-    f392 = MUL_C_R(COEF_CONST(0.7071067811865476), f390);
+    f392 = MUL_C(COEF_CONST(0.7071067811865476), f390);
     f393 = f386 - f388;
-    f394 = MUL_C_R(COEF_CONST(1.3065629648763766), f386);
-    f395 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f393);
-    f396 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f388);
+    f394 = MUL_C(COEF_CONST(1.3065629648763766), f386);
+    f395 = MUL_C(COEF_CONST((-0.9238795325112866)), f393);
+    f396 = MUL_C(COEF_CONST((-0.5411961001461967)), f388);
     f397 = f394 + f395;
     f398 = f395 + f396;
     f399 = f391 - f398;
@@ -852,14 +851,14 @@
     f404 = f378 - f376;
     f405 = f376 + f378;
     f406 = f403 + f405;
-    f407 = MUL_C_R(COEF_CONST(1.3065629648763770), f403);
-    f408 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f406);
-    f409 = MUL_C_R(COEF_CONST(0.5411961001461961), f405);
+    f407 = MUL_C(COEF_CONST(1.3065629648763770), f403);
+    f408 = MUL_C(COEF_CONST((-0.3826834323650904)), f406);
+    f409 = MUL_C(COEF_CONST(0.5411961001461961), f405);
     f410 = f407 + f408;
     f411 = f408 - f409;
     f412 = f402 - f404;
     f413 = f402 + f404;
-    f414 = MUL_C_R(COEF_CONST(0.7071067811865476), f413);
+    f414 = MUL_C(COEF_CONST(0.7071067811865476), f413);
     f415 = f411 + f397;
     f416 = f401 + f411;
     f417 = f414 + f401;
@@ -883,14 +882,14 @@
     f435 = f360 + f420;
     f436 = f358 + f421;
     f437 = f358 - f421;
-    f438 = MUL_C_R(COEF_CONST(5.1011486186891641), f295);
-    f439 = MUL_C_R(COEF_CONST(1.7224470982383342), f299);
-    f440 = MUL_C_R(COEF_CONST(1.0606776859903475), f303);
-    f441 = MUL_C_R(COEF_CONST(0.7881546234512502), f307);
-    f442 = MUL_C_R(COEF_CONST(0.5024192861881557), f323);
-    f443 = MUL_C_R(COEF_CONST(0.5224986149396889), f319);
-    f444 = MUL_C_R(COEF_CONST(0.5669440348163577), f315);
-    f445 = MUL_C_R(COEF_CONST(0.6468217833599901), f311);
+    f438 = MUL_C(COEF_CONST(5.1011486186891641), f295);
+    f439 = MUL_C(COEF_CONST(1.7224470982383342), f299);
+    f440 = MUL_C(COEF_CONST(1.0606776859903475), f303);
+    f441 = MUL_C(COEF_CONST(0.7881546234512502), f307);
+    f442 = MUL_C(COEF_CONST(0.5024192861881557), f323);
+    f443 = MUL_C(COEF_CONST(0.5224986149396889), f319);
+    f444 = MUL_C(COEF_CONST(0.5669440348163577), f315);
+    f445 = MUL_C(COEF_CONST(0.6468217833599901), f311);
     f446 = f438 + f442;
     f447 = f438 - f442;
     f448 = f439 + f443;
@@ -899,10 +898,10 @@
     f451 = f440 - f444;
     f452 = f441 + f445;
     f453 = f445 - f441;
-    f454 = MUL_C_R(COEF_CONST(0.5097955791041592), f447);
-    f455 = MUL_C_R(COEF_CONST(0.6013448869350453), f449);
-    f456 = MUL_C_R(COEF_CONST(0.8999762231364156), f451);
-    f457 = MUL_C_R(COEF_CONST(2.5629154477415055), f453);
+    f454 = MUL_C(COEF_CONST(0.5097955791041592), f447);
+    f455 = MUL_C(COEF_CONST(0.6013448869350453), f449);
+    f456 = MUL_C(COEF_CONST(0.8999762231364156), f451);
+    f457 = MUL_C(COEF_CONST(2.5629154477415055), f453);
     f458 = f454 + f457;
     f459 = f454 - f457;
     f460 = f455 + f456;
@@ -909,11 +908,11 @@
     f461 = f456 - f455;
     f462 = f459 - f461;
     f463 = f459 + f461;
-    f464 = MUL_C_R(COEF_CONST(0.7071067811865476), f462);
+    f464 = MUL_C(COEF_CONST(0.7071067811865476), f462);
     f465 = f458 - f460;
-    f466 = MUL_C_R(COEF_CONST(1.3065629648763766), f458);
-    f467 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f465);
-    f468 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f460);
+    f466 = MUL_C(COEF_CONST(1.3065629648763766), f458);
+    f467 = MUL_C(COEF_CONST((-0.9238795325112866)), f465);
+    f468 = MUL_C(COEF_CONST((-0.5411961001461967)), f460);
     f469 = f466 + f467;
     f470 = f467 + f468;
     f471 = f463 - f470;
@@ -924,14 +923,14 @@
     f476 = f448 + f450;
     f477 = f448 - f450;
     f478 = f475 + f477;
-    f479 = MUL_C_R(COEF_CONST(1.3065629648763770), f475);
-    f480 = MUL_C_R(COEF_CONST((-0.3826834323650904)), f478);
-    f481 = MUL_C_R(COEF_CONST(0.5411961001461961), f477);
+    f479 = MUL_C(COEF_CONST(1.3065629648763770), f475);
+    f480 = MUL_C(COEF_CONST((-0.3826834323650904)), f478);
+    f481 = MUL_C(COEF_CONST(0.5411961001461961), f477);
     f482 = f479 + f480;
     f483 = f481 - f480;
     f484 = f474 + f476;
     f485 = f476 - f474;
-    f486 = MUL_C_R(COEF_CONST(0.7071067811865476), f485);
+    f486 = MUL_C(COEF_CONST(0.7071067811865476), f485);
     f487 = f483 + f469;
     f488 = f473 + f483;
     f489 = f486 + f473;
@@ -939,13 +938,13 @@
     f491 = f482 + f472;
     f492 = f471 + f482;
     f493 = f471 - f484;
-    f494 = MUL_C_R(COEF_CONST(0.7071067811865476), f309);
+    f494 = MUL_C(COEF_CONST(0.7071067811865476), f309);
     f495 = t2[63] - f494;
     f496 = t2[63] + f494;
     f497 = f317 + f301;
-    f498 = MUL_C_R(COEF_CONST(1.3065629648763766), f317);
-    f499 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f497);
-    f500 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f301);
+    f498 = MUL_C(COEF_CONST(1.3065629648763766), f317);
+    f499 = MUL_C(COEF_CONST((-0.9238795325112866)), f497);
+    f500 = MUL_C(COEF_CONST((-0.5411961001461967)), f301);
     f501 = f498 + f499;
     f502 = f500 - f499;
     f503 = f496 - f502;
@@ -952,10 +951,10 @@
     f504 = f496 + f502;
     f505 = f495 - f501;
     f506 = f495 + f501;
-    f507 = MUL_C_R(COEF_CONST(0.5097955791041592), f321);
-    f508 = MUL_C_R(COEF_CONST(0.6013448869350453), f313);
-    f509 = MUL_C_R(COEF_CONST(0.8999762231364156), f305);
-    f510 = MUL_C_R(COEF_CONST(2.5629154477415055), f297);
+    f507 = MUL_C(COEF_CONST(0.5097955791041592), f321);
+    f508 = MUL_C(COEF_CONST(0.6013448869350453), f313);
+    f509 = MUL_C(COEF_CONST(0.8999762231364156), f305);
+    f510 = MUL_C(COEF_CONST(2.5629154477415055), f297);
     f511 = f507 - f510;
     f512 = f507 + f510;
     f513 = f508 - f509;
@@ -962,11 +961,11 @@
     f514 = f508 + f509;
     f515 = f512 - f514;
     f516 = f512 + f514;
-    f517 = MUL_C_R(COEF_CONST(0.7071067811865476), f515);
+    f517 = MUL_C(COEF_CONST(0.7071067811865476), f515);
     f518 = f511 + f513;
-    f519 = MUL_C_R(COEF_CONST(1.3065629648763766), f511);
-    f520 = MUL_C_R(COEF_CONST((-0.9238795325112866)), f518);
-    f521 = MUL_C_R(COEF_CONST((-0.5411961001461967)), f513);
+    f519 = MUL_C(COEF_CONST(1.3065629648763766), f511);
+    f520 = MUL_C(COEF_CONST((-0.9238795325112866)), f518);
+    f521 = MUL_C(COEF_CONST((-0.5411961001461967)), f513);
     f522 = f519 + f520;
     f523 = f521 - f520;
     f524 = f516 + f523;
@@ -997,99 +996,99 @@
     f549 = f469 + f527;
     f550 = f469 - f527;
     f551 = f536 + f423;
-    f552 = MUL_C_R(COEF_CONST((-0.9751575901732920)), f536);
-    f553 = MUL_C_R(COEF_CONST(0.9996988186962043), f551);
-    f554 = MUL_C_R(COEF_CONST(1.0242400472191164), f423);
+    f552 = MUL_C(COEF_CONST((-0.9751575901732920)), f536);
+    f553 = MUL_C(COEF_CONST(0.9996988186962043), f551);
+    f554 = MUL_C(COEF_CONST(1.0242400472191164), f423);
     y[1] = f552 + f553;
     y[63] = f554 - f553;
     f557 = f538 + f425;
-    f558 = MUL_C_R(COEF_CONST((-0.9237258930790228)), f538);
-    f559 = MUL_C_R(COEF_CONST(0.9972904566786902), f557);
-    f560 = MUL_C_R(COEF_CONST(1.0708550202783576), f425);
+    f558 = MUL_C(COEF_CONST((-0.9237258930790228)), f538);
+    f559 = MUL_C(COEF_CONST(0.9972904566786902), f557);
+    f560 = MUL_C(COEF_CONST(1.0708550202783576), f425);
     y[3] = f558 + f559;
     y[61] = f560 - f559;
     f563 = f540 + f427;
-    f564 = MUL_C_R(COEF_CONST((-0.8700688593994936)), f540);
-    f565 = MUL_C_R(COEF_CONST(0.9924795345987100), f563);
-    f566 = MUL_C_R(COEF_CONST(1.1148902097979263), f427);
+    f564 = MUL_C(COEF_CONST((-0.8700688593994936)), f540);
+    f565 = MUL_C(COEF_CONST(0.9924795345987100), f563);
+    f566 = MUL_C(COEF_CONST(1.1148902097979263), f427);
     y[5] = f564 + f565;
     y[59] = f566 - f565;
     f569 = f542 + f429;
-    f570 = MUL_C_R(COEF_CONST((-0.8143157536286398)), f542);
-    f571 = MUL_C_R(COEF_CONST(0.9852776423889412), f569);
-    f572 = MUL_C_R(COEF_CONST(1.1562395311492426), f429);
+    f570 = MUL_C(COEF_CONST((-0.8143157536286398)), f542);
+    f571 = MUL_C(COEF_CONST(0.9852776423889412), f569);
+    f572 = MUL_C(COEF_CONST(1.1562395311492426), f429);
     y[7] = f570 + f571;
     y[57] = f572 - f571;
     f575 = f544 + f431;
-    f576 = MUL_C_R(COEF_CONST((-0.7566008898816587)), f544);
-    f577 = MUL_C_R(COEF_CONST(0.9757021300385286), f575);
-    f578 = MUL_C_R(COEF_CONST(1.1948033701953984), f431);
+    f576 = MUL_C(COEF_CONST((-0.7566008898816587)), f544);
+    f577 = MUL_C(COEF_CONST(0.9757021300385286), f575);
+    f578 = MUL_C(COEF_CONST(1.1948033701953984), f431);
     y[9] = f576 + f577;
     y[55] = f578 - f577;
     f581 = f546 + f433;
-    f582 = MUL_C_R(COEF_CONST((-0.6970633083205414)), f546);
-    f583 = MUL_C_R(COEF_CONST(0.9637760657954398), f581);
-    f584 = MUL_C_R(COEF_CONST(1.2304888232703384), f433);
+    f582 = MUL_C(COEF_CONST((-0.6970633083205414)), f546);
+    f583 = MUL_C(COEF_CONST(0.9637760657954398), f581);
+    f584 = MUL_C(COEF_CONST(1.2304888232703384), f433);
     y[11] = f582 + f583;
     y[53] = f584 - f583;
     f587 = f548 + f435;
-    f588 = MUL_C_R(COEF_CONST((-0.6358464401941451)), f548);
-    f589 = MUL_C_R(COEF_CONST(0.9495281805930367), f587);
-    f590 = MUL_C_R(COEF_CONST(1.2632099209919283), f435);
+    f588 = MUL_C(COEF_CONST((-0.6358464401941451)), f548);
+    f589 = MUL_C(COEF_CONST(0.9495281805930367), f587);
+    f590 = MUL_C(COEF_CONST(1.2632099209919283), f435);
     y[13] = f588 + f589;
     y[51] = f590 - f589;
     f593 = f550 + f437;
-    f594 = MUL_C_R(COEF_CONST((-0.5730977622997506)), f550);
-    f595 = MUL_C_R(COEF_CONST(0.9329927988347389), f593);
-    f596 = MUL_C_R(COEF_CONST(1.2928878353697271), f437);
+    f594 = MUL_C(COEF_CONST((-0.5730977622997506)), f550);
+    f595 = MUL_C(COEF_CONST(0.9329927988347389), f593);
+    f596 = MUL_C(COEF_CONST(1.2928878353697271), f437);
     y[15] = f594 + f595;
     y[49] = f596 - f595;
     f599 = f549 + f436;
-    f600 = MUL_C_R(COEF_CONST((-0.5089684416985408)), f549);
-    f601 = MUL_C_R(COEF_CONST(0.9142097557035307), f599);
-    f602 = MUL_C_R(COEF_CONST(1.3194510697085207), f436);
+    f600 = MUL_C(COEF_CONST((-0.5089684416985408)), f549);
+    f601 = MUL_C(COEF_CONST(0.9142097557035307), f599);
+    f602 = MUL_C(COEF_CONST(1.3194510697085207), f436);
     y[17] = f600 + f601;
     y[47] = f602 - f601;
     f605 = f434 - f547;
-    f606 = MUL_C_R(COEF_CONST((-0.4436129715409087)), f547);
-    f607 = MUL_C_R(COEF_CONST(0.8932243011955153), f605);
-    f608 = MUL_C_R(COEF_CONST(1.3428356308501219), f434);
+    f606 = MUL_C(COEF_CONST((-0.4436129715409087)), f547);
+    f607 = MUL_C(COEF_CONST(0.8932243011955153), f605);
+    f608 = MUL_C(COEF_CONST(1.3428356308501219), f434);
     y[19] = f607 - f606;
     y[45] = f608 - f607;
     f611 = f545 + f432;
-    f612 = MUL_C_R(COEF_CONST((-0.3771887988789273)), f545);
-    f613 = MUL_C_R(COEF_CONST(0.8700869911087114), f611);
-    f614 = MUL_C_R(COEF_CONST(1.3629851833384954), f432);
+    f612 = MUL_C(COEF_CONST((-0.3771887988789273)), f545);
+    f613 = MUL_C(COEF_CONST(0.8700869911087114), f611);
+    f614 = MUL_C(COEF_CONST(1.3629851833384954), f432);
     y[21] = f612 + f613;
     y[43] = f614 - f613;
     f617 = f430 - f543;
-    f618 = MUL_C_R(COEF_CONST((-0.3098559453626097)), f543);
-    f619 = MUL_C_R(COEF_CONST(0.8448535652497070), f617);
-    f620 = MUL_C_R(COEF_CONST(1.3798511851368043), f430);
+    f618 = MUL_C(COEF_CONST((-0.3098559453626097)), f543);
+    f619 = MUL_C(COEF_CONST(0.8448535652497070), f617);
+    f620 = MUL_C(COEF_CONST(1.3798511851368043), f430);
     y[23] = f619 - f618;
     y[41] = f620 - f619;
     f623 = f541 + f428;
-    f624 = MUL_C_R(COEF_CONST((-0.2417766217337384)), f541);
-    f625 = MUL_C_R(COEF_CONST(0.8175848131515837), f623);
-    f626 = MUL_C_R(COEF_CONST(1.3933930045694289), f428);
+    f624 = MUL_C(COEF_CONST((-0.2417766217337384)), f541);
+    f625 = MUL_C(COEF_CONST(0.8175848131515837), f623);
+    f626 = MUL_C(COEF_CONST(1.3933930045694289), f428);
     y[25] = f624 + f625;
     y[39] = f626 - f625;
     f629 = f426 - f539;
-    f630 = MUL_C_R(COEF_CONST((-0.1731148370459794)), f539);
-    f631 = MUL_C_R(COEF_CONST(0.7883464276266062), f629);
-    f632 = MUL_C_R(COEF_CONST(1.4035780182072330), f426);
+    f630 = MUL_C(COEF_CONST((-0.1731148370459794)), f539);
+    f631 = MUL_C(COEF_CONST(0.7883464276266062), f629);
+    f632 = MUL_C(COEF_CONST(1.4035780182072330), f426);
     y[27] = f631 - f630;
     y[37] = f632 - f631;
     f635 = f537 + f424;
-    f636 = MUL_C_R(COEF_CONST((-0.1040360035527077)), f537);
-    f637 = MUL_C_R(COEF_CONST(0.7572088465064845), f635);
-    f638 = MUL_C_R(COEF_CONST(1.4103816894602612), f424);
+    f636 = MUL_C(COEF_CONST((-0.1040360035527077)), f537);
+    f637 = MUL_C(COEF_CONST(0.7572088465064845), f635);
+    f638 = MUL_C(COEF_CONST(1.4103816894602612), f424);
     y[29] = f636 + f637;
     y[35] = f638 - f637;
     f641 = f422 - f535;
-    f642 = MUL_C_R(COEF_CONST((-0.0347065382144000)), f535);
-    f643 = MUL_C_R(COEF_CONST(0.7242470829514669), f641);
-    f644 = MUL_C_R(COEF_CONST(1.4137876276885337), f422);
+    f642 = MUL_C(COEF_CONST((-0.0347065382144000)), f535);
+    f643 = MUL_C(COEF_CONST(0.7242470829514669), f641);
+    f644 = MUL_C(COEF_CONST(1.4137876276885337), f422);
     y[31] = f643 - f642;
     y[33] = f644 - f643;
 }
--- a/libfaad/sbr_dec.c
+++ b/libfaad/sbr_dec.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_dec.c,v 1.16 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_dec.c,v 1.17 2003/11/12 20:47:58 menno Exp $
 **/
 
 
@@ -261,7 +261,6 @@
             }
 #endif
 
-#if 1
             /* hf adjustment */
             hf_adjustment(sbr, sbr->Xsbr[ch]
 #ifdef SBR_LOW_POWER
@@ -268,7 +267,6 @@
                 ,deg
 #endif
                 ,ch);
-#endif
         }
 
         if ((sbr->just_seeked != 0) || dont_process)
--- a/libfaad/sbr_dec.h
+++ b/libfaad/sbr_dec.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_dec.h,v 1.11 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_dec.h,v 1.12 2003/11/12 20:47:58 menno Exp $
 **/
 
 #ifndef __SBR_DEC_H__
--- a/libfaad/sbr_e_nf.c
+++ b/libfaad/sbr_e_nf.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_e_nf.c,v 1.7 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_e_nf.c,v 1.8 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
@@ -172,8 +172,8 @@
 void unmap_envelope_noise(sbr_info *sbr)
 {
     uint8_t l, k;
-    real_t amp0 = (sbr->amp_res[0]) ? (real_t)1.0 : (real_t)0.5;
-    real_t amp1 = (sbr->amp_res[1]) ? (real_t)1.0 : (real_t)0.5;
+    uint8_t amp0 = (sbr->amp_res[0]) ? 0 : 1;
+    uint8_t amp1 = (sbr->amp_res[1]) ? 0 : 1;
 
     for (l = 0; l < sbr->L_E[0]; l++)
     {
@@ -187,7 +187,7 @@
             r_temp = (real_t)pow(2, sbr->E[1][k][l]*amp1 - 12);
 
             sbr->E_orig[1][k][l] = l_temp / ((real_t)1.0 + r_temp);
-            sbr->E_orig[0][k][l] = MUL(r_temp, sbr->E_orig[1][k][l]);
+            sbr->E_orig[0][k][l] = MUL_R(r_temp, sbr->E_orig[1][k][l]);
         }
     }
     for (l = 0; l < sbr->L_Q[0]; l++)
@@ -206,7 +206,7 @@
                 r_temp = (real_t)pow(2.0, sbr->Q[1][k][l] - 12);
 
                 sbr->Q_orig[1][k][l] = l_temp / ((real_t)1.0 + r_temp);
-                sbr->Q_orig[0][k][l] = MUL(r_temp, sbr->Q_orig[1][k][l]);
+                sbr->Q_orig[0][k][l] = MUL_R(r_temp, sbr->Q_orig[1][k][l]);
             }
         }
     }
--- a/libfaad/sbr_fbt.c
+++ b/libfaad/sbr_fbt.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_fbt.c,v 1.6 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_fbt.c,v 1.7 2003/11/12 20:47:58 menno Exp $
 **/
 
 /* Calculate frequency band tables */
--- a/libfaad/sbr_hfadj.c
+++ b/libfaad/sbr_hfadj.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_hfadj.c,v 1.7 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_hfadj.c,v 1.8 2003/11/12 20:47:58 menno Exp $
 **/
 
 /* High Frequency adjustment */
@@ -209,9 +209,9 @@
 
                 for (i = l_i + sbr->tHFAdj; i < u_i + sbr->tHFAdj; i++)
                 {
-                    nrg += MUL(QMF_RE(Xsbr[i][m + sbr->kx]), QMF_RE(Xsbr[i][m + sbr->kx]))
+                    nrg += MUL_R(QMF_RE(Xsbr[i][m + sbr->kx]), QMF_RE(Xsbr[i][m + sbr->kx]))
 #ifndef SBR_LOW_POWER
-                        + MUL(QMF_IM(Xsbr[i][m + sbr->kx]), QMF_IM(Xsbr[i][m + sbr->kx]))
+                        + MUL_R(QMF_IM(Xsbr[i][m + sbr->kx]), QMF_IM(Xsbr[i][m + sbr->kx]))
 #endif
                         ;
                 }
@@ -238,15 +238,15 @@
                     l_i = sbr->t_E[ch][l];
                     u_i = sbr->t_E[ch][l+1];
 
-                    div = (real_t)((u_i - l_i)*(k_h - k_l + 1));
+                    div = (real_t)((u_i - l_i)*(k_h - k_l));
 
                     for (i = l_i + sbr->tHFAdj; i < u_i + sbr->tHFAdj; i++)
                     {
                         for (j = k_l; j < k_h; j++)
                         {
-                            nrg += MUL(QMF_RE(Xsbr[i][j]), QMF_RE(Xsbr[i][j]))
+                            nrg += MUL_R(QMF_RE(Xsbr[i][j]), QMF_RE(Xsbr[i][j]))
 #ifndef SBR_LOW_POWER
-                                + MUL(QMF_IM(Xsbr[i][j]), QMF_IM(Xsbr[i][j]))
+                                + MUL_R(QMF_IM(Xsbr[i][j]), QMF_IM(Xsbr[i][j]))
 #endif
                                 ;
                         }
@@ -263,6 +263,7 @@
 }
 
 #define EPS (1e-12)
+
 #define ONE (1)
 
 
@@ -316,18 +317,22 @@
                 div2 = adj->Q_mapped[m][l] / (1 + adj->Q_mapped[m][l]);
                 Q_M = sbr->E_orig[ch][table_map_res_to_m[m]][l] * div2;
 
-                if (adj->S_mapped[m][l] == 0)
+                /* 12-Nov: Changed S_mapped to S_index_mapped */
+                if (adj->S_index_mapped[m][l] == 0)
                 {
                     S_M[m] = 0;
-
-                    /* fixed point: delta* can stay since it's either 1 or 0 */
-                    d = (1 + sbr->E_curr[ch][m][l]) * (1 + delta*adj->Q_mapped[m][l]);
-                    G = sbr->E_orig[ch][table_map_res_to_m[m]][l] / d;
                 } else {
                     real_t div;
 
-                    div = adj->S_mapped[m][l] / (1. + adj->Q_mapped[m][l]);
+                    div = adj->S_index_mapped[m][l] / (1. + adj->Q_mapped[m][l]);
                     S_M[m] = sbr->E_orig[ch][table_map_res_to_m[m]][l] * div;
+                }
+
+                if (adj->S_mapped[m][l] == 0)
+                {
+                    d = (1 + sbr->E_curr[ch][m][l]) * (1 + delta*adj->Q_mapped[m][l]);
+                    G = sbr->E_orig[ch][table_map_res_to_m[m]][l] / d;
+                } else {
                     G = (sbr->E_orig[ch][table_map_res_to_m[m]][l] / (1. + sbr->E_curr[ch][m][l])) * div2;
                 }
 
@@ -437,7 +442,7 @@
                 /* E_total_est: integer */
                 /* E_total: integer */
                 E_total_est += sbr->E_curr[ch][m-sbr->kx][l];
-                E_total += MUL(sbr->E_curr[ch][m-sbr->kx][l], adj->G_lim_boost[l][m-sbr->kx]);
+                E_total += MUL_R(sbr->E_curr[ch][m-sbr->kx][l], adj->G_lim_boost[l][m-sbr->kx]);
             }
 
             /* G_target: fixed point */
@@ -459,11 +464,11 @@
                     alpha = deg[m];
                 }
 
-                adj->G_lim_boost[l][m-sbr->kx] = MUL(alpha, G_target) +
-                    MUL((REAL_CONST(1)-alpha), adj->G_lim_boost[l][m-sbr->kx]);
+                adj->G_lim_boost[l][m-sbr->kx] = MUL_R(alpha, G_target) +
+                    MUL_R((REAL_CONST(1)-alpha), adj->G_lim_boost[l][m-sbr->kx]);
 
                 /* acc: integer */
-                acc += MUL(adj->G_lim_boost[l][m-sbr->kx], sbr->E_curr[ch][m-sbr->kx][l]);
+                acc += MUL_R(adj->G_lim_boost[l][m-sbr->kx], sbr->E_curr[ch][m-sbr->kx][l]);
             }
 
             /* acc: fixed point */
@@ -471,10 +476,9 @@
                 acc = 0;
             else
                 acc = E_total / (acc + EPS);
-
             for(m = sbr->f_group[l][(k<<1)]; m < sbr->f_group[l][(k<<1) + 1]; m++)
             {
-                adj->G_lim_boost[l][m-sbr->kx] = MUL(acc, adj->G_lim_boost[l][m-sbr->kx]);
+                adj->G_lim_boost[l][m-sbr->kx] = MUL_R(acc, adj->G_lim_boost[l][m-sbr->kx]);
             }
         }
     }
@@ -546,7 +550,6 @@
             assembly_reset = 0;
         }
 
-
         for (i = sbr->t_E[ch][l]; i < sbr->t_E[ch][l+1]; i++)
         {
 #ifdef SBR_LOW_POWER
@@ -571,8 +574,8 @@
                 {
                     for (n = 0; n <= 4; n++)
                     {
-                        G_filt += MUL_R_C(sbr->G_temp_prev[ch][n][m], h_smooth[j]);
-                        Q_filt += MUL_R_C(sbr->Q_temp_prev[ch][n][m], h_smooth[j]);
+                        G_filt += MUL_C(sbr->G_temp_prev[ch][n][m], h_smooth[j]);
+                        Q_filt += MUL_C(sbr->Q_temp_prev[ch][n][m], h_smooth[j]);
                         j++;
                     }
                 } else {
@@ -587,13 +590,13 @@
 
                 /* the smoothed gain values are applied to Xsbr */
                 /* V is defined, not calculated */
-                QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) = MUL(G_filt, QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]))
-                    + MUL_R_C(Q_filt, RE(V[fIndexNoise]));
+                QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) = MUL_R(G_filt, QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]))
+                    + MUL_F(Q_filt, RE(V[fIndexNoise]));
                 if (sbr->bs_extension_id == 3 && sbr->bs_extension_data == 42)
                     QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) = 16428320;
 #ifndef SBR_LOW_POWER
-                QMF_IM(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) = MUL(G_filt, QMF_IM(Xsbr[i + sbr->tHFAdj][m+sbr->kx]))
-                    + MUL_R_C(Q_filt, IM(V[fIndexNoise]));
+                QMF_IM(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) = MUL_R(G_filt, QMF_IM(Xsbr[i + sbr->tHFAdj][m+sbr->kx]))
+                    + MUL_F(Q_filt, IM(V[fIndexNoise]));
 #endif
 
 
@@ -600,11 +603,11 @@
                 if (adj->S_index_mapped[m][l])
                 {
                     int8_t rev = ((m + sbr->kx) & 1) ? -1 : 1;
-                    QMF_RE(psi) = MUL(adj->S_M_boost[l][m], phi_re[fIndexSine]);
+                    QMF_RE(psi) = MUL_R(adj->S_M_boost[l][m], phi_re[fIndexSine]);
                     QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) += QMF_RE(psi);
 
 #ifndef SBR_LOW_POWER
-                    QMF_IM(psi) = rev * MUL(adj->S_M_boost[l][m], phi_im[fIndexSine]);
+                    QMF_IM(psi) = rev * MUL_R(adj->S_M_boost[l][m], phi_im[fIndexSine]);
                     QMF_IM(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) += QMF_IM(psi);
 #else
                     i_min1 = (fIndexSine - 1) & 3;
@@ -613,23 +616,23 @@
                     if (m == 0)
                     {
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx - 1]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][0], phi_re[i_plus1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][0], phi_re[i_plus1]), COEF_CONST(0.00815)));
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][1], phi_re[i_plus1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][1], phi_re[i_plus1]), COEF_CONST(0.00815)));
                     }
                     if ((m > 0) && (m < sbr->M - 1) && (sinusoids < 16))
                     {
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][m - 1], phi_re[i_min1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][m - 1], phi_re[i_min1]), COEF_CONST(0.00815)));
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][m + 1], phi_re[i_plus1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][m + 1], phi_re[i_plus1]), COEF_CONST(0.00815)));
                     }
                     if ((m == sbr->M - 1) && (sinusoids < 16) && (m + sbr->kx + 1 < 63))
                     {
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][m - 1], phi_re[i_min1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][m - 1], phi_re[i_min1]), COEF_CONST(0.00815)));
                         QMF_RE(Xsbr[i + sbr->tHFAdj][m+sbr->kx + 1]) -=
-                            (rev * MUL_R_C(MUL(adj->S_M_boost[l][m + 1], phi_re[i_min1]), COEF_CONST(0.00815)));
+                            (rev * MUL_C(MUL_R(adj->S_M_boost[l][m + 1], phi_re[i_min1]), COEF_CONST(0.00815)));
                     }
 
                     sinusoids++;
--- a/libfaad/sbr_hfadj.h
+++ b/libfaad/sbr_hfadj.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_hfadj.h,v 1.6 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_hfadj.h,v 1.8 2003/12/17 14:43:16 menno Exp $
 **/
 
 #ifndef __SBR_HFADJ_H__
--- a/libfaad/sbr_hfgen.c
+++ b/libfaad/sbr_hfgen.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_hfgen.c,v 1.9 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_hfgen.c,v 1.10 2003/11/12 20:47:58 menno Exp $
 **/
 
 /* High Frequency generation */
@@ -66,6 +66,11 @@
 
     calc_chirp_factors(sbr, ch);
 
+    for (i = first; i < last; i++)
+    {
+        memset(Xhigh[i + offset], 0, 64 * sizeof(qmf_t));
+    }
+
     if ((ch == 0) && (sbr->Reset))
         patch_construction(sbr);
 
@@ -107,7 +112,7 @@
             g = sbr->table_map_k_to_g[k];
 
             bw = sbr->bwArray[ch][g];
-            bw2 = MUL_C_C(bw, bw);
+            bw2 = MUL_C(bw, bw);
 
 
             /* do the patching */
@@ -114,11 +119,11 @@
             /* with or without filtering */
             if (bw2 > 0)
             {
-                RE(a0) = MUL_R_C(RE(alpha_0[p]), bw);
-                RE(a1) = MUL_R_C(RE(alpha_1[p]), bw2);
+                RE(a0) = MUL_C(RE(alpha_0[p]), bw);
+                RE(a1) = MUL_C(RE(alpha_1[p]), bw2);
 #ifndef SBR_LOW_POWER
-                IM(a0) = MUL_R_C(IM(alpha_0[p]), bw);
-                IM(a1) = MUL_R_C(IM(alpha_1[p]), bw2);
+                IM(a0) = MUL_C(IM(alpha_0[p]), bw);
+                IM(a1) = MUL_C(IM(alpha_1[p]), bw2);
 #endif
 
 				for (l = first; l < last; l++)
@@ -130,8 +135,8 @@
 
 #ifdef SBR_LOW_POWER
                     QMF_RE(Xhigh[l + offset][k]) += (
-                        MUL(RE(a0), QMF_RE(Xlow[l - 1 + offset][p])) +
-                        MUL(RE(a1), QMF_RE(Xlow[l - 2 + offset][p])));
+                        MUL_R(RE(a0), QMF_RE(Xlow[l - 1 + offset][p])) +
+                        MUL_R(RE(a1), QMF_RE(Xlow[l - 2 + offset][p])));
 #else
                     QMF_RE(Xhigh[l + offset][k]) += (
                         RE(a0) * QMF_RE(Xlow[l - 1 + offset][p]) -
@@ -210,7 +215,7 @@
     RE(ac->r02) = r02;
     RE(ac->r11) = r11;
 
-    ac->det = MUL(RE(ac->r11), RE(ac->r22)) - MUL_R_C(MUL(RE(ac->r12), RE(ac->r12)), rel);
+    ac->det = MUL_R(RE(ac->r11), RE(ac->r22)) - MUL_C(MUL_R(RE(ac->r12), RE(ac->r12)), rel);
 }
 #else
 static void auto_correlation(sbr_info *sbr, acorr_coef *ac, const qmf_t buffer[MAX_NTSRHFG][32],
@@ -292,7 +297,7 @@
         {
             RE(alpha_1[k]) = 0;
         } else {
-            tmp = MUL(RE(ac.r01), RE(ac.r12)) - MUL(RE(ac.r02), RE(ac.r11));
+            tmp = MUL_R(RE(ac.r01), RE(ac.r12)) - MUL_R(RE(ac.r02), RE(ac.r11));
             RE(alpha_1[k]) = SBR_DIV(tmp, ac.det);
         }
 
@@ -300,7 +305,7 @@
         {
             RE(alpha_0[k]) = 0;
         } else {
-            tmp = RE(ac.r01) + MUL(RE(alpha_1[k]), RE(ac.r12));
+            tmp = RE(ac.r01) + MUL_R(RE(alpha_1[k]), RE(ac.r12));
             RE(alpha_0[k]) = -SBR_DIV(tmp, RE(ac.r11));
         }
 
@@ -372,10 +377,10 @@
 
                 if (rxx[k-2] > REAL_CONST(0.0))
                 {
-                    deg[k-1] = REAL_CONST(1.0) - MUL(rxx[k-1], rxx[k-1]);
+                    deg[k-1] = REAL_CONST(1.0) - MUL_R(rxx[k-1], rxx[k-1]);
                 }
             } else if (rxx[k-2] > REAL_CONST(0.0)) {
-                deg[k]   = REAL_CONST(1.0) - MUL(rxx[k-1], rxx[k-1]);
+                deg[k]   = REAL_CONST(1.0) - MUL_R(rxx[k-1], rxx[k-1]);
             }
         }
 
@@ -387,10 +392,10 @@
 
                 if (rxx[k-2] < REAL_CONST(0.0))
                 {
-                    deg[k-1] = REAL_CONST(1.0) - MUL(rxx[k-1], rxx[k-1]);
+                    deg[k-1] = REAL_CONST(1.0) - MUL_R(rxx[k-1], rxx[k-1]);
                 }
             } else if (rxx[k-2] < REAL_CONST(0.0)) {
-                deg[k] = REAL_CONST(1.0) - MUL(rxx[k-1], rxx[k-1]);
+                deg[k] = REAL_CONST(1.0) - MUL_R(rxx[k-1], rxx[k-1]);
             }
         }
     }
@@ -430,9 +435,9 @@
         sbr->bwArray[ch][i] = mapNewBw(sbr->bs_invf_mode[ch][i], sbr->bs_invf_mode_prev[ch][i]);
 
         if (sbr->bwArray[ch][i] < sbr->bwArray_prev[ch][i])
-            sbr->bwArray[ch][i] = MUL_C_C(COEF_CONST(0.75), sbr->bwArray[ch][i]) + MUL_C_C(COEF_CONST(0.25), sbr->bwArray_prev[ch][i]);
+            sbr->bwArray[ch][i] = MUL_C(COEF_CONST(0.75), sbr->bwArray[ch][i]) + MUL_C(COEF_CONST(0.25), sbr->bwArray_prev[ch][i]);
         else
-            sbr->bwArray[ch][i] = MUL_C_C(COEF_CONST(0.90625), sbr->bwArray[ch][i]) + MUL_C_C(COEF_CONST(0.09375), sbr->bwArray_prev[ch][i]);
+            sbr->bwArray[ch][i] = MUL_C(COEF_CONST(0.90625), sbr->bwArray[ch][i]) + MUL_C(COEF_CONST(0.09375), sbr->bwArray_prev[ch][i]);
 
         if (sbr->bwArray[ch][i] < COEF_CONST(0.015625))
             sbr->bwArray[ch][i] = COEF_CONST(0.0);
@@ -488,7 +493,7 @@
             msb = sbr->kx;
         }
 
-        if (sb == sbr->f_master[k])
+        if (sbr->f_master[k] - sb < 3)
             k = sbr->N_master;
     } while (sb != (sbr->kx + sbr->M));
 
--- a/libfaad/sbr_hfgen.h
+++ b/libfaad/sbr_hfgen.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_hfgen.h,v 1.7 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_hfgen.h,v 1.9 2003/12/17 14:43:16 menno Exp $
 **/
 
 #ifndef __SBR_HFGEN_H__
--- a/libfaad/sbr_noise.h
+++ b/libfaad/sbr_noise.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_noise.h,v 1.6 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_noise.h,v 1.7 2003/11/12 20:47:58 menno Exp $
 **/
 
 #ifndef __SBR_NOISE_H__
@@ -40,518 +40,518 @@
 
 /* Table 1.A.13 Noise table V */
 complex_t V[] = {
-    { COEF_CONST(-0.99948155879974), COEF_CONST(-0.59483414888382) },
-    { COEF_CONST(0.97113454341888), COEF_CONST(-0.67528516054153) },
-    { COEF_CONST(0.14130051434040), COEF_CONST(-0.95090985298157) },
-    { COEF_CONST(-0.47005495429039), COEF_CONST(-0.37340548634529) },
-    { COEF_CONST(0.80705064535141), COEF_CONST(0.29653668403625) },
-    { COEF_CONST(-0.38981479406357), COEF_CONST(0.89572608470917) },
-    { COEF_CONST(-0.01053049881011), COEF_CONST(-0.66959059238434) },
-    { COEF_CONST(-0.91266369819641), COEF_CONST(-0.11522938311100) },
-    { COEF_CONST(0.54840421676636), COEF_CONST(0.75221365690231) },
-    { COEF_CONST(0.40009254217148), COEF_CONST(-0.98929399251938) },
-    { COEF_CONST(-0.99867975711823), COEF_CONST(-0.88147068023682) },
-    { COEF_CONST(-0.95531076192856), COEF_CONST(0.90908759832382) },
-    { COEF_CONST(-0.45725932717323), COEF_CONST(-0.56716322898865) },
-    { COEF_CONST(-0.72929674386978), COEF_CONST(-0.98008275032043) },
-    { COEF_CONST(0.75622802972794), COEF_CONST(0.20950329303741) },
-    { COEF_CONST(0.07069442421198), COEF_CONST(-0.78247898817062) },
-    { COEF_CONST(0.74496251344681), COEF_CONST(-0.91169005632401) },
-    { COEF_CONST(-0.96440184116364), COEF_CONST(-0.94739919900894) },
-    { COEF_CONST(0.30424630641937), COEF_CONST(-0.49438267946243) },
-    { COEF_CONST(0.66565030813217), COEF_CONST(0.64652937650681) },
-    { COEF_CONST(0.91697007417679), COEF_CONST(0.17514097690582) },
-    { COEF_CONST(-0.70774918794632), COEF_CONST(0.52548652887344) },
-    { COEF_CONST(-0.70051413774490), COEF_CONST(-0.45340028405190) },
-    { COEF_CONST(-0.99496513605118), COEF_CONST(-0.90071910619736) },
-    { COEF_CONST(0.98164492845535), COEF_CONST(-0.77463155984879) },
-    { COEF_CONST(-0.54671579599380), COEF_CONST(-0.02570928446949) },
-    { COEF_CONST(-0.01689629070461), COEF_CONST(0.00287506449968) },
-    { COEF_CONST(-0.86110347509384), COEF_CONST(0.42548584938049) },
-    { COEF_CONST(-0.98892980813980), COEF_CONST(-0.87881129980087) },
-    { COEF_CONST(0.51756626367569), COEF_CONST(0.66926783323288) },
-    { COEF_CONST(-0.99635028839111), COEF_CONST(-0.58107727766037) },
-    { COEF_CONST(-0.99969369173050), COEF_CONST(0.98369991779327) },
-    { COEF_CONST(0.55266261100769), COEF_CONST(0.59449058771133) },
-    { COEF_CONST(0.34581178426743), COEF_CONST(0.94879418611526) },
-    { COEF_CONST(0.62664210796356), COEF_CONST(-0.74402970075607) },
-    { COEF_CONST(-0.77149701118469), COEF_CONST(-0.33883658051491) },
-    { COEF_CONST(-0.91592246294022), COEF_CONST(0.03687901422381) },
-    { COEF_CONST(-0.76285493373871), COEF_CONST(-0.91371870040894) },
-    { COEF_CONST(0.79788339138031), COEF_CONST(-0.93180972337723) },
-    { COEF_CONST(0.54473078250885), COEF_CONST(-0.11919206380844) },
-    { COEF_CONST(-0.85639280080795), COEF_CONST(0.42429855465889) },
-    { COEF_CONST(-0.92882400751114), COEF_CONST(0.27871808409691) },
-    { COEF_CONST(-0.11708371341228), COEF_CONST(-0.99800843000412) },
-    { COEF_CONST(0.21356749534607), COEF_CONST(-0.90716296434402) },
-    { COEF_CONST(-0.76191693544388), COEF_CONST(0.99768120050430) },
-    { COEF_CONST(0.98111045360565), COEF_CONST(-0.95854461193085) },
-    { COEF_CONST(-0.85913270711899), COEF_CONST(0.95766568183899) },
-    { COEF_CONST(-0.93307244777679), COEF_CONST(0.49431759119034) },
-    { COEF_CONST(0.30485755205154), COEF_CONST(-0.70540034770966) },
-    { COEF_CONST(0.85289651155472), COEF_CONST(0.46766132116318) },
-    { COEF_CONST(0.91328084468842), COEF_CONST(-0.99839597940445) },
-    { COEF_CONST(-0.05890199914575), COEF_CONST(0.70741826295853) },
-    { COEF_CONST(0.28398686647415), COEF_CONST(0.34633556008339) },
-    { COEF_CONST(0.95258164405823), COEF_CONST(-0.54893416166306) },
-    { COEF_CONST(-0.78566324710846), COEF_CONST(-0.75568538904190) },
-    { COEF_CONST(-0.95789498090744), COEF_CONST(-0.20423194766045) },
-    { COEF_CONST(0.82411158084869), COEF_CONST(0.96654617786407) },
-    { COEF_CONST(-0.65185445547104), COEF_CONST(-0.88734990358353) },
-    { COEF_CONST(-0.93643605709076), COEF_CONST(0.99870789051056) },
-    { COEF_CONST(0.91427159309387), COEF_CONST(-0.98290503025055) },
-    { COEF_CONST(-0.70395684242249), COEF_CONST(0.58796799182892) },
-    { COEF_CONST(0.00563771976158), COEF_CONST(0.61768198013306) },
-    { COEF_CONST(0.89065051078796), COEF_CONST(0.52783352136612) },
-    { COEF_CONST(-0.68683707714081), COEF_CONST(0.80806946754456) },
-    { COEF_CONST(0.72165340185165), COEF_CONST(-0.69259858131409) },
-    { COEF_CONST(-0.62928247451782), COEF_CONST(0.13627037405968) },
-    { COEF_CONST(0.29938435554504), COEF_CONST(-0.46051329374313) },
-    { COEF_CONST(-0.91781955957413), COEF_CONST(-0.74012714624405) },
-    { COEF_CONST(0.99298715591431), COEF_CONST(0.40816611051559) },
-    { COEF_CONST(0.82368296384811), COEF_CONST(-0.74036049842834) },
-    { COEF_CONST(-0.98512834310532), COEF_CONST(-0.99972331523895) },
-    { COEF_CONST(-0.95915371179581), COEF_CONST(-0.99237799644470) },
-    { COEF_CONST(-0.21411126852036), COEF_CONST(-0.93424820899963) },
-    { COEF_CONST(-0.68821477890015), COEF_CONST(-0.26892307400703) },
-    { COEF_CONST(0.91851997375488), COEF_CONST(0.09358228743076) },
-    { COEF_CONST(-0.96062767505646), COEF_CONST(0.36099094152451) },
-    { COEF_CONST(0.51646184921265), COEF_CONST(-0.71373331546783) },
-    { COEF_CONST(0.61130720376968), COEF_CONST(0.46950140595436) },
-    { COEF_CONST(0.47336128354073), COEF_CONST(-0.27333179116249) },
-    { COEF_CONST(0.90998309850693), COEF_CONST(0.96715664863586) },
-    { COEF_CONST(0.44844800233841), COEF_CONST(0.99211573600769) },
-    { COEF_CONST(0.66614890098572), COEF_CONST(0.96590173244476) },
-    { COEF_CONST(0.74922239780426), COEF_CONST(-0.89879858493805) },
-    { COEF_CONST(-0.99571585655212), COEF_CONST(0.52785521745682) },
-    { COEF_CONST(0.97401082515717), COEF_CONST(-0.16855870187283) },
-    { COEF_CONST(0.72683745622635), COEF_CONST(-0.48060774803162) },
-    { COEF_CONST(0.95432192087173), COEF_CONST(0.68849605321884) },
-    { COEF_CONST(-0.72962206602097), COEF_CONST(-0.76608443260193) },
-    { COEF_CONST(-0.85359477996826), COEF_CONST(0.88738125562668) },
-    { COEF_CONST(-0.81412428617477), COEF_CONST(-0.97480767965317) },
-    { COEF_CONST(-0.87930774688721), COEF_CONST(0.74748307466507) },
-    { COEF_CONST(-0.71573328971863), COEF_CONST(-0.98570609092712) },
-    { COEF_CONST(0.83524298667908), COEF_CONST(0.83702534437180) },
-    { COEF_CONST(-0.48086065053940), COEF_CONST(-0.98848503828049) },
-    { COEF_CONST(0.97139126062393), COEF_CONST(0.80093622207642) },
-    { COEF_CONST(0.51992827653885), COEF_CONST(0.80247628688812) },
-    { COEF_CONST(-0.00848591234535), COEF_CONST(-0.76670128107071) },
-    { COEF_CONST(-0.70294374227524), COEF_CONST(0.55359911918640) },
-    { COEF_CONST(-0.95894426107407), COEF_CONST(-0.43265503644943) },
-    { COEF_CONST(0.97079253196716), COEF_CONST(0.09325857460499) },
-    { COEF_CONST(-0.92404294013977), COEF_CONST(0.85507702827454) },
-    { COEF_CONST(-0.69506472349167), COEF_CONST(0.98633414506912) },
-    { COEF_CONST(0.26559203863144), COEF_CONST(0.73314309120178) },
-    { COEF_CONST(0.28038442134857), COEF_CONST(0.14537914097309) },
-    { COEF_CONST(-0.74138122797012), COEF_CONST(0.99310338497162) },
-    { COEF_CONST(-0.01752796024084), COEF_CONST(-0.82616633176804) },
-    { COEF_CONST(-0.55126774311066), COEF_CONST(-0.98898541927338) },
-    { COEF_CONST(0.97960901260376), COEF_CONST(-0.94021445512772) },
-    { COEF_CONST(-0.99196308851242), COEF_CONST(0.67019015550613) },
-    { COEF_CONST(-0.67684930562973), COEF_CONST(0.12631492316723) },
-    { COEF_CONST(0.09140039235353), COEF_CONST(-0.20537731051445) },
-    { COEF_CONST(-0.71658962965012), COEF_CONST(-0.97788202762604) },
-    { COEF_CONST(0.81014639139175), COEF_CONST(0.53722649812698) },
-    { COEF_CONST(0.40616992115974), COEF_CONST(-0.26469007134438) },
-    { COEF_CONST(-0.67680186033249), COEF_CONST(0.94502049684525) },
-    { COEF_CONST(0.86849772930145), COEF_CONST(-0.18333598971367) },
-    { COEF_CONST(-0.99500381946564), COEF_CONST(-0.02634122036397) },
-    { COEF_CONST(0.84329187870026), COEF_CONST(0.10406957566738) },
-    { COEF_CONST(-0.09215968847275), COEF_CONST(0.69540011882782) },
-    { COEF_CONST(0.99956172704697), COEF_CONST(-0.12358541786671) },
-    { COEF_CONST(-0.79732781648636), COEF_CONST(-0.91582524776459) },
-    { COEF_CONST(0.96349972486496), COEF_CONST(0.96640455722809) },
-    { COEF_CONST(-0.79942780733109), COEF_CONST(0.64323902130127) },
-    { COEF_CONST(-0.11566039919853), COEF_CONST(0.28587844967842) },
-    { COEF_CONST(-0.39922955632210), COEF_CONST(0.94129604101181) },
-    { COEF_CONST(0.99089199304581), COEF_CONST(-0.92062628269196) },
-    { COEF_CONST(0.28631284832954), COEF_CONST(-0.91035044193268) },
-    { COEF_CONST(-0.83302724361420), COEF_CONST(-0.67330408096313) },
-    { COEF_CONST(0.95404446125031), COEF_CONST(0.49162766337395) },
-    { COEF_CONST(-0.06449863314629), COEF_CONST(0.03250560909510) },
-    { COEF_CONST(-0.99575054645538), COEF_CONST(0.42389783263206) },
-    { COEF_CONST(-0.65501141548157), COEF_CONST(0.82546114921570) },
-    { COEF_CONST(-0.81254440546036), COEF_CONST(-0.51627236604691) },
-    { COEF_CONST(-0.99646371603012), COEF_CONST(0.84490531682968) },
-    { COEF_CONST(0.00287840608507), COEF_CONST(0.64768260717392) },
-    { COEF_CONST(0.70176988840103), COEF_CONST(-0.20453028380871) },
-    { COEF_CONST(0.96361881494522), COEF_CONST(0.40706968307495) },
-    { COEF_CONST(-0.68883758783340), COEF_CONST(0.91338956356049) },
-    { COEF_CONST(-0.34875586628914), COEF_CONST(0.71472293138504) },
-    { COEF_CONST(0.91980081796646), COEF_CONST(0.66507452726364) },
-    { COEF_CONST(-0.99009048938751), COEF_CONST(0.85868018865585) },
-    { COEF_CONST(0.68865793943405), COEF_CONST(0.55660319328308) },
-    { COEF_CONST(-0.99484401941299), COEF_CONST(-0.20052559673786) },
-    { COEF_CONST(0.94214510917664), COEF_CONST(-0.99696427583694) },
-    { COEF_CONST(-0.67414629459381), COEF_CONST(0.49548220634460) },
-    { COEF_CONST(-0.47339352965355), COEF_CONST(-0.85904330015182) },
-    { COEF_CONST(0.14323651790619), COEF_CONST(-0.94145596027374) },
-    { COEF_CONST(-0.29268294572830), COEF_CONST(0.05759225040674) },
-    { COEF_CONST(0.43793860077858), COEF_CONST(-0.78904968500137) },
-    { COEF_CONST(-0.36345127224922), COEF_CONST(0.64874434471130) },
-    { COEF_CONST(-0.08750604838133), COEF_CONST(0.97686946392059) },
-    { COEF_CONST(-0.96495270729065), COEF_CONST(-0.53960305452347) },
-    { COEF_CONST(0.55526942014694), COEF_CONST(0.78891521692276) },
-    { COEF_CONST(0.73538213968277), COEF_CONST(0.96452075242996) },
-    { COEF_CONST(-0.30889773368835), COEF_CONST(-0.80664390325546) },
-    { COEF_CONST(0.03574995696545), COEF_CONST(-0.97325617074966) },
-    { COEF_CONST(0.98720687627792), COEF_CONST(0.48409134149551) },
-    { COEF_CONST(-0.81689298152924), COEF_CONST(-0.90827703475952) },
-    { COEF_CONST(0.67866861820221), COEF_CONST(0.81284505128860) },
-    { COEF_CONST(-0.15808570384979), COEF_CONST(0.85279554128647) },
-    { COEF_CONST(0.80723392963409), COEF_CONST(-0.24717418849468) },
-    { COEF_CONST(0.47788757085800), COEF_CONST(-0.46333149075508) },
-    { COEF_CONST(0.96367555856705), COEF_CONST(0.38486748933792) },
-    { COEF_CONST(-0.99143874645233), COEF_CONST(-0.24945276975632) },
-    { COEF_CONST(0.83081877231598), COEF_CONST(-0.94780850410461) },
-    { COEF_CONST(-0.58753192424774), COEF_CONST(0.01290772389621) },
-    { COEF_CONST(0.95538109540939), COEF_CONST(-0.85557049512863) },
-    { COEF_CONST(-0.96490919589996), COEF_CONST(-0.64020973443985) },
-    { COEF_CONST(-0.97327101230621), COEF_CONST(0.12378127872944) },
-    { COEF_CONST(0.91400367021561), COEF_CONST(0.57972472906113) },
-    { COEF_CONST(-0.99925839900970), COEF_CONST(0.71084845066071) },
-    { COEF_CONST(-0.86875903606415), COEF_CONST(-0.20291699469090) },
-    { COEF_CONST(-0.26240035891533), COEF_CONST(-0.68264555931091) },
-    { COEF_CONST(-0.24664412438869), COEF_CONST(-0.87642270326614) },
-    { COEF_CONST(0.02416275814176), COEF_CONST(0.27192914485931) },
-    { COEF_CONST(0.82068622112274), COEF_CONST(-0.85087788105011) },
-    { COEF_CONST(0.88547372817993), COEF_CONST(-0.89636802673340) },
-    { COEF_CONST(-0.18173077702522), COEF_CONST(-0.26152145862579) },
-    { COEF_CONST(0.09355476498604), COEF_CONST(0.54845124483109) },
-    { COEF_CONST(-0.54668414592743), COEF_CONST(0.95980775356293) },
-    { COEF_CONST(0.37050989270210), COEF_CONST(-0.59910142421722) },
-    { COEF_CONST(-0.70373594760895), COEF_CONST(0.91227668523788) },
-    { COEF_CONST(-0.34600785374641), COEF_CONST(-0.99441426992416) },
-    { COEF_CONST(-0.68774479627609), COEF_CONST(-0.30238837003708) },
-    { COEF_CONST(-0.26843291521072), COEF_CONST(0.83115667104721) },
-    { COEF_CONST(0.49072334170341), COEF_CONST(-0.45359709858894) },
-    { COEF_CONST(0.38975992798805), COEF_CONST(0.95515358448029) },
-    { COEF_CONST(-0.97757124900818), COEF_CONST(0.05305894464254) },
-    { COEF_CONST(-0.17325553297997), COEF_CONST(-0.92770671844482) },
-    { COEF_CONST(0.99948036670685), COEF_CONST(0.58285546302795) },
-    { COEF_CONST(-0.64946246147156), COEF_CONST(0.68645507097244) },
-    { COEF_CONST(-0.12016920745373), COEF_CONST(-0.57147324085236) },
-    { COEF_CONST(-0.58947455883026), COEF_CONST(-0.34847131371498) },
-    { COEF_CONST(-0.41815140843391), COEF_CONST(0.16276422142982) },
-    { COEF_CONST(0.99885648488998), COEF_CONST(0.11136095225811) },
-    { COEF_CONST(-0.56649613380432), COEF_CONST(-0.90494865179062) },
-    { COEF_CONST(0.94138020277023), COEF_CONST(0.35281917452812) },
-    { COEF_CONST(-0.75725078582764), COEF_CONST(0.53650552034378) },
-    { COEF_CONST(0.20541973412037), COEF_CONST(-0.94435143470764) },
-    { COEF_CONST(0.99980372190475), COEF_CONST(0.79835915565491) },
-    { COEF_CONST(0.29078277945518), COEF_CONST(0.35393777489662) },
-    { COEF_CONST(-0.62858772277832), COEF_CONST(0.38765692710876) },
-    { COEF_CONST(0.43440905213356), COEF_CONST(-0.98546332120895) },
-    { COEF_CONST(-0.98298585414886), COEF_CONST(0.21021524071693) },
-    { COEF_CONST(0.19513028860092), COEF_CONST(-0.94239830970764) },
-    { COEF_CONST(-0.95476663112640), COEF_CONST(0.98364555835724) },
-    { COEF_CONST(0.93379634618759), COEF_CONST(-0.70881992578506) },
-    { COEF_CONST(-0.85235410928726), COEF_CONST(-0.08342348039150) },
-    { COEF_CONST(-0.86425095796585), COEF_CONST(-0.45795026421547) },
-    { COEF_CONST(0.38879778981209), COEF_CONST(0.97274428606033) },
-    { COEF_CONST(0.92045122385025), COEF_CONST(-0.62433654069901) },
-    { COEF_CONST(0.89162534475327), COEF_CONST(0.54950958490372) },
-    { COEF_CONST(-0.36834338307381), COEF_CONST(0.96458297967911) },
-    { COEF_CONST(0.93891763687134), COEF_CONST(-0.89968353509903) },
-    { COEF_CONST(0.99267655611038), COEF_CONST(-0.03757034242153) },
-    { COEF_CONST(-0.94063472747803), COEF_CONST(0.41332337260246) },
-    { COEF_CONST(0.99740225076675), COEF_CONST(-0.16830494999886) },
-    { COEF_CONST(-0.35899412631989), COEF_CONST(-0.46633225679398) },
-    { COEF_CONST(0.05237237364054), COEF_CONST(-0.25640362501144) },
-    { COEF_CONST(0.36703583598137), COEF_CONST(-0.38653266429901) },
-    { COEF_CONST(0.91653180122375), COEF_CONST(-0.30587628483772) },
-    { COEF_CONST(0.69000804424286), COEF_CONST(0.90952169895172) },
-    { COEF_CONST(-0.38658750057220), COEF_CONST(0.99501574039459) },
-    { COEF_CONST(-0.29250815510750), COEF_CONST(0.37444993853569) },
-    { COEF_CONST(-0.60182201862335), COEF_CONST(0.86779648065567) },
-    { COEF_CONST(-0.97418588399887), COEF_CONST(0.96468526124954) },
-    { COEF_CONST(0.88461571931839), COEF_CONST(0.57508403062820) },
-    { COEF_CONST(0.05198933184147), COEF_CONST(0.21269661188126) },
-    { COEF_CONST(-0.53499621152878), COEF_CONST(0.97241556644440) },
-    { COEF_CONST(-0.49429559707642), COEF_CONST(0.98183864355087) },
-    { COEF_CONST(-0.98935145139694), COEF_CONST(-0.40249159932137) },
-    { COEF_CONST(-0.98081380128860), COEF_CONST(-0.72856897115707) },
-    { COEF_CONST(-0.27338150143623), COEF_CONST(0.99950921535492) },
-    { COEF_CONST(0.06310802698135), COEF_CONST(-0.54539585113525) },
-    { COEF_CONST(-0.20461677014828), COEF_CONST(-0.14209978282452) },
-    { COEF_CONST(0.66223841905594), COEF_CONST(0.72528582811356) },
-    { COEF_CONST(-0.84764343500137), COEF_CONST(0.02372316829860) },
-    { COEF_CONST(-0.89039862155914), COEF_CONST(0.88866579532623) },
-    { COEF_CONST(0.95903307199478), COEF_CONST(0.76744925975800) },
-    { COEF_CONST(0.73504126071930), COEF_CONST(-0.03747203201056) },
-    { COEF_CONST(-0.31744435429573), COEF_CONST(-0.36834111809731) },
-    { COEF_CONST(-0.34110826253891), COEF_CONST(0.40211221575737) },
-    { COEF_CONST(0.47803884744644), COEF_CONST(-0.39423218369484) },
-    { COEF_CONST(0.98299193382263), COEF_CONST(0.01989791356027) },
-    { COEF_CONST(-0.30963072180748), COEF_CONST(-0.18076720833778) },
-    { COEF_CONST(0.99992591142654), COEF_CONST(-0.26281872391701) },
-    { COEF_CONST(-0.93149733543396), COEF_CONST(-0.98313164710999) },
-    { COEF_CONST(0.99923473596573), COEF_CONST(-0.80142992734909) },
-    { COEF_CONST(-0.26024168729782), COEF_CONST(-0.75999760627747) },
-    { COEF_CONST(-0.35712513327599), COEF_CONST(0.19298963248730) },
-    { COEF_CONST(-0.99899083375931), COEF_CONST(0.74645155668259) },
-    { COEF_CONST(0.86557173728943), COEF_CONST(0.55593866109848) },
-    { COEF_CONST(0.33408042788506), COEF_CONST(0.86185956001282) },
-    { COEF_CONST(0.99010735750198), COEF_CONST(0.04602397605777) },
-    { COEF_CONST(-0.66694271564484), COEF_CONST(-0.91643613576889) },
-    { COEF_CONST(0.64016789197922), COEF_CONST(0.15649530291557) },
-    { COEF_CONST(0.99570536613464), COEF_CONST(0.45844584703445) },
-    { COEF_CONST(-0.63431465625763), COEF_CONST(0.21079117059708) },
-    { COEF_CONST(-0.07706847041845), COEF_CONST(-0.89581435918808) },
-    { COEF_CONST(0.98590087890625), COEF_CONST(0.88241720199585) },
-    { COEF_CONST(0.80099332332611), COEF_CONST(-0.36851897835732) },
-    { COEF_CONST(0.78368133306503), COEF_CONST(0.45506998896599) },
-    { COEF_CONST(0.08707806468010), COEF_CONST(0.80938994884491) },
-    { COEF_CONST(-0.86811882257462), COEF_CONST(0.39347308874130) },
-    { COEF_CONST(-0.39466530084610), COEF_CONST(-0.66809433698654) },
-    { COEF_CONST(0.97875326871872), COEF_CONST(-0.72467839717865) },
-    { COEF_CONST(-0.95038563013077), COEF_CONST(0.89563220739365) },
-    { COEF_CONST(0.17005239427090), COEF_CONST(0.54683053493500) },
-    { COEF_CONST(-0.76910793781281), COEF_CONST(-0.96226614713669) },
-    { COEF_CONST(0.99743282794952), COEF_CONST(0.42697158455849) },
-    { COEF_CONST(0.95437383651733), COEF_CONST(0.97002321481705) },
-    { COEF_CONST(0.99578905105591), COEF_CONST(-0.54106825590134) },
-    { COEF_CONST(0.28058260679245), COEF_CONST(-0.85361421108246) },
-    { COEF_CONST(0.85256522893906), COEF_CONST(-0.64567607641220) },
-    { COEF_CONST(-0.50608539581299), COEF_CONST(-0.65846014022827) },
-    { COEF_CONST(-0.97210735082626), COEF_CONST(-0.23095212876797) },
-    { COEF_CONST(0.95424050092697), COEF_CONST(-0.99240148067474) },
-    { COEF_CONST(-0.96926569938660), COEF_CONST(0.73775655031204) },
-    { COEF_CONST(0.30872163176537), COEF_CONST(0.41514959931374) },
-    { COEF_CONST(-0.24523839354515), COEF_CONST(0.63206630945206) },
-    { COEF_CONST(-0.33813264966011), COEF_CONST(-0.38661777973175) },
-    { COEF_CONST(-0.05826828256249), COEF_CONST(-0.06940773874521) },
-    { COEF_CONST(-0.22898460924625), COEF_CONST(0.97054851055145) },
-    { COEF_CONST(-0.18509915471077), COEF_CONST(0.47565764188766) },
-    { COEF_CONST(-0.10488238185644), COEF_CONST(-0.87769949436188) },
-    { COEF_CONST(-0.71886587142944), COEF_CONST(0.78030979633331) },
-    { COEF_CONST(0.99793875217438), COEF_CONST(0.90041309595108) },
-    { COEF_CONST(0.57563304901123), COEF_CONST(-0.91034334897995) },
-    { COEF_CONST(0.28909647464752), COEF_CONST(0.96307784318924) },
-    { COEF_CONST(0.42188999056816), COEF_CONST(0.48148649930954) },
-    { COEF_CONST(0.93335050344467), COEF_CONST(-0.43537023663521) },
-    { COEF_CONST(-0.97087377309799), COEF_CONST(0.86636447906494) },
-    { COEF_CONST(0.36722871661186), COEF_CONST(0.65291655063629) },
-    { COEF_CONST(-0.81093025207520), COEF_CONST(0.08778370171785) },
-    { COEF_CONST(-0.26240602135658), COEF_CONST(-0.92774093151093) },
-    { COEF_CONST(0.83996498584747), COEF_CONST(0.55839848518372) },
-    { COEF_CONST(-0.99909615516663), COEF_CONST(-0.96024608612061) },
-    { COEF_CONST(0.74649465084076), COEF_CONST(0.12144893407822) },
-    { COEF_CONST(-0.74774593114853), COEF_CONST(-0.26898062229156) },
-    { COEF_CONST(0.95781666040421), COEF_CONST(-0.79047924280167) },
-    { COEF_CONST(0.95472306013107), COEF_CONST(-0.08588775992393) },
-    { COEF_CONST(0.48708331584930), COEF_CONST(0.99999040365219) },
-    { COEF_CONST(0.46332037448883), COEF_CONST(0.10964126139879) },
-    { COEF_CONST(-0.76497006416321), COEF_CONST(0.89210927486420) },
-    { COEF_CONST(0.57397389411926), COEF_CONST(0.35289704799652) },
-    { COEF_CONST(0.75374317169189), COEF_CONST(0.96705216169357) },
-    { COEF_CONST(-0.59174400568008), COEF_CONST(-0.89405369758606) },
-    { COEF_CONST(0.75087904930115), COEF_CONST(-0.29612672328949) },
-    { COEF_CONST(-0.98607856035233), COEF_CONST(0.25034910440445) },
-    { COEF_CONST(-0.40761056542397), COEF_CONST(-0.90045571327209) },
-    { COEF_CONST(0.66929268836975), COEF_CONST(0.98629492521286) },
-    { COEF_CONST(-0.97463697195053), COEF_CONST(-0.00190223299433) },
-    { COEF_CONST(0.90145510435104), COEF_CONST(0.99781388044357) },
-    { COEF_CONST(-0.87259286642075), COEF_CONST(0.99233585596085) },
-    { COEF_CONST(-0.91529458761215), COEF_CONST(-0.15698707103729) },
-    { COEF_CONST(-0.03305738791823), COEF_CONST(-0.37205263972282) },
-    { COEF_CONST(0.07223051041365), COEF_CONST(-0.88805001974106) },
-    { COEF_CONST(0.99498009681702), COEF_CONST(0.97094357013702) },
-    { COEF_CONST(-0.74904936552048), COEF_CONST(0.99985486268997) },
-    { COEF_CONST(0.04585228487849), COEF_CONST(0.99812334775925) },
-    { COEF_CONST(-0.89054954051971), COEF_CONST(-0.31791913509369) },
-    { COEF_CONST(-0.83782142400742), COEF_CONST(0.97637635469437) },
-    { COEF_CONST(0.33454805612564), COEF_CONST(-0.86231517791748) },
-    { COEF_CONST(-0.99707579612732), COEF_CONST(0.93237990140915) },
-    { COEF_CONST(-0.22827528417110), COEF_CONST(0.18874759972095) },
-    { COEF_CONST(0.67248046398163), COEF_CONST(-0.03646211326122) },
-    { COEF_CONST(-0.05146538093686), COEF_CONST(-0.92599701881409) },
-    { COEF_CONST(0.99947297573090), COEF_CONST(0.93625229597092) },
-    { COEF_CONST(0.66951125860214), COEF_CONST(0.98905825614929) },
-    { COEF_CONST(-0.99602955579758), COEF_CONST(-0.44654715061188) },
-    { COEF_CONST(0.82104903459549), COEF_CONST(0.99540740251541) },
-    { COEF_CONST(0.99186509847641), COEF_CONST(0.72022998332977) },
-    { COEF_CONST(-0.65284591913223), COEF_CONST(0.52186721563339) },
-    { COEF_CONST(0.93885445594788), COEF_CONST(-0.74895310401917) },
-    { COEF_CONST(0.96735250949860), COEF_CONST(0.90891814231873) },
-    { COEF_CONST(-0.22225968539715), COEF_CONST(0.57124030590057) },
-    { COEF_CONST(-0.44132784008980), COEF_CONST(-0.92688840627670) },
-    { COEF_CONST(-0.85694974660873), COEF_CONST(0.88844531774521) },
-    { COEF_CONST(0.91783040761948), COEF_CONST(-0.46356892585754) },
-    { COEF_CONST(0.72556972503662), COEF_CONST(-0.99899554252625) },
-    { COEF_CONST(-0.99711579084396), COEF_CONST(0.58211559057236) },
-    { COEF_CONST(0.77638977766037), COEF_CONST(0.94321835041046) },
-    { COEF_CONST(0.07717324048281), COEF_CONST(0.58638399839401) },
-    { COEF_CONST(-0.56049829721451), COEF_CONST(0.82522302865982) },
-    { COEF_CONST(0.98398894071579), COEF_CONST(0.39467439055443) },
-    { COEF_CONST(0.47546947002411), COEF_CONST(0.68613046407700) },
-    { COEF_CONST(0.65675091743469), COEF_CONST(0.18331636488438) },
-    { COEF_CONST(0.03273375332355), COEF_CONST(-0.74933111667633) },
-    { COEF_CONST(-0.38684144616127), COEF_CONST(0.51337349414825) },
-    { COEF_CONST(-0.97346270084381), COEF_CONST(-0.96549361944199) },
-    { COEF_CONST(-0.53282153606415), COEF_CONST(-0.91423267126083) },
-    { COEF_CONST(0.99817311763763), COEF_CONST(0.61133575439453) },
-    { COEF_CONST(-0.50254499912262), COEF_CONST(-0.88829338550568) },
-    { COEF_CONST(0.01995873264968), COEF_CONST(0.85223513841629) },
-    { COEF_CONST(0.99930381774902), COEF_CONST(0.94578897953033) },
-    { COEF_CONST(0.82907766103745), COEF_CONST(-0.06323442608118) },
-    { COEF_CONST(-0.58660709857941), COEF_CONST(0.96840775012970) },
-    { COEF_CONST(-0.17573736608028), COEF_CONST(-0.48166921734810) },
-    { COEF_CONST(0.83434289693832), COEF_CONST(-0.13023450970650) },
-    { COEF_CONST(0.05946491286159), COEF_CONST(0.20511047542095) },
-    { COEF_CONST(0.81505483388901), COEF_CONST(-0.94685947895050) },
-    { COEF_CONST(-0.44976380467415), COEF_CONST(0.40894573926926) },
-    { COEF_CONST(-0.89746475219727), COEF_CONST(0.99846577644348) },
-    { COEF_CONST(0.39677256345749), COEF_CONST(-0.74854665994644) },
-    { COEF_CONST(-0.07588948309422), COEF_CONST(0.74096214771271) },
-    { COEF_CONST(0.76343196630478), COEF_CONST(0.41746628284454) },
-    { COEF_CONST(-0.74490106105804), COEF_CONST(0.94725912809372) },
-    { COEF_CONST(0.64880120754242), COEF_CONST(0.41336661577225) },
-    { COEF_CONST(0.62319535017014), COEF_CONST(-0.93098312616348) },
-    { COEF_CONST(0.42215818166733), COEF_CONST(-0.07712787389755) },
-    { COEF_CONST(0.02704554051161), COEF_CONST(-0.05417517945170) },
-    { COEF_CONST(0.80001771450043), COEF_CONST(0.91542196273804) },
-    { COEF_CONST(-0.79351830482483), COEF_CONST(-0.36208897829056) },
-    { COEF_CONST(0.63872361183167), COEF_CONST(0.08128252625465) },
-    { COEF_CONST(0.52890521287918), COEF_CONST(0.60048872232437) },
-    { COEF_CONST(0.74238550662994), COEF_CONST(0.04491915181279) },
-    { COEF_CONST(0.99096131324768), COEF_CONST(-0.19451183080673) },
-    { COEF_CONST(-0.80412328243256), COEF_CONST(-0.88513815402985) },
-    { COEF_CONST(-0.64612615108490), COEF_CONST(0.72198677062988) },
-    { COEF_CONST(0.11657770723104), COEF_CONST(-0.83662831783295) },
-    { COEF_CONST(-0.95053184032440), COEF_CONST(-0.96939903497696) },
-    { COEF_CONST(-0.62228870391846), COEF_CONST(0.82767260074615) },
-    { COEF_CONST(0.03004475869238), COEF_CONST(-0.99738895893097) },
-    { COEF_CONST(-0.97987216711044), COEF_CONST(0.36526128649712) },
-    { COEF_CONST(-0.99986982345581), COEF_CONST(-0.36021611094475) },
-    { COEF_CONST(0.89110648632050), COEF_CONST(-0.97894251346588) },
-    { COEF_CONST(0.10407960414886), COEF_CONST(0.77357792854309) },
-    { COEF_CONST(0.95964735746384), COEF_CONST(-0.35435819625854) },
-    { COEF_CONST(0.50843232870102), COEF_CONST(0.96107691526413) },
-    { COEF_CONST(0.17006334662437), COEF_CONST(-0.76854026317596) },
-    { COEF_CONST(0.25872674584389), COEF_CONST(0.99893301725388) },
-    { COEF_CONST(-0.01115998718888), COEF_CONST(0.98496019840240) },
-    { COEF_CONST(-0.79598701000214), COEF_CONST(0.97138410806656) },
-    { COEF_CONST(-0.99264711141586), COEF_CONST(-0.99542820453644) },
-    { COEF_CONST(-0.99829661846161), COEF_CONST(0.01877138763666) },
-    { COEF_CONST(-0.70801013708115), COEF_CONST(0.33680686354637) },
-    { COEF_CONST(-0.70467054843903), COEF_CONST(0.93272775411606) },
-    { COEF_CONST(0.99846023321152), COEF_CONST(-0.98725748062134) },
-    { COEF_CONST(-0.63364970684052), COEF_CONST(-0.16473594307899) },
-    { COEF_CONST(-0.16258217394352), COEF_CONST(-0.95939123630524) },
-    { COEF_CONST(-0.43645593523979), COEF_CONST(-0.94805032014847) },
-    { COEF_CONST(-0.99848473072052), COEF_CONST(0.96245169639587) },
-    { COEF_CONST(-0.16796459257603), COEF_CONST(-0.98987513780594) },
-    { COEF_CONST(-0.87979227304459), COEF_CONST(-0.71725726127625) },
-    { COEF_CONST(0.44183099269867), COEF_CONST(-0.93568974733353) },
-    { COEF_CONST(0.93310177326202), COEF_CONST(-0.99913311004639) },
-    { COEF_CONST(-0.93941932916641), COEF_CONST(-0.56409376859665) },
-    { COEF_CONST(-0.88590002059937), COEF_CONST(0.47624599933624) },
-    { COEF_CONST(0.99971461296082), COEF_CONST(-0.83889955282211) },
-    { COEF_CONST(-0.75376385450363), COEF_CONST(0.00814643409103) },
-    { COEF_CONST(0.93887686729431), COEF_CONST(-0.11284527927637) },
-    { COEF_CONST(0.85126435756683), COEF_CONST(0.52349251508713) },
-    { COEF_CONST(0.39701420068741), COEF_CONST(0.81779634952545) },
-    { COEF_CONST(-0.37024465203285), COEF_CONST(-0.87071657180786) },
-    { COEF_CONST(-0.36024826765060), COEF_CONST(0.34655734896660) },
-    { COEF_CONST(-0.93388813734055), COEF_CONST(-0.84476542472839) },
-    { COEF_CONST(-0.65298801660538), COEF_CONST(-0.18439576029778) },
-    { COEF_CONST(0.11960318684578), COEF_CONST(0.99899345636368) },
-    { COEF_CONST(0.94292563199997), COEF_CONST(0.83163905143738) },
-    { COEF_CONST(0.75081145763397), COEF_CONST(-0.35533222556114) },
-    { COEF_CONST(0.56721979379654), COEF_CONST(-0.24076835811138) },
-    { COEF_CONST(0.46857765316963), COEF_CONST(-0.30140233039856) },
-    { COEF_CONST(0.97312313318253), COEF_CONST(-0.99548190832138) },
-    { COEF_CONST(-0.38299977779388), COEF_CONST(0.98516911268234) },
-    { COEF_CONST(0.41025799512863), COEF_CONST(0.02116736955941) },
-    { COEF_CONST(0.09638062119484), COEF_CONST(0.04411984235048) },
-    { COEF_CONST(-0.85283249616623), COEF_CONST(0.91475564241409) },
-    { COEF_CONST(0.88866806030273), COEF_CONST(-0.99735265970230) },
-    { COEF_CONST(-0.48202428221703), COEF_CONST(-0.96805608272552) },
-    { COEF_CONST(0.27572581171989), COEF_CONST(0.58634752035141) },
-    { COEF_CONST(-0.65889132022858), COEF_CONST(0.58835631608963) },
-    { COEF_CONST(0.98838084936142), COEF_CONST(0.99994349479675) },
-    { COEF_CONST(-0.20651349425316), COEF_CONST(0.54593044519424) },
-    { COEF_CONST(-0.62126415967941), COEF_CONST(-0.59893679618835) },
-    { COEF_CONST(0.20320105552673), COEF_CONST(-0.86879181861877) },
-    { COEF_CONST(-0.97790551185608), COEF_CONST(0.96290808916092) },
-    { COEF_CONST(0.11112534999847), COEF_CONST(0.21484763920307) },
-    { COEF_CONST(-0.41368338465691), COEF_CONST(0.28216838836670) },
-    { COEF_CONST(0.24133038520813), COEF_CONST(0.51294362545013) },
-    { COEF_CONST(-0.66393411159515), COEF_CONST(-0.08249679952860) },
-    { COEF_CONST(-0.53697830438614), COEF_CONST(-0.97649902105331) },
-    { COEF_CONST(-0.97224736213684), COEF_CONST(0.22081333398819) },
-    { COEF_CONST(0.87392479181290), COEF_CONST(-0.12796173989773) },
-    { COEF_CONST(0.19050361216068), COEF_CONST(0.01602615416050) },
-    { COEF_CONST(-0.46353441476822), COEF_CONST(-0.95249038934708) },
-    { COEF_CONST(-0.07064096629620), COEF_CONST(-0.94479805231094) },
-    { COEF_CONST(-0.92444086074829), COEF_CONST(-0.10457590222359) },
-    { COEF_CONST(-0.83822596073151), COEF_CONST(-0.01695043221116) },
-    { COEF_CONST(0.75214684009552), COEF_CONST(-0.99955683946609) },
-    { COEF_CONST(-0.42102998495102), COEF_CONST(0.99720942974091) },
-    { COEF_CONST(-0.72094786167145), COEF_CONST(-0.35008960962296) },
-    { COEF_CONST(0.78843313455582), COEF_CONST(0.52851396799088) },
-    { COEF_CONST(0.97394025325775), COEF_CONST(-0.26695942878723) },
-    { COEF_CONST(0.99206465482712), COEF_CONST(-0.57010120153427) },
-    { COEF_CONST(0.76789611577988), COEF_CONST(-0.76519358158112) },
-    { COEF_CONST(-0.82002419233322), COEF_CONST(-0.73530179262161) },
-    { COEF_CONST(0.81924992799759), COEF_CONST(0.99698424339294) },
-    { COEF_CONST(-0.26719850301743), COEF_CONST(0.68903368711472) },
-    { COEF_CONST(-0.43311259150505), COEF_CONST(0.85321813821793) },
-    { COEF_CONST(0.99194979667664), COEF_CONST(0.91876250505447) },
-    { COEF_CONST(-0.80691999197006), COEF_CONST(-0.32627540826797) },
-    { COEF_CONST(0.43080005049706), COEF_CONST(-0.21919095516205) },
-    { COEF_CONST(0.67709493637085), COEF_CONST(-0.95478075742722) },
-    { COEF_CONST(0.56151771545410), COEF_CONST(-0.70693808794022) },
-    { COEF_CONST(0.10831862688065), COEF_CONST(-0.08628837019205) },
-    { COEF_CONST(0.91229414939880), COEF_CONST(-0.65987348556519) },
-    { COEF_CONST(-0.48972892761230), COEF_CONST(0.56289243698120) },
-    { COEF_CONST(-0.89033657312393), COEF_CONST(-0.71656566858292) },
-    { COEF_CONST(0.65269446372986), COEF_CONST(0.65916007757187) },
-    { COEF_CONST(0.67439478635788), COEF_CONST(-0.81684380769730) },
-    { COEF_CONST(-0.47770830988884), COEF_CONST(-0.16789555549622) },
-    { COEF_CONST(-0.99715977907181), COEF_CONST(-0.93565785884857) },
-    { COEF_CONST(-0.90889590978622), COEF_CONST(0.62034398317337) },
-    { COEF_CONST(-0.06618622690439), COEF_CONST(-0.23812216520309) },
-    { COEF_CONST(0.99430269002914), COEF_CONST(0.18812555074692) },
-    { COEF_CONST(0.97686403989792), COEF_CONST(-0.28664535284042) },
-    { COEF_CONST(0.94813650846481), COEF_CONST(-0.97506642341614) },
-    { COEF_CONST(-0.95434498786926), COEF_CONST(-0.79607981443405) },
-    { COEF_CONST(-0.49104782938957), COEF_CONST(0.32895213365555) },
-    { COEF_CONST(0.99881172180176), COEF_CONST(0.88993984460831) },
-    { COEF_CONST(0.50449168682098), COEF_CONST(-0.85995072126389) },
-    { COEF_CONST(0.47162890434265), COEF_CONST(-0.18680204451084) },
-    { COEF_CONST(-0.62081581354141), COEF_CONST(0.75000673532486) },
-    { COEF_CONST(-0.43867015838623), COEF_CONST(0.99998068809509) },
-    { COEF_CONST(0.98630565404892), COEF_CONST(-0.53578901290894) },
-    { COEF_CONST(-0.61510360240936), COEF_CONST(-0.89515018463135) },
-    { COEF_CONST(-0.03841517493129), COEF_CONST(-0.69888818264008) },
-    { COEF_CONST(-0.30102157592773), COEF_CONST(-0.07667808979750) },
-    { COEF_CONST(0.41881284117699), COEF_CONST(0.02188098989427) },
-    { COEF_CONST(-0.86135452985764), COEF_CONST(0.98947483301163) },
-    { COEF_CONST(0.67226862907410), COEF_CONST(-0.13494388759136) },
-    { COEF_CONST(-0.70737397670746), COEF_CONST(-0.76547348499298) },
-    { COEF_CONST(0.94044947624207), COEF_CONST(0.09026201069355) },
-    { COEF_CONST(-0.82386350631714), COEF_CONST(0.08924768865108) },
-    { COEF_CONST(-0.32070666551590), COEF_CONST(0.50143420696259) },
-    { COEF_CONST(0.57593160867691), COEF_CONST(-0.98966425657272) },
-    { COEF_CONST(-0.36326017975807), COEF_CONST(0.07440242916346) },
-    { COEF_CONST(0.99979043006897), COEF_CONST(-0.14130286872387) },
-    { COEF_CONST(-0.92366021871567), COEF_CONST(-0.97979295253754) },
-    { COEF_CONST(-0.44607177376747), COEF_CONST(-0.54233253002167) },
-    { COEF_CONST(0.44226801395416), COEF_CONST(0.71326756477356) },
-    { COEF_CONST(0.03671907261014), COEF_CONST(0.63606387376785) },
-    { COEF_CONST(0.52175426483154), COEF_CONST(-0.85396826267242) },
-    { COEF_CONST(-0.94701141119003), COEF_CONST(-0.01826348155737) },
-    { COEF_CONST(-0.98759609460831), COEF_CONST(0.82288712263107) },
-    { COEF_CONST(0.87434792518616), COEF_CONST(0.89399492740631) },
-    { COEF_CONST(-0.93412041664124), COEF_CONST(0.41374051570892) },
-    { COEF_CONST(0.96063941717148), COEF_CONST(0.93116706609726) },
-    { COEF_CONST(0.97534251213074), COEF_CONST(0.86150932312012) },
-    { COEF_CONST(0.99642467498779), COEF_CONST(0.70190042257309) },
-    { COEF_CONST(-0.94705086946487), COEF_CONST(-0.29580041766167) },
-    { COEF_CONST(0.91599804162979), COEF_CONST(-0.98147833347321) }
+    { FRAC_CONST(-0.99948155879974), FRAC_CONST(-0.59483414888382) },
+    { FRAC_CONST(0.97113454341888), FRAC_CONST(-0.67528516054153) },
+    { FRAC_CONST(0.14130051434040), FRAC_CONST(-0.95090985298157) },
+    { FRAC_CONST(-0.47005495429039), FRAC_CONST(-0.37340548634529) },
+    { FRAC_CONST(0.80705064535141), FRAC_CONST(0.29653668403625) },
+    { FRAC_CONST(-0.38981479406357), FRAC_CONST(0.89572608470917) },
+    { FRAC_CONST(-0.01053049881011), FRAC_CONST(-0.66959059238434) },
+    { FRAC_CONST(-0.91266369819641), FRAC_CONST(-0.11522938311100) },
+    { FRAC_CONST(0.54840421676636), FRAC_CONST(0.75221365690231) },
+    { FRAC_CONST(0.40009254217148), FRAC_CONST(-0.98929399251938) },
+    { FRAC_CONST(-0.99867975711823), FRAC_CONST(-0.88147068023682) },
+    { FRAC_CONST(-0.95531076192856), FRAC_CONST(0.90908759832382) },
+    { FRAC_CONST(-0.45725932717323), FRAC_CONST(-0.56716322898865) },
+    { FRAC_CONST(-0.72929674386978), FRAC_CONST(-0.98008275032043) },
+    { FRAC_CONST(0.75622802972794), FRAC_CONST(0.20950329303741) },
+    { FRAC_CONST(0.07069442421198), FRAC_CONST(-0.78247898817062) },
+    { FRAC_CONST(0.74496251344681), FRAC_CONST(-0.91169005632401) },
+    { FRAC_CONST(-0.96440184116364), FRAC_CONST(-0.94739919900894) },
+    { FRAC_CONST(0.30424630641937), FRAC_CONST(-0.49438267946243) },
+    { FRAC_CONST(0.66565030813217), FRAC_CONST(0.64652937650681) },
+    { FRAC_CONST(0.91697007417679), FRAC_CONST(0.17514097690582) },
+    { FRAC_CONST(-0.70774918794632), FRAC_CONST(0.52548652887344) },
+    { FRAC_CONST(-0.70051413774490), FRAC_CONST(-0.45340028405190) },
+    { FRAC_CONST(-0.99496513605118), FRAC_CONST(-0.90071910619736) },
+    { FRAC_CONST(0.98164492845535), FRAC_CONST(-0.77463155984879) },
+    { FRAC_CONST(-0.54671579599380), FRAC_CONST(-0.02570928446949) },
+    { FRAC_CONST(-0.01689629070461), FRAC_CONST(0.00287506449968) },
+    { FRAC_CONST(-0.86110347509384), FRAC_CONST(0.42548584938049) },
+    { FRAC_CONST(-0.98892980813980), FRAC_CONST(-0.87881129980087) },
+    { FRAC_CONST(0.51756626367569), FRAC_CONST(0.66926783323288) },
+    { FRAC_CONST(-0.99635028839111), FRAC_CONST(-0.58107727766037) },
+    { FRAC_CONST(-0.99969369173050), FRAC_CONST(0.98369991779327) },
+    { FRAC_CONST(0.55266261100769), FRAC_CONST(0.59449058771133) },
+    { FRAC_CONST(0.34581178426743), FRAC_CONST(0.94879418611526) },
+    { FRAC_CONST(0.62664210796356), FRAC_CONST(-0.74402970075607) },
+    { FRAC_CONST(-0.77149701118469), FRAC_CONST(-0.33883658051491) },
+    { FRAC_CONST(-0.91592246294022), FRAC_CONST(0.03687901422381) },
+    { FRAC_CONST(-0.76285493373871), FRAC_CONST(-0.91371870040894) },
+    { FRAC_CONST(0.79788339138031), FRAC_CONST(-0.93180972337723) },
+    { FRAC_CONST(0.54473078250885), FRAC_CONST(-0.11919206380844) },
+    { FRAC_CONST(-0.85639280080795), FRAC_CONST(0.42429855465889) },
+    { FRAC_CONST(-0.92882400751114), FRAC_CONST(0.27871808409691) },
+    { FRAC_CONST(-0.11708371341228), FRAC_CONST(-0.99800843000412) },
+    { FRAC_CONST(0.21356749534607), FRAC_CONST(-0.90716296434402) },
+    { FRAC_CONST(-0.76191693544388), FRAC_CONST(0.99768120050430) },
+    { FRAC_CONST(0.98111045360565), FRAC_CONST(-0.95854461193085) },
+    { FRAC_CONST(-0.85913270711899), FRAC_CONST(0.95766568183899) },
+    { FRAC_CONST(-0.93307244777679), FRAC_CONST(0.49431759119034) },
+    { FRAC_CONST(0.30485755205154), FRAC_CONST(-0.70540034770966) },
+    { FRAC_CONST(0.85289651155472), FRAC_CONST(0.46766132116318) },
+    { FRAC_CONST(0.91328084468842), FRAC_CONST(-0.99839597940445) },
+    { FRAC_CONST(-0.05890199914575), FRAC_CONST(0.70741826295853) },
+    { FRAC_CONST(0.28398686647415), FRAC_CONST(0.34633556008339) },
+    { FRAC_CONST(0.95258164405823), FRAC_CONST(-0.54893416166306) },
+    { FRAC_CONST(-0.78566324710846), FRAC_CONST(-0.75568538904190) },
+    { FRAC_CONST(-0.95789498090744), FRAC_CONST(-0.20423194766045) },
+    { FRAC_CONST(0.82411158084869), FRAC_CONST(0.96654617786407) },
+    { FRAC_CONST(-0.65185445547104), FRAC_CONST(-0.88734990358353) },
+    { FRAC_CONST(-0.93643605709076), FRAC_CONST(0.99870789051056) },
+    { FRAC_CONST(0.91427159309387), FRAC_CONST(-0.98290503025055) },
+    { FRAC_CONST(-0.70395684242249), FRAC_CONST(0.58796799182892) },
+    { FRAC_CONST(0.00563771976158), FRAC_CONST(0.61768198013306) },
+    { FRAC_CONST(0.89065051078796), FRAC_CONST(0.52783352136612) },
+    { FRAC_CONST(-0.68683707714081), FRAC_CONST(0.80806946754456) },
+    { FRAC_CONST(0.72165340185165), FRAC_CONST(-0.69259858131409) },
+    { FRAC_CONST(-0.62928247451782), FRAC_CONST(0.13627037405968) },
+    { FRAC_CONST(0.29938435554504), FRAC_CONST(-0.46051329374313) },
+    { FRAC_CONST(-0.91781955957413), FRAC_CONST(-0.74012714624405) },
+    { FRAC_CONST(0.99298715591431), FRAC_CONST(0.40816611051559) },
+    { FRAC_CONST(0.82368296384811), FRAC_CONST(-0.74036049842834) },
+    { FRAC_CONST(-0.98512834310532), FRAC_CONST(-0.99972331523895) },
+    { FRAC_CONST(-0.95915371179581), FRAC_CONST(-0.99237799644470) },
+    { FRAC_CONST(-0.21411126852036), FRAC_CONST(-0.93424820899963) },
+    { FRAC_CONST(-0.68821477890015), FRAC_CONST(-0.26892307400703) },
+    { FRAC_CONST(0.91851997375488), FRAC_CONST(0.09358228743076) },
+    { FRAC_CONST(-0.96062767505646), FRAC_CONST(0.36099094152451) },
+    { FRAC_CONST(0.51646184921265), FRAC_CONST(-0.71373331546783) },
+    { FRAC_CONST(0.61130720376968), FRAC_CONST(0.46950140595436) },
+    { FRAC_CONST(0.47336128354073), FRAC_CONST(-0.27333179116249) },
+    { FRAC_CONST(0.90998309850693), FRAC_CONST(0.96715664863586) },
+    { FRAC_CONST(0.44844800233841), FRAC_CONST(0.99211573600769) },
+    { FRAC_CONST(0.66614890098572), FRAC_CONST(0.96590173244476) },
+    { FRAC_CONST(0.74922239780426), FRAC_CONST(-0.89879858493805) },
+    { FRAC_CONST(-0.99571585655212), FRAC_CONST(0.52785521745682) },
+    { FRAC_CONST(0.97401082515717), FRAC_CONST(-0.16855870187283) },
+    { FRAC_CONST(0.72683745622635), FRAC_CONST(-0.48060774803162) },
+    { FRAC_CONST(0.95432192087173), FRAC_CONST(0.68849605321884) },
+    { FRAC_CONST(-0.72962206602097), FRAC_CONST(-0.76608443260193) },
+    { FRAC_CONST(-0.85359477996826), FRAC_CONST(0.88738125562668) },
+    { FRAC_CONST(-0.81412428617477), FRAC_CONST(-0.97480767965317) },
+    { FRAC_CONST(-0.87930774688721), FRAC_CONST(0.74748307466507) },
+    { FRAC_CONST(-0.71573328971863), FRAC_CONST(-0.98570609092712) },
+    { FRAC_CONST(0.83524298667908), FRAC_CONST(0.83702534437180) },
+    { FRAC_CONST(-0.48086065053940), FRAC_CONST(-0.98848503828049) },
+    { FRAC_CONST(0.97139126062393), FRAC_CONST(0.80093622207642) },
+    { FRAC_CONST(0.51992827653885), FRAC_CONST(0.80247628688812) },
+    { FRAC_CONST(-0.00848591234535), FRAC_CONST(-0.76670128107071) },
+    { FRAC_CONST(-0.70294374227524), FRAC_CONST(0.55359911918640) },
+    { FRAC_CONST(-0.95894426107407), FRAC_CONST(-0.43265503644943) },
+    { FRAC_CONST(0.97079253196716), FRAC_CONST(0.09325857460499) },
+    { FRAC_CONST(-0.92404294013977), FRAC_CONST(0.85507702827454) },
+    { FRAC_CONST(-0.69506472349167), FRAC_CONST(0.98633414506912) },
+    { FRAC_CONST(0.26559203863144), FRAC_CONST(0.73314309120178) },
+    { FRAC_CONST(0.28038442134857), FRAC_CONST(0.14537914097309) },
+    { FRAC_CONST(-0.74138122797012), FRAC_CONST(0.99310338497162) },
+    { FRAC_CONST(-0.01752796024084), FRAC_CONST(-0.82616633176804) },
+    { FRAC_CONST(-0.55126774311066), FRAC_CONST(-0.98898541927338) },
+    { FRAC_CONST(0.97960901260376), FRAC_CONST(-0.94021445512772) },
+    { FRAC_CONST(-0.99196308851242), FRAC_CONST(0.67019015550613) },
+    { FRAC_CONST(-0.67684930562973), FRAC_CONST(0.12631492316723) },
+    { FRAC_CONST(0.09140039235353), FRAC_CONST(-0.20537731051445) },
+    { FRAC_CONST(-0.71658962965012), FRAC_CONST(-0.97788202762604) },
+    { FRAC_CONST(0.81014639139175), FRAC_CONST(0.53722649812698) },
+    { FRAC_CONST(0.40616992115974), FRAC_CONST(-0.26469007134438) },
+    { FRAC_CONST(-0.67680186033249), FRAC_CONST(0.94502049684525) },
+    { FRAC_CONST(0.86849772930145), FRAC_CONST(-0.18333598971367) },
+    { FRAC_CONST(-0.99500381946564), FRAC_CONST(-0.02634122036397) },
+    { FRAC_CONST(0.84329187870026), FRAC_CONST(0.10406957566738) },
+    { FRAC_CONST(-0.09215968847275), FRAC_CONST(0.69540011882782) },
+    { FRAC_CONST(0.99956172704697), FRAC_CONST(-0.12358541786671) },
+    { FRAC_CONST(-0.79732781648636), FRAC_CONST(-0.91582524776459) },
+    { FRAC_CONST(0.96349972486496), FRAC_CONST(0.96640455722809) },
+    { FRAC_CONST(-0.79942780733109), FRAC_CONST(0.64323902130127) },
+    { FRAC_CONST(-0.11566039919853), FRAC_CONST(0.28587844967842) },
+    { FRAC_CONST(-0.39922955632210), FRAC_CONST(0.94129604101181) },
+    { FRAC_CONST(0.99089199304581), FRAC_CONST(-0.92062628269196) },
+    { FRAC_CONST(0.28631284832954), FRAC_CONST(-0.91035044193268) },
+    { FRAC_CONST(-0.83302724361420), FRAC_CONST(-0.67330408096313) },
+    { FRAC_CONST(0.95404446125031), FRAC_CONST(0.49162766337395) },
+    { FRAC_CONST(-0.06449863314629), FRAC_CONST(0.03250560909510) },
+    { FRAC_CONST(-0.99575054645538), FRAC_CONST(0.42389783263206) },
+    { FRAC_CONST(-0.65501141548157), FRAC_CONST(0.82546114921570) },
+    { FRAC_CONST(-0.81254440546036), FRAC_CONST(-0.51627236604691) },
+    { FRAC_CONST(-0.99646371603012), FRAC_CONST(0.84490531682968) },
+    { FRAC_CONST(0.00287840608507), FRAC_CONST(0.64768260717392) },
+    { FRAC_CONST(0.70176988840103), FRAC_CONST(-0.20453028380871) },
+    { FRAC_CONST(0.96361881494522), FRAC_CONST(0.40706968307495) },
+    { FRAC_CONST(-0.68883758783340), FRAC_CONST(0.91338956356049) },
+    { FRAC_CONST(-0.34875586628914), FRAC_CONST(0.71472293138504) },
+    { FRAC_CONST(0.91980081796646), FRAC_CONST(0.66507452726364) },
+    { FRAC_CONST(-0.99009048938751), FRAC_CONST(0.85868018865585) },
+    { FRAC_CONST(0.68865793943405), FRAC_CONST(0.55660319328308) },
+    { FRAC_CONST(-0.99484401941299), FRAC_CONST(-0.20052559673786) },
+    { FRAC_CONST(0.94214510917664), FRAC_CONST(-0.99696427583694) },
+    { FRAC_CONST(-0.67414629459381), FRAC_CONST(0.49548220634460) },
+    { FRAC_CONST(-0.47339352965355), FRAC_CONST(-0.85904330015182) },
+    { FRAC_CONST(0.14323651790619), FRAC_CONST(-0.94145596027374) },
+    { FRAC_CONST(-0.29268294572830), FRAC_CONST(0.05759225040674) },
+    { FRAC_CONST(0.43793860077858), FRAC_CONST(-0.78904968500137) },
+    { FRAC_CONST(-0.36345127224922), FRAC_CONST(0.64874434471130) },
+    { FRAC_CONST(-0.08750604838133), FRAC_CONST(0.97686946392059) },
+    { FRAC_CONST(-0.96495270729065), FRAC_CONST(-0.53960305452347) },
+    { FRAC_CONST(0.55526942014694), FRAC_CONST(0.78891521692276) },
+    { FRAC_CONST(0.73538213968277), FRAC_CONST(0.96452075242996) },
+    { FRAC_CONST(-0.30889773368835), FRAC_CONST(-0.80664390325546) },
+    { FRAC_CONST(0.03574995696545), FRAC_CONST(-0.97325617074966) },
+    { FRAC_CONST(0.98720687627792), FRAC_CONST(0.48409134149551) },
+    { FRAC_CONST(-0.81689298152924), FRAC_CONST(-0.90827703475952) },
+    { FRAC_CONST(0.67866861820221), FRAC_CONST(0.81284505128860) },
+    { FRAC_CONST(-0.15808570384979), FRAC_CONST(0.85279554128647) },
+    { FRAC_CONST(0.80723392963409), FRAC_CONST(-0.24717418849468) },
+    { FRAC_CONST(0.47788757085800), FRAC_CONST(-0.46333149075508) },
+    { FRAC_CONST(0.96367555856705), FRAC_CONST(0.38486748933792) },
+    { FRAC_CONST(-0.99143874645233), FRAC_CONST(-0.24945276975632) },
+    { FRAC_CONST(0.83081877231598), FRAC_CONST(-0.94780850410461) },
+    { FRAC_CONST(-0.58753192424774), FRAC_CONST(0.01290772389621) },
+    { FRAC_CONST(0.95538109540939), FRAC_CONST(-0.85557049512863) },
+    { FRAC_CONST(-0.96490919589996), FRAC_CONST(-0.64020973443985) },
+    { FRAC_CONST(-0.97327101230621), FRAC_CONST(0.12378127872944) },
+    { FRAC_CONST(0.91400367021561), FRAC_CONST(0.57972472906113) },
+    { FRAC_CONST(-0.99925839900970), FRAC_CONST(0.71084845066071) },
+    { FRAC_CONST(-0.86875903606415), FRAC_CONST(-0.20291699469090) },
+    { FRAC_CONST(-0.26240035891533), FRAC_CONST(-0.68264555931091) },
+    { FRAC_CONST(-0.24664412438869), FRAC_CONST(-0.87642270326614) },
+    { FRAC_CONST(0.02416275814176), FRAC_CONST(0.27192914485931) },
+    { FRAC_CONST(0.82068622112274), FRAC_CONST(-0.85087788105011) },
+    { FRAC_CONST(0.88547372817993), FRAC_CONST(-0.89636802673340) },
+    { FRAC_CONST(-0.18173077702522), FRAC_CONST(-0.26152145862579) },
+    { FRAC_CONST(0.09355476498604), FRAC_CONST(0.54845124483109) },
+    { FRAC_CONST(-0.54668414592743), FRAC_CONST(0.95980775356293) },
+    { FRAC_CONST(0.37050989270210), FRAC_CONST(-0.59910142421722) },
+    { FRAC_CONST(-0.70373594760895), FRAC_CONST(0.91227668523788) },
+    { FRAC_CONST(-0.34600785374641), FRAC_CONST(-0.99441426992416) },
+    { FRAC_CONST(-0.68774479627609), FRAC_CONST(-0.30238837003708) },
+    { FRAC_CONST(-0.26843291521072), FRAC_CONST(0.83115667104721) },
+    { FRAC_CONST(0.49072334170341), FRAC_CONST(-0.45359709858894) },
+    { FRAC_CONST(0.38975992798805), FRAC_CONST(0.95515358448029) },
+    { FRAC_CONST(-0.97757124900818), FRAC_CONST(0.05305894464254) },
+    { FRAC_CONST(-0.17325553297997), FRAC_CONST(-0.92770671844482) },
+    { FRAC_CONST(0.99948036670685), FRAC_CONST(0.58285546302795) },
+    { FRAC_CONST(-0.64946246147156), FRAC_CONST(0.68645507097244) },
+    { FRAC_CONST(-0.12016920745373), FRAC_CONST(-0.57147324085236) },
+    { FRAC_CONST(-0.58947455883026), FRAC_CONST(-0.34847131371498) },
+    { FRAC_CONST(-0.41815140843391), FRAC_CONST(0.16276422142982) },
+    { FRAC_CONST(0.99885648488998), FRAC_CONST(0.11136095225811) },
+    { FRAC_CONST(-0.56649613380432), FRAC_CONST(-0.90494865179062) },
+    { FRAC_CONST(0.94138020277023), FRAC_CONST(0.35281917452812) },
+    { FRAC_CONST(-0.75725078582764), FRAC_CONST(0.53650552034378) },
+    { FRAC_CONST(0.20541973412037), FRAC_CONST(-0.94435143470764) },
+    { FRAC_CONST(0.99980372190475), FRAC_CONST(0.79835915565491) },
+    { FRAC_CONST(0.29078277945518), FRAC_CONST(0.35393777489662) },
+    { FRAC_CONST(-0.62858772277832), FRAC_CONST(0.38765692710876) },
+    { FRAC_CONST(0.43440905213356), FRAC_CONST(-0.98546332120895) },
+    { FRAC_CONST(-0.98298585414886), FRAC_CONST(0.21021524071693) },
+    { FRAC_CONST(0.19513028860092), FRAC_CONST(-0.94239830970764) },
+    { FRAC_CONST(-0.95476663112640), FRAC_CONST(0.98364555835724) },
+    { FRAC_CONST(0.93379634618759), FRAC_CONST(-0.70881992578506) },
+    { FRAC_CONST(-0.85235410928726), FRAC_CONST(-0.08342348039150) },
+    { FRAC_CONST(-0.86425095796585), FRAC_CONST(-0.45795026421547) },
+    { FRAC_CONST(0.38879778981209), FRAC_CONST(0.97274428606033) },
+    { FRAC_CONST(0.92045122385025), FRAC_CONST(-0.62433654069901) },
+    { FRAC_CONST(0.89162534475327), FRAC_CONST(0.54950958490372) },
+    { FRAC_CONST(-0.36834338307381), FRAC_CONST(0.96458297967911) },
+    { FRAC_CONST(0.93891763687134), FRAC_CONST(-0.89968353509903) },
+    { FRAC_CONST(0.99267655611038), FRAC_CONST(-0.03757034242153) },
+    { FRAC_CONST(-0.94063472747803), FRAC_CONST(0.41332337260246) },
+    { FRAC_CONST(0.99740225076675), FRAC_CONST(-0.16830494999886) },
+    { FRAC_CONST(-0.35899412631989), FRAC_CONST(-0.46633225679398) },
+    { FRAC_CONST(0.05237237364054), FRAC_CONST(-0.25640362501144) },
+    { FRAC_CONST(0.36703583598137), FRAC_CONST(-0.38653266429901) },
+    { FRAC_CONST(0.91653180122375), FRAC_CONST(-0.30587628483772) },
+    { FRAC_CONST(0.69000804424286), FRAC_CONST(0.90952169895172) },
+    { FRAC_CONST(-0.38658750057220), FRAC_CONST(0.99501574039459) },
+    { FRAC_CONST(-0.29250815510750), FRAC_CONST(0.37444993853569) },
+    { FRAC_CONST(-0.60182201862335), FRAC_CONST(0.86779648065567) },
+    { FRAC_CONST(-0.97418588399887), FRAC_CONST(0.96468526124954) },
+    { FRAC_CONST(0.88461571931839), FRAC_CONST(0.57508403062820) },
+    { FRAC_CONST(0.05198933184147), FRAC_CONST(0.21269661188126) },
+    { FRAC_CONST(-0.53499621152878), FRAC_CONST(0.97241556644440) },
+    { FRAC_CONST(-0.49429559707642), FRAC_CONST(0.98183864355087) },
+    { FRAC_CONST(-0.98935145139694), FRAC_CONST(-0.40249159932137) },
+    { FRAC_CONST(-0.98081380128860), FRAC_CONST(-0.72856897115707) },
+    { FRAC_CONST(-0.27338150143623), FRAC_CONST(0.99950921535492) },
+    { FRAC_CONST(0.06310802698135), FRAC_CONST(-0.54539585113525) },
+    { FRAC_CONST(-0.20461677014828), FRAC_CONST(-0.14209978282452) },
+    { FRAC_CONST(0.66223841905594), FRAC_CONST(0.72528582811356) },
+    { FRAC_CONST(-0.84764343500137), FRAC_CONST(0.02372316829860) },
+    { FRAC_CONST(-0.89039862155914), FRAC_CONST(0.88866579532623) },
+    { FRAC_CONST(0.95903307199478), FRAC_CONST(0.76744925975800) },
+    { FRAC_CONST(0.73504126071930), FRAC_CONST(-0.03747203201056) },
+    { FRAC_CONST(-0.31744435429573), FRAC_CONST(-0.36834111809731) },
+    { FRAC_CONST(-0.34110826253891), FRAC_CONST(0.40211221575737) },
+    { FRAC_CONST(0.47803884744644), FRAC_CONST(-0.39423218369484) },
+    { FRAC_CONST(0.98299193382263), FRAC_CONST(0.01989791356027) },
+    { FRAC_CONST(-0.30963072180748), FRAC_CONST(-0.18076720833778) },
+    { FRAC_CONST(0.99992591142654), FRAC_CONST(-0.26281872391701) },
+    { FRAC_CONST(-0.93149733543396), FRAC_CONST(-0.98313164710999) },
+    { FRAC_CONST(0.99923473596573), FRAC_CONST(-0.80142992734909) },
+    { FRAC_CONST(-0.26024168729782), FRAC_CONST(-0.75999760627747) },
+    { FRAC_CONST(-0.35712513327599), FRAC_CONST(0.19298963248730) },
+    { FRAC_CONST(-0.99899083375931), FRAC_CONST(0.74645155668259) },
+    { FRAC_CONST(0.86557173728943), FRAC_CONST(0.55593866109848) },
+    { FRAC_CONST(0.33408042788506), FRAC_CONST(0.86185956001282) },
+    { FRAC_CONST(0.99010735750198), FRAC_CONST(0.04602397605777) },
+    { FRAC_CONST(-0.66694271564484), FRAC_CONST(-0.91643613576889) },
+    { FRAC_CONST(0.64016789197922), FRAC_CONST(0.15649530291557) },
+    { FRAC_CONST(0.99570536613464), FRAC_CONST(0.45844584703445) },
+    { FRAC_CONST(-0.63431465625763), FRAC_CONST(0.21079117059708) },
+    { FRAC_CONST(-0.07706847041845), FRAC_CONST(-0.89581435918808) },
+    { FRAC_CONST(0.98590087890625), FRAC_CONST(0.88241720199585) },
+    { FRAC_CONST(0.80099332332611), FRAC_CONST(-0.36851897835732) },
+    { FRAC_CONST(0.78368133306503), FRAC_CONST(0.45506998896599) },
+    { FRAC_CONST(0.08707806468010), FRAC_CONST(0.80938994884491) },
+    { FRAC_CONST(-0.86811882257462), FRAC_CONST(0.39347308874130) },
+    { FRAC_CONST(-0.39466530084610), FRAC_CONST(-0.66809433698654) },
+    { FRAC_CONST(0.97875326871872), FRAC_CONST(-0.72467839717865) },
+    { FRAC_CONST(-0.95038563013077), FRAC_CONST(0.89563220739365) },
+    { FRAC_CONST(0.17005239427090), FRAC_CONST(0.54683053493500) },
+    { FRAC_CONST(-0.76910793781281), FRAC_CONST(-0.96226614713669) },
+    { FRAC_CONST(0.99743282794952), FRAC_CONST(0.42697158455849) },
+    { FRAC_CONST(0.95437383651733), FRAC_CONST(0.97002321481705) },
+    { FRAC_CONST(0.99578905105591), FRAC_CONST(-0.54106825590134) },
+    { FRAC_CONST(0.28058260679245), FRAC_CONST(-0.85361421108246) },
+    { FRAC_CONST(0.85256522893906), FRAC_CONST(-0.64567607641220) },
+    { FRAC_CONST(-0.50608539581299), FRAC_CONST(-0.65846014022827) },
+    { FRAC_CONST(-0.97210735082626), FRAC_CONST(-0.23095212876797) },
+    { FRAC_CONST(0.95424050092697), FRAC_CONST(-0.99240148067474) },
+    { FRAC_CONST(-0.96926569938660), FRAC_CONST(0.73775655031204) },
+    { FRAC_CONST(0.30872163176537), FRAC_CONST(0.41514959931374) },
+    { FRAC_CONST(-0.24523839354515), FRAC_CONST(0.63206630945206) },
+    { FRAC_CONST(-0.33813264966011), FRAC_CONST(-0.38661777973175) },
+    { FRAC_CONST(-0.05826828256249), FRAC_CONST(-0.06940773874521) },
+    { FRAC_CONST(-0.22898460924625), FRAC_CONST(0.97054851055145) },
+    { FRAC_CONST(-0.18509915471077), FRAC_CONST(0.47565764188766) },
+    { FRAC_CONST(-0.10488238185644), FRAC_CONST(-0.87769949436188) },
+    { FRAC_CONST(-0.71886587142944), FRAC_CONST(0.78030979633331) },
+    { FRAC_CONST(0.99793875217438), FRAC_CONST(0.90041309595108) },
+    { FRAC_CONST(0.57563304901123), FRAC_CONST(-0.91034334897995) },
+    { FRAC_CONST(0.28909647464752), FRAC_CONST(0.96307784318924) },
+    { FRAC_CONST(0.42188999056816), FRAC_CONST(0.48148649930954) },
+    { FRAC_CONST(0.93335050344467), FRAC_CONST(-0.43537023663521) },
+    { FRAC_CONST(-0.97087377309799), FRAC_CONST(0.86636447906494) },
+    { FRAC_CONST(0.36722871661186), FRAC_CONST(0.65291655063629) },
+    { FRAC_CONST(-0.81093025207520), FRAC_CONST(0.08778370171785) },
+    { FRAC_CONST(-0.26240602135658), FRAC_CONST(-0.92774093151093) },
+    { FRAC_CONST(0.83996498584747), FRAC_CONST(0.55839848518372) },
+    { FRAC_CONST(-0.99909615516663), FRAC_CONST(-0.96024608612061) },
+    { FRAC_CONST(0.74649465084076), FRAC_CONST(0.12144893407822) },
+    { FRAC_CONST(-0.74774593114853), FRAC_CONST(-0.26898062229156) },
+    { FRAC_CONST(0.95781666040421), FRAC_CONST(-0.79047924280167) },
+    { FRAC_CONST(0.95472306013107), FRAC_CONST(-0.08588775992393) },
+    { FRAC_CONST(0.48708331584930), FRAC_CONST(0.99999040365219) },
+    { FRAC_CONST(0.46332037448883), FRAC_CONST(0.10964126139879) },
+    { FRAC_CONST(-0.76497006416321), FRAC_CONST(0.89210927486420) },
+    { FRAC_CONST(0.57397389411926), FRAC_CONST(0.35289704799652) },
+    { FRAC_CONST(0.75374317169189), FRAC_CONST(0.96705216169357) },
+    { FRAC_CONST(-0.59174400568008), FRAC_CONST(-0.89405369758606) },
+    { FRAC_CONST(0.75087904930115), FRAC_CONST(-0.29612672328949) },
+    { FRAC_CONST(-0.98607856035233), FRAC_CONST(0.25034910440445) },
+    { FRAC_CONST(-0.40761056542397), FRAC_CONST(-0.90045571327209) },
+    { FRAC_CONST(0.66929268836975), FRAC_CONST(0.98629492521286) },
+    { FRAC_CONST(-0.97463697195053), FRAC_CONST(-0.00190223299433) },
+    { FRAC_CONST(0.90145510435104), FRAC_CONST(0.99781388044357) },
+    { FRAC_CONST(-0.87259286642075), FRAC_CONST(0.99233585596085) },
+    { FRAC_CONST(-0.91529458761215), FRAC_CONST(-0.15698707103729) },
+    { FRAC_CONST(-0.03305738791823), FRAC_CONST(-0.37205263972282) },
+    { FRAC_CONST(0.07223051041365), FRAC_CONST(-0.88805001974106) },
+    { FRAC_CONST(0.99498009681702), FRAC_CONST(0.97094357013702) },
+    { FRAC_CONST(-0.74904936552048), FRAC_CONST(0.99985486268997) },
+    { FRAC_CONST(0.04585228487849), FRAC_CONST(0.99812334775925) },
+    { FRAC_CONST(-0.89054954051971), FRAC_CONST(-0.31791913509369) },
+    { FRAC_CONST(-0.83782142400742), FRAC_CONST(0.97637635469437) },
+    { FRAC_CONST(0.33454805612564), FRAC_CONST(-0.86231517791748) },
+    { FRAC_CONST(-0.99707579612732), FRAC_CONST(0.93237990140915) },
+    { FRAC_CONST(-0.22827528417110), FRAC_CONST(0.18874759972095) },
+    { FRAC_CONST(0.67248046398163), FRAC_CONST(-0.03646211326122) },
+    { FRAC_CONST(-0.05146538093686), FRAC_CONST(-0.92599701881409) },
+    { FRAC_CONST(0.99947297573090), FRAC_CONST(0.93625229597092) },
+    { FRAC_CONST(0.66951125860214), FRAC_CONST(0.98905825614929) },
+    { FRAC_CONST(-0.99602955579758), FRAC_CONST(-0.44654715061188) },
+    { FRAC_CONST(0.82104903459549), FRAC_CONST(0.99540740251541) },
+    { FRAC_CONST(0.99186509847641), FRAC_CONST(0.72022998332977) },
+    { FRAC_CONST(-0.65284591913223), FRAC_CONST(0.52186721563339) },
+    { FRAC_CONST(0.93885445594788), FRAC_CONST(-0.74895310401917) },
+    { FRAC_CONST(0.96735250949860), FRAC_CONST(0.90891814231873) },
+    { FRAC_CONST(-0.22225968539715), FRAC_CONST(0.57124030590057) },
+    { FRAC_CONST(-0.44132784008980), FRAC_CONST(-0.92688840627670) },
+    { FRAC_CONST(-0.85694974660873), FRAC_CONST(0.88844531774521) },
+    { FRAC_CONST(0.91783040761948), FRAC_CONST(-0.46356892585754) },
+    { FRAC_CONST(0.72556972503662), FRAC_CONST(-0.99899554252625) },
+    { FRAC_CONST(-0.99711579084396), FRAC_CONST(0.58211559057236) },
+    { FRAC_CONST(0.77638977766037), FRAC_CONST(0.94321835041046) },
+    { FRAC_CONST(0.07717324048281), FRAC_CONST(0.58638399839401) },
+    { FRAC_CONST(-0.56049829721451), FRAC_CONST(0.82522302865982) },
+    { FRAC_CONST(0.98398894071579), FRAC_CONST(0.39467439055443) },
+    { FRAC_CONST(0.47546947002411), FRAC_CONST(0.68613046407700) },
+    { FRAC_CONST(0.65675091743469), FRAC_CONST(0.18331636488438) },
+    { FRAC_CONST(0.03273375332355), FRAC_CONST(-0.74933111667633) },
+    { FRAC_CONST(-0.38684144616127), FRAC_CONST(0.51337349414825) },
+    { FRAC_CONST(-0.97346270084381), FRAC_CONST(-0.96549361944199) },
+    { FRAC_CONST(-0.53282153606415), FRAC_CONST(-0.91423267126083) },
+    { FRAC_CONST(0.99817311763763), FRAC_CONST(0.61133575439453) },
+    { FRAC_CONST(-0.50254499912262), FRAC_CONST(-0.88829338550568) },
+    { FRAC_CONST(0.01995873264968), FRAC_CONST(0.85223513841629) },
+    { FRAC_CONST(0.99930381774902), FRAC_CONST(0.94578897953033) },
+    { FRAC_CONST(0.82907766103745), FRAC_CONST(-0.06323442608118) },
+    { FRAC_CONST(-0.58660709857941), FRAC_CONST(0.96840775012970) },
+    { FRAC_CONST(-0.17573736608028), FRAC_CONST(-0.48166921734810) },
+    { FRAC_CONST(0.83434289693832), FRAC_CONST(-0.13023450970650) },
+    { FRAC_CONST(0.05946491286159), FRAC_CONST(0.20511047542095) },
+    { FRAC_CONST(0.81505483388901), FRAC_CONST(-0.94685947895050) },
+    { FRAC_CONST(-0.44976380467415), FRAC_CONST(0.40894573926926) },
+    { FRAC_CONST(-0.89746475219727), FRAC_CONST(0.99846577644348) },
+    { FRAC_CONST(0.39677256345749), FRAC_CONST(-0.74854665994644) },
+    { FRAC_CONST(-0.07588948309422), FRAC_CONST(0.74096214771271) },
+    { FRAC_CONST(0.76343196630478), FRAC_CONST(0.41746628284454) },
+    { FRAC_CONST(-0.74490106105804), FRAC_CONST(0.94725912809372) },
+    { FRAC_CONST(0.64880120754242), FRAC_CONST(0.41336661577225) },
+    { FRAC_CONST(0.62319535017014), FRAC_CONST(-0.93098312616348) },
+    { FRAC_CONST(0.42215818166733), FRAC_CONST(-0.07712787389755) },
+    { FRAC_CONST(0.02704554051161), FRAC_CONST(-0.05417517945170) },
+    { FRAC_CONST(0.80001771450043), FRAC_CONST(0.91542196273804) },
+    { FRAC_CONST(-0.79351830482483), FRAC_CONST(-0.36208897829056) },
+    { FRAC_CONST(0.63872361183167), FRAC_CONST(0.08128252625465) },
+    { FRAC_CONST(0.52890521287918), FRAC_CONST(0.60048872232437) },
+    { FRAC_CONST(0.74238550662994), FRAC_CONST(0.04491915181279) },
+    { FRAC_CONST(0.99096131324768), FRAC_CONST(-0.19451183080673) },
+    { FRAC_CONST(-0.80412328243256), FRAC_CONST(-0.88513815402985) },
+    { FRAC_CONST(-0.64612615108490), FRAC_CONST(0.72198677062988) },
+    { FRAC_CONST(0.11657770723104), FRAC_CONST(-0.83662831783295) },
+    { FRAC_CONST(-0.95053184032440), FRAC_CONST(-0.96939903497696) },
+    { FRAC_CONST(-0.62228870391846), FRAC_CONST(0.82767260074615) },
+    { FRAC_CONST(0.03004475869238), FRAC_CONST(-0.99738895893097) },
+    { FRAC_CONST(-0.97987216711044), FRAC_CONST(0.36526128649712) },
+    { FRAC_CONST(-0.99986982345581), FRAC_CONST(-0.36021611094475) },
+    { FRAC_CONST(0.89110648632050), FRAC_CONST(-0.97894251346588) },
+    { FRAC_CONST(0.10407960414886), FRAC_CONST(0.77357792854309) },
+    { FRAC_CONST(0.95964735746384), FRAC_CONST(-0.35435819625854) },
+    { FRAC_CONST(0.50843232870102), FRAC_CONST(0.96107691526413) },
+    { FRAC_CONST(0.17006334662437), FRAC_CONST(-0.76854026317596) },
+    { FRAC_CONST(0.25872674584389), FRAC_CONST(0.99893301725388) },
+    { FRAC_CONST(-0.01115998718888), FRAC_CONST(0.98496019840240) },
+    { FRAC_CONST(-0.79598701000214), FRAC_CONST(0.97138410806656) },
+    { FRAC_CONST(-0.99264711141586), FRAC_CONST(-0.99542820453644) },
+    { FRAC_CONST(-0.99829661846161), FRAC_CONST(0.01877138763666) },
+    { FRAC_CONST(-0.70801013708115), FRAC_CONST(0.33680686354637) },
+    { FRAC_CONST(-0.70467054843903), FRAC_CONST(0.93272775411606) },
+    { FRAC_CONST(0.99846023321152), FRAC_CONST(-0.98725748062134) },
+    { FRAC_CONST(-0.63364970684052), FRAC_CONST(-0.16473594307899) },
+    { FRAC_CONST(-0.16258217394352), FRAC_CONST(-0.95939123630524) },
+    { FRAC_CONST(-0.43645593523979), FRAC_CONST(-0.94805032014847) },
+    { FRAC_CONST(-0.99848473072052), FRAC_CONST(0.96245169639587) },
+    { FRAC_CONST(-0.16796459257603), FRAC_CONST(-0.98987513780594) },
+    { FRAC_CONST(-0.87979227304459), FRAC_CONST(-0.71725726127625) },
+    { FRAC_CONST(0.44183099269867), FRAC_CONST(-0.93568974733353) },
+    { FRAC_CONST(0.93310177326202), FRAC_CONST(-0.99913311004639) },
+    { FRAC_CONST(-0.93941932916641), FRAC_CONST(-0.56409376859665) },
+    { FRAC_CONST(-0.88590002059937), FRAC_CONST(0.47624599933624) },
+    { FRAC_CONST(0.99971461296082), FRAC_CONST(-0.83889955282211) },
+    { FRAC_CONST(-0.75376385450363), FRAC_CONST(0.00814643409103) },
+    { FRAC_CONST(0.93887686729431), FRAC_CONST(-0.11284527927637) },
+    { FRAC_CONST(0.85126435756683), FRAC_CONST(0.52349251508713) },
+    { FRAC_CONST(0.39701420068741), FRAC_CONST(0.81779634952545) },
+    { FRAC_CONST(-0.37024465203285), FRAC_CONST(-0.87071657180786) },
+    { FRAC_CONST(-0.36024826765060), FRAC_CONST(0.34655734896660) },
+    { FRAC_CONST(-0.93388813734055), FRAC_CONST(-0.84476542472839) },
+    { FRAC_CONST(-0.65298801660538), FRAC_CONST(-0.18439576029778) },
+    { FRAC_CONST(0.11960318684578), FRAC_CONST(0.99899345636368) },
+    { FRAC_CONST(0.94292563199997), FRAC_CONST(0.83163905143738) },
+    { FRAC_CONST(0.75081145763397), FRAC_CONST(-0.35533222556114) },
+    { FRAC_CONST(0.56721979379654), FRAC_CONST(-0.24076835811138) },
+    { FRAC_CONST(0.46857765316963), FRAC_CONST(-0.30140233039856) },
+    { FRAC_CONST(0.97312313318253), FRAC_CONST(-0.99548190832138) },
+    { FRAC_CONST(-0.38299977779388), FRAC_CONST(0.98516911268234) },
+    { FRAC_CONST(0.41025799512863), FRAC_CONST(0.02116736955941) },
+    { FRAC_CONST(0.09638062119484), FRAC_CONST(0.04411984235048) },
+    { FRAC_CONST(-0.85283249616623), FRAC_CONST(0.91475564241409) },
+    { FRAC_CONST(0.88866806030273), FRAC_CONST(-0.99735265970230) },
+    { FRAC_CONST(-0.48202428221703), FRAC_CONST(-0.96805608272552) },
+    { FRAC_CONST(0.27572581171989), FRAC_CONST(0.58634752035141) },
+    { FRAC_CONST(-0.65889132022858), FRAC_CONST(0.58835631608963) },
+    { FRAC_CONST(0.98838084936142), FRAC_CONST(0.99994349479675) },
+    { FRAC_CONST(-0.20651349425316), FRAC_CONST(0.54593044519424) },
+    { FRAC_CONST(-0.62126415967941), FRAC_CONST(-0.59893679618835) },
+    { FRAC_CONST(0.20320105552673), FRAC_CONST(-0.86879181861877) },
+    { FRAC_CONST(-0.97790551185608), FRAC_CONST(0.96290808916092) },
+    { FRAC_CONST(0.11112534999847), FRAC_CONST(0.21484763920307) },
+    { FRAC_CONST(-0.41368338465691), FRAC_CONST(0.28216838836670) },
+    { FRAC_CONST(0.24133038520813), FRAC_CONST(0.51294362545013) },
+    { FRAC_CONST(-0.66393411159515), FRAC_CONST(-0.08249679952860) },
+    { FRAC_CONST(-0.53697830438614), FRAC_CONST(-0.97649902105331) },
+    { FRAC_CONST(-0.97224736213684), FRAC_CONST(0.22081333398819) },
+    { FRAC_CONST(0.87392479181290), FRAC_CONST(-0.12796173989773) },
+    { FRAC_CONST(0.19050361216068), FRAC_CONST(0.01602615416050) },
+    { FRAC_CONST(-0.46353441476822), FRAC_CONST(-0.95249038934708) },
+    { FRAC_CONST(-0.07064096629620), FRAC_CONST(-0.94479805231094) },
+    { FRAC_CONST(-0.92444086074829), FRAC_CONST(-0.10457590222359) },
+    { FRAC_CONST(-0.83822596073151), FRAC_CONST(-0.01695043221116) },
+    { FRAC_CONST(0.75214684009552), FRAC_CONST(-0.99955683946609) },
+    { FRAC_CONST(-0.42102998495102), FRAC_CONST(0.99720942974091) },
+    { FRAC_CONST(-0.72094786167145), FRAC_CONST(-0.35008960962296) },
+    { FRAC_CONST(0.78843313455582), FRAC_CONST(0.52851396799088) },
+    { FRAC_CONST(0.97394025325775), FRAC_CONST(-0.26695942878723) },
+    { FRAC_CONST(0.99206465482712), FRAC_CONST(-0.57010120153427) },
+    { FRAC_CONST(0.76789611577988), FRAC_CONST(-0.76519358158112) },
+    { FRAC_CONST(-0.82002419233322), FRAC_CONST(-0.73530179262161) },
+    { FRAC_CONST(0.81924992799759), FRAC_CONST(0.99698424339294) },
+    { FRAC_CONST(-0.26719850301743), FRAC_CONST(0.68903368711472) },
+    { FRAC_CONST(-0.43311259150505), FRAC_CONST(0.85321813821793) },
+    { FRAC_CONST(0.99194979667664), FRAC_CONST(0.91876250505447) },
+    { FRAC_CONST(-0.80691999197006), FRAC_CONST(-0.32627540826797) },
+    { FRAC_CONST(0.43080005049706), FRAC_CONST(-0.21919095516205) },
+    { FRAC_CONST(0.67709493637085), FRAC_CONST(-0.95478075742722) },
+    { FRAC_CONST(0.56151771545410), FRAC_CONST(-0.70693808794022) },
+    { FRAC_CONST(0.10831862688065), FRAC_CONST(-0.08628837019205) },
+    { FRAC_CONST(0.91229414939880), FRAC_CONST(-0.65987348556519) },
+    { FRAC_CONST(-0.48972892761230), FRAC_CONST(0.56289243698120) },
+    { FRAC_CONST(-0.89033657312393), FRAC_CONST(-0.71656566858292) },
+    { FRAC_CONST(0.65269446372986), FRAC_CONST(0.65916007757187) },
+    { FRAC_CONST(0.67439478635788), FRAC_CONST(-0.81684380769730) },
+    { FRAC_CONST(-0.47770830988884), FRAC_CONST(-0.16789555549622) },
+    { FRAC_CONST(-0.99715977907181), FRAC_CONST(-0.93565785884857) },
+    { FRAC_CONST(-0.90889590978622), FRAC_CONST(0.62034398317337) },
+    { FRAC_CONST(-0.06618622690439), FRAC_CONST(-0.23812216520309) },
+    { FRAC_CONST(0.99430269002914), FRAC_CONST(0.18812555074692) },
+    { FRAC_CONST(0.97686403989792), FRAC_CONST(-0.28664535284042) },
+    { FRAC_CONST(0.94813650846481), FRAC_CONST(-0.97506642341614) },
+    { FRAC_CONST(-0.95434498786926), FRAC_CONST(-0.79607981443405) },
+    { FRAC_CONST(-0.49104782938957), FRAC_CONST(0.32895213365555) },
+    { FRAC_CONST(0.99881172180176), FRAC_CONST(0.88993984460831) },
+    { FRAC_CONST(0.50449168682098), FRAC_CONST(-0.85995072126389) },
+    { FRAC_CONST(0.47162890434265), FRAC_CONST(-0.18680204451084) },
+    { FRAC_CONST(-0.62081581354141), FRAC_CONST(0.75000673532486) },
+    { FRAC_CONST(-0.43867015838623), FRAC_CONST(0.99998068809509) },
+    { FRAC_CONST(0.98630565404892), FRAC_CONST(-0.53578901290894) },
+    { FRAC_CONST(-0.61510360240936), FRAC_CONST(-0.89515018463135) },
+    { FRAC_CONST(-0.03841517493129), FRAC_CONST(-0.69888818264008) },
+    { FRAC_CONST(-0.30102157592773), FRAC_CONST(-0.07667808979750) },
+    { FRAC_CONST(0.41881284117699), FRAC_CONST(0.02188098989427) },
+    { FRAC_CONST(-0.86135452985764), FRAC_CONST(0.98947483301163) },
+    { FRAC_CONST(0.67226862907410), FRAC_CONST(-0.13494388759136) },
+    { FRAC_CONST(-0.70737397670746), FRAC_CONST(-0.76547348499298) },
+    { FRAC_CONST(0.94044947624207), FRAC_CONST(0.09026201069355) },
+    { FRAC_CONST(-0.82386350631714), FRAC_CONST(0.08924768865108) },
+    { FRAC_CONST(-0.32070666551590), FRAC_CONST(0.50143420696259) },
+    { FRAC_CONST(0.57593160867691), FRAC_CONST(-0.98966425657272) },
+    { FRAC_CONST(-0.36326017975807), FRAC_CONST(0.07440242916346) },
+    { FRAC_CONST(0.99979043006897), FRAC_CONST(-0.14130286872387) },
+    { FRAC_CONST(-0.92366021871567), FRAC_CONST(-0.97979295253754) },
+    { FRAC_CONST(-0.44607177376747), FRAC_CONST(-0.54233253002167) },
+    { FRAC_CONST(0.44226801395416), FRAC_CONST(0.71326756477356) },
+    { FRAC_CONST(0.03671907261014), FRAC_CONST(0.63606387376785) },
+    { FRAC_CONST(0.52175426483154), FRAC_CONST(-0.85396826267242) },
+    { FRAC_CONST(-0.94701141119003), FRAC_CONST(-0.01826348155737) },
+    { FRAC_CONST(-0.98759609460831), FRAC_CONST(0.82288712263107) },
+    { FRAC_CONST(0.87434792518616), FRAC_CONST(0.89399492740631) },
+    { FRAC_CONST(-0.93412041664124), FRAC_CONST(0.41374051570892) },
+    { FRAC_CONST(0.96063941717148), FRAC_CONST(0.93116706609726) },
+    { FRAC_CONST(0.97534251213074), FRAC_CONST(0.86150932312012) },
+    { FRAC_CONST(0.99642467498779), FRAC_CONST(0.70190042257309) },
+    { FRAC_CONST(-0.94705086946487), FRAC_CONST(-0.29580041766167) },
+    { FRAC_CONST(0.91599804162979), FRAC_CONST(-0.98147833347321) }
 };
 
 #ifdef __cplusplus
--- a/libfaad/sbr_qmf.c
+++ b/libfaad/sbr_qmf.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_qmf.c,v 1.16 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_qmf.c,v 1.17 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
@@ -92,11 +92,11 @@
         /* window and summation to create array u */
         for (n = 0; n < 64; n++)
         {
-            u[n] = MUL_R_C(qmfa->x[n], qmf_c[2*n]) +
-                MUL_R_C(qmfa->x[n + 64], qmf_c[2*(n + 64)]) +
-                MUL_R_C(qmfa->x[n + 128], qmf_c[2*(n + 128)]) +
-                MUL_R_C(qmfa->x[n + 192], qmf_c[2*(n + 192)]) +
-                MUL_R_C(qmfa->x[n + 256], qmf_c[2*(n + 256)]);
+            u[n] = MUL_F(qmfa->x[n], qmf_c[2*n]) +
+                MUL_F(qmfa->x[n + 64], qmf_c[2*(n + 64)]) +
+                MUL_F(qmfa->x[n + 128], qmf_c[2*(n + 128)]) +
+                MUL_F(qmfa->x[n + 192], qmf_c[2*(n + 192)]) +
+                MUL_F(qmfa->x[n + 256], qmf_c[2*(n + 256)]);
         }
 
         /* calculate 32 subband samples by introducing X */
@@ -229,16 +229,16 @@
         /* calculate 64 output samples and window */
         for (k = 0; k < 64; k++)
         {
-            output[out++] = MUL_R_C(v0[k], qmf_c[k]) +
-                MUL_R_C(v0[64 + k], qmf_c[64 + k]) +
-                MUL_R_C(v0[128 + k], qmf_c[128 + k]) +
-                MUL_R_C(v0[192 + k], qmf_c[192 + k]) +
-                MUL_R_C(v0[256 + k], qmf_c[256 + k]) +
-                MUL_R_C(v0[320 + k], qmf_c[320 + k]) +
-                MUL_R_C(v0[384 + k], qmf_c[384 + k]) +
-                MUL_R_C(v0[448 + k], qmf_c[448 + k]) +
-                MUL_R_C(v0[512 + k], qmf_c[512 + k]) +
-                MUL_R_C(v0[576 + k], qmf_c[576 + k]);
+            output[out++] = MUL_F(v0[k], qmf_c[k]) +
+                MUL_F(v0[64 + k], qmf_c[64 + k]) +
+                MUL_F(v0[128 + k], qmf_c[128 + k]) +
+                MUL_F(v0[192 + k], qmf_c[192 + k]) +
+                MUL_F(v0[256 + k], qmf_c[256 + k]) +
+                MUL_F(v0[320 + k], qmf_c[320 + k]) +
+                MUL_F(v0[384 + k], qmf_c[384 + k]) +
+                MUL_F(v0[448 + k], qmf_c[448 + k]) +
+                MUL_F(v0[512 + k], qmf_c[512 + k]) +
+                MUL_F(v0[576 + k], qmf_c[576 + k]);
         }
     }
 }
@@ -293,16 +293,16 @@
         /* calculate 64 output samples and window */
         for (k = 0; k < 64; k++)
         {
-            output[out++] = MUL_R_C(v0[k], qmf_c[k]) +
-                MUL_R_C(v0[64 + k], qmf_c[64 + k]) +
-                MUL_R_C(v0[128 + k], qmf_c[128 + k]) +
-                MUL_R_C(v0[192 + k], qmf_c[192 + k]) +
-                MUL_R_C(v0[256 + k], qmf_c[256 + k]) +
-                MUL_R_C(v0[320 + k], qmf_c[320 + k]) +
-                MUL_R_C(v0[384 + k], qmf_c[384 + k]) +
-                MUL_R_C(v0[448 + k], qmf_c[448 + k]) +
-                MUL_R_C(v0[512 + k], qmf_c[512 + k]) +
-                MUL_R_C(v0[576 + k], qmf_c[576 + k]);
+            output[out++] = MUL_F(v0[k], qmf_c[k]) +
+                MUL_F(v0[64 + k], qmf_c[64 + k]) +
+                MUL_F(v0[128 + k], qmf_c[128 + k]) +
+                MUL_F(v0[192 + k], qmf_c[192 + k]) +
+                MUL_F(v0[256 + k], qmf_c[256 + k]) +
+                MUL_F(v0[320 + k], qmf_c[320 + k]) +
+                MUL_F(v0[384 + k], qmf_c[384 + k]) +
+                MUL_F(v0[448 + k], qmf_c[448 + k]) +
+                MUL_F(v0[512 + k], qmf_c[512 + k]) +
+                MUL_F(v0[576 + k], qmf_c[576 + k]);
         }
     }
 }
--- a/libfaad/sbr_qmf.h
+++ b/libfaad/sbr_qmf.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_qmf.h,v 1.11 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_qmf.h,v 1.12 2003/11/12 20:47:58 menno Exp $
 **/
 
 #ifndef __SBR_QMF_H__
--- a/libfaad/sbr_qmf_c.h
+++ b/libfaad/sbr_qmf_c.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_qmf_c.h,v 1.6 2003/11/04 21:43:30 menno Exp $
+** $Id: sbr_qmf_c.h,v 1.7 2003/11/12 20:47:58 menno Exp $
 **/
 
 #ifndef __SBR_QMF_C_H__
@@ -38,327 +38,327 @@
 #pragma warning(disable:4244)
 #endif
 
-static real_t qmf_c[] = {
-    COEF_CONST(0.0000000000), COEF_CONST(-0.0005525286),
-    COEF_CONST(-0.0005617692), COEF_CONST(-0.0004947518),
-    COEF_CONST(-0.0004875227), COEF_CONST(-0.0004893791),
-    COEF_CONST(-0.0005040714), COEF_CONST(-0.0005226564),
-    COEF_CONST(-0.0005466565), COEF_CONST(-0.0005677802),
-    COEF_CONST(-0.0005870930), COEF_CONST(-0.0006132747),
-    COEF_CONST(-0.0006312493), COEF_CONST(-0.0006540333),
-    COEF_CONST(-0.0006777690), COEF_CONST(-0.0006941614),
-    COEF_CONST(-0.0007157736), COEF_CONST(-0.0007255043),
-    COEF_CONST(-0.0007440941), COEF_CONST(-0.0007490598),
-    COEF_CONST(-0.0007681371), COEF_CONST(-0.0007724848),
-    COEF_CONST(-0.0007834332), COEF_CONST(-0.0007779869),
-    COEF_CONST(-0.0007803664), COEF_CONST(-0.0007801449),
-    COEF_CONST(-0.0007757977), COEF_CONST(-0.0007630793),
-    COEF_CONST(-0.0007530001), COEF_CONST(-0.0007319357),
-    COEF_CONST(-0.0007215391), COEF_CONST(-0.0006917937),
-    COEF_CONST(-0.0006650415), COEF_CONST(-0.0006341594),
-    COEF_CONST(-0.0005946118), COEF_CONST(-0.0005564576),
-    COEF_CONST(-0.0005145572), COEF_CONST(-0.0004606325),
-    COEF_CONST(-0.0004095121), COEF_CONST(-0.0003501175),
-    COEF_CONST(-0.0002896981), COEF_CONST(-0.0002098337),
-    COEF_CONST(-0.0001446380), COEF_CONST(-0.0000617334),
-    COEF_CONST(0.0000134949), COEF_CONST(0.0001094383),
-    COEF_CONST(0.0002043017), COEF_CONST(0.0002949531),
-    COEF_CONST(0.0004026540), COEF_CONST(0.0005107388),
-    COEF_CONST(0.0006239376), COEF_CONST(0.0007458025),
-    COEF_CONST(0.0008608443), COEF_CONST(0.0009885988),
-    COEF_CONST(0.0011250156), COEF_CONST(0.0012577884),
-    COEF_CONST(0.0013902494), COEF_CONST(0.0015443219),
-    COEF_CONST(0.0016868083), COEF_CONST(0.0018348265),
-    COEF_CONST(0.0019841141), COEF_CONST(0.0021461584),
-    COEF_CONST(0.0023017253), COEF_CONST(0.0024625617),
-    COEF_CONST(0.0026201757), COEF_CONST(0.0027870464),
-    COEF_CONST(0.0029469447), COEF_CONST(0.0031125420),
-    COEF_CONST(0.0032739614), COEF_CONST(0.0034418874),
-    COEF_CONST(0.0036008267), COEF_CONST(0.0037603923),
-    COEF_CONST(0.0039207432), COEF_CONST(0.0040819752),
-    COEF_CONST(0.0042264271), COEF_CONST(0.0043730717),
-    COEF_CONST(0.0045209853), COEF_CONST(0.0046606460),
-    COEF_CONST(0.0047932561), COEF_CONST(0.0049137603),
-    COEF_CONST(0.0050393022), COEF_CONST(0.0051407353),
-    COEF_CONST(0.0052461168), COEF_CONST(0.0053471681),
-    COEF_CONST(0.0054196776), COEF_CONST(0.0054876041),
-    COEF_CONST(0.0055475715), COEF_CONST(0.0055938023),
-    COEF_CONST(0.0056220642), COEF_CONST(0.0056455196),
-    COEF_CONST(0.0056389198), COEF_CONST(0.0056266114),
-    COEF_CONST(0.0055917129), COEF_CONST(0.0055404361),
-    COEF_CONST(0.0054753781), COEF_CONST(0.0053838976),
-    COEF_CONST(0.0052715759), COEF_CONST(0.0051382277),
-    COEF_CONST(0.0049839686), COEF_CONST(0.0048109470),
-    COEF_CONST(0.0046039531), COEF_CONST(0.0043801861),
-    COEF_CONST(0.0041251644), COEF_CONST(0.0038456407),
-    COEF_CONST(0.0035401245), COEF_CONST(0.0032091886),
-    COEF_CONST(0.0028446757), COEF_CONST(0.0024508541),
-    COEF_CONST(0.0020274175), COEF_CONST(0.0015784682),
-    COEF_CONST(0.0010902329), COEF_CONST(0.0005832264),
-    COEF_CONST(0.0000276045), COEF_CONST(-0.0005464280),
-    COEF_CONST(-0.0011568135), COEF_CONST(-0.0018039471),
-    COEF_CONST(-0.0024826722), COEF_CONST(-0.0031933777),
-    COEF_CONST(-0.0039401124), COEF_CONST(-0.0047222595),
-    COEF_CONST(-0.0055337213), COEF_CONST(-0.0063792295),
-    COEF_CONST(-0.0072615817), COEF_CONST(-0.0081798229),
-    COEF_CONST(-0.0091325333), COEF_CONST(-0.0101150218),
-    COEF_CONST(-0.0111315548), COEF_CONST(-0.0121849999),
-    COEF_CONST(0.0132718217), COEF_CONST(0.0143904667),
-    COEF_CONST(0.0155405551), COEF_CONST(0.0167324711),
-    COEF_CONST(0.0179433376), COEF_CONST(0.0191872437),
-    COEF_CONST(0.0204531793), COEF_CONST(0.0217467546),
-    COEF_CONST(0.0230680164), COEF_CONST(0.0244160984),
-    COEF_CONST(0.0257875845), COEF_CONST(0.0271859430),
-    COEF_CONST(0.0286072176), COEF_CONST(0.0300502665),
-    COEF_CONST(0.0315017626), COEF_CONST(0.0329754092),
-    COEF_CONST(0.0344620943), COEF_CONST(0.0359697565),
-    COEF_CONST(0.0374812856), COEF_CONST(0.0390053689),
-    COEF_CONST(0.0405349173), COEF_CONST(0.0420649089),
-    COEF_CONST(0.0436097533), COEF_CONST(0.0451488420),
-    COEF_CONST(0.0466843024), COEF_CONST(0.0482165702),
-    COEF_CONST(0.0497385748), COEF_CONST(0.0512556173),
-    COEF_CONST(0.0527630746), COEF_CONST(0.0542452782),
-    COEF_CONST(0.0557173640), COEF_CONST(0.0571616441),
-    COEF_CONST(0.0585915670), COEF_CONST(0.0599837489),
-    COEF_CONST(0.0613455176), COEF_CONST(0.0626857802),
-    COEF_CONST(0.0639715865), COEF_CONST(0.0652247071),
-    COEF_CONST(0.0664367527), COEF_CONST(0.0676075965),
-    COEF_CONST(0.0687043816), COEF_CONST(0.0697630271),
-    COEF_CONST(0.0707628727), COEF_CONST(0.0717002675),
-    COEF_CONST(0.0725682601), COEF_CONST(0.0733620226),
-    COEF_CONST(0.0741003677), COEF_CONST(0.0747452527),
-    COEF_CONST(0.0753137320), COEF_CONST(0.0758008361),
-    COEF_CONST(0.0761992484), COEF_CONST(0.0764992163),
-    COEF_CONST(0.0767093524), COEF_CONST(0.0768174008),
-    COEF_CONST(0.0768230036), COEF_CONST(0.0767204911),
-    COEF_CONST(0.0765050724), COEF_CONST(0.0761748329),
-    COEF_CONST(0.0757305771), COEF_CONST(0.0751576275),
-    COEF_CONST(0.0744664371), COEF_CONST(0.0736405998),
-    COEF_CONST(0.0726774633), COEF_CONST(0.0715826377),
-    COEF_CONST(0.0703533068), COEF_CONST(0.0689664036),
-    COEF_CONST(0.0674525052), COEF_CONST(0.0657690689),
-    COEF_CONST(0.0639444813), COEF_CONST(0.0619602762),
-    COEF_CONST(0.0598166585), COEF_CONST(0.0575152673),
-    COEF_CONST(0.0550460033), COEF_CONST(0.0524093807),
-    COEF_CONST(0.0495978668), COEF_CONST(0.0466303304),
-    COEF_CONST(0.0434768796), COEF_CONST(0.0401458293),
-    COEF_CONST(0.0366418101), COEF_CONST(0.0329583921),
-    COEF_CONST(0.0290824007), COEF_CONST(0.0250307564),
-    COEF_CONST(0.0207997076), COEF_CONST(0.0163701251),
-    COEF_CONST(0.0117623834), COEF_CONST(0.0069636861),
-    COEF_CONST(0.0019765601), COEF_CONST(-0.0032086896),
-    COEF_CONST(-0.0085711749), COEF_CONST(-0.0141288824),
-    COEF_CONST(-0.0198834129), COEF_CONST(-0.0258227289),
-    COEF_CONST(-0.0319531262), COEF_CONST(-0.0382776558),
-    COEF_CONST(-0.0447806828), COEF_CONST(-0.0514804162),
-    COEF_CONST(-0.0583705343), COEF_CONST(-0.0654409826),
-    COEF_CONST(-0.0726943314), COEF_CONST(-0.0801372901),
-    COEF_CONST(-0.0877547562), COEF_CONST(-0.0955533385),
-    COEF_CONST(-0.1035329551), COEF_CONST(-0.1116826907),
-    COEF_CONST(-0.1200077981), COEF_CONST(-0.1285002828),
-    COEF_CONST(-0.1371551752), COEF_CONST(-0.1459766477),
-    COEF_CONST(-0.1549607068), COEF_CONST(-0.1640958786),
-    COEF_CONST(-0.1733808219), COEF_CONST(-0.1828172505),
-    COEF_CONST(-0.1923966706), COEF_CONST(-0.2021250129),
-    COEF_CONST(-0.2119735926), COEF_CONST(-0.2219652683),
-    COEF_CONST(-0.2320690900), COEF_CONST(-0.2423016876),
-    COEF_CONST(-0.2526480258), COEF_CONST(-0.2631053329),
-    COEF_CONST(-0.2736634016), COEF_CONST(-0.2843214273),
-    COEF_CONST(-0.2950716615), COEF_CONST(-0.3059098721),
-    COEF_CONST(-0.3168278933), COEF_CONST(-0.3278113604),
-    COEF_CONST(-0.3388722837), COEF_CONST(-0.3499914110),
-    COEF_CONST(0.3611589968), COEF_CONST(0.3723795414),
-    COEF_CONST(0.3836350143), COEF_CONST(0.3949211836),
-    COEF_CONST(0.4062317610), COEF_CONST(0.4175696969),
-    COEF_CONST(0.4289119840), COEF_CONST(0.4402553737),
-    COEF_CONST(0.4515996575), COEF_CONST(0.4629307985),
-    COEF_CONST(0.4742453098), COEF_CONST(0.4855253100),
-    COEF_CONST(0.4967708290), COEF_CONST(0.5079817772),
-    COEF_CONST(0.5191234946), COEF_CONST(0.5302240849),
-    COEF_CONST(0.5412553549), COEF_CONST(0.5522051454),
-    COEF_CONST(0.5630789399), COEF_CONST(0.5738524199),
-    COEF_CONST(0.5845403075), COEF_CONST(0.5951123238),
-    COEF_CONST(0.6055783629), COEF_CONST(0.6159110069),
-    COEF_CONST(0.6261242628), COEF_CONST(0.6361979842),
-    COEF_CONST(0.6461269855), COEF_CONST(0.6559016109),
-    COEF_CONST(0.6655139923), COEF_CONST(0.6749663353),
-    COEF_CONST(0.6842353344), COEF_CONST(0.6933282614),
-    COEF_CONST(0.7022388577), COEF_CONST(0.7109410167),
-    COEF_CONST(0.7194462419), COEF_CONST(0.7277448773),
-    COEF_CONST(0.7358211875), COEF_CONST(0.7436828017),
-    COEF_CONST(0.7513137460), COEF_CONST(0.7587080598),
-    COEF_CONST(0.7658674717), COEF_CONST(0.7727780938),
-    COEF_CONST(0.7794287801), COEF_CONST(0.7858353257),
-    COEF_CONST(0.7919735909), COEF_CONST(0.7978466153),
-    COEF_CONST(0.8034485579), COEF_CONST(0.8087695241),
-    COEF_CONST(0.8138191104), COEF_CONST(0.8185775876),
-    COEF_CONST(0.8230419755), COEF_CONST(0.8272275329),
-    COEF_CONST(0.8311038613), COEF_CONST(0.8346937299),
-    COEF_CONST(0.8379717469), COEF_CONST(0.8409541249),
-    COEF_CONST(0.8436238170), COEF_CONST(0.8459818363),
-    COEF_CONST(0.8480315804), COEF_CONST(0.8497804999),
-    COEF_CONST(0.8511971235), COEF_CONST(0.8523046970),
-    COEF_CONST(0.8531020880), COEF_CONST(0.8535720706),
-    COEF_CONST(0.8537385464), COEF_CONST(0.8535720706),
-    COEF_CONST(0.8531020880), COEF_CONST(0.8523046970),
-    COEF_CONST(0.8511971235), COEF_CONST(0.8497804999),
-    COEF_CONST(0.8480315804), COEF_CONST(0.8459818363),
-    COEF_CONST(0.8436238170), COEF_CONST(0.8409541249),
-    COEF_CONST(0.8379717469), COEF_CONST(0.8346937299),
-    COEF_CONST(0.8311038613), COEF_CONST(0.8272275329),
-    COEF_CONST(0.8230419755), COEF_CONST(0.8185775876),
-    COEF_CONST(0.8138191104), COEF_CONST(0.8087695241),
-    COEF_CONST(0.8034485579), COEF_CONST(0.7978466153),
-    COEF_CONST(0.7919735909), COEF_CONST(0.7858353257),
-    COEF_CONST(0.7794287801), COEF_CONST(0.7727780938),
-    COEF_CONST(0.7658674717), COEF_CONST(0.7587080598),
-    COEF_CONST(0.7513137460), COEF_CONST(0.7436828017),
-    COEF_CONST(0.7358211875), COEF_CONST(0.7277448773),
-    COEF_CONST(0.7194462419), COEF_CONST(0.7109410167),
-    COEF_CONST(0.7022388577), COEF_CONST(0.6933282614),
-    COEF_CONST(0.6842353344), COEF_CONST(0.6749663353),
-    COEF_CONST(0.6655139923), COEF_CONST(0.6559016109),
-    COEF_CONST(0.6461269855), COEF_CONST(0.6361979842),
-    COEF_CONST(0.6261242628), COEF_CONST(0.6159110069),
-    COEF_CONST(0.6055783629), COEF_CONST(0.5951123238),
-    COEF_CONST(0.5845403075), COEF_CONST(0.5738524199),
-    COEF_CONST(0.5630789399), COEF_CONST(0.5522051454),
-    COEF_CONST(0.5412553549), COEF_CONST(0.5302240849),
-    COEF_CONST(0.5191234946), COEF_CONST(0.5079817772),
-    COEF_CONST(0.4967708290), COEF_CONST(0.4855253100),
-    COEF_CONST(0.4742453098), COEF_CONST(0.4629307985),
-    COEF_CONST(0.4515996575), COEF_CONST(0.4402553737),
-    COEF_CONST(0.4289119840), COEF_CONST(0.4175696969),
-    COEF_CONST(0.4062317610), COEF_CONST(0.3949211836),
-    COEF_CONST(0.3836350143), COEF_CONST(0.3723795414),
-    COEF_CONST(-0.3611589968), COEF_CONST(-0.3499914110),
-    COEF_CONST(-0.3388722837), COEF_CONST(-0.3278113604),
-    COEF_CONST(-0.3168278933), COEF_CONST(-0.3059098721),
-    COEF_CONST(-0.2950716615), COEF_CONST(-0.2843214273),
-    COEF_CONST(-0.2736634016), COEF_CONST(-0.2631053329),
-    COEF_CONST(-0.2526480258), COEF_CONST(-0.2423016876),
-    COEF_CONST(-0.2320690900), COEF_CONST(-0.2219652683),
-    COEF_CONST(-0.2119735926), COEF_CONST(-0.2021250129),
-    COEF_CONST(-0.1923966706), COEF_CONST(-0.1828172505),
-    COEF_CONST(-0.1733808219), COEF_CONST(-0.1640958786),
-    COEF_CONST(-0.1549607068), COEF_CONST(-0.1459766477),
-    COEF_CONST(-0.1371551752), COEF_CONST(-0.1285002828),
-    COEF_CONST(-0.1200077981), COEF_CONST(-0.1116826907),
-    COEF_CONST(-0.1035329551), COEF_CONST(-0.0955533385),
-    COEF_CONST(-0.0877547562), COEF_CONST(-0.0801372901),
-    COEF_CONST(-0.0726943314), COEF_CONST(-0.0654409826),
-    COEF_CONST(-0.0583705343), COEF_CONST(-0.0514804162),
-    COEF_CONST(-0.0447806828), COEF_CONST(-0.0382776558),
-    COEF_CONST(-0.0319531262), COEF_CONST(-0.0258227289),
-    COEF_CONST(-0.0198834129), COEF_CONST(-0.0141288824),
-    COEF_CONST(-0.0085711749), COEF_CONST(-0.0032086896),
-    COEF_CONST(0.0019765601), COEF_CONST(0.0069636861),
-    COEF_CONST(0.0117623834), COEF_CONST(0.0163701251),
-    COEF_CONST(0.0207997076), COEF_CONST(0.0250307564),
-    COEF_CONST(0.0290824007), COEF_CONST(0.0329583921),
-    COEF_CONST(0.0366418101), COEF_CONST(0.0401458293),
-    COEF_CONST(0.0434768796), COEF_CONST(0.0466303304),
-    COEF_CONST(0.0495978668), COEF_CONST(0.0524093807),
-    COEF_CONST(0.0550460033), COEF_CONST(0.0575152673),
-    COEF_CONST(0.0598166585), COEF_CONST(0.0619602762),
-    COEF_CONST(0.0639444813), COEF_CONST(0.0657690689),
-    COEF_CONST(0.0674525052), COEF_CONST(0.0689664036),
-    COEF_CONST(0.0703533068), COEF_CONST(0.0715826377),
-    COEF_CONST(0.0726774633), COEF_CONST(0.0736405998),
-    COEF_CONST(0.0744664371), COEF_CONST(0.0751576275),
-    COEF_CONST(0.0757305771), COEF_CONST(0.0761748329),
-    COEF_CONST(0.0765050724), COEF_CONST(0.0767204911),
-    COEF_CONST(0.0768230036), COEF_CONST(0.0768174008),
-    COEF_CONST(0.0767093524), COEF_CONST(0.0764992163),
-    COEF_CONST(0.0761992484), COEF_CONST(0.0758008361),
-    COEF_CONST(0.0753137320), COEF_CONST(0.0747452527),
-    COEF_CONST(0.0741003677), COEF_CONST(0.0733620226),
-    COEF_CONST(0.0725682601), COEF_CONST(0.0717002675),
-    COEF_CONST(0.0707628727), COEF_CONST(0.0697630271),
-    COEF_CONST(0.0687043816), COEF_CONST(0.0676075965),
-    COEF_CONST(0.0664367527), COEF_CONST(0.0652247071),
-    COEF_CONST(0.0639715865), COEF_CONST(0.0626857802),
-    COEF_CONST(0.0613455176), COEF_CONST(0.0599837489),
-    COEF_CONST(0.0585915670), COEF_CONST(0.0571616441),
-    COEF_CONST(0.0557173640), COEF_CONST(0.0542452782),
-    COEF_CONST(0.0527630746), COEF_CONST(0.0512556173),
-    COEF_CONST(0.0497385748), COEF_CONST(0.0482165702),
-    COEF_CONST(0.0466843024), COEF_CONST(0.0451488420),
-    COEF_CONST(0.0436097533), COEF_CONST(0.0420649089),
-    COEF_CONST(0.0405349173), COEF_CONST(0.0390053689),
-    COEF_CONST(0.0374812856), COEF_CONST(0.0359697565),
-    COEF_CONST(0.0344620943), COEF_CONST(0.0329754092),
-    COEF_CONST(0.0315017626), COEF_CONST(0.0300502665),
-    COEF_CONST(0.0286072176), COEF_CONST(0.0271859430),
-    COEF_CONST(0.0257875845), COEF_CONST(0.0244160984),
-    COEF_CONST(0.0230680164), COEF_CONST(0.0217467546),
-    COEF_CONST(0.0204531793), COEF_CONST(0.0191872437),
-    COEF_CONST(0.0179433376), COEF_CONST(0.0167324711),
-    COEF_CONST(0.0155405551), COEF_CONST(0.0143904667),
-    COEF_CONST(-0.0132718217), COEF_CONST(-0.0121849999),
-    COEF_CONST(-0.0111315548), COEF_CONST(-0.0101150218),
-    COEF_CONST(-0.0091325333), COEF_CONST(-0.0081798229),
-    COEF_CONST(-0.0072615817), COEF_CONST(-0.0063792295),
-    COEF_CONST(-0.0055337213), COEF_CONST(-0.0047222595),
-    COEF_CONST(-0.0039401124), COEF_CONST(-0.0031933777),
-    COEF_CONST(-0.0024826722), COEF_CONST(-0.0018039471),
-    COEF_CONST(-0.0011568135), COEF_CONST(-0.0005464280),
-    COEF_CONST(0.0000276045), COEF_CONST(0.0005832264),
-    COEF_CONST(0.0010902329), COEF_CONST(0.0015784682),
-    COEF_CONST(0.0020274175), COEF_CONST(0.0024508541),
-    COEF_CONST(0.0028446757), COEF_CONST(0.0032091886),
-    COEF_CONST(0.0035401245), COEF_CONST(0.0038456407),
-    COEF_CONST(0.0041251644), COEF_CONST(0.0043801861),
-    COEF_CONST(0.0046039531), COEF_CONST(0.0048109470),
-    COEF_CONST(0.0049839686), COEF_CONST(0.0051382277),
-    COEF_CONST(0.0052715759), COEF_CONST(0.0053838976),
-    COEF_CONST(0.0054753781), COEF_CONST(0.0055404361),
-    COEF_CONST(0.0055917129), COEF_CONST(0.0056266114),
-    COEF_CONST(0.0056389198), COEF_CONST(0.0056455196),
-    COEF_CONST(0.0056220642), COEF_CONST(0.0055938023),
-    COEF_CONST(0.0055475715), COEF_CONST(0.0054876041),
-    COEF_CONST(0.0054196776), COEF_CONST(0.0053471681),
-    COEF_CONST(0.0052461168), COEF_CONST(0.0051407353),
-    COEF_CONST(0.0050393022), COEF_CONST(0.0049137603),
-    COEF_CONST(0.0047932561), COEF_CONST(0.0046606460),
-    COEF_CONST(0.0045209853), COEF_CONST(0.0043730717),
-    COEF_CONST(0.0042264271), COEF_CONST(0.0040819752),
-    COEF_CONST(0.0039207432), COEF_CONST(0.0037603923),
-    COEF_CONST(0.0036008267), COEF_CONST(0.0034418874),
-    COEF_CONST(0.0032739614), COEF_CONST(0.0031125420),
-    COEF_CONST(0.0029469447), COEF_CONST(0.0027870464),
-    COEF_CONST(0.0026201757), COEF_CONST(0.0024625617),
-    COEF_CONST(0.0023017253), COEF_CONST(0.0021461584),
-    COEF_CONST(0.0019841141), COEF_CONST(0.0018348265),
-    COEF_CONST(0.0016868083), COEF_CONST(0.0015443219),
-    COEF_CONST(0.0013902494), COEF_CONST(0.0012577884),
-    COEF_CONST(0.0011250156), COEF_CONST(0.0009885988),
-    COEF_CONST(0.0008608443), COEF_CONST(0.0007458025),
-    COEF_CONST(0.0006239376), COEF_CONST(0.0005107388),
-    COEF_CONST(0.0004026540), COEF_CONST(0.0002949531),
-    COEF_CONST(0.0002043017), COEF_CONST(0.0001094383),
-    COEF_CONST(0.0000134949), COEF_CONST(-0.0000617334),
-    COEF_CONST(-0.0001446380), COEF_CONST(-0.0002098337),
-    COEF_CONST(-0.0002896981), COEF_CONST(-0.0003501175),
-    COEF_CONST(-0.0004095121), COEF_CONST(-0.0004606325),
-    COEF_CONST(-0.0005145572), COEF_CONST(-0.0005564576),
-    COEF_CONST(-0.0005946118), COEF_CONST(-0.0006341594),
-    COEF_CONST(-0.0006650415), COEF_CONST(-0.0006917937),
-    COEF_CONST(-0.0007215391), COEF_CONST(-0.0007319357),
-    COEF_CONST(-0.0007530001), COEF_CONST(-0.0007630793),
-    COEF_CONST(-0.0007757977), COEF_CONST(-0.0007801449),
-    COEF_CONST(-0.0007803664), COEF_CONST(-0.0007779869),
-    COEF_CONST(-0.0007834332), COEF_CONST(-0.0007724848),
-    COEF_CONST(-0.0007681371), COEF_CONST(-0.0007490598),
-    COEF_CONST(-0.0007440941), COEF_CONST(-0.0007255043),
-    COEF_CONST(-0.0007157736), COEF_CONST(-0.0006941614),
-    COEF_CONST(-0.0006777690), COEF_CONST(-0.0006540333),
-    COEF_CONST(-0.0006312493), COEF_CONST(-0.0006132747),
-    COEF_CONST(-0.0005870930), COEF_CONST(-0.0005677802),
-    COEF_CONST(-0.0005466565), COEF_CONST(-0.0005226564),
-    COEF_CONST(-0.0005040714), COEF_CONST(-0.0004893791),
-    COEF_CONST(-0.0004875227), COEF_CONST(-0.0004947518),
-    COEF_CONST(-0.0005617692), COEF_CONST(-0.0005525280)
+static real_t qmf_c[640] = {
+    FRAC_CONST(0), FRAC_CONST(-0.00055252865047),
+    FRAC_CONST(-0.00056176925738), FRAC_CONST(-0.00049475180896),
+    FRAC_CONST(-0.00048752279712), FRAC_CONST(-0.00048937912498),
+    FRAC_CONST(-0.00050407143497), FRAC_CONST(-0.00052265642972),
+    FRAC_CONST(-0.00054665656337), FRAC_CONST(-0.00056778025613),
+    FRAC_CONST(-0.00058709304852), FRAC_CONST(-0.00061327473938),
+    FRAC_CONST(-0.00063124935319), FRAC_CONST(-0.00065403333621),
+    FRAC_CONST(-0.00067776907764), FRAC_CONST(-0.00069416146273),
+    FRAC_CONST(-0.00071577364744), FRAC_CONST(-0.00072550431222),
+    FRAC_CONST(-0.00074409418541), FRAC_CONST(-0.00074905980532),
+    FRAC_CONST(-0.0007681371927), FRAC_CONST(-0.00077248485949),
+    FRAC_CONST(-0.00078343322877), FRAC_CONST(-0.00077798694927),
+    FRAC_CONST(-0.000780366471), FRAC_CONST(-0.00078014496257),
+    FRAC_CONST(-0.0007757977331), FRAC_CONST(-0.00076307935757),
+    FRAC_CONST(-0.00075300014201), FRAC_CONST(-0.00073193571525),
+    FRAC_CONST(-0.00072153919876), FRAC_CONST(-0.00069179375372),
+    FRAC_CONST(-0.00066504150893), FRAC_CONST(-0.00063415949025),
+    FRAC_CONST(-0.0005946118933), FRAC_CONST(-0.00055645763906),
+    FRAC_CONST(-0.00051455722108), FRAC_CONST(-0.00046063254803),
+    FRAC_CONST(-0.00040951214522), FRAC_CONST(-0.00035011758756),
+    FRAC_CONST(-0.00028969811748), FRAC_CONST(-0.0002098337344),
+    FRAC_CONST(-0.00014463809349), FRAC_CONST(-6.173344072E-005),
+    FRAC_CONST(1.349497418E-005), FRAC_CONST(0.00010943831274),
+    FRAC_CONST(0.00020430170688), FRAC_CONST(0.00029495311041),
+    FRAC_CONST(0.0004026540216), FRAC_CONST(0.00051073884952),
+    FRAC_CONST(0.00062393761391), FRAC_CONST(0.00074580258865),
+    FRAC_CONST(0.00086084433262), FRAC_CONST(0.00098859883015),
+    FRAC_CONST(0.00112501551307), FRAC_CONST(0.00125778846475),
+    FRAC_CONST(0.00139024948272), FRAC_CONST(0.00154432198471),
+    FRAC_CONST(0.00168680832531), FRAC_CONST(0.00183482654224),
+    FRAC_CONST(0.00198411407369), FRAC_CONST(0.00214615835557),
+    FRAC_CONST(0.00230172547746), FRAC_CONST(0.00246256169126),
+    FRAC_CONST(0.00262017586902), FRAC_CONST(0.00278704643465),
+    FRAC_CONST(0.00294694477165), FRAC_CONST(0.00311254206525),
+    FRAC_CONST(0.00327396134847), FRAC_CONST(0.00344188741828),
+    FRAC_CONST(0.00360082681231), FRAC_CONST(0.00376039229104),
+    FRAC_CONST(0.00392074323703), FRAC_CONST(0.00408197531935),
+    FRAC_CONST(0.0042264269227), FRAC_CONST(0.00437307196781),
+    FRAC_CONST(0.00452098527825), FRAC_CONST(0.00466064606118),
+    FRAC_CONST(0.00479325608498), FRAC_CONST(0.00491376035745),
+    FRAC_CONST(0.00503930226013), FRAC_CONST(0.00514073539032),
+    FRAC_CONST(0.00524611661324), FRAC_CONST(0.00534716811982),
+    FRAC_CONST(0.00541967759307), FRAC_CONST(0.00548760401507),
+    FRAC_CONST(0.00554757145088), FRAC_CONST(0.00559380230045),
+    FRAC_CONST(0.00562206432097), FRAC_CONST(0.00564551969164),
+    FRAC_CONST(0.00563891995151), FRAC_CONST(0.00562661141932),
+    FRAC_CONST(0.0055917128663), FRAC_CONST(0.005540436394),
+    FRAC_CONST(0.0054753783077), FRAC_CONST(0.0053838975897),
+    FRAC_CONST(0.00527157587272), FRAC_CONST(0.00513822754514),
+    FRAC_CONST(0.00498396877629), FRAC_CONST(0.004810946906),
+    FRAC_CONST(0.00460395301471), FRAC_CONST(0.00438018617447),
+    FRAC_CONST(0.0041251642327), FRAC_CONST(0.00384564081246),
+    FRAC_CONST(0.00354012465507), FRAC_CONST(0.00320918858098),
+    FRAC_CONST(0.00284467578623), FRAC_CONST(0.00245085400321),
+    FRAC_CONST(0.0020274176185), FRAC_CONST(0.00157846825768),
+    FRAC_CONST(0.00109023290512), FRAC_CONST(0.0005832264248),
+    FRAC_CONST(2.760451905E-005), FRAC_CONST(-0.00054642808664),
+    FRAC_CONST(-0.00115681355227), FRAC_CONST(-0.00180394725893),
+    FRAC_CONST(-0.00248267236449), FRAC_CONST(-0.003193377839),
+    FRAC_CONST(-0.00394011240522), FRAC_CONST(-0.004722259624),
+    FRAC_CONST(-0.00553372111088), FRAC_CONST(-0.00637922932685),
+    FRAC_CONST(-0.00726158168517), FRAC_CONST(-0.00817982333726),
+    FRAC_CONST(-0.00913253296085), FRAC_CONST(-0.01011502154986),
+    FRAC_CONST(-0.01113155480321), FRAC_CONST(-0.01218499959508),
+    FRAC_CONST(0.01327182200351), FRAC_CONST(0.01439046660792),
+    FRAC_CONST(0.01554055533423), FRAC_CONST(0.01673247129989),
+    FRAC_CONST(0.01794333813443), FRAC_CONST(0.01918724313698),
+    FRAC_CONST(0.02045317933555), FRAC_CONST(0.02174675502535),
+    FRAC_CONST(0.02306801692862), FRAC_CONST(0.02441609920285),
+    FRAC_CONST(0.02578758475467), FRAC_CONST(0.02718594296329),
+    FRAC_CONST(0.02860721736385), FRAC_CONST(0.03005026574279),
+    FRAC_CONST(0.03150176087389), FRAC_CONST(0.03297540810337),
+    FRAC_CONST(0.03446209487686), FRAC_CONST(0.03596975605542),
+    FRAC_CONST(0.03748128504252), FRAC_CONST(0.03900536794745),
+    FRAC_CONST(0.04053491705584), FRAC_CONST(0.04206490946367),
+    FRAC_CONST(0.04360975421304), FRAC_CONST(0.04514884056413),
+    FRAC_CONST(0.04668430272642), FRAC_CONST(0.04821657200672),
+    FRAC_CONST(0.04973857556014), FRAC_CONST(0.05125561555216),
+    FRAC_CONST(0.05276307465207), FRAC_CONST(0.05424527683589),
+    FRAC_CONST(0.05571736482138), FRAC_CONST(0.05716164501299),
+    FRAC_CONST(0.0585915683626), FRAC_CONST(0.05998374801761),
+    FRAC_CONST(0.06134551717207), FRAC_CONST(0.06268578081172),
+    FRAC_CONST(0.06397158980681), FRAC_CONST(0.0652247106438),
+    FRAC_CONST(0.06643675122104), FRAC_CONST(0.06760759851228),
+    FRAC_CONST(0.06870438283512), FRAC_CONST(0.06976302447127),
+    FRAC_CONST(0.07076287107266), FRAC_CONST(0.07170026731102),
+    FRAC_CONST(0.07256825833083), FRAC_CONST(0.07336202550803),
+    FRAC_CONST(0.07410036424342), FRAC_CONST(0.07474525581194),
+    FRAC_CONST(0.07531373362019), FRAC_CONST(0.07580083586584),
+    FRAC_CONST(0.07619924793396), FRAC_CONST(0.07649921704119),
+    FRAC_CONST(0.07670934904245), FRAC_CONST(0.07681739756964),
+    FRAC_CONST(0.07682300113923), FRAC_CONST(0.07672049241746),
+    FRAC_CONST(0.07650507183194), FRAC_CONST(0.07617483218536),
+    FRAC_CONST(0.07573057565061), FRAC_CONST(0.0751576255287),
+    FRAC_CONST(0.07446643947564), FRAC_CONST(0.0736406005762),
+    FRAC_CONST(0.07267746427299), FRAC_CONST(0.07158263647903),
+    FRAC_CONST(0.07035330735093), FRAC_CONST(0.06896640131951),
+    FRAC_CONST(0.06745250215166), FRAC_CONST(0.06576906686508),
+    FRAC_CONST(0.06394448059633), FRAC_CONST(0.06196027790387),
+    FRAC_CONST(0.0598166570809), FRAC_CONST(0.05751526919867),
+    FRAC_CONST(0.05504600343009), FRAC_CONST(0.05240938217366),
+    FRAC_CONST(0.04959786763445), FRAC_CONST(0.04663033051701),
+    FRAC_CONST(0.04347687821958), FRAC_CONST(0.04014582784127),
+    FRAC_CONST(0.03664181168133), FRAC_CONST(0.03295839306691),
+    FRAC_CONST(0.02908240060125), FRAC_CONST(0.02503075618909),
+    FRAC_CONST(0.02079970728622), FRAC_CONST(0.01637012582228),
+    FRAC_CONST(0.01176238327857), FRAC_CONST(0.00696368621617),
+    FRAC_CONST(0.00197656014503), FRAC_CONST(-0.00320868968304),
+    FRAC_CONST(-0.00857117491366), FRAC_CONST(-0.01412888273558),
+    FRAC_CONST(-0.01988341292573), FRAC_CONST(-0.02582272888064),
+    FRAC_CONST(-0.03195312745332), FRAC_CONST(-0.03827765720822),
+    FRAC_CONST(-0.04478068215856), FRAC_CONST(-0.05148041767934),
+    FRAC_CONST(-0.05837053268336), FRAC_CONST(-0.06544098531359),
+    FRAC_CONST(-0.07269433008129), FRAC_CONST(-0.08013729344279),
+    FRAC_CONST(-0.08775475365593), FRAC_CONST(-0.09555333528914),
+    FRAC_CONST(-0.10353295311463), FRAC_CONST(-0.1116826931773),
+    FRAC_CONST(-0.120007798468), FRAC_CONST(-0.12850028503878),
+    FRAC_CONST(-0.13715517611934), FRAC_CONST(-0.1459766491187),
+    FRAC_CONST(-0.15496070710605), FRAC_CONST(-0.16409588556669),
+    FRAC_CONST(-0.17338081721706), FRAC_CONST(-0.18281725485142),
+    FRAC_CONST(-0.19239667457267), FRAC_CONST(-0.20212501768103),
+    FRAC_CONST(-0.21197358538056), FRAC_CONST(-0.22196526964149),
+    FRAC_CONST(-0.23206908706791), FRAC_CONST(-0.24230168845974),
+    FRAC_CONST(-0.25264803095722), FRAC_CONST(-0.26310532994603),
+    FRAC_CONST(-0.27366340405625), FRAC_CONST(-0.28432141891085),
+    FRAC_CONST(-0.29507167170646), FRAC_CONST(-0.30590985751916),
+    FRAC_CONST(-0.31682789136456), FRAC_CONST(-0.32781137272105),
+    FRAC_CONST(-0.33887226938665), FRAC_CONST(-0.3499914122931),
+    FRAC_CONST(0.36115899031355), FRAC_CONST(0.37237955463061),
+    FRAC_CONST(0.38363500139043), FRAC_CONST(0.39492117615675),
+    FRAC_CONST(0.40623176767625), FRAC_CONST(0.41756968968409),
+    FRAC_CONST(0.42891199207373), FRAC_CONST(0.44025537543665),
+    FRAC_CONST(0.45159965356824), FRAC_CONST(0.46293080852757),
+    FRAC_CONST(0.47424532146115), FRAC_CONST(0.48552530911099),
+    FRAC_CONST(0.49677082545707), FRAC_CONST(0.50798175000434),
+    FRAC_CONST(0.51912349702391), FRAC_CONST(0.53022408956855),
+    FRAC_CONST(0.54125534487322), FRAC_CONST(0.55220512585061),
+    FRAC_CONST(0.5630789140137), FRAC_CONST(0.57385241316923),
+    FRAC_CONST(0.58454032354679), FRAC_CONST(0.59511230862496),
+    FRAC_CONST(0.6055783538918), FRAC_CONST(0.61591099320291),
+    FRAC_CONST(0.62612426956055), FRAC_CONST(0.63619801077286),
+    FRAC_CONST(0.64612696959461), FRAC_CONST(0.65590163024671),
+    FRAC_CONST(0.66551398801627), FRAC_CONST(0.67496631901712),
+    FRAC_CONST(0.68423532934598), FRAC_CONST(0.69332823767032),
+    FRAC_CONST(0.70223887193539), FRAC_CONST(0.71094104263095),
+    FRAC_CONST(0.71944626349561), FRAC_CONST(0.72774489002994),
+    FRAC_CONST(0.73582117582769), FRAC_CONST(0.74368278636488),
+    FRAC_CONST(0.75131374561237), FRAC_CONST(0.75870807608242),
+    FRAC_CONST(0.76586748650939), FRAC_CONST(0.77277808813327),
+    FRAC_CONST(0.77942875190216), FRAC_CONST(0.7858353120392),
+    FRAC_CONST(0.79197358416424), FRAC_CONST(0.797846641377),
+    FRAC_CONST(0.80344857518505), FRAC_CONST(0.80876950044491),
+    FRAC_CONST(0.81381912706217), FRAC_CONST(0.81857760046468),
+    FRAC_CONST(0.82304198905409), FRAC_CONST(0.8272275347336),
+    FRAC_CONST(0.8311038457152), FRAC_CONST(0.83469373618402),
+    FRAC_CONST(0.83797173378865), FRAC_CONST(0.84095413924722),
+    FRAC_CONST(0.84362382812005), FRAC_CONST(0.84598184698206),
+    FRAC_CONST(0.84803157770763), FRAC_CONST(0.84978051984268),
+    FRAC_CONST(0.85119715249343), FRAC_CONST(0.85230470352147),
+    FRAC_CONST(0.85310209497017), FRAC_CONST(0.85357205739107),
+    FRAC_CONST(0.85373856005937), FRAC_CONST(0.85357205739107),
+    FRAC_CONST(0.85310209497017), FRAC_CONST(0.85230470352147),
+    FRAC_CONST(0.85119715249343), FRAC_CONST(0.84978051984268),
+    FRAC_CONST(0.84803157770763), FRAC_CONST(0.84598184698206),
+    FRAC_CONST(0.84362382812005), FRAC_CONST(0.84095413924722),
+    FRAC_CONST(0.83797173378865), FRAC_CONST(0.83469373618402),
+    FRAC_CONST(0.8311038457152), FRAC_CONST(0.8272275347336),
+    FRAC_CONST(0.82304198905409), FRAC_CONST(0.81857760046468),
+    FRAC_CONST(0.81381912706217), FRAC_CONST(0.80876950044491),
+    FRAC_CONST(0.80344857518505), FRAC_CONST(0.797846641377),
+    FRAC_CONST(0.79197358416424), FRAC_CONST(0.7858353120392),
+    FRAC_CONST(0.77942875190216), FRAC_CONST(0.77277808813327),
+    FRAC_CONST(0.76586748650939), FRAC_CONST(0.75870807608242),
+    FRAC_CONST(0.75131374561237), FRAC_CONST(0.74368278636488),
+    FRAC_CONST(0.73582117582769), FRAC_CONST(0.72774489002994),
+    FRAC_CONST(0.71944626349561), FRAC_CONST(0.71094104263095),
+    FRAC_CONST(0.70223887193539), FRAC_CONST(0.69332823767032),
+    FRAC_CONST(0.68423532934598), FRAC_CONST(0.67496631901712),
+    FRAC_CONST(0.66551398801627), FRAC_CONST(0.65590163024671),
+    FRAC_CONST(0.64612696959461), FRAC_CONST(0.63619801077286),
+    FRAC_CONST(0.62612426956055), FRAC_CONST(0.61591099320291),
+    FRAC_CONST(0.6055783538918), FRAC_CONST(0.59511230862496),
+    FRAC_CONST(0.58454032354679), FRAC_CONST(0.57385241316923),
+    FRAC_CONST(0.5630789140137), FRAC_CONST(0.55220512585061),
+    FRAC_CONST(0.54125534487322), FRAC_CONST(0.53022408956855),
+    FRAC_CONST(0.51912349702391), FRAC_CONST(0.50798175000434),
+    FRAC_CONST(0.49677082545707), FRAC_CONST(0.48552530911099),
+    FRAC_CONST(0.47424532146115), FRAC_CONST(0.46293080852757),
+    FRAC_CONST(0.45159965356824), FRAC_CONST(0.44025537543665),
+    FRAC_CONST(0.42891199207373), FRAC_CONST(0.41756968968409),
+    FRAC_CONST(0.40623176767625), FRAC_CONST(0.39492117615675),
+    FRAC_CONST(0.38363500139043), FRAC_CONST(0.37237955463061),
+    FRAC_CONST(-0.36115899031355), FRAC_CONST(-0.3499914122931),
+    FRAC_CONST(-0.33887226938665), FRAC_CONST(-0.32781137272105),
+    FRAC_CONST(-0.31682789136456), FRAC_CONST(-0.30590985751916),
+    FRAC_CONST(-0.29507167170646), FRAC_CONST(-0.28432141891085),
+    FRAC_CONST(-0.27366340405625), FRAC_CONST(-0.26310532994603),
+    FRAC_CONST(-0.25264803095722), FRAC_CONST(-0.24230168845974),
+    FRAC_CONST(-0.23206908706791), FRAC_CONST(-0.22196526964149),
+    FRAC_CONST(-0.21197358538056), FRAC_CONST(-0.20212501768103),
+    FRAC_CONST(-0.19239667457267), FRAC_CONST(-0.18281725485142),
+    FRAC_CONST(-0.17338081721706), FRAC_CONST(-0.16409588556669),
+    FRAC_CONST(-0.15496070710605), FRAC_CONST(-0.1459766491187),
+    FRAC_CONST(-0.13715517611934), FRAC_CONST(-0.12850028503878),
+    FRAC_CONST(-0.120007798468), FRAC_CONST(-0.1116826931773),
+    FRAC_CONST(-0.10353295311463), FRAC_CONST(-0.09555333528914),
+    FRAC_CONST(-0.08775475365593), FRAC_CONST(-0.08013729344279),
+    FRAC_CONST(-0.07269433008129), FRAC_CONST(-0.06544098531359),
+    FRAC_CONST(-0.05837053268336), FRAC_CONST(-0.05148041767934),
+    FRAC_CONST(-0.04478068215856), FRAC_CONST(-0.03827765720822),
+    FRAC_CONST(-0.03195312745332), FRAC_CONST(-0.02582272888064),
+    FRAC_CONST(-0.01988341292573), FRAC_CONST(-0.01412888273558),
+    FRAC_CONST(-0.00857117491366), FRAC_CONST(-0.00320868968304),
+    FRAC_CONST(0.00197656014503), FRAC_CONST(0.00696368621617),
+    FRAC_CONST(0.01176238327857), FRAC_CONST(0.01637012582228),
+    FRAC_CONST(0.02079970728622), FRAC_CONST(0.02503075618909),
+    FRAC_CONST(0.02908240060125), FRAC_CONST(0.03295839306691),
+    FRAC_CONST(0.03664181168133), FRAC_CONST(0.04014582784127),
+    FRAC_CONST(0.04347687821958), FRAC_CONST(0.04663033051701),
+    FRAC_CONST(0.04959786763445), FRAC_CONST(0.05240938217366),
+    FRAC_CONST(0.05504600343009), FRAC_CONST(0.05751526919867),
+    FRAC_CONST(0.0598166570809), FRAC_CONST(0.06196027790387),
+    FRAC_CONST(0.06394448059633), FRAC_CONST(0.06576906686508),
+    FRAC_CONST(0.06745250215166), FRAC_CONST(0.06896640131951),
+    FRAC_CONST(0.07035330735093), FRAC_CONST(0.07158263647903),
+    FRAC_CONST(0.07267746427299), FRAC_CONST(0.0736406005762),
+    FRAC_CONST(0.07446643947564), FRAC_CONST(0.0751576255287),
+    FRAC_CONST(0.07573057565061), FRAC_CONST(0.07617483218536),
+    FRAC_CONST(0.07650507183194), FRAC_CONST(0.07672049241746),
+    FRAC_CONST(0.07682300113923), FRAC_CONST(0.07681739756964),
+    FRAC_CONST(0.07670934904245), FRAC_CONST(0.07649921704119),
+    FRAC_CONST(0.07619924793396), FRAC_CONST(0.07580083586584),
+    FRAC_CONST(0.07531373362019), FRAC_CONST(0.07474525581194),
+    FRAC_CONST(0.07410036424342), FRAC_CONST(0.07336202550803),
+    FRAC_CONST(0.07256825833083), FRAC_CONST(0.07170026731102),
+    FRAC_CONST(0.07076287107266), FRAC_CONST(0.06976302447127),
+    FRAC_CONST(0.06870438283512), FRAC_CONST(0.06760759851228),
+    FRAC_CONST(0.06643675122104), FRAC_CONST(0.0652247106438),
+    FRAC_CONST(0.06397158980681), FRAC_CONST(0.06268578081172),
+    FRAC_CONST(0.06134551717207), FRAC_CONST(0.05998374801761),
+    FRAC_CONST(0.0585915683626), FRAC_CONST(0.05716164501299),
+    FRAC_CONST(0.05571736482138), FRAC_CONST(0.05424527683589),
+    FRAC_CONST(0.05276307465207), FRAC_CONST(0.05125561555216),
+    FRAC_CONST(0.04973857556014), FRAC_CONST(0.04821657200672),
+    FRAC_CONST(0.04668430272642), FRAC_CONST(0.04514884056413),
+    FRAC_CONST(0.04360975421304), FRAC_CONST(0.04206490946367),
+    FRAC_CONST(0.04053491705584), FRAC_CONST(0.03900536794745),
+    FRAC_CONST(0.03748128504252), FRAC_CONST(0.03596975605542),
+    FRAC_CONST(0.03446209487686), FRAC_CONST(0.03297540810337),
+    FRAC_CONST(0.03150176087389), FRAC_CONST(0.03005026574279),
+    FRAC_CONST(0.02860721736385), FRAC_CONST(0.02718594296329),
+    FRAC_CONST(0.02578758475467), FRAC_CONST(0.02441609920285),
+    FRAC_CONST(0.02306801692862), FRAC_CONST(0.02174675502535),
+    FRAC_CONST(0.02045317933555), FRAC_CONST(0.01918724313698),
+    FRAC_CONST(0.01794333813443), FRAC_CONST(0.01673247129989),
+    FRAC_CONST(0.01554055533423), FRAC_CONST(0.01439046660792),
+    FRAC_CONST(-0.01327182200351), FRAC_CONST(-0.01218499959508),
+    FRAC_CONST(-0.01113155480321), FRAC_CONST(-0.01011502154986),
+    FRAC_CONST(-0.00913253296085), FRAC_CONST(-0.00817982333726),
+    FRAC_CONST(-0.00726158168517), FRAC_CONST(-0.00637922932685),
+    FRAC_CONST(-0.00553372111088), FRAC_CONST(-0.004722259624),
+    FRAC_CONST(-0.00394011240522), FRAC_CONST(-0.003193377839),
+    FRAC_CONST(-0.00248267236449), FRAC_CONST(-0.00180394725893),
+    FRAC_CONST(-0.00115681355227), FRAC_CONST(-0.00054642808664),
+    FRAC_CONST(2.760451905E-005), FRAC_CONST(0.0005832264248),
+    FRAC_CONST(0.00109023290512), FRAC_CONST(0.00157846825768),
+    FRAC_CONST(0.0020274176185), FRAC_CONST(0.00245085400321),
+    FRAC_CONST(0.00284467578623), FRAC_CONST(0.00320918858098),
+    FRAC_CONST(0.00354012465507), FRAC_CONST(0.00384564081246),
+    FRAC_CONST(0.0041251642327), FRAC_CONST(0.00438018617447),
+    FRAC_CONST(0.00460395301471), FRAC_CONST(0.004810946906),
+    FRAC_CONST(0.00498396877629), FRAC_CONST(0.00513822754514),
+    FRAC_CONST(0.00527157587272), FRAC_CONST(0.0053838975897),
+    FRAC_CONST(0.0054753783077), FRAC_CONST(0.005540436394),
+    FRAC_CONST(0.0055917128663), FRAC_CONST(0.00562661141932),
+    FRAC_CONST(0.00563891995151), FRAC_CONST(0.00564551969164),
+    FRAC_CONST(0.00562206432097), FRAC_CONST(0.00559380230045),
+    FRAC_CONST(0.00554757145088), FRAC_CONST(0.00548760401507),
+    FRAC_CONST(0.00541967759307), FRAC_CONST(0.00534716811982),
+    FRAC_CONST(0.00524611661324), FRAC_CONST(0.00514073539032),
+    FRAC_CONST(0.00503930226013), FRAC_CONST(0.00491376035745),
+    FRAC_CONST(0.00479325608498), FRAC_CONST(0.00466064606118),
+    FRAC_CONST(0.00452098527825), FRAC_CONST(0.00437307196781),
+    FRAC_CONST(0.0042264269227), FRAC_CONST(0.00408197531935),
+    FRAC_CONST(0.00392074323703), FRAC_CONST(0.00376039229104),
+    FRAC_CONST(0.00360082681231), FRAC_CONST(0.00344188741828),
+    FRAC_CONST(0.00327396134847), FRAC_CONST(0.00311254206525),
+    FRAC_CONST(0.00294694477165), FRAC_CONST(0.00278704643465),
+    FRAC_CONST(0.00262017586902), FRAC_CONST(0.00246256169126),
+    FRAC_CONST(0.00230172547746), FRAC_CONST(0.00214615835557),
+    FRAC_CONST(0.00198411407369), FRAC_CONST(0.00183482654224),
+    FRAC_CONST(0.00168680832531), FRAC_CONST(0.00154432198471),
+    FRAC_CONST(0.00139024948272), FRAC_CONST(0.00125778846475),
+    FRAC_CONST(0.00112501551307), FRAC_CONST(0.00098859883015),
+    FRAC_CONST(0.00086084433262), FRAC_CONST(0.00074580258865),
+    FRAC_CONST(0.00062393761391), FRAC_CONST(0.00051073884952),
+    FRAC_CONST(0.0004026540216), FRAC_CONST(0.00029495311041),
+    FRAC_CONST(0.00020430170688), FRAC_CONST(0.00010943831274),
+    FRAC_CONST(1.349497418E-005), FRAC_CONST(-6.173344072E-005),
+    FRAC_CONST(-0.00014463809349), FRAC_CONST(-0.0002098337344),
+    FRAC_CONST(-0.00028969811748), FRAC_CONST(-0.00035011758756),
+    FRAC_CONST(-0.00040951214522), FRAC_CONST(-0.00046063254803),
+    FRAC_CONST(-0.00051455722108), FRAC_CONST(-0.00055645763906),
+    FRAC_CONST(-0.0005946118933), FRAC_CONST(-0.00063415949025),
+    FRAC_CONST(-0.00066504150893), FRAC_CONST(-0.00069179375372),
+    FRAC_CONST(-0.00072153919876), FRAC_CONST(-0.00073193571525),
+    FRAC_CONST(-0.00075300014201), FRAC_CONST(-0.00076307935757),
+    FRAC_CONST(-0.0007757977331), FRAC_CONST(-0.00078014496257),
+    FRAC_CONST(-0.000780366471), FRAC_CONST(-0.00077798694927),
+    FRAC_CONST(-0.00078343322877), FRAC_CONST(-0.00077248485949),
+    FRAC_CONST(-0.0007681371927), FRAC_CONST(-0.00074905980532),
+    FRAC_CONST(-0.00074409418541), FRAC_CONST(-0.00072550431222),
+    FRAC_CONST(-0.00071577364744), FRAC_CONST(-0.00069416146273),
+    FRAC_CONST(-0.00067776907764), FRAC_CONST(-0.00065403333621),
+    FRAC_CONST(-0.00063124935319), FRAC_CONST(-0.00061327473938),
+    FRAC_CONST(-0.00058709304852), FRAC_CONST(-0.00056778025613),
+    FRAC_CONST(-0.00054665656337), FRAC_CONST(-0.00052265642972),
+    FRAC_CONST(-0.00050407143497), FRAC_CONST(-0.00048937912498),
+    FRAC_CONST(-0.00048752279712), FRAC_CONST(-0.00049475180896),
+    FRAC_CONST(-0.00056176925738), FRAC_CONST(-0.00055252865047)
 };
 
 #endif
\ No newline at end of file
--- a/libfaad/sbr_syntax.c
+++ b/libfaad/sbr_syntax.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sbr_syntax.c,v 1.14 2003/11/02 20:24:05 menno Exp $
+** $Id: sbr_syntax.c,v 1.15 2003/11/12 20:47:58 menno Exp $
 **/
 
 #include "common.h"
@@ -41,6 +41,15 @@
 
 static void sbr_reset(sbr_info *sbr)
 {
+#if 0
+    printf("%d\n", sbr->bs_start_freq_prev);
+    printf("%d\n", sbr->bs_stop_freq_prev);
+    printf("%d\n", sbr->bs_freq_scale_prev);
+    printf("%d\n", sbr->bs_alter_scale_prev);
+    printf("%d\n", sbr->bs_xover_band_prev);
+    printf("%d\n\n", sbr->bs_noise_bands_prev);
+#endif
+
     /* if these are different from the previous frame: Reset = 1 */
     if ((sbr->bs_start_freq != sbr->bs_start_freq_prev) ||
         (sbr->bs_stop_freq != sbr->bs_stop_freq_prev) ||
@@ -398,6 +407,10 @@
                     DEBUGVAR(1,279,"sbr_single_channel_element(): bs_extension_data"));
             }
         }
+
+        /* Corrigendum */
+        faad_getbits(ld, nr_bits_left
+            DEBUGVAR(1,280,"sbr_single_channel_element(): nr_bits_left"));
     }
 
     return 0;
@@ -576,9 +589,13 @@
 #endif
             {
                 sbr->bs_extension_data = faad_getbits(ld, 6
-                    DEBUGVAR(1,280,"sbr_single_channel_element(): bs_extension_data"));
+                    DEBUGVAR(1,280,"sbr_channel_pair_element(): bs_extension_data"));
             }
         }
+
+        /* Corrigendum */
+        faad_getbits(ld, nr_bits_left
+            DEBUGVAR(1,280,"sbr_channel_pair_element(): nr_bits_left"));
     }
 
     return 0;
--- a/libfaad/sine_win.h
+++ b/libfaad/sine_win.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: sine_win.h,v 1.8 2003/11/06 15:43:59 menno Exp $
+** $Id: sine_win.h,v 1.9 2003/11/12 20:47:59 menno Exp $
 **/
 
 #ifndef __SINE_WIN_H__
@@ -39,2253 +39,2253 @@
 
 real_t sine_long_1024[] =
 {
-    COEF_CONST(0.00076699031874270449),
-    COEF_CONST(0.002300969151425805),
-    COEF_CONST(0.0038349425697062275),
-    COEF_CONST(0.0053689069639963425),
-    COEF_CONST(0.0069028587247297558),
-    COEF_CONST(0.0084367942423697988),
-    COEF_CONST(0.0099707099074180308),
-    COEF_CONST(0.011504602110422714),
-    COEF_CONST(0.013038467241987334),
-    COEF_CONST(0.014572301692779064),
-    COEF_CONST(0.016106101853537287),
-    COEF_CONST(0.017639864115082053),
-    COEF_CONST(0.019173584868322623),
-    COEF_CONST(0.020707260504265895),
-    COEF_CONST(0.022240887414024961),
-    COEF_CONST(0.023774461988827555),
-    COEF_CONST(0.025307980620024571),
-    COEF_CONST(0.026841439699098531),
-    COEF_CONST(0.028374835617672099),
-    COEF_CONST(0.029908164767516555),
-    COEF_CONST(0.031441423540560301),
-    COEF_CONST(0.032974608328897335),
-    COEF_CONST(0.03450771552479575),
-    COEF_CONST(0.036040741520706229),
-    COEF_CONST(0.037573682709270494),
-    COEF_CONST(0.039106535483329888),
-    COEF_CONST(0.040639296235933736),
-    COEF_CONST(0.042171961360347947),
-    COEF_CONST(0.043704527250063421),
-    COEF_CONST(0.04523699029880459),
-    COEF_CONST(0.046769346900537863),
-    COEF_CONST(0.048301593449480144),
-    COEF_CONST(0.049833726340107277),
-    COEF_CONST(0.051365741967162593),
-    COEF_CONST(0.052897636725665324),
-    COEF_CONST(0.054429407010919133),
-    COEF_CONST(0.055961049218520569),
-    COEF_CONST(0.057492559744367566),
-    COEF_CONST(0.059023934984667931),
-    COEF_CONST(0.060555171335947788),
-    COEF_CONST(0.062086265195060088),
-    COEF_CONST(0.063617212959193106),
-    COEF_CONST(0.065148011025878833),
-    COEF_CONST(0.066678655793001557),
-    COEF_CONST(0.068209143658806329),
-    COEF_CONST(0.069739471021907307),
-    COEF_CONST(0.071269634281296401),
-    COEF_CONST(0.072799629836351673),
-    COEF_CONST(0.074329454086845756),
-    COEF_CONST(0.075859103432954447),
-    COEF_CONST(0.077388574275265049),
-    COEF_CONST(0.078917863014784942),
-    COEF_CONST(0.080446966052950014),
-    COEF_CONST(0.081975879791633066),
-    COEF_CONST(0.083504600633152432),
-    COEF_CONST(0.085033124980280275),
-    COEF_CONST(0.08656144923625117),
-    COEF_CONST(0.088089569804770507),
-    COEF_CONST(0.089617483090022959),
-    COEF_CONST(0.091145185496681005),
-    COEF_CONST(0.09267267342991331),
-    COEF_CONST(0.094199943295393204),
-    COEF_CONST(0.095726991499307162),
-    COEF_CONST(0.097253814448363271),
-    COEF_CONST(0.098780408549799623),
-    COEF_CONST(0.10030677021139286),
-    COEF_CONST(0.10183289584146653),
-    COEF_CONST(0.10335878184889961),
-    COEF_CONST(0.10488442464313497),
-    COEF_CONST(0.10640982063418768),
-    COEF_CONST(0.10793496623265365),
-    COEF_CONST(0.10945985784971798),
-    COEF_CONST(0.11098449189716339),
-    COEF_CONST(0.11250886478737869),
-    COEF_CONST(0.1140329729333672),
-    COEF_CONST(0.11555681274875526),
-    COEF_CONST(0.11708038064780059),
-    COEF_CONST(0.11860367304540072),
-    COEF_CONST(0.1201266863571015),
-    COEF_CONST(0.12164941699910553),
-    COEF_CONST(0.12317186138828048),
-    COEF_CONST(0.12469401594216764),
-    COEF_CONST(0.12621587707899035),
-    COEF_CONST(0.12773744121766231),
-    COEF_CONST(0.12925870477779614),
-    COEF_CONST(0.13077966417971171),
-    COEF_CONST(0.13230031584444465),
-    COEF_CONST(0.13382065619375472),
-    COEF_CONST(0.13534068165013421),
-    COEF_CONST(0.13686038863681638),
-    COEF_CONST(0.13837977357778389),
-    COEF_CONST(0.13989883289777721),
-    COEF_CONST(0.14141756302230302),
-    COEF_CONST(0.14293596037764267),
-    COEF_CONST(0.14445402139086047),
-    COEF_CONST(0.14597174248981221),
-    COEF_CONST(0.14748912010315357),
-    COEF_CONST(0.14900615066034845),
-    COEF_CONST(0.1505228305916774),
-    COEF_CONST(0.15203915632824605),
-    COEF_CONST(0.15355512430199345),
-    COEF_CONST(0.15507073094570051),
-    COEF_CONST(0.15658597269299843),
-    COEF_CONST(0.15810084597837698),
-    COEF_CONST(0.15961534723719306),
-    COEF_CONST(0.16112947290567881),
-    COEF_CONST(0.16264321942095031),
-    COEF_CONST(0.16415658322101581),
-    COEF_CONST(0.16566956074478412),
-    COEF_CONST(0.16718214843207294),
-    COEF_CONST(0.16869434272361733),
-    COEF_CONST(0.17020614006107807),
-    COEF_CONST(0.17171753688704997),
-    COEF_CONST(0.17322852964507032),
-    COEF_CONST(0.1747391147796272),
-    COEF_CONST(0.17624928873616788),
-    COEF_CONST(0.17775904796110717),
-    COEF_CONST(0.17926838890183575),
-    COEF_CONST(0.18077730800672859),
-    COEF_CONST(0.1822858017251533),
-    COEF_CONST(0.18379386650747845),
-    COEF_CONST(0.1853014988050819),
-    COEF_CONST(0.18680869507035927),
-    COEF_CONST(0.18831545175673212),
-    COEF_CONST(0.18982176531865641),
-    COEF_CONST(0.1913276322116309),
-    COEF_CONST(0.19283304889220523),
-    COEF_CONST(0.1943380118179886),
-    COEF_CONST(0.19584251744765785),
-    COEF_CONST(0.19734656224096592),
-    COEF_CONST(0.19885014265875009),
-    COEF_CONST(0.20035325516294045),
-    COEF_CONST(0.20185589621656805),
-    COEF_CONST(0.20335806228377332),
-    COEF_CONST(0.20485974982981442),
-    COEF_CONST(0.20636095532107551),
-    COEF_CONST(0.20786167522507507),
-    COEF_CONST(0.20936190601047416),
-    COEF_CONST(0.21086164414708486),
-    COEF_CONST(0.21236088610587842),
-    COEF_CONST(0.21385962835899375),
-    COEF_CONST(0.21535786737974555),
-    COEF_CONST(0.21685559964263262),
-    COEF_CONST(0.21835282162334632),
-    COEF_CONST(0.2198495297987787),
-    COEF_CONST(0.22134572064703081),
-    COEF_CONST(0.22284139064742112),
-    COEF_CONST(0.2243365362804936),
-    COEF_CONST(0.22583115402802617),
-    COEF_CONST(0.22732524037303886),
-    COEF_CONST(0.22881879179980222),
-    COEF_CONST(0.23031180479384544),
-    COEF_CONST(0.23180427584196478),
-    COEF_CONST(0.23329620143223159),
-    COEF_CONST(0.23478757805400097),
-    COEF_CONST(0.23627840219791957),
-    COEF_CONST(0.23776867035593419),
-    COEF_CONST(0.23925837902129998),
-    COEF_CONST(0.24074752468858843),
-    COEF_CONST(0.24223610385369601),
-    COEF_CONST(0.24372411301385216),
-    COEF_CONST(0.24521154866762754),
-    COEF_CONST(0.24669840731494241),
-    COEF_CONST(0.24818468545707478),
-    COEF_CONST(0.24967037959666857),
-    COEF_CONST(0.25115548623774192),
-    COEF_CONST(0.25264000188569552),
-    COEF_CONST(0.25412392304732062),
-    COEF_CONST(0.25560724623080738),
-    COEF_CONST(0.25708996794575312),
-    COEF_CONST(0.25857208470317034),
-    COEF_CONST(0.26005359301549519),
-    COEF_CONST(0.26153448939659552),
-    COEF_CONST(0.263014770361779),
-    COEF_CONST(0.26449443242780163),
-    COEF_CONST(0.26597347211287559),
-    COEF_CONST(0.26745188593667762),
-    COEF_CONST(0.26892967042035726),
-    COEF_CONST(0.27040682208654482),
-    COEF_CONST(0.27188333745935972),
-    COEF_CONST(0.27335921306441868),
-    COEF_CONST(0.27483444542884394),
-    COEF_CONST(0.27630903108127108),
-    COEF_CONST(0.27778296655185769),
-    COEF_CONST(0.27925624837229118),
-    COEF_CONST(0.28072887307579719),
-    COEF_CONST(0.28220083719714756),
-    COEF_CONST(0.28367213727266843),
-    COEF_CONST(0.28514276984024867),
-    COEF_CONST(0.28661273143934779),
-    COEF_CONST(0.28808201861100413),
-    COEF_CONST(0.28955062789784303),
-    COEF_CONST(0.29101855584408509),
-    COEF_CONST(0.29248579899555388),
-    COEF_CONST(0.29395235389968466),
-    COEF_CONST(0.29541821710553201),
-    COEF_CONST(0.29688338516377827),
-    COEF_CONST(0.2983478546267414),
-    COEF_CONST(0.29981162204838335),
-    COEF_CONST(0.30127468398431795),
-    COEF_CONST(0.30273703699181914),
-    COEF_CONST(0.30419867762982911),
-    COEF_CONST(0.30565960245896612),
-    COEF_CONST(0.3071198080415331),
-    COEF_CONST(0.30857929094152509),
-    COEF_CONST(0.31003804772463789),
-    COEF_CONST(0.31149607495827591),
-    COEF_CONST(0.3129533692115602),
-    COEF_CONST(0.31440992705533666),
-    COEF_CONST(0.31586574506218396),
-    COEF_CONST(0.31732081980642174),
-    COEF_CONST(0.31877514786411848),
-    COEF_CONST(0.32022872581309986),
-    COEF_CONST(0.32168155023295658),
-    COEF_CONST(0.32313361770505233),
-    COEF_CONST(0.32458492481253215),
-    COEF_CONST(0.32603546814033024),
-    COEF_CONST(0.327485244275178),
-    COEF_CONST(0.3289342498056122),
-    COEF_CONST(0.33038248132198278),
-    COEF_CONST(0.33182993541646111),
-    COEF_CONST(0.33327660868304793),
-    COEF_CONST(0.33472249771758122),
-    COEF_CONST(0.33616759911774452),
-    COEF_CONST(0.33761190948307462),
-    COEF_CONST(0.33905542541496964),
-    COEF_CONST(0.34049814351669716),
-    COEF_CONST(0.34194006039340219),
-    COEF_CONST(0.34338117265211504),
-    COEF_CONST(0.34482147690175929),
-    COEF_CONST(0.34626096975316001),
-    COEF_CONST(0.34769964781905138),
-    COEF_CONST(0.34913750771408497),
-    COEF_CONST(0.35057454605483751),
-    COEF_CONST(0.35201075945981908),
-    COEF_CONST(0.35344614454948081),
-    COEF_CONST(0.35488069794622279),
-    COEF_CONST(0.35631441627440241),
-    COEF_CONST(0.3577472961603419),
-    COEF_CONST(0.3591793342323365),
-    COEF_CONST(0.36061052712066227),
-    COEF_CONST(0.36204087145758418),
-    COEF_CONST(0.36347036387736376),
-    COEF_CONST(0.36489900101626732),
-    COEF_CONST(0.36632677951257359),
-    COEF_CONST(0.36775369600658198),
-    COEF_CONST(0.36917974714062002),
-    COEF_CONST(0.37060492955905167),
-    COEF_CONST(0.37202923990828501),
-    COEF_CONST(0.3734526748367803),
-    COEF_CONST(0.37487523099505754),
-    COEF_CONST(0.37629690503570479),
-    COEF_CONST(0.37771769361338564),
-    COEF_CONST(0.37913759338484732),
-    COEF_CONST(0.38055660100892852),
-    COEF_CONST(0.38197471314656722),
-    COEF_CONST(0.38339192646080866),
-    COEF_CONST(0.38480823761681288),
-    COEF_CONST(0.38622364328186298),
-    COEF_CONST(0.38763814012537273),
-    COEF_CONST(0.38905172481889438),
-    COEF_CONST(0.39046439403612659),
-    COEF_CONST(0.39187614445292235),
-    COEF_CONST(0.3932869727472964),
-    COEF_CONST(0.39469687559943356),
-    COEF_CONST(0.39610584969169627),
-    COEF_CONST(0.39751389170863233),
-    COEF_CONST(0.39892099833698291),
-    COEF_CONST(0.40032716626569009),
-    COEF_CONST(0.40173239218590501),
-    COEF_CONST(0.4031366727909953),
-    COEF_CONST(0.404540004776553),
-    COEF_CONST(0.40594238484040251),
-    COEF_CONST(0.40734380968260797),
-    COEF_CONST(0.40874427600548136),
-    COEF_CONST(0.41014378051359024),
-    COEF_CONST(0.41154231991376522),
-    COEF_CONST(0.41293989091510808),
-    COEF_CONST(0.4143364902289991),
-    COEF_CONST(0.41573211456910536),
-    COEF_CONST(0.41712676065138787),
-    COEF_CONST(0.4185204251941097),
-    COEF_CONST(0.41991310491784362),
-    COEF_CONST(0.42130479654547964),
-    COEF_CONST(0.42269549680223295),
-    COEF_CONST(0.42408520241565156),
-    COEF_CONST(0.4254739101156238),
-    COEF_CONST(0.42686161663438643),
-    COEF_CONST(0.42824831870653196),
-    COEF_CONST(0.42963401306901638),
-    COEF_CONST(0.43101869646116703),
-    COEF_CONST(0.43240236562469014),
-    COEF_CONST(0.43378501730367852),
-    COEF_CONST(0.43516664824461926),
-    COEF_CONST(0.4365472551964012),
-    COEF_CONST(0.43792683491032286),
-    COEF_CONST(0.43930538414009995),
-    COEF_CONST(0.4406828996418729),
-    COEF_CONST(0.4420593781742147),
-    COEF_CONST(0.44343481649813848),
-    COEF_CONST(0.44480921137710488),
-    COEF_CONST(0.44618255957703007),
-    COEF_CONST(0.44755485786629301),
-    COEF_CONST(0.44892610301574326),
-    COEF_CONST(0.45029629179870861),
-    COEF_CONST(0.45166542099100249),
-    COEF_CONST(0.45303348737093158),
-    COEF_CONST(0.45440048771930358),
-    COEF_CONST(0.45576641881943464),
-    COEF_CONST(0.45713127745715698),
-    COEF_CONST(0.45849506042082627),
-    COEF_CONST(0.45985776450132954),
-    COEF_CONST(0.46121938649209238),
-    COEF_CONST(0.46257992318908681),
-    COEF_CONST(0.46393937139083852),
-    COEF_CONST(0.4652977278984346),
-    COEF_CONST(0.46665498951553092),
-    COEF_CONST(0.46801115304835983),
-    COEF_CONST(0.46936621530573752),
-    COEF_CONST(0.4707201730990716),
-    COEF_CONST(0.47207302324236866),
-    COEF_CONST(0.47342476255224153),
-    COEF_CONST(0.47477538784791712),
-    COEF_CONST(0.47612489595124358),
-    COEF_CONST(0.47747328368669806),
-    COEF_CONST(0.47882054788139389),
-    COEF_CONST(0.48016668536508839),
-    COEF_CONST(0.48151169297018986),
-    COEF_CONST(0.48285556753176567),
-    COEF_CONST(0.48419830588754903),
-    COEF_CONST(0.48553990487794696),
-    COEF_CONST(0.48688036134604734),
-    COEF_CONST(0.48821967213762679),
-    COEF_CONST(0.48955783410115744),
-    COEF_CONST(0.49089484408781509),
-    COEF_CONST(0.49223069895148602),
-    COEF_CONST(0.49356539554877477),
-    COEF_CONST(0.49489893073901126),
-    COEF_CONST(0.49623130138425825),
-    COEF_CONST(0.49756250434931915),
-    COEF_CONST(0.49889253650174459),
-    COEF_CONST(0.50022139471184068),
-    COEF_CONST(0.50154907585267539),
-    COEF_CONST(0.50287557680008699),
-    COEF_CONST(0.50420089443269034),
-    COEF_CONST(0.50552502563188539),
-    COEF_CONST(0.50684796728186321),
-    COEF_CONST(0.5081697162696146),
-    COEF_CONST(0.50949026948493636),
-    COEF_CONST(0.51080962382043904),
-    COEF_CONST(0.51212777617155469),
-    COEF_CONST(0.51344472343654346),
-    COEF_CONST(0.5147604625165012),
-    COEF_CONST(0.51607499031536663),
-    COEF_CONST(0.51738830373992906),
-    COEF_CONST(0.51870039969983495),
-    COEF_CONST(0.52001127510759604),
-    COEF_CONST(0.52132092687859566),
-    COEF_CONST(0.52262935193109661),
-    COEF_CONST(0.5239365471862486),
-    COEF_CONST(0.52524250956809471),
-    COEF_CONST(0.52654723600357944),
-    COEF_CONST(0.52785072342255523),
-    COEF_CONST(0.52915296875779061),
-    COEF_CONST(0.53045396894497632),
-    COEF_CONST(0.53175372092273332),
-    COEF_CONST(0.53305222163261945),
-    COEF_CONST(0.53434946801913752),
-    COEF_CONST(0.53564545702974109),
-    COEF_CONST(0.53694018561484291),
-    COEF_CONST(0.5382336507278217),
-    COEF_CONST(0.53952584932502889),
-    COEF_CONST(0.54081677836579667),
-    COEF_CONST(0.54210643481244392),
-    COEF_CONST(0.5433948156302848),
-    COEF_CONST(0.54468191778763453),
-    COEF_CONST(0.54596773825581757),
-    COEF_CONST(0.54725227400917409),
-    COEF_CONST(0.54853552202506739),
-    COEF_CONST(0.54981747928389091),
-    COEF_CONST(0.55109814276907543),
-    COEF_CONST(0.55237750946709607),
-    COEF_CONST(0.55365557636747931),
-    COEF_CONST(0.55493234046281037),
-    COEF_CONST(0.55620779874873993),
-    COEF_CONST(0.55748194822399155),
-    COEF_CONST(0.55875478589036831),
-    COEF_CONST(0.56002630875276038),
-    COEF_CONST(0.56129651381915147),
-    COEF_CONST(0.56256539810062656),
-    COEF_CONST(0.56383295861137817),
-    COEF_CONST(0.56509919236871398),
-    COEF_CONST(0.56636409639306384),
-    COEF_CONST(0.56762766770798623),
-    COEF_CONST(0.56888990334017586),
-    COEF_CONST(0.5701508003194703),
-    COEF_CONST(0.57141035567885723),
-    COEF_CONST(0.57266856645448116),
-    COEF_CONST(0.57392542968565075),
-    COEF_CONST(0.57518094241484508),
-    COEF_CONST(0.57643510168772183),
-    COEF_CONST(0.5776879045531228),
-    COEF_CONST(0.57893934806308178),
-    COEF_CONST(0.58018942927283168),
-    COEF_CONST(0.58143814524081017),
-    COEF_CONST(0.58268549302866846),
-    COEF_CONST(0.58393146970127618),
-    COEF_CONST(0.58517607232673041),
-    COEF_CONST(0.5864192979763605),
-    COEF_CONST(0.58766114372473666),
-    COEF_CONST(0.58890160664967572),
-    COEF_CONST(0.59014068383224882),
-    COEF_CONST(0.59137837235678758),
-    COEF_CONST(0.59261466931089113),
-    COEF_CONST(0.59384957178543363),
-    COEF_CONST(0.59508307687456996),
-    COEF_CONST(0.59631518167574371),
-    COEF_CONST(0.59754588328969316),
-    COEF_CONST(0.59877517882045872),
-    COEF_CONST(0.60000306537538894),
-    COEF_CONST(0.6012295400651485),
-    COEF_CONST(0.60245460000372375),
-    COEF_CONST(0.60367824230843037),
-    COEF_CONST(0.60490046409991982),
-    COEF_CONST(0.60612126250218612),
-    COEF_CONST(0.60734063464257293),
-    COEF_CONST(0.60855857765177945),
-    COEF_CONST(0.60977508866386843),
-    COEF_CONST(0.61099016481627166),
-    COEF_CONST(0.61220380324979795),
-    COEF_CONST(0.61341600110863859),
-    COEF_CONST(0.61462675554037505),
-    COEF_CONST(0.61583606369598509),
-    COEF_CONST(0.61704392272984976),
-    COEF_CONST(0.61825032979976025),
-    COEF_CONST(0.61945528206692402),
-    COEF_CONST(0.62065877669597214),
-    COEF_CONST(0.62186081085496536),
-    COEF_CONST(0.62306138171540126),
-    COEF_CONST(0.62426048645222065),
-    COEF_CONST(0.62545812224381436),
-    COEF_CONST(0.62665428627202935),
-    COEF_CONST(0.62784897572217646),
-    COEF_CONST(0.629042187783036),
-    COEF_CONST(0.63023391964686437),
-    COEF_CONST(0.63142416850940186),
-    COEF_CONST(0.63261293156987741),
-    COEF_CONST(0.63380020603101728),
-    COEF_CONST(0.63498598909904946),
-    COEF_CONST(0.63617027798371217),
-    COEF_CONST(0.63735306989825913),
-    COEF_CONST(0.63853436205946679),
-    COEF_CONST(0.63971415168764045),
-    COEF_CONST(0.64089243600662138),
-    COEF_CONST(0.64206921224379254),
-    COEF_CONST(0.64324447763008585),
-    COEF_CONST(0.64441822939998838),
-    COEF_CONST(0.64559046479154869),
-    COEF_CONST(0.64676118104638392),
-    COEF_CONST(0.64793037540968534),
-    COEF_CONST(0.64909804513022595),
-    COEF_CONST(0.65026418746036585),
-    COEF_CONST(0.65142879965605982),
-    COEF_CONST(0.65259187897686244),
-    COEF_CONST(0.65375342268593606),
-    COEF_CONST(0.65491342805005603),
-    COEF_CONST(0.6560718923396176),
-    COEF_CONST(0.65722881282864254),
-    COEF_CONST(0.65838418679478505),
-    COEF_CONST(0.65953801151933866),
-    COEF_CONST(0.6606902842872423),
-    COEF_CONST(0.66184100238708687),
-    COEF_CONST(0.66299016311112147),
-    COEF_CONST(0.66413776375526001),
-    COEF_CONST(0.66528380161908718),
-    COEF_CONST(0.66642827400586524),
-    COEF_CONST(0.66757117822254031),
-    COEF_CONST(0.66871251157974798),
-    COEF_CONST(0.66985227139182102),
-    COEF_CONST(0.67099045497679422),
-    COEF_CONST(0.67212705965641173),
-    COEF_CONST(0.67326208275613297),
-    COEF_CONST(0.67439552160513905),
-    COEF_CONST(0.67552737353633852),
-    COEF_CONST(0.67665763588637495),
-    COEF_CONST(0.6777863059956315),
-    COEF_CONST(0.67891338120823841),
-    COEF_CONST(0.68003885887207893),
-    COEF_CONST(0.68116273633879543),
-    COEF_CONST(0.68228501096379557),
-    COEF_CONST(0.68340568010625868),
-    COEF_CONST(0.6845247411291423),
-    COEF_CONST(0.68564219139918747),
-    COEF_CONST(0.68675802828692589),
-    COEF_CONST(0.68787224916668555),
-    COEF_CONST(0.68898485141659704),
-    COEF_CONST(0.69009583241859995),
-    COEF_CONST(0.69120518955844845),
-    COEF_CONST(0.69231292022571822),
-    COEF_CONST(0.69341902181381176),
-    COEF_CONST(0.69452349171996552),
-    COEF_CONST(0.69562632734525487),
-    COEF_CONST(0.6967275260946012),
-    COEF_CONST(0.69782708537677729),
-    COEF_CONST(0.69892500260441415),
-    COEF_CONST(0.70002127519400625),
-    COEF_CONST(0.70111590056591866),
-    COEF_CONST(0.70220887614439187),
-    COEF_CONST(0.70330019935754873),
-    COEF_CONST(0.70438986763740041),
-    COEF_CONST(0.7054778784198521),
-    COEF_CONST(0.70656422914470951),
-    COEF_CONST(0.70764891725568435),
-    COEF_CONST(0.70873194020040065),
-    COEF_CONST(0.70981329543040084),
-    COEF_CONST(0.71089298040115168),
-    COEF_CONST(0.71197099257204999),
-    COEF_CONST(0.71304732940642923),
-    COEF_CONST(0.71412198837156471),
-    COEF_CONST(0.71519496693868001),
-    COEF_CONST(0.71626626258295312),
-    COEF_CONST(0.71733587278352173),
-    COEF_CONST(0.71840379502348972),
-    COEF_CONST(0.71947002678993299),
-    COEF_CONST(0.72053456557390527),
-    COEF_CONST(0.72159740887044366),
-    COEF_CONST(0.72265855417857561),
-    COEF_CONST(0.72371799900132339),
-    COEF_CONST(0.72477574084571128),
-    COEF_CONST(0.72583177722277037),
-    COEF_CONST(0.72688610564754497),
-    COEF_CONST(0.72793872363909862),
-    COEF_CONST(0.72898962872051931),
-    COEF_CONST(0.73003881841892615),
-    COEF_CONST(0.73108629026547423),
-    COEF_CONST(0.73213204179536129),
-    COEF_CONST(0.73317607054783274),
-    COEF_CONST(0.73421837406618817),
-    COEF_CONST(0.73525894989778673),
-    COEF_CONST(0.73629779559405306),
-    COEF_CONST(0.73733490871048279),
-    COEF_CONST(0.73837028680664851),
-    COEF_CONST(0.73940392744620576),
-    COEF_CONST(0.74043582819689802),
-    COEF_CONST(0.74146598663056329),
-    COEF_CONST(0.74249440032313918),
-    COEF_CONST(0.74352106685466912),
-    COEF_CONST(0.74454598380930725),
-    COEF_CONST(0.74556914877532543),
-    COEF_CONST(0.74659055934511731),
-    COEF_CONST(0.74761021311520515),
-    COEF_CONST(0.74862810768624533),
-    COEF_CONST(0.74964424066303348),
-    COEF_CONST(0.75065860965451059),
-    COEF_CONST(0.75167121227376843),
-    COEF_CONST(0.75268204613805523),
-    COEF_CONST(0.75369110886878121),
-    COEF_CONST(0.75469839809152439),
-    COEF_CONST(0.75570391143603588),
-    COEF_CONST(0.75670764653624567),
-    COEF_CONST(0.75770960103026808),
-    COEF_CONST(0.75870977256040739),
-    COEF_CONST(0.75970815877316344),
-    COEF_CONST(0.76070475731923692),
-    COEF_CONST(0.76169956585353527),
-    COEF_CONST(0.76269258203517787),
-    COEF_CONST(0.76368380352750187),
-    COEF_CONST(0.76467322799806714),
-    COEF_CONST(0.76566085311866239),
-    COEF_CONST(0.76664667656531038),
-    COEF_CONST(0.76763069601827327),
-    COEF_CONST(0.76861290916205827),
-    COEF_CONST(0.76959331368542294),
-    COEF_CONST(0.7705719072813807),
-    COEF_CONST(0.7715486876472063),
-    COEF_CONST(0.77252365248444133),
-    COEF_CONST(0.77349679949889905),
-    COEF_CONST(0.77446812640067086),
-    COEF_CONST(0.77543763090413043),
-    COEF_CONST(0.77640531072794039),
-    COEF_CONST(0.7773711635950562),
-    COEF_CONST(0.77833518723273309),
-    COEF_CONST(0.7792973793725303),
-    COEF_CONST(0.78025773775031659),
-    COEF_CONST(0.78121626010627609),
-    COEF_CONST(0.7821729441849129),
-    COEF_CONST(0.78312778773505731),
-    COEF_CONST(0.78408078850986995),
-    COEF_CONST(0.78503194426684808),
-    COEF_CONST(0.78598125276783015),
-    COEF_CONST(0.7869287117790017),
-    COEF_CONST(0.78787431907090011),
-    COEF_CONST(0.78881807241842017),
-    COEF_CONST(0.78975996960081907),
-    COEF_CONST(0.79070000840172161),
-    COEF_CONST(0.79163818660912577),
-    COEF_CONST(0.79257450201540758),
-    COEF_CONST(0.79350895241732666),
-    COEF_CONST(0.79444153561603059),
-    COEF_CONST(0.79537224941706119),
-    COEF_CONST(0.79630109163035911),
-    COEF_CONST(0.7972280600702687),
-    COEF_CONST(0.79815315255554375),
-    COEF_CONST(0.79907636690935235),
-    COEF_CONST(0.79999770095928191),
-    COEF_CONST(0.8009171525373443),
-    COEF_CONST(0.80183471947998131),
-    COEF_CONST(0.80275039962806916),
-    COEF_CONST(0.80366419082692409),
-    COEF_CONST(0.804576090926307),
-    COEF_CONST(0.80548609778042912),
-    COEF_CONST(0.80639420924795624),
-    COEF_CONST(0.80730042319201445),
-    COEF_CONST(0.80820473748019472),
-    COEF_CONST(0.80910714998455813),
-    COEF_CONST(0.81000765858164114),
-    COEF_CONST(0.81090626115245967),
-    COEF_CONST(0.81180295558251536),
-    COEF_CONST(0.81269773976179949),
-    COEF_CONST(0.81359061158479851),
-    COEF_CONST(0.81448156895049861),
-    COEF_CONST(0.81537060976239129),
-    COEF_CONST(0.81625773192847739),
-    COEF_CONST(0.81714293336127297),
-    COEF_CONST(0.81802621197781344),
-    COEF_CONST(0.81890756569965895),
-    COEF_CONST(0.81978699245289899),
-    COEF_CONST(0.82066449016815746),
-    COEF_CONST(0.82154005678059761),
-    COEF_CONST(0.82241369022992639),
-    COEF_CONST(0.82328538846040011),
-    COEF_CONST(0.82415514942082857),
-    COEF_CONST(0.82502297106458022),
-    COEF_CONST(0.82588885134958678),
-    COEF_CONST(0.82675278823834852),
-    COEF_CONST(0.8276147796979384),
-    COEF_CONST(0.82847482370000713),
-    COEF_CONST(0.82933291822078825),
-    COEF_CONST(0.83018906124110237),
-    COEF_CONST(0.83104325074636232),
-    COEF_CONST(0.83189548472657759),
-    COEF_CONST(0.83274576117635946),
-    COEF_CONST(0.83359407809492514),
-    COEF_CONST(0.83444043348610319),
-    COEF_CONST(0.83528482535833737),
-    COEF_CONST(0.83612725172469216),
-    COEF_CONST(0.83696771060285702),
-    COEF_CONST(0.83780620001515094),
-    COEF_CONST(0.8386427179885273),
-    COEF_CONST(0.83947726255457855),
-    COEF_CONST(0.84030983174954077),
-    COEF_CONST(0.84114042361429808),
-    COEF_CONST(0.84196903619438768),
-    COEF_CONST(0.84279566754000412),
-    COEF_CONST(0.84362031570600404),
-    COEF_CONST(0.84444297875191066),
-    COEF_CONST(0.84526365474191822),
-    COEF_CONST(0.84608234174489694),
-    COEF_CONST(0.84689903783439735),
-    COEF_CONST(0.84771374108865427),
-    COEF_CONST(0.84852644959059265),
-    COEF_CONST(0.84933716142783067),
-    COEF_CONST(0.85014587469268521),
-    COEF_CONST(0.85095258748217573),
-    COEF_CONST(0.85175729789802912),
-    COEF_CONST(0.85256000404668397),
-    COEF_CONST(0.85336070403929543),
-    COEF_CONST(0.85415939599173873),
-    COEF_CONST(0.85495607802461482),
-    COEF_CONST(0.85575074826325392),
-    COEF_CONST(0.85654340483771996),
-    COEF_CONST(0.85733404588281559),
-    COEF_CONST(0.85812266953808602),
-    COEF_CONST(0.8589092739478239),
-    COEF_CONST(0.85969385726107261),
-    COEF_CONST(0.86047641763163207),
-    COEF_CONST(0.86125695321806206),
-    COEF_CONST(0.86203546218368721),
-    COEF_CONST(0.86281194269660033),
-    COEF_CONST(0.86358639292966799),
-    COEF_CONST(0.86435881106053403),
-    COEF_CONST(0.86512919527162369),
-    COEF_CONST(0.86589754375014882),
-    COEF_CONST(0.86666385468811102),
-    COEF_CONST(0.86742812628230692),
-    COEF_CONST(0.86819035673433131),
-    COEF_CONST(0.86895054425058238),
-    COEF_CONST(0.86970868704226556),
-    COEF_CONST(0.87046478332539767),
-    COEF_CONST(0.8712188313208109),
-    COEF_CONST(0.8719708292541577),
-    COEF_CONST(0.8727207753559143),
-    COEF_CONST(0.87346866786138488),
-    COEF_CONST(0.8742145050107063),
-    COEF_CONST(0.87495828504885154),
-    COEF_CONST(0.8757000062256346),
-    COEF_CONST(0.87643966679571361),
-    COEF_CONST(0.87717726501859594),
-    COEF_CONST(0.87791279915864173),
-    COEF_CONST(0.87864626748506813),
-    COEF_CONST(0.87937766827195318),
-    COEF_CONST(0.88010699979824036),
-    COEF_CONST(0.88083426034774204),
-    COEF_CONST(0.88155944820914378),
-    COEF_CONST(0.8822825616760086),
-    COEF_CONST(0.88300359904678072),
-    COEF_CONST(0.88372255862478966),
-    COEF_CONST(0.8844394387182537),
-    COEF_CONST(0.88515423764028511),
-    COEF_CONST(0.88586695370889279),
-    COEF_CONST(0.88657758524698704),
-    COEF_CONST(0.88728613058238315),
-    COEF_CONST(0.88799258804780556),
-    COEF_CONST(0.88869695598089171),
-    COEF_CONST(0.88939923272419552),
-    COEF_CONST(0.89009941662519221),
-    COEF_CONST(0.89079750603628149),
-    COEF_CONST(0.89149349931479138),
-    COEF_CONST(0.89218739482298248),
-    COEF_CONST(0.89287919092805168),
-    COEF_CONST(0.89356888600213602),
-    COEF_CONST(0.89425647842231604),
-    COEF_CONST(0.89494196657062075),
-    COEF_CONST(0.89562534883403),
-    COEF_CONST(0.89630662360447966),
-    COEF_CONST(0.89698578927886397),
-    COEF_CONST(0.89766284425904075),
-    COEF_CONST(0.89833778695183419),
-    COEF_CONST(0.89901061576903907),
-    COEF_CONST(0.89968132912742393),
-    COEF_CONST(0.9003499254487356),
-    COEF_CONST(0.90101640315970233),
-    COEF_CONST(0.90168076069203773),
-    COEF_CONST(0.9023429964824442),
-    COEF_CONST(0.90300310897261704),
-    COEF_CONST(0.90366109660924798),
-    COEF_CONST(0.90431695784402832),
-    COEF_CONST(0.90497069113365325),
-    COEF_CONST(0.90562229493982516),
-    COEF_CONST(0.90627176772925766),
-    COEF_CONST(0.90691910797367803),
-    COEF_CONST(0.90756431414983252),
-    COEF_CONST(0.9082073847394887),
-    COEF_CONST(0.90884831822943912),
-    COEF_CONST(0.90948711311150543),
-    COEF_CONST(0.91012376788254157),
-    COEF_CONST(0.91075828104443757),
-    COEF_CONST(0.91139065110412232),
-    COEF_CONST(0.91202087657356823),
-    COEF_CONST(0.9126489559697939),
-    COEF_CONST(0.91327488781486776),
-    COEF_CONST(0.91389867063591168),
-    COEF_CONST(0.91452030296510445),
-    COEF_CONST(0.91513978333968526),
-    COEF_CONST(0.91575711030195672),
-    COEF_CONST(0.91637228239928914),
-    COEF_CONST(0.91698529818412289),
-    COEF_CONST(0.91759615621397295),
-    COEF_CONST(0.9182048550514309),
-    COEF_CONST(0.91881139326416994),
-    COEF_CONST(0.91941576942494696),
-    COEF_CONST(0.92001798211160657),
-    COEF_CONST(0.92061802990708386),
-    COEF_CONST(0.92121591139940873),
-    COEF_CONST(0.92181162518170812),
-    COEF_CONST(0.92240516985220988),
-    COEF_CONST(0.92299654401424625),
-    COEF_CONST(0.92358574627625656),
-    COEF_CONST(0.9241727752517912),
-    COEF_CONST(0.92475762955951391),
-    COEF_CONST(0.9253403078232062),
-    COEF_CONST(0.92592080867176996),
-    COEF_CONST(0.92649913073923051),
-    COEF_CONST(0.9270752726647401),
-    COEF_CONST(0.92764923309258118),
-    COEF_CONST(0.92822101067216944),
-    COEF_CONST(0.92879060405805702),
-    COEF_CONST(0.9293580119099355),
-    COEF_CONST(0.92992323289263956),
-    COEF_CONST(0.93048626567614978),
-    COEF_CONST(0.93104710893559517),
-    COEF_CONST(0.93160576135125783),
-    COEF_CONST(0.93216222160857432),
-    COEF_CONST(0.93271648839814025),
-    COEF_CONST(0.93326856041571205),
-    COEF_CONST(0.93381843636221096),
-    COEF_CONST(0.9343661149437259),
-    COEF_CONST(0.93491159487151609),
-    COEF_CONST(0.93545487486201462),
-    COEF_CONST(0.9359959536368313),
-    COEF_CONST(0.9365348299227555),
-    COEF_CONST(0.93707150245175919),
-    COEF_CONST(0.93760596996099999),
-    COEF_CONST(0.93813823119282436),
-    COEF_CONST(0.93866828489477017),
-    COEF_CONST(0.9391961298195699),
-    COEF_CONST(0.93972176472515334),
-    COEF_CONST(0.94024518837465088),
-    COEF_CONST(0.94076639953639607),
-    COEF_CONST(0.94128539698392866),
-    COEF_CONST(0.94180217949599765),
-    COEF_CONST(0.94231674585656378),
-    COEF_CONST(0.94282909485480271),
-    COEF_CONST(0.94333922528510772),
-    COEF_CONST(0.94384713594709269),
-    COEF_CONST(0.94435282564559475),
-    COEF_CONST(0.94485629319067721),
-    COEF_CONST(0.94535753739763229),
-    COEF_CONST(0.94585655708698391),
-    COEF_CONST(0.94635335108449059),
-    COEF_CONST(0.946847918221148),
-    COEF_CONST(0.94734025733319194),
-    COEF_CONST(0.94783036726210101),
-    COEF_CONST(0.94831824685459909),
-    COEF_CONST(0.94880389496265838),
-    COEF_CONST(0.94928731044350201),
-    COEF_CONST(0.94976849215960668),
-    COEF_CONST(0.95024743897870523),
-    COEF_CONST(0.95072414977378961),
-    COEF_CONST(0.95119862342311323),
-    COEF_CONST(0.95167085881019386),
-    COEF_CONST(0.95214085482381583),
-    COEF_CONST(0.95260861035803324),
-    COEF_CONST(0.9530741243121722),
-    COEF_CONST(0.95353739559083328),
-    COEF_CONST(0.95399842310389449),
-    COEF_CONST(0.95445720576651349),
-    COEF_CONST(0.95491374249913052),
-    COEF_CONST(0.95536803222747024),
-    COEF_CONST(0.95582007388254542),
-    COEF_CONST(0.95626986640065814),
-    COEF_CONST(0.95671740872340305),
-    COEF_CONST(0.9571626997976701),
-    COEF_CONST(0.95760573857564624),
-    COEF_CONST(0.9580465240148186),
-    COEF_CONST(0.9584850550779761),
-    COEF_CONST(0.95892133073321306),
-    COEF_CONST(0.95935534995393079),
-    COEF_CONST(0.9597871117188399),
-    COEF_CONST(0.96021661501196343),
-    COEF_CONST(0.96064385882263847),
-    COEF_CONST(0.96106884214551935),
-    COEF_CONST(0.961491563980579),
-    COEF_CONST(0.9619120233331121),
-    COEF_CONST(0.9623302192137374),
-    COEF_CONST(0.96274615063839941),
-    COEF_CONST(0.96315981662837136),
-    COEF_CONST(0.96357121621025721),
-    COEF_CONST(0.96398034841599411),
-    COEF_CONST(0.96438721228285429),
-    COEF_CONST(0.9647918068534479),
-    COEF_CONST(0.96519413117572472),
-    COEF_CONST(0.96559418430297683),
-    COEF_CONST(0.96599196529384057),
-    COEF_CONST(0.96638747321229879),
-    COEF_CONST(0.96678070712768327),
-    COEF_CONST(0.96717166611467664),
-    COEF_CONST(0.96756034925331436),
-    COEF_CONST(0.9679467556289878),
-    COEF_CONST(0.9683308843324453),
-    COEF_CONST(0.96871273445979478),
-    COEF_CONST(0.9690923051125061),
-    COEF_CONST(0.96946959539741295),
-    COEF_CONST(0.96984460442671483),
-    COEF_CONST(0.97021733131797916),
-    COEF_CONST(0.97058777519414363),
-    COEF_CONST(0.97095593518351797),
-    COEF_CONST(0.97132181041978616),
-    COEF_CONST(0.97168540004200854),
-    COEF_CONST(0.9720467031946235),
-    COEF_CONST(0.97240571902744977),
-    COEF_CONST(0.97276244669568857),
-    COEF_CONST(0.97311688535992513),
-    COEF_CONST(0.97346903418613095),
-    COEF_CONST(0.9738188923456661),
-    COEF_CONST(0.97416645901528032),
-    COEF_CONST(0.97451173337711572),
-    COEF_CONST(0.97485471461870843),
-    COEF_CONST(0.97519540193299037),
-    COEF_CONST(0.97553379451829136),
-    COEF_CONST(0.97586989157834103),
-    COEF_CONST(0.97620369232227056),
-    COEF_CONST(0.97653519596461447),
-    COEF_CONST(0.97686440172531264),
-    COEF_CONST(0.97719130882971228),
-    COEF_CONST(0.97751591650856928),
-    COEF_CONST(0.97783822399805043),
-    COEF_CONST(0.97815823053973505),
-    COEF_CONST(0.97847593538061683),
-    COEF_CONST(0.97879133777310567),
-    COEF_CONST(0.97910443697502925),
-    COEF_CONST(0.97941523224963478),
-    COEF_CONST(0.97972372286559117),
-    COEF_CONST(0.98002990809698998),
-    COEF_CONST(0.98033378722334796),
-    COEF_CONST(0.98063535952960812),
-    COEF_CONST(0.98093462430614164),
-    COEF_CONST(0.98123158084874973),
-    COEF_CONST(0.98152622845866466),
-    COEF_CONST(0.9818185664425525),
-    COEF_CONST(0.98210859411251361),
-    COEF_CONST(0.98239631078608469),
-    COEF_CONST(0.98268171578624086),
-    COEF_CONST(0.98296480844139644),
-    COEF_CONST(0.98324558808540707),
-    COEF_CONST(0.98352405405757126),
-    COEF_CONST(0.98380020570263149),
-    COEF_CONST(0.98407404237077645),
-    COEF_CONST(0.9843455634176419),
-    COEF_CONST(0.9846147682043126),
-    COEF_CONST(0.9848816560973237),
-    COEF_CONST(0.98514622646866223),
-    COEF_CONST(0.98540847869576842),
-    COEF_CONST(0.98566841216153755),
-    COEF_CONST(0.98592602625432113),
-    COEF_CONST(0.98618132036792827),
-    COEF_CONST(0.98643429390162707),
-    COEF_CONST(0.98668494626014669),
-    COEF_CONST(0.98693327685367771),
-    COEF_CONST(0.98717928509787434),
-    COEF_CONST(0.98742297041385541),
-    COEF_CONST(0.98766433222820571),
-    COEF_CONST(0.98790336997297779),
-    COEF_CONST(0.98814008308569257),
-    COEF_CONST(0.98837447100934128),
-    COEF_CONST(0.98860653319238645),
-    COEF_CONST(0.98883626908876354),
-    COEF_CONST(0.98906367815788154),
-    COEF_CONST(0.98928875986462517),
-    COEF_CONST(0.98951151367935519),
-    COEF_CONST(0.98973193907791057),
-    COEF_CONST(0.98995003554160899),
-    COEF_CONST(0.9901658025572484),
-    COEF_CONST(0.99037923961710816),
-    COEF_CONST(0.99059034621895015),
-    COEF_CONST(0.99079912186602037),
-    COEF_CONST(0.99100556606704937),
-    COEF_CONST(0.99120967833625406),
-    COEF_CONST(0.99141145819333854),
-    COEF_CONST(0.99161090516349537),
-    COEF_CONST(0.99180801877740643),
-    COEF_CONST(0.99200279857124452),
-    COEF_CONST(0.99219524408667392),
-    COEF_CONST(0.99238535487085167),
-    COEF_CONST(0.99257313047642881),
-    COEF_CONST(0.99275857046155114),
-    COEF_CONST(0.99294167438986047),
-    COEF_CONST(0.99312244183049558),
-    COEF_CONST(0.99330087235809328),
-    COEF_CONST(0.99347696555278919),
-    COEF_CONST(0.99365072100021912),
-    COEF_CONST(0.99382213829151966),
-    COEF_CONST(0.99399121702332938),
-    COEF_CONST(0.99415795679778973),
-    COEF_CONST(0.99432235722254581),
-    COEF_CONST(0.9944844179107476),
-    COEF_CONST(0.99464413848105071),
-    COEF_CONST(0.99480151855761711),
-    COEF_CONST(0.99495655777011638),
-    COEF_CONST(0.99510925575372611),
-    COEF_CONST(0.99525961214913339),
-    COEF_CONST(0.9954076266025349),
-    COEF_CONST(0.99555329876563847),
-    COEF_CONST(0.99569662829566352),
-    COEF_CONST(0.99583761485534161),
-    COEF_CONST(0.99597625811291779),
-    COEF_CONST(0.99611255774215113),
-    COEF_CONST(0.99624651342231552),
-    COEF_CONST(0.99637812483820021),
-    COEF_CONST(0.99650739168011082),
-    COEF_CONST(0.9966343136438699),
-    COEF_CONST(0.996758890430818),
-    COEF_CONST(0.99688112174781385),
-    COEF_CONST(0.99700100730723529),
-    COEF_CONST(0.99711854682697998),
-    COEF_CONST(0.99723374003046616),
-    COEF_CONST(0.99734658664663323),
-    COEF_CONST(0.99745708640994191),
-    COEF_CONST(0.99756523906037575),
-    COEF_CONST(0.997671044343441),
-    COEF_CONST(0.99777450201016782),
-    COEF_CONST(0.99787561181711015),
-    COEF_CONST(0.99797437352634699),
-    COEF_CONST(0.99807078690548234),
-    COEF_CONST(0.99816485172764624),
-    COEF_CONST(0.99825656777149518),
-    COEF_CONST(0.99834593482121237),
-    COEF_CONST(0.99843295266650844),
-    COEF_CONST(0.99851762110262221),
-    COEF_CONST(0.99859993993032037),
-    COEF_CONST(0.99867990895589909),
-    COEF_CONST(0.99875752799118334),
-    COEF_CONST(0.99883279685352799),
-    COEF_CONST(0.99890571536581829),
-    COEF_CONST(0.99897628335646982),
-    COEF_CONST(0.99904450065942929),
-    COEF_CONST(0.99911036711417489),
-    COEF_CONST(0.99917388256571638),
-    COEF_CONST(0.99923504686459585),
-    COEF_CONST(0.99929385986688779),
-    COEF_CONST(0.99935032143419944),
-    COEF_CONST(0.9994044314336713),
-    COEF_CONST(0.99945618973797734),
-    COEF_CONST(0.99950559622532531),
-    COEF_CONST(0.99955265077945699),
-    COEF_CONST(0.99959735328964838),
-    COEF_CONST(0.9996397036507102),
-    COEF_CONST(0.99967970176298793),
-    COEF_CONST(0.99971734753236219),
-    COEF_CONST(0.99975264087024884),
-    COEF_CONST(0.99978558169359921),
-    COEF_CONST(0.99981616992490041),
-    COEF_CONST(0.99984440549217524),
-    COEF_CONST(0.99987028832898295),
-    COEF_CONST(0.99989381837441849),
-    COEF_CONST(0.99991499557311347),
-    COEF_CONST(0.999933819875236),
-    COEF_CONST(0.99995029123649048),
-    COEF_CONST(0.99996440961811828),
-    COEF_CONST(0.99997617498689761),
-    COEF_CONST(0.9999855873151432),
-    COEF_CONST(0.99999264658070719),
-    COEF_CONST(0.99999735276697821),
-    COEF_CONST(0.99999970586288223)
+    FRAC_CONST(0.00076699031874270449),
+    FRAC_CONST(0.002300969151425805),
+    FRAC_CONST(0.0038349425697062275),
+    FRAC_CONST(0.0053689069639963425),
+    FRAC_CONST(0.0069028587247297558),
+    FRAC_CONST(0.0084367942423697988),
+    FRAC_CONST(0.0099707099074180308),
+    FRAC_CONST(0.011504602110422714),
+    FRAC_CONST(0.013038467241987334),
+    FRAC_CONST(0.014572301692779064),
+    FRAC_CONST(0.016106101853537287),
+    FRAC_CONST(0.017639864115082053),
+    FRAC_CONST(0.019173584868322623),
+    FRAC_CONST(0.020707260504265895),
+    FRAC_CONST(0.022240887414024961),
+    FRAC_CONST(0.023774461988827555),
+    FRAC_CONST(0.025307980620024571),
+    FRAC_CONST(0.026841439699098531),
+    FRAC_CONST(0.028374835617672099),
+    FRAC_CONST(0.029908164767516555),
+    FRAC_CONST(0.031441423540560301),
+    FRAC_CONST(0.032974608328897335),
+    FRAC_CONST(0.03450771552479575),
+    FRAC_CONST(0.036040741520706229),
+    FRAC_CONST(0.037573682709270494),
+    FRAC_CONST(0.039106535483329888),
+    FRAC_CONST(0.040639296235933736),
+    FRAC_CONST(0.042171961360347947),
+    FRAC_CONST(0.043704527250063421),
+    FRAC_CONST(0.04523699029880459),
+    FRAC_CONST(0.046769346900537863),
+    FRAC_CONST(0.048301593449480144),
+    FRAC_CONST(0.049833726340107277),
+    FRAC_CONST(0.051365741967162593),
+    FRAC_CONST(0.052897636725665324),
+    FRAC_CONST(0.054429407010919133),
+    FRAC_CONST(0.055961049218520569),
+    FRAC_CONST(0.057492559744367566),
+    FRAC_CONST(0.059023934984667931),
+    FRAC_CONST(0.060555171335947788),
+    FRAC_CONST(0.062086265195060088),
+    FRAC_CONST(0.063617212959193106),
+    FRAC_CONST(0.065148011025878833),
+    FRAC_CONST(0.066678655793001557),
+    FRAC_CONST(0.068209143658806329),
+    FRAC_CONST(0.069739471021907307),
+    FRAC_CONST(0.071269634281296401),
+    FRAC_CONST(0.072799629836351673),
+    FRAC_CONST(0.074329454086845756),
+    FRAC_CONST(0.075859103432954447),
+    FRAC_CONST(0.077388574275265049),
+    FRAC_CONST(0.078917863014784942),
+    FRAC_CONST(0.080446966052950014),
+    FRAC_CONST(0.081975879791633066),
+    FRAC_CONST(0.083504600633152432),
+    FRAC_CONST(0.085033124980280275),
+    FRAC_CONST(0.08656144923625117),
+    FRAC_CONST(0.088089569804770507),
+    FRAC_CONST(0.089617483090022959),
+    FRAC_CONST(0.091145185496681005),
+    FRAC_CONST(0.09267267342991331),
+    FRAC_CONST(0.094199943295393204),
+    FRAC_CONST(0.095726991499307162),
+    FRAC_CONST(0.097253814448363271),
+    FRAC_CONST(0.098780408549799623),
+    FRAC_CONST(0.10030677021139286),
+    FRAC_CONST(0.10183289584146653),
+    FRAC_CONST(0.10335878184889961),
+    FRAC_CONST(0.10488442464313497),
+    FRAC_CONST(0.10640982063418768),
+    FRAC_CONST(0.10793496623265365),
+    FRAC_CONST(0.10945985784971798),
+    FRAC_CONST(0.11098449189716339),
+    FRAC_CONST(0.11250886478737869),
+    FRAC_CONST(0.1140329729333672),
+    FRAC_CONST(0.11555681274875526),
+    FRAC_CONST(0.11708038064780059),
+    FRAC_CONST(0.11860367304540072),
+    FRAC_CONST(0.1201266863571015),
+    FRAC_CONST(0.12164941699910553),
+    FRAC_CONST(0.12317186138828048),
+    FRAC_CONST(0.12469401594216764),
+    FRAC_CONST(0.12621587707899035),
+    FRAC_CONST(0.12773744121766231),
+    FRAC_CONST(0.12925870477779614),
+    FRAC_CONST(0.13077966417971171),
+    FRAC_CONST(0.13230031584444465),
+    FRAC_CONST(0.13382065619375472),
+    FRAC_CONST(0.13534068165013421),
+    FRAC_CONST(0.13686038863681638),
+    FRAC_CONST(0.13837977357778389),
+    FRAC_CONST(0.13989883289777721),
+    FRAC_CONST(0.14141756302230302),
+    FRAC_CONST(0.14293596037764267),
+    FRAC_CONST(0.14445402139086047),
+    FRAC_CONST(0.14597174248981221),
+    FRAC_CONST(0.14748912010315357),
+    FRAC_CONST(0.14900615066034845),
+    FRAC_CONST(0.1505228305916774),
+    FRAC_CONST(0.15203915632824605),
+    FRAC_CONST(0.15355512430199345),
+    FRAC_CONST(0.15507073094570051),
+    FRAC_CONST(0.15658597269299843),
+    FRAC_CONST(0.15810084597837698),
+    FRAC_CONST(0.15961534723719306),
+    FRAC_CONST(0.16112947290567881),
+    FRAC_CONST(0.16264321942095031),
+    FRAC_CONST(0.16415658322101581),
+    FRAC_CONST(0.16566956074478412),
+    FRAC_CONST(0.16718214843207294),
+    FRAC_CONST(0.16869434272361733),
+    FRAC_CONST(0.17020614006107807),
+    FRAC_CONST(0.17171753688704997),
+    FRAC_CONST(0.17322852964507032),
+    FRAC_CONST(0.1747391147796272),
+    FRAC_CONST(0.17624928873616788),
+    FRAC_CONST(0.17775904796110717),
+    FRAC_CONST(0.17926838890183575),
+    FRAC_CONST(0.18077730800672859),
+    FRAC_CONST(0.1822858017251533),
+    FRAC_CONST(0.18379386650747845),
+    FRAC_CONST(0.1853014988050819),
+    FRAC_CONST(0.18680869507035927),
+    FRAC_CONST(0.18831545175673212),
+    FRAC_CONST(0.18982176531865641),
+    FRAC_CONST(0.1913276322116309),
+    FRAC_CONST(0.19283304889220523),
+    FRAC_CONST(0.1943380118179886),
+    FRAC_CONST(0.19584251744765785),
+    FRAC_CONST(0.19734656224096592),
+    FRAC_CONST(0.19885014265875009),
+    FRAC_CONST(0.20035325516294045),
+    FRAC_CONST(0.20185589621656805),
+    FRAC_CONST(0.20335806228377332),
+    FRAC_CONST(0.20485974982981442),
+    FRAC_CONST(0.20636095532107551),
+    FRAC_CONST(0.20786167522507507),
+    FRAC_CONST(0.20936190601047416),
+    FRAC_CONST(0.21086164414708486),
+    FRAC_CONST(0.21236088610587842),
+    FRAC_CONST(0.21385962835899375),
+    FRAC_CONST(0.21535786737974555),
+    FRAC_CONST(0.21685559964263262),
+    FRAC_CONST(0.21835282162334632),
+    FRAC_CONST(0.2198495297987787),
+    FRAC_CONST(0.22134572064703081),
+    FRAC_CONST(0.22284139064742112),
+    FRAC_CONST(0.2243365362804936),
+    FRAC_CONST(0.22583115402802617),
+    FRAC_CONST(0.22732524037303886),
+    FRAC_CONST(0.22881879179980222),
+    FRAC_CONST(0.23031180479384544),
+    FRAC_CONST(0.23180427584196478),
+    FRAC_CONST(0.23329620143223159),
+    FRAC_CONST(0.23478757805400097),
+    FRAC_CONST(0.23627840219791957),
+    FRAC_CONST(0.23776867035593419),
+    FRAC_CONST(0.23925837902129998),
+    FRAC_CONST(0.24074752468858843),
+    FRAC_CONST(0.24223610385369601),
+    FRAC_CONST(0.24372411301385216),
+    FRAC_CONST(0.24521154866762754),
+    FRAC_CONST(0.24669840731494241),
+    FRAC_CONST(0.24818468545707478),
+    FRAC_CONST(0.24967037959666857),
+    FRAC_CONST(0.25115548623774192),
+    FRAC_CONST(0.25264000188569552),
+    FRAC_CONST(0.25412392304732062),
+    FRAC_CONST(0.25560724623080738),
+    FRAC_CONST(0.25708996794575312),
+    FRAC_CONST(0.25857208470317034),
+    FRAC_CONST(0.26005359301549519),
+    FRAC_CONST(0.26153448939659552),
+    FRAC_CONST(0.263014770361779),
+    FRAC_CONST(0.26449443242780163),
+    FRAC_CONST(0.26597347211287559),
+    FRAC_CONST(0.26745188593667762),
+    FRAC_CONST(0.26892967042035726),
+    FRAC_CONST(0.27040682208654482),
+    FRAC_CONST(0.27188333745935972),
+    FRAC_CONST(0.27335921306441868),
+    FRAC_CONST(0.27483444542884394),
+    FRAC_CONST(0.27630903108127108),
+    FRAC_CONST(0.27778296655185769),
+    FRAC_CONST(0.27925624837229118),
+    FRAC_CONST(0.28072887307579719),
+    FRAC_CONST(0.28220083719714756),
+    FRAC_CONST(0.28367213727266843),
+    FRAC_CONST(0.28514276984024867),
+    FRAC_CONST(0.28661273143934779),
+    FRAC_CONST(0.28808201861100413),
+    FRAC_CONST(0.28955062789784303),
+    FRAC_CONST(0.29101855584408509),
+    FRAC_CONST(0.29248579899555388),
+    FRAC_CONST(0.29395235389968466),
+    FRAC_CONST(0.29541821710553201),
+    FRAC_CONST(0.29688338516377827),
+    FRAC_CONST(0.2983478546267414),
+    FRAC_CONST(0.29981162204838335),
+    FRAC_CONST(0.30127468398431795),
+    FRAC_CONST(0.30273703699181914),
+    FRAC_CONST(0.30419867762982911),
+    FRAC_CONST(0.30565960245896612),
+    FRAC_CONST(0.3071198080415331),
+    FRAC_CONST(0.30857929094152509),
+    FRAC_CONST(0.31003804772463789),
+    FRAC_CONST(0.31149607495827591),
+    FRAC_CONST(0.3129533692115602),
+    FRAC_CONST(0.31440992705533666),
+    FRAC_CONST(0.31586574506218396),
+    FRAC_CONST(0.31732081980642174),
+    FRAC_CONST(0.31877514786411848),
+    FRAC_CONST(0.32022872581309986),
+    FRAC_CONST(0.32168155023295658),
+    FRAC_CONST(0.32313361770505233),
+    FRAC_CONST(0.32458492481253215),
+    FRAC_CONST(0.32603546814033024),
+    FRAC_CONST(0.327485244275178),
+    FRAC_CONST(0.3289342498056122),
+    FRAC_CONST(0.33038248132198278),
+    FRAC_CONST(0.33182993541646111),
+    FRAC_CONST(0.33327660868304793),
+    FRAC_CONST(0.33472249771758122),
+    FRAC_CONST(0.33616759911774452),
+    FRAC_CONST(0.33761190948307462),
+    FRAC_CONST(0.33905542541496964),
+    FRAC_CONST(0.34049814351669716),
+    FRAC_CONST(0.34194006039340219),
+    FRAC_CONST(0.34338117265211504),
+    FRAC_CONST(0.34482147690175929),
+    FRAC_CONST(0.34626096975316001),
+    FRAC_CONST(0.34769964781905138),
+    FRAC_CONST(0.34913750771408497),
+    FRAC_CONST(0.35057454605483751),
+    FRAC_CONST(0.35201075945981908),
+    FRAC_CONST(0.35344614454948081),
+    FRAC_CONST(0.35488069794622279),
+    FRAC_CONST(0.35631441627440241),
+    FRAC_CONST(0.3577472961603419),
+    FRAC_CONST(0.3591793342323365),
+    FRAC_CONST(0.36061052712066227),
+    FRAC_CONST(0.36204087145758418),
+    FRAC_CONST(0.36347036387736376),
+    FRAC_CONST(0.36489900101626732),
+    FRAC_CONST(0.36632677951257359),
+    FRAC_CONST(0.36775369600658198),
+    FRAC_CONST(0.36917974714062002),
+    FRAC_CONST(0.37060492955905167),
+    FRAC_CONST(0.37202923990828501),
+    FRAC_CONST(0.3734526748367803),
+    FRAC_CONST(0.37487523099505754),
+    FRAC_CONST(0.37629690503570479),
+    FRAC_CONST(0.37771769361338564),
+    FRAC_CONST(0.37913759338484732),
+    FRAC_CONST(0.38055660100892852),
+    FRAC_CONST(0.38197471314656722),
+    FRAC_CONST(0.38339192646080866),
+    FRAC_CONST(0.38480823761681288),
+    FRAC_CONST(0.38622364328186298),
+    FRAC_CONST(0.38763814012537273),
+    FRAC_CONST(0.38905172481889438),
+    FRAC_CONST(0.39046439403612659),
+    FRAC_CONST(0.39187614445292235),
+    FRAC_CONST(0.3932869727472964),
+    FRAC_CONST(0.39469687559943356),
+    FRAC_CONST(0.39610584969169627),
+    FRAC_CONST(0.39751389170863233),
+    FRAC_CONST(0.39892099833698291),
+    FRAC_CONST(0.40032716626569009),
+    FRAC_CONST(0.40173239218590501),
+    FRAC_CONST(0.4031366727909953),
+    FRAC_CONST(0.404540004776553),
+    FRAC_CONST(0.40594238484040251),
+    FRAC_CONST(0.40734380968260797),
+    FRAC_CONST(0.40874427600548136),
+    FRAC_CONST(0.41014378051359024),
+    FRAC_CONST(0.41154231991376522),
+    FRAC_CONST(0.41293989091510808),
+    FRAC_CONST(0.4143364902289991),
+    FRAC_CONST(0.41573211456910536),
+    FRAC_CONST(0.41712676065138787),
+    FRAC_CONST(0.4185204251941097),
+    FRAC_CONST(0.41991310491784362),
+    FRAC_CONST(0.42130479654547964),
+    FRAC_CONST(0.42269549680223295),
+    FRAC_CONST(0.42408520241565156),
+    FRAC_CONST(0.4254739101156238),
+    FRAC_CONST(0.42686161663438643),
+    FRAC_CONST(0.42824831870653196),
+    FRAC_CONST(0.42963401306901638),
+    FRAC_CONST(0.43101869646116703),
+    FRAC_CONST(0.43240236562469014),
+    FRAC_CONST(0.43378501730367852),
+    FRAC_CONST(0.43516664824461926),
+    FRAC_CONST(0.4365472551964012),
+    FRAC_CONST(0.43792683491032286),
+    FRAC_CONST(0.43930538414009995),
+    FRAC_CONST(0.4406828996418729),
+    FRAC_CONST(0.4420593781742147),
+    FRAC_CONST(0.44343481649813848),
+    FRAC_CONST(0.44480921137710488),
+    FRAC_CONST(0.44618255957703007),
+    FRAC_CONST(0.44755485786629301),
+    FRAC_CONST(0.44892610301574326),
+    FRAC_CONST(0.45029629179870861),
+    FRAC_CONST(0.45166542099100249),
+    FRAC_CONST(0.45303348737093158),
+    FRAC_CONST(0.45440048771930358),
+    FRAC_CONST(0.45576641881943464),
+    FRAC_CONST(0.45713127745715698),
+    FRAC_CONST(0.45849506042082627),
+    FRAC_CONST(0.45985776450132954),
+    FRAC_CONST(0.46121938649209238),
+    FRAC_CONST(0.46257992318908681),
+    FRAC_CONST(0.46393937139083852),
+    FRAC_CONST(0.4652977278984346),
+    FRAC_CONST(0.46665498951553092),
+    FRAC_CONST(0.46801115304835983),
+    FRAC_CONST(0.46936621530573752),
+    FRAC_CONST(0.4707201730990716),
+    FRAC_CONST(0.47207302324236866),
+    FRAC_CONST(0.47342476255224153),
+    FRAC_CONST(0.47477538784791712),
+    FRAC_CONST(0.47612489595124358),
+    FRAC_CONST(0.47747328368669806),
+    FRAC_CONST(0.47882054788139389),
+    FRAC_CONST(0.48016668536508839),
+    FRAC_CONST(0.48151169297018986),
+    FRAC_CONST(0.48285556753176567),
+    FRAC_CONST(0.48419830588754903),
+    FRAC_CONST(0.48553990487794696),
+    FRAC_CONST(0.48688036134604734),
+    FRAC_CONST(0.48821967213762679),
+    FRAC_CONST(0.48955783410115744),
+    FRAC_CONST(0.49089484408781509),
+    FRAC_CONST(0.49223069895148602),
+    FRAC_CONST(0.49356539554877477),
+    FRAC_CONST(0.49489893073901126),
+    FRAC_CONST(0.49623130138425825),
+    FRAC_CONST(0.49756250434931915),
+    FRAC_CONST(0.49889253650174459),
+    FRAC_CONST(0.50022139471184068),
+    FRAC_CONST(0.50154907585267539),
+    FRAC_CONST(0.50287557680008699),
+    FRAC_CONST(0.50420089443269034),
+    FRAC_CONST(0.50552502563188539),
+    FRAC_CONST(0.50684796728186321),
+    FRAC_CONST(0.5081697162696146),
+    FRAC_CONST(0.50949026948493636),
+    FRAC_CONST(0.51080962382043904),
+    FRAC_CONST(0.51212777617155469),
+    FRAC_CONST(0.51344472343654346),
+    FRAC_CONST(0.5147604625165012),
+    FRAC_CONST(0.51607499031536663),
+    FRAC_CONST(0.51738830373992906),
+    FRAC_CONST(0.51870039969983495),
+    FRAC_CONST(0.52001127510759604),
+    FRAC_CONST(0.52132092687859566),
+    FRAC_CONST(0.52262935193109661),
+    FRAC_CONST(0.5239365471862486),
+    FRAC_CONST(0.52524250956809471),
+    FRAC_CONST(0.52654723600357944),
+    FRAC_CONST(0.52785072342255523),
+    FRAC_CONST(0.52915296875779061),
+    FRAC_CONST(0.53045396894497632),
+    FRAC_CONST(0.53175372092273332),
+    FRAC_CONST(0.53305222163261945),
+    FRAC_CONST(0.53434946801913752),
+    FRAC_CONST(0.53564545702974109),
+    FRAC_CONST(0.53694018561484291),
+    FRAC_CONST(0.5382336507278217),
+    FRAC_CONST(0.53952584932502889),
+    FRAC_CONST(0.54081677836579667),
+    FRAC_CONST(0.54210643481244392),
+    FRAC_CONST(0.5433948156302848),
+    FRAC_CONST(0.54468191778763453),
+    FRAC_CONST(0.54596773825581757),
+    FRAC_CONST(0.54725227400917409),
+    FRAC_CONST(0.54853552202506739),
+    FRAC_CONST(0.54981747928389091),
+    FRAC_CONST(0.55109814276907543),
+    FRAC_CONST(0.55237750946709607),
+    FRAC_CONST(0.55365557636747931),
+    FRAC_CONST(0.55493234046281037),
+    FRAC_CONST(0.55620779874873993),
+    FRAC_CONST(0.55748194822399155),
+    FRAC_CONST(0.55875478589036831),
+    FRAC_CONST(0.56002630875276038),
+    FRAC_CONST(0.56129651381915147),
+    FRAC_CONST(0.56256539810062656),
+    FRAC_CONST(0.56383295861137817),
+    FRAC_CONST(0.56509919236871398),
+    FRAC_CONST(0.56636409639306384),
+    FRAC_CONST(0.56762766770798623),
+    FRAC_CONST(0.56888990334017586),
+    FRAC_CONST(0.5701508003194703),
+    FRAC_CONST(0.57141035567885723),
+    FRAC_CONST(0.57266856645448116),
+    FRAC_CONST(0.57392542968565075),
+    FRAC_CONST(0.57518094241484508),
+    FRAC_CONST(0.57643510168772183),
+    FRAC_CONST(0.5776879045531228),
+    FRAC_CONST(0.57893934806308178),
+    FRAC_CONST(0.58018942927283168),
+    FRAC_CONST(0.58143814524081017),
+    FRAC_CONST(0.58268549302866846),
+    FRAC_CONST(0.58393146970127618),
+    FRAC_CONST(0.58517607232673041),
+    FRAC_CONST(0.5864192979763605),
+    FRAC_CONST(0.58766114372473666),
+    FRAC_CONST(0.58890160664967572),
+    FRAC_CONST(0.59014068383224882),
+    FRAC_CONST(0.59137837235678758),
+    FRAC_CONST(0.59261466931089113),
+    FRAC_CONST(0.59384957178543363),
+    FRAC_CONST(0.59508307687456996),
+    FRAC_CONST(0.59631518167574371),
+    FRAC_CONST(0.59754588328969316),
+    FRAC_CONST(0.59877517882045872),
+    FRAC_CONST(0.60000306537538894),
+    FRAC_CONST(0.6012295400651485),
+    FRAC_CONST(0.60245460000372375),
+    FRAC_CONST(0.60367824230843037),
+    FRAC_CONST(0.60490046409991982),
+    FRAC_CONST(0.60612126250218612),
+    FRAC_CONST(0.60734063464257293),
+    FRAC_CONST(0.60855857765177945),
+    FRAC_CONST(0.60977508866386843),
+    FRAC_CONST(0.61099016481627166),
+    FRAC_CONST(0.61220380324979795),
+    FRAC_CONST(0.61341600110863859),
+    FRAC_CONST(0.61462675554037505),
+    FRAC_CONST(0.61583606369598509),
+    FRAC_CONST(0.61704392272984976),
+    FRAC_CONST(0.61825032979976025),
+    FRAC_CONST(0.61945528206692402),
+    FRAC_CONST(0.62065877669597214),
+    FRAC_CONST(0.62186081085496536),
+    FRAC_CONST(0.62306138171540126),
+    FRAC_CONST(0.62426048645222065),
+    FRAC_CONST(0.62545812224381436),
+    FRAC_CONST(0.62665428627202935),
+    FRAC_CONST(0.62784897572217646),
+    FRAC_CONST(0.629042187783036),
+    FRAC_CONST(0.63023391964686437),
+    FRAC_CONST(0.63142416850940186),
+    FRAC_CONST(0.63261293156987741),
+    FRAC_CONST(0.63380020603101728),
+    FRAC_CONST(0.63498598909904946),
+    FRAC_CONST(0.63617027798371217),
+    FRAC_CONST(0.63735306989825913),
+    FRAC_CONST(0.63853436205946679),
+    FRAC_CONST(0.63971415168764045),
+    FRAC_CONST(0.64089243600662138),
+    FRAC_CONST(0.64206921224379254),
+    FRAC_CONST(0.64324447763008585),
+    FRAC_CONST(0.64441822939998838),
+    FRAC_CONST(0.64559046479154869),
+    FRAC_CONST(0.64676118104638392),
+    FRAC_CONST(0.64793037540968534),
+    FRAC_CONST(0.64909804513022595),
+    FRAC_CONST(0.65026418746036585),
+    FRAC_CONST(0.65142879965605982),
+    FRAC_CONST(0.65259187897686244),
+    FRAC_CONST(0.65375342268593606),
+    FRAC_CONST(0.65491342805005603),
+    FRAC_CONST(0.6560718923396176),
+    FRAC_CONST(0.65722881282864254),
+    FRAC_CONST(0.65838418679478505),
+    FRAC_CONST(0.65953801151933866),
+    FRAC_CONST(0.6606902842872423),
+    FRAC_CONST(0.66184100238708687),
+    FRAC_CONST(0.66299016311112147),
+    FRAC_CONST(0.66413776375526001),
+    FRAC_CONST(0.66528380161908718),
+    FRAC_CONST(0.66642827400586524),
+    FRAC_CONST(0.66757117822254031),
+    FRAC_CONST(0.66871251157974798),
+    FRAC_CONST(0.66985227139182102),
+    FRAC_CONST(0.67099045497679422),
+    FRAC_CONST(0.67212705965641173),
+    FRAC_CONST(0.67326208275613297),
+    FRAC_CONST(0.67439552160513905),
+    FRAC_CONST(0.67552737353633852),
+    FRAC_CONST(0.67665763588637495),
+    FRAC_CONST(0.6777863059956315),
+    FRAC_CONST(0.67891338120823841),
+    FRAC_CONST(0.68003885887207893),
+    FRAC_CONST(0.68116273633879543),
+    FRAC_CONST(0.68228501096379557),
+    FRAC_CONST(0.68340568010625868),
+    FRAC_CONST(0.6845247411291423),
+    FRAC_CONST(0.68564219139918747),
+    FRAC_CONST(0.68675802828692589),
+    FRAC_CONST(0.68787224916668555),
+    FRAC_CONST(0.68898485141659704),
+    FRAC_CONST(0.69009583241859995),
+    FRAC_CONST(0.69120518955844845),
+    FRAC_CONST(0.69231292022571822),
+    FRAC_CONST(0.69341902181381176),
+    FRAC_CONST(0.69452349171996552),
+    FRAC_CONST(0.69562632734525487),
+    FRAC_CONST(0.6967275260946012),
+    FRAC_CONST(0.69782708537677729),
+    FRAC_CONST(0.69892500260441415),
+    FRAC_CONST(0.70002127519400625),
+    FRAC_CONST(0.70111590056591866),
+    FRAC_CONST(0.70220887614439187),
+    FRAC_CONST(0.70330019935754873),
+    FRAC_CONST(0.70438986763740041),
+    FRAC_CONST(0.7054778784198521),
+    FRAC_CONST(0.70656422914470951),
+    FRAC_CONST(0.70764891725568435),
+    FRAC_CONST(0.70873194020040065),
+    FRAC_CONST(0.70981329543040084),
+    FRAC_CONST(0.71089298040115168),
+    FRAC_CONST(0.71197099257204999),
+    FRAC_CONST(0.71304732940642923),
+    FRAC_CONST(0.71412198837156471),
+    FRAC_CONST(0.71519496693868001),
+    FRAC_CONST(0.71626626258295312),
+    FRAC_CONST(0.71733587278352173),
+    FRAC_CONST(0.71840379502348972),
+    FRAC_CONST(0.71947002678993299),
+    FRAC_CONST(0.72053456557390527),
+    FRAC_CONST(0.72159740887044366),
+    FRAC_CONST(0.72265855417857561),
+    FRAC_CONST(0.72371799900132339),
+    FRAC_CONST(0.72477574084571128),
+    FRAC_CONST(0.72583177722277037),
+    FRAC_CONST(0.72688610564754497),
+    FRAC_CONST(0.72793872363909862),
+    FRAC_CONST(0.72898962872051931),
+    FRAC_CONST(0.73003881841892615),
+    FRAC_CONST(0.73108629026547423),
+    FRAC_CONST(0.73213204179536129),
+    FRAC_CONST(0.73317607054783274),
+    FRAC_CONST(0.73421837406618817),
+    FRAC_CONST(0.73525894989778673),
+    FRAC_CONST(0.73629779559405306),
+    FRAC_CONST(0.73733490871048279),
+    FRAC_CONST(0.73837028680664851),
+    FRAC_CONST(0.73940392744620576),
+    FRAC_CONST(0.74043582819689802),
+    FRAC_CONST(0.74146598663056329),
+    FRAC_CONST(0.74249440032313918),
+    FRAC_CONST(0.74352106685466912),
+    FRAC_CONST(0.74454598380930725),
+    FRAC_CONST(0.74556914877532543),
+    FRAC_CONST(0.74659055934511731),
+    FRAC_CONST(0.74761021311520515),
+    FRAC_CONST(0.74862810768624533),
+    FRAC_CONST(0.74964424066303348),
+    FRAC_CONST(0.75065860965451059),
+    FRAC_CONST(0.75167121227376843),
+    FRAC_CONST(0.75268204613805523),
+    FRAC_CONST(0.75369110886878121),
+    FRAC_CONST(0.75469839809152439),
+    FRAC_CONST(0.75570391143603588),
+    FRAC_CONST(0.75670764653624567),
+    FRAC_CONST(0.75770960103026808),
+    FRAC_CONST(0.75870977256040739),
+    FRAC_CONST(0.75970815877316344),
+    FRAC_CONST(0.76070475731923692),
+    FRAC_CONST(0.76169956585353527),
+    FRAC_CONST(0.76269258203517787),
+    FRAC_CONST(0.76368380352750187),
+    FRAC_CONST(0.76467322799806714),
+    FRAC_CONST(0.76566085311866239),
+    FRAC_CONST(0.76664667656531038),
+    FRAC_CONST(0.76763069601827327),
+    FRAC_CONST(0.76861290916205827),
+    FRAC_CONST(0.76959331368542294),
+    FRAC_CONST(0.7705719072813807),
+    FRAC_CONST(0.7715486876472063),
+    FRAC_CONST(0.77252365248444133),
+    FRAC_CONST(0.77349679949889905),
+    FRAC_CONST(0.77446812640067086),
+    FRAC_CONST(0.77543763090413043),
+    FRAC_CONST(0.77640531072794039),
+    FRAC_CONST(0.7773711635950562),
+    FRAC_CONST(0.77833518723273309),
+    FRAC_CONST(0.7792973793725303),
+    FRAC_CONST(0.78025773775031659),
+    FRAC_CONST(0.78121626010627609),
+    FRAC_CONST(0.7821729441849129),
+    FRAC_CONST(0.78312778773505731),
+    FRAC_CONST(0.78408078850986995),
+    FRAC_CONST(0.78503194426684808),
+    FRAC_CONST(0.78598125276783015),
+    FRAC_CONST(0.7869287117790017),
+    FRAC_CONST(0.78787431907090011),
+    FRAC_CONST(0.78881807241842017),
+    FRAC_CONST(0.78975996960081907),
+    FRAC_CONST(0.79070000840172161),
+    FRAC_CONST(0.79163818660912577),
+    FRAC_CONST(0.79257450201540758),
+    FRAC_CONST(0.79350895241732666),
+    FRAC_CONST(0.79444153561603059),
+    FRAC_CONST(0.79537224941706119),
+    FRAC_CONST(0.79630109163035911),
+    FRAC_CONST(0.7972280600702687),
+    FRAC_CONST(0.79815315255554375),
+    FRAC_CONST(0.79907636690935235),
+    FRAC_CONST(0.79999770095928191),
+    FRAC_CONST(0.8009171525373443),
+    FRAC_CONST(0.80183471947998131),
+    FRAC_CONST(0.80275039962806916),
+    FRAC_CONST(0.80366419082692409),
+    FRAC_CONST(0.804576090926307),
+    FRAC_CONST(0.80548609778042912),
+    FRAC_CONST(0.80639420924795624),
+    FRAC_CONST(0.80730042319201445),
+    FRAC_CONST(0.80820473748019472),
+    FRAC_CONST(0.80910714998455813),
+    FRAC_CONST(0.81000765858164114),
+    FRAC_CONST(0.81090626115245967),
+    FRAC_CONST(0.81180295558251536),
+    FRAC_CONST(0.81269773976179949),
+    FRAC_CONST(0.81359061158479851),
+    FRAC_CONST(0.81448156895049861),
+    FRAC_CONST(0.81537060976239129),
+    FRAC_CONST(0.81625773192847739),
+    FRAC_CONST(0.81714293336127297),
+    FRAC_CONST(0.81802621197781344),
+    FRAC_CONST(0.81890756569965895),
+    FRAC_CONST(0.81978699245289899),
+    FRAC_CONST(0.82066449016815746),
+    FRAC_CONST(0.82154005678059761),
+    FRAC_CONST(0.82241369022992639),
+    FRAC_CONST(0.82328538846040011),
+    FRAC_CONST(0.82415514942082857),
+    FRAC_CONST(0.82502297106458022),
+    FRAC_CONST(0.82588885134958678),
+    FRAC_CONST(0.82675278823834852),
+    FRAC_CONST(0.8276147796979384),
+    FRAC_CONST(0.82847482370000713),
+    FRAC_CONST(0.82933291822078825),
+    FRAC_CONST(0.83018906124110237),
+    FRAC_CONST(0.83104325074636232),
+    FRAC_CONST(0.83189548472657759),
+    FRAC_CONST(0.83274576117635946),
+    FRAC_CONST(0.83359407809492514),
+    FRAC_CONST(0.83444043348610319),
+    FRAC_CONST(0.83528482535833737),
+    FRAC_CONST(0.83612725172469216),
+    FRAC_CONST(0.83696771060285702),
+    FRAC_CONST(0.83780620001515094),
+    FRAC_CONST(0.8386427179885273),
+    FRAC_CONST(0.83947726255457855),
+    FRAC_CONST(0.84030983174954077),
+    FRAC_CONST(0.84114042361429808),
+    FRAC_CONST(0.84196903619438768),
+    FRAC_CONST(0.84279566754000412),
+    FRAC_CONST(0.84362031570600404),
+    FRAC_CONST(0.84444297875191066),
+    FRAC_CONST(0.84526365474191822),
+    FRAC_CONST(0.84608234174489694),
+    FRAC_CONST(0.84689903783439735),
+    FRAC_CONST(0.84771374108865427),
+    FRAC_CONST(0.84852644959059265),
+    FRAC_CONST(0.84933716142783067),
+    FRAC_CONST(0.85014587469268521),
+    FRAC_CONST(0.85095258748217573),
+    FRAC_CONST(0.85175729789802912),
+    FRAC_CONST(0.85256000404668397),
+    FRAC_CONST(0.85336070403929543),
+    FRAC_CONST(0.85415939599173873),
+    FRAC_CONST(0.85495607802461482),
+    FRAC_CONST(0.85575074826325392),
+    FRAC_CONST(0.85654340483771996),
+    FRAC_CONST(0.85733404588281559),
+    FRAC_CONST(0.85812266953808602),
+    FRAC_CONST(0.8589092739478239),
+    FRAC_CONST(0.85969385726107261),
+    FRAC_CONST(0.86047641763163207),
+    FRAC_CONST(0.86125695321806206),
+    FRAC_CONST(0.86203546218368721),
+    FRAC_CONST(0.86281194269660033),
+    FRAC_CONST(0.86358639292966799),
+    FRAC_CONST(0.86435881106053403),
+    FRAC_CONST(0.86512919527162369),
+    FRAC_CONST(0.86589754375014882),
+    FRAC_CONST(0.86666385468811102),
+    FRAC_CONST(0.86742812628230692),
+    FRAC_CONST(0.86819035673433131),
+    FRAC_CONST(0.86895054425058238),
+    FRAC_CONST(0.86970868704226556),
+    FRAC_CONST(0.87046478332539767),
+    FRAC_CONST(0.8712188313208109),
+    FRAC_CONST(0.8719708292541577),
+    FRAC_CONST(0.8727207753559143),
+    FRAC_CONST(0.87346866786138488),
+    FRAC_CONST(0.8742145050107063),
+    FRAC_CONST(0.87495828504885154),
+    FRAC_CONST(0.8757000062256346),
+    FRAC_CONST(0.87643966679571361),
+    FRAC_CONST(0.87717726501859594),
+    FRAC_CONST(0.87791279915864173),
+    FRAC_CONST(0.87864626748506813),
+    FRAC_CONST(0.87937766827195318),
+    FRAC_CONST(0.88010699979824036),
+    FRAC_CONST(0.88083426034774204),
+    FRAC_CONST(0.88155944820914378),
+    FRAC_CONST(0.8822825616760086),
+    FRAC_CONST(0.88300359904678072),
+    FRAC_CONST(0.88372255862478966),
+    FRAC_CONST(0.8844394387182537),
+    FRAC_CONST(0.88515423764028511),
+    FRAC_CONST(0.88586695370889279),
+    FRAC_CONST(0.88657758524698704),
+    FRAC_CONST(0.88728613058238315),
+    FRAC_CONST(0.88799258804780556),
+    FRAC_CONST(0.88869695598089171),
+    FRAC_CONST(0.88939923272419552),
+    FRAC_CONST(0.89009941662519221),
+    FRAC_CONST(0.89079750603628149),
+    FRAC_CONST(0.89149349931479138),
+    FRAC_CONST(0.89218739482298248),
+    FRAC_CONST(0.89287919092805168),
+    FRAC_CONST(0.89356888600213602),
+    FRAC_CONST(0.89425647842231604),
+    FRAC_CONST(0.89494196657062075),
+    FRAC_CONST(0.89562534883403),
+    FRAC_CONST(0.89630662360447966),
+    FRAC_CONST(0.89698578927886397),
+    FRAC_CONST(0.89766284425904075),
+    FRAC_CONST(0.89833778695183419),
+    FRAC_CONST(0.89901061576903907),
+    FRAC_CONST(0.89968132912742393),
+    FRAC_CONST(0.9003499254487356),
+    FRAC_CONST(0.90101640315970233),
+    FRAC_CONST(0.90168076069203773),
+    FRAC_CONST(0.9023429964824442),
+    FRAC_CONST(0.90300310897261704),
+    FRAC_CONST(0.90366109660924798),
+    FRAC_CONST(0.90431695784402832),
+    FRAC_CONST(0.90497069113365325),
+    FRAC_CONST(0.90562229493982516),
+    FRAC_CONST(0.90627176772925766),
+    FRAC_CONST(0.90691910797367803),
+    FRAC_CONST(0.90756431414983252),
+    FRAC_CONST(0.9082073847394887),
+    FRAC_CONST(0.90884831822943912),
+    FRAC_CONST(0.90948711311150543),
+    FRAC_CONST(0.91012376788254157),
+    FRAC_CONST(0.91075828104443757),
+    FRAC_CONST(0.91139065110412232),
+    FRAC_CONST(0.91202087657356823),
+    FRAC_CONST(0.9126489559697939),
+    FRAC_CONST(0.91327488781486776),
+    FRAC_CONST(0.91389867063591168),
+    FRAC_CONST(0.91452030296510445),
+    FRAC_CONST(0.91513978333968526),
+    FRAC_CONST(0.91575711030195672),
+    FRAC_CONST(0.91637228239928914),
+    FRAC_CONST(0.91698529818412289),
+    FRAC_CONST(0.91759615621397295),
+    FRAC_CONST(0.9182048550514309),
+    FRAC_CONST(0.91881139326416994),
+    FRAC_CONST(0.91941576942494696),
+    FRAC_CONST(0.92001798211160657),
+    FRAC_CONST(0.92061802990708386),
+    FRAC_CONST(0.92121591139940873),
+    FRAC_CONST(0.92181162518170812),
+    FRAC_CONST(0.92240516985220988),
+    FRAC_CONST(0.92299654401424625),
+    FRAC_CONST(0.92358574627625656),
+    FRAC_CONST(0.9241727752517912),
+    FRAC_CONST(0.92475762955951391),
+    FRAC_CONST(0.9253403078232062),
+    FRAC_CONST(0.92592080867176996),
+    FRAC_CONST(0.92649913073923051),
+    FRAC_CONST(0.9270752726647401),
+    FRAC_CONST(0.92764923309258118),
+    FRAC_CONST(0.92822101067216944),
+    FRAC_CONST(0.92879060405805702),
+    FRAC_CONST(0.9293580119099355),
+    FRAC_CONST(0.92992323289263956),
+    FRAC_CONST(0.93048626567614978),
+    FRAC_CONST(0.93104710893559517),
+    FRAC_CONST(0.93160576135125783),
+    FRAC_CONST(0.93216222160857432),
+    FRAC_CONST(0.93271648839814025),
+    FRAC_CONST(0.93326856041571205),
+    FRAC_CONST(0.93381843636221096),
+    FRAC_CONST(0.9343661149437259),
+    FRAC_CONST(0.93491159487151609),
+    FRAC_CONST(0.93545487486201462),
+    FRAC_CONST(0.9359959536368313),
+    FRAC_CONST(0.9365348299227555),
+    FRAC_CONST(0.93707150245175919),
+    FRAC_CONST(0.93760596996099999),
+    FRAC_CONST(0.93813823119282436),
+    FRAC_CONST(0.93866828489477017),
+    FRAC_CONST(0.9391961298195699),
+    FRAC_CONST(0.93972176472515334),
+    FRAC_CONST(0.94024518837465088),
+    FRAC_CONST(0.94076639953639607),
+    FRAC_CONST(0.94128539698392866),
+    FRAC_CONST(0.94180217949599765),
+    FRAC_CONST(0.94231674585656378),
+    FRAC_CONST(0.94282909485480271),
+    FRAC_CONST(0.94333922528510772),
+    FRAC_CONST(0.94384713594709269),
+    FRAC_CONST(0.94435282564559475),
+    FRAC_CONST(0.94485629319067721),
+    FRAC_CONST(0.94535753739763229),
+    FRAC_CONST(0.94585655708698391),
+    FRAC_CONST(0.94635335108449059),
+    FRAC_CONST(0.946847918221148),
+    FRAC_CONST(0.94734025733319194),
+    FRAC_CONST(0.94783036726210101),
+    FRAC_CONST(0.94831824685459909),
+    FRAC_CONST(0.94880389496265838),
+    FRAC_CONST(0.94928731044350201),
+    FRAC_CONST(0.94976849215960668),
+    FRAC_CONST(0.95024743897870523),
+    FRAC_CONST(0.95072414977378961),
+    FRAC_CONST(0.95119862342311323),
+    FRAC_CONST(0.95167085881019386),
+    FRAC_CONST(0.95214085482381583),
+    FRAC_CONST(0.95260861035803324),
+    FRAC_CONST(0.9530741243121722),
+    FRAC_CONST(0.95353739559083328),
+    FRAC_CONST(0.95399842310389449),
+    FRAC_CONST(0.95445720576651349),
+    FRAC_CONST(0.95491374249913052),
+    FRAC_CONST(0.95536803222747024),
+    FRAC_CONST(0.95582007388254542),
+    FRAC_CONST(0.95626986640065814),
+    FRAC_CONST(0.95671740872340305),
+    FRAC_CONST(0.9571626997976701),
+    FRAC_CONST(0.95760573857564624),
+    FRAC_CONST(0.9580465240148186),
+    FRAC_CONST(0.9584850550779761),
+    FRAC_CONST(0.95892133073321306),
+    FRAC_CONST(0.95935534995393079),
+    FRAC_CONST(0.9597871117188399),
+    FRAC_CONST(0.96021661501196343),
+    FRAC_CONST(0.96064385882263847),
+    FRAC_CONST(0.96106884214551935),
+    FRAC_CONST(0.961491563980579),
+    FRAC_CONST(0.9619120233331121),
+    FRAC_CONST(0.9623302192137374),
+    FRAC_CONST(0.96274615063839941),
+    FRAC_CONST(0.96315981662837136),
+    FRAC_CONST(0.96357121621025721),
+    FRAC_CONST(0.96398034841599411),
+    FRAC_CONST(0.96438721228285429),
+    FRAC_CONST(0.9647918068534479),
+    FRAC_CONST(0.96519413117572472),
+    FRAC_CONST(0.96559418430297683),
+    FRAC_CONST(0.96599196529384057),
+    FRAC_CONST(0.96638747321229879),
+    FRAC_CONST(0.96678070712768327),
+    FRAC_CONST(0.96717166611467664),
+    FRAC_CONST(0.96756034925331436),
+    FRAC_CONST(0.9679467556289878),
+    FRAC_CONST(0.9683308843324453),
+    FRAC_CONST(0.96871273445979478),
+    FRAC_CONST(0.9690923051125061),
+    FRAC_CONST(0.96946959539741295),
+    FRAC_CONST(0.96984460442671483),
+    FRAC_CONST(0.97021733131797916),
+    FRAC_CONST(0.97058777519414363),
+    FRAC_CONST(0.97095593518351797),
+    FRAC_CONST(0.97132181041978616),
+    FRAC_CONST(0.97168540004200854),
+    FRAC_CONST(0.9720467031946235),
+    FRAC_CONST(0.97240571902744977),
+    FRAC_CONST(0.97276244669568857),
+    FRAC_CONST(0.97311688535992513),
+    FRAC_CONST(0.97346903418613095),
+    FRAC_CONST(0.9738188923456661),
+    FRAC_CONST(0.97416645901528032),
+    FRAC_CONST(0.97451173337711572),
+    FRAC_CONST(0.97485471461870843),
+    FRAC_CONST(0.97519540193299037),
+    FRAC_CONST(0.97553379451829136),
+    FRAC_CONST(0.97586989157834103),
+    FRAC_CONST(0.97620369232227056),
+    FRAC_CONST(0.97653519596461447),
+    FRAC_CONST(0.97686440172531264),
+    FRAC_CONST(0.97719130882971228),
+    FRAC_CONST(0.97751591650856928),
+    FRAC_CONST(0.97783822399805043),
+    FRAC_CONST(0.97815823053973505),
+    FRAC_CONST(0.97847593538061683),
+    FRAC_CONST(0.97879133777310567),
+    FRAC_CONST(0.97910443697502925),
+    FRAC_CONST(0.97941523224963478),
+    FRAC_CONST(0.97972372286559117),
+    FRAC_CONST(0.98002990809698998),
+    FRAC_CONST(0.98033378722334796),
+    FRAC_CONST(0.98063535952960812),
+    FRAC_CONST(0.98093462430614164),
+    FRAC_CONST(0.98123158084874973),
+    FRAC_CONST(0.98152622845866466),
+    FRAC_CONST(0.9818185664425525),
+    FRAC_CONST(0.98210859411251361),
+    FRAC_CONST(0.98239631078608469),
+    FRAC_CONST(0.98268171578624086),
+    FRAC_CONST(0.98296480844139644),
+    FRAC_CONST(0.98324558808540707),
+    FRAC_CONST(0.98352405405757126),
+    FRAC_CONST(0.98380020570263149),
+    FRAC_CONST(0.98407404237077645),
+    FRAC_CONST(0.9843455634176419),
+    FRAC_CONST(0.9846147682043126),
+    FRAC_CONST(0.9848816560973237),
+    FRAC_CONST(0.98514622646866223),
+    FRAC_CONST(0.98540847869576842),
+    FRAC_CONST(0.98566841216153755),
+    FRAC_CONST(0.98592602625432113),
+    FRAC_CONST(0.98618132036792827),
+    FRAC_CONST(0.98643429390162707),
+    FRAC_CONST(0.98668494626014669),
+    FRAC_CONST(0.98693327685367771),
+    FRAC_CONST(0.98717928509787434),
+    FRAC_CONST(0.98742297041385541),
+    FRAC_CONST(0.98766433222820571),
+    FRAC_CONST(0.98790336997297779),
+    FRAC_CONST(0.98814008308569257),
+    FRAC_CONST(0.98837447100934128),
+    FRAC_CONST(0.98860653319238645),
+    FRAC_CONST(0.98883626908876354),
+    FRAC_CONST(0.98906367815788154),
+    FRAC_CONST(0.98928875986462517),
+    FRAC_CONST(0.98951151367935519),
+    FRAC_CONST(0.98973193907791057),
+    FRAC_CONST(0.98995003554160899),
+    FRAC_CONST(0.9901658025572484),
+    FRAC_CONST(0.99037923961710816),
+    FRAC_CONST(0.99059034621895015),
+    FRAC_CONST(0.99079912186602037),
+    FRAC_CONST(0.99100556606704937),
+    FRAC_CONST(0.99120967833625406),
+    FRAC_CONST(0.99141145819333854),
+    FRAC_CONST(0.99161090516349537),
+    FRAC_CONST(0.99180801877740643),
+    FRAC_CONST(0.99200279857124452),
+    FRAC_CONST(0.99219524408667392),
+    FRAC_CONST(0.99238535487085167),
+    FRAC_CONST(0.99257313047642881),
+    FRAC_CONST(0.99275857046155114),
+    FRAC_CONST(0.99294167438986047),
+    FRAC_CONST(0.99312244183049558),
+    FRAC_CONST(0.99330087235809328),
+    FRAC_CONST(0.99347696555278919),
+    FRAC_CONST(0.99365072100021912),
+    FRAC_CONST(0.99382213829151966),
+    FRAC_CONST(0.99399121702332938),
+    FRAC_CONST(0.99415795679778973),
+    FRAC_CONST(0.99432235722254581),
+    FRAC_CONST(0.9944844179107476),
+    FRAC_CONST(0.99464413848105071),
+    FRAC_CONST(0.99480151855761711),
+    FRAC_CONST(0.99495655777011638),
+    FRAC_CONST(0.99510925575372611),
+    FRAC_CONST(0.99525961214913339),
+    FRAC_CONST(0.9954076266025349),
+    FRAC_CONST(0.99555329876563847),
+    FRAC_CONST(0.99569662829566352),
+    FRAC_CONST(0.99583761485534161),
+    FRAC_CONST(0.99597625811291779),
+    FRAC_CONST(0.99611255774215113),
+    FRAC_CONST(0.99624651342231552),
+    FRAC_CONST(0.99637812483820021),
+    FRAC_CONST(0.99650739168011082),
+    FRAC_CONST(0.9966343136438699),
+    FRAC_CONST(0.996758890430818),
+    FRAC_CONST(0.99688112174781385),
+    FRAC_CONST(0.99700100730723529),
+    FRAC_CONST(0.99711854682697998),
+    FRAC_CONST(0.99723374003046616),
+    FRAC_CONST(0.99734658664663323),
+    FRAC_CONST(0.99745708640994191),
+    FRAC_CONST(0.99756523906037575),
+    FRAC_CONST(0.997671044343441),
+    FRAC_CONST(0.99777450201016782),
+    FRAC_CONST(0.99787561181711015),
+    FRAC_CONST(0.99797437352634699),
+    FRAC_CONST(0.99807078690548234),
+    FRAC_CONST(0.99816485172764624),
+    FRAC_CONST(0.99825656777149518),
+    FRAC_CONST(0.99834593482121237),
+    FRAC_CONST(0.99843295266650844),
+    FRAC_CONST(0.99851762110262221),
+    FRAC_CONST(0.99859993993032037),
+    FRAC_CONST(0.99867990895589909),
+    FRAC_CONST(0.99875752799118334),
+    FRAC_CONST(0.99883279685352799),
+    FRAC_CONST(0.99890571536581829),
+    FRAC_CONST(0.99897628335646982),
+    FRAC_CONST(0.99904450065942929),
+    FRAC_CONST(0.99911036711417489),
+    FRAC_CONST(0.99917388256571638),
+    FRAC_CONST(0.99923504686459585),
+    FRAC_CONST(0.99929385986688779),
+    FRAC_CONST(0.99935032143419944),
+    FRAC_CONST(0.9994044314336713),
+    FRAC_CONST(0.99945618973797734),
+    FRAC_CONST(0.99950559622532531),
+    FRAC_CONST(0.99955265077945699),
+    FRAC_CONST(0.99959735328964838),
+    FRAC_CONST(0.9996397036507102),
+    FRAC_CONST(0.99967970176298793),
+    FRAC_CONST(0.99971734753236219),
+    FRAC_CONST(0.99975264087024884),
+    FRAC_CONST(0.99978558169359921),
+    FRAC_CONST(0.99981616992490041),
+    FRAC_CONST(0.99984440549217524),
+    FRAC_CONST(0.99987028832898295),
+    FRAC_CONST(0.99989381837441849),
+    FRAC_CONST(0.99991499557311347),
+    FRAC_CONST(0.999933819875236),
+    FRAC_CONST(0.99995029123649048),
+    FRAC_CONST(0.99996440961811828),
+    FRAC_CONST(0.99997617498689761),
+    FRAC_CONST(0.9999855873151432),
+    FRAC_CONST(0.99999264658070719),
+    FRAC_CONST(0.99999735276697821),
+    FRAC_CONST(0.99999970586288223)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t sine_long_960[] =
 {
-    COEF_CONST(0.00081812299560725323),
-    COEF_CONST(0.0024543667964602917),
-    COEF_CONST(0.0040906040262347889),
-    COEF_CONST(0.0057268303042312674),
-    COEF_CONST(0.0073630412497795667),
-    COEF_CONST(0.0089992324822505774),
-    COEF_CONST(0.010635399621067975),
-    COEF_CONST(0.012271538285719924),
-    COEF_CONST(0.013907644095770845),
-    COEF_CONST(0.015543712670873098),
-    COEF_CONST(0.017179739630778748),
-    COEF_CONST(0.018815720595351273),
-    COEF_CONST(0.020451651184577292),
-    COEF_CONST(0.022087527018578291),
-    COEF_CONST(0.023723343717622358),
-    COEF_CONST(0.025359096902135895),
-    COEF_CONST(0.02699478219271537),
-    COEF_CONST(0.028630395210139003),
-    COEF_CONST(0.030265931575378519),
-    COEF_CONST(0.031901386909610863),
-    COEF_CONST(0.033536756834229922),
-    COEF_CONST(0.035172036970858266),
-    COEF_CONST(0.036807222941358832),
-    COEF_CONST(0.038442310367846677),
-    COEF_CONST(0.040077294872700696),
-    COEF_CONST(0.041712172078575326),
-    COEF_CONST(0.043346937608412288),
-    COEF_CONST(0.044981587085452281),
-    COEF_CONST(0.046616116133246711),
-    COEF_CONST(0.048250520375669431),
-    COEF_CONST(0.049884795436928406),
-    COEF_CONST(0.051518936941577477),
-    COEF_CONST(0.053152940514528055),
-    COEF_CONST(0.05478680178106083),
-    COEF_CONST(0.056420516366837495),
-    COEF_CONST(0.05805407989791244),
-    COEF_CONST(0.059687488000744485),
-    COEF_CONST(0.061320736302208578),
-    COEF_CONST(0.062953820429607482),
-    COEF_CONST(0.064586736010683557),
-    COEF_CONST(0.066219478673630344),
-    COEF_CONST(0.06785204404710439),
-    COEF_CONST(0.069484427760236861),
-    COEF_CONST(0.071116625442645326),
-    COEF_CONST(0.072748632724445372),
-    COEF_CONST(0.07438044523626236),
-    COEF_CONST(0.076012058609243122),
-    COEF_CONST(0.077643468475067631),
-    COEF_CONST(0.079274670465960706),
-    COEF_CONST(0.080905660214703745),
-    COEF_CONST(0.082536433354646319),
-    COEF_CONST(0.084166985519717977),
-    COEF_CONST(0.085797312344439894),
-    COEF_CONST(0.08742740946393647),
-    COEF_CONST(0.089057272513947183),
-    COEF_CONST(0.090686897130838162),
-    COEF_CONST(0.092316278951613845),
-    COEF_CONST(0.093945413613928788),
-    COEF_CONST(0.095574296756099186),
-    COEF_CONST(0.097202924017114667),
-    COEF_CONST(0.098831291036649963),
-    COEF_CONST(0.10045939345507648),
-    COEF_CONST(0.10208722691347409),
-    COEF_CONST(0.10371478705364276),
-    COEF_CONST(0.10534206951811415),
-    COEF_CONST(0.10696906995016341),
-    COEF_CONST(0.10859578399382072),
-    COEF_CONST(0.11022220729388306),
-    COEF_CONST(0.11184833549592579),
-    COEF_CONST(0.11347416424631435),
-    COEF_CONST(0.11509968919221586),
-    COEF_CONST(0.11672490598161089),
-    COEF_CONST(0.11834981026330495),
-    COEF_CONST(0.11997439768694031),
-    COEF_CONST(0.12159866390300751),
-    COEF_CONST(0.12322260456285709),
-    COEF_CONST(0.12484621531871121),
-    COEF_CONST(0.12646949182367517),
-    COEF_CONST(0.12809242973174936),
-    COEF_CONST(0.12971502469784052),
-    COEF_CONST(0.13133727237777362),
-    COEF_CONST(0.13295916842830346),
-    COEF_CONST(0.13458070850712617),
-    COEF_CONST(0.13620188827289101),
-    COEF_CONST(0.1378227033852118),
-    COEF_CONST(0.13944314950467873),
-    COEF_CONST(0.14106322229286994),
-    COEF_CONST(0.14268291741236291),
-    COEF_CONST(0.14430223052674654),
-    COEF_CONST(0.1459211573006321),
-    COEF_CONST(0.14753969339966552),
-    COEF_CONST(0.14915783449053857),
-    COEF_CONST(0.15077557624100058),
-    COEF_CONST(0.15239291431987001),
-    COEF_CONST(0.1540098443970461),
-    COEF_CONST(0.15562636214352044),
-    COEF_CONST(0.15724246323138855),
-    COEF_CONST(0.15885814333386142),
-    COEF_CONST(0.16047339812527725),
-    COEF_CONST(0.16208822328111283),
-    COEF_CONST(0.16370261447799525),
-    COEF_CONST(0.16531656739371339),
-    COEF_CONST(0.16693007770722967),
-    COEF_CONST(0.16854314109869134),
-    COEF_CONST(0.17015575324944232),
-    COEF_CONST(0.17176790984203447),
-    COEF_CONST(0.17337960656023954),
-    COEF_CONST(0.1749908390890603),
-    COEF_CONST(0.17660160311474243),
-    COEF_CONST(0.17821189432478593),
-    COEF_CONST(0.17982170840795647),
-    COEF_CONST(0.18143104105429744),
-    COEF_CONST(0.18303988795514095),
-    COEF_CONST(0.1846482448031197),
-    COEF_CONST(0.18625610729217834),
-    COEF_CONST(0.1878634711175852),
-    COEF_CONST(0.18947033197594348),
-    COEF_CONST(0.19107668556520319),
-    COEF_CONST(0.19268252758467228),
-    COEF_CONST(0.19428785373502844),
-    COEF_CONST(0.19589265971833042),
-    COEF_CONST(0.19749694123802966),
-    COEF_CONST(0.19910069399898173),
-    COEF_CONST(0.20070391370745785),
-    COEF_CONST(0.20230659607115639),
-    COEF_CONST(0.20390873679921437),
-    COEF_CONST(0.20551033160221882),
-    COEF_CONST(0.20711137619221856),
-    COEF_CONST(0.2087118662827353),
-    COEF_CONST(0.21031179758877552),
-    COEF_CONST(0.21191116582684155),
-    COEF_CONST(0.21350996671494335),
-    COEF_CONST(0.21510819597260972),
-    COEF_CONST(0.21670584932089998),
-    COEF_CONST(0.2183029224824154),
-    COEF_CONST(0.21989941118131037),
-    COEF_CONST(0.22149531114330431),
-    COEF_CONST(0.22309061809569264),
-    COEF_CONST(0.22468532776735861),
-    COEF_CONST(0.22627943588878449),
-    COEF_CONST(0.22787293819206314),
-    COEF_CONST(0.22946583041090929),
-    COEF_CONST(0.23105810828067114),
-    COEF_CONST(0.23264976753834157),
-    COEF_CONST(0.23424080392256985),
-    COEF_CONST(0.2358312131736727),
-    COEF_CONST(0.23742099103364595),
-    COEF_CONST(0.23901013324617584),
-    COEF_CONST(0.24059863555665045),
-    COEF_CONST(0.24218649371217096),
-    COEF_CONST(0.24377370346156332),
-    COEF_CONST(0.24536026055538934),
-    COEF_CONST(0.24694616074595824),
-    COEF_CONST(0.24853139978733788),
-    COEF_CONST(0.25011597343536629),
-    COEF_CONST(0.25169987744766298),
-    COEF_CONST(0.25328310758364025),
-    COEF_CONST(0.25486565960451457),
-    COEF_CONST(0.25644752927331788),
-    COEF_CONST(0.25802871235490898),
-    COEF_CONST(0.25960920461598508),
-    COEF_CONST(0.26118900182509258),
-    COEF_CONST(0.26276809975263904),
-    COEF_CONST(0.264346494170904),
-    COEF_CONST(0.26592418085405067),
-    COEF_CONST(0.26750115557813692),
-    COEF_CONST(0.2690774141211269),
-    COEF_CONST(0.27065295226290209),
-    COEF_CONST(0.2722277657852728),
-    COEF_CONST(0.27380185047198918),
-    COEF_CONST(0.27537520210875299),
-    COEF_CONST(0.2769478164832283),
-    COEF_CONST(0.27851968938505312),
-    COEF_CONST(0.28009081660585067),
-    COEF_CONST(0.28166119393924061),
-    COEF_CONST(0.28323081718085019),
-    COEF_CONST(0.28479968212832563),
-    COEF_CONST(0.28636778458134327),
-    COEF_CONST(0.28793512034162105),
-    COEF_CONST(0.2895016852129294),
-    COEF_CONST(0.29106747500110264),
-    COEF_CONST(0.29263248551405047),
-    COEF_CONST(0.2941967125617686),
-    COEF_CONST(0.29576015195635058),
-    COEF_CONST(0.29732279951199847),
-    COEF_CONST(0.29888465104503475),
-    COEF_CONST(0.30044570237391266),
-    COEF_CONST(0.30200594931922808),
-    COEF_CONST(0.30356538770373032),
-    COEF_CONST(0.30512401335233358),
-    COEF_CONST(0.30668182209212791),
-    COEF_CONST(0.3082388097523906),
-    COEF_CONST(0.30979497216459695),
-    COEF_CONST(0.31135030516243201),
-    COEF_CONST(0.3129048045818012),
-    COEF_CONST(0.31445846626084178),
-    COEF_CONST(0.31601128603993378),
-    COEF_CONST(0.31756325976171151),
-    COEF_CONST(0.31911438327107416),
-    COEF_CONST(0.32066465241519732),
-    COEF_CONST(0.32221406304354389),
-    COEF_CONST(0.3237626110078754),
-    COEF_CONST(0.32531029216226293),
-    COEF_CONST(0.32685710236309828),
-    COEF_CONST(0.32840303746910487),
-    COEF_CONST(0.32994809334134939),
-    COEF_CONST(0.3314922658432522),
-    COEF_CONST(0.33303555084059877),
-    COEF_CONST(0.33457794420155085),
-    COEF_CONST(0.33611944179665709),
-    COEF_CONST(0.33766003949886464),
-    COEF_CONST(0.33919973318352969),
-    COEF_CONST(0.34073851872842903),
-    COEF_CONST(0.34227639201377064),
-    COEF_CONST(0.34381334892220483),
-    COEF_CONST(0.34534938533883547),
-    COEF_CONST(0.34688449715123082),
-    COEF_CONST(0.34841868024943456),
-    COEF_CONST(0.34995193052597684),
-    COEF_CONST(0.35148424387588523),
-    COEF_CONST(0.3530156161966958),
-    COEF_CONST(0.35454604338846402),
-    COEF_CONST(0.35607552135377557),
-    COEF_CONST(0.35760404599775775),
-    COEF_CONST(0.35913161322809023),
-    COEF_CONST(0.36065821895501554),
-    COEF_CONST(0.36218385909135092),
-    COEF_CONST(0.36370852955249849),
-    COEF_CONST(0.36523222625645668),
-    COEF_CONST(0.36675494512383078),
-    COEF_CONST(0.36827668207784414),
-    COEF_CONST(0.36979743304434909),
-    COEF_CONST(0.37131719395183754),
-    COEF_CONST(0.37283596073145214),
-    COEF_CONST(0.37435372931699717),
-    COEF_CONST(0.37587049564494951),
-    COEF_CONST(0.37738625565446909),
-    COEF_CONST(0.37890100528741022),
-    COEF_CONST(0.38041474048833229),
-    COEF_CONST(0.38192745720451066),
-    COEF_CONST(0.38343915138594736),
-    COEF_CONST(0.38494981898538222),
-    COEF_CONST(0.38645945595830333),
-    COEF_CONST(0.38796805826295838),
-    COEF_CONST(0.38947562186036483),
-    COEF_CONST(0.39098214271432141),
-    COEF_CONST(0.39248761679141814),
-    COEF_CONST(0.3939920400610481),
-    COEF_CONST(0.39549540849541737),
-    COEF_CONST(0.39699771806955625),
-    COEF_CONST(0.39849896476132979),
-    COEF_CONST(0.39999914455144892),
-    COEF_CONST(0.40149825342348083),
-    COEF_CONST(0.4029962873638599),
-    COEF_CONST(0.40449324236189854),
-    COEF_CONST(0.40598911440979762),
-    COEF_CONST(0.40748389950265762),
-    COEF_CONST(0.40897759363848879),
-    COEF_CONST(0.41047019281822261),
-    COEF_CONST(0.41196169304572178),
-    COEF_CONST(0.4134520903277914),
-    COEF_CONST(0.41494138067418929),
-    COEF_CONST(0.41642956009763715),
-    COEF_CONST(0.41791662461383078),
-    COEF_CONST(0.41940257024145089),
-    COEF_CONST(0.42088739300217382),
-    COEF_CONST(0.42237108892068231),
-    COEF_CONST(0.42385365402467584),
-    COEF_CONST(0.42533508434488143),
-    COEF_CONST(0.42681537591506419),
-    COEF_CONST(0.42829452477203828),
-    COEF_CONST(0.42977252695567697),
-    COEF_CONST(0.43124937850892364),
-    COEF_CONST(0.4327250754778022),
-    COEF_CONST(0.43419961391142781),
-    COEF_CONST(0.43567298986201736),
-    COEF_CONST(0.43714519938489987),
-    COEF_CONST(0.43861623853852766),
-    COEF_CONST(0.44008610338448595),
-    COEF_CONST(0.44155478998750436),
-    COEF_CONST(0.44302229441546676),
-    COEF_CONST(0.4444886127394222),
-    COEF_CONST(0.44595374103359531),
-    COEF_CONST(0.44741767537539667),
-    COEF_CONST(0.44888041184543348),
-    COEF_CONST(0.45034194652752002),
-    COEF_CONST(0.45180227550868812),
-    COEF_CONST(0.45326139487919759),
-    COEF_CONST(0.45471930073254679),
-    COEF_CONST(0.45617598916548296),
-    COEF_CONST(0.45763145627801283),
-    COEF_CONST(0.45908569817341294),
-    COEF_CONST(0.46053871095824001),
-    COEF_CONST(0.46199049074234161),
-    COEF_CONST(0.46344103363886635),
-    COEF_CONST(0.46489033576427435),
-    COEF_CONST(0.46633839323834758),
-    COEF_CONST(0.46778520218420055),
-    COEF_CONST(0.46923075872829029),
-    COEF_CONST(0.47067505900042683),
-    COEF_CONST(0.47211809913378361),
-    COEF_CONST(0.47355987526490806),
-    COEF_CONST(0.47500038353373153),
-    COEF_CONST(0.47643962008357982),
-    COEF_CONST(0.47787758106118372),
-    COEF_CONST(0.47931426261668875),
-    COEF_CONST(0.48074966090366611),
-    COEF_CONST(0.48218377207912272),
-    COEF_CONST(0.48361659230351117),
-    COEF_CONST(0.48504811774074069),
-    COEF_CONST(0.48647834455818684),
-    COEF_CONST(0.48790726892670194),
-    COEF_CONST(0.48933488702062544),
-    COEF_CONST(0.49076119501779414),
-    COEF_CONST(0.49218618909955225),
-    COEF_CONST(0.4936098654507618),
-    COEF_CONST(0.49503222025981269),
-    COEF_CONST(0.49645324971863303),
-    COEF_CONST(0.49787295002269943),
-    COEF_CONST(0.49929131737104687),
-    COEF_CONST(0.50070834796627917),
-    COEF_CONST(0.50212403801457872),
-    COEF_CONST(0.50353838372571758),
-    COEF_CONST(0.50495138131306638),
-    COEF_CONST(0.50636302699360547),
-    COEF_CONST(0.50777331698793449),
-    COEF_CONST(0.50918224752028263),
-    COEF_CONST(0.51058981481851906),
-    COEF_CONST(0.51199601511416237),
-    COEF_CONST(0.51340084464239111),
-    COEF_CONST(0.51480429964205421),
-    COEF_CONST(0.51620637635567967),
-    COEF_CONST(0.51760707102948678),
-    COEF_CONST(0.51900637991339404),
-    COEF_CONST(0.5204042992610306),
-    COEF_CONST(0.52180082532974559),
-    COEF_CONST(0.5231959543806185),
-    COEF_CONST(0.52458968267846895),
-    COEF_CONST(0.52598200649186677),
-    COEF_CONST(0.52737292209314235),
-    COEF_CONST(0.52876242575839572),
-    COEF_CONST(0.53015051376750777),
-    COEF_CONST(0.53153718240414882),
-    COEF_CONST(0.53292242795578992),
-    COEF_CONST(0.53430624671371152),
-    COEF_CONST(0.53568863497301467),
-    COEF_CONST(0.5370695890326298),
-    COEF_CONST(0.5384491051953274),
-    COEF_CONST(0.53982717976772743),
-    COEF_CONST(0.54120380906030963),
-    COEF_CONST(0.54257898938742311),
-    COEF_CONST(0.54395271706729609),
-    COEF_CONST(0.54532498842204646),
-    COEF_CONST(0.54669579977769045),
-    COEF_CONST(0.54806514746415402),
-    COEF_CONST(0.54943302781528081),
-    COEF_CONST(0.55079943716884383),
-    COEF_CONST(0.55216437186655387),
-    COEF_CONST(0.55352782825406999),
-    COEF_CONST(0.55488980268100907),
-    COEF_CONST(0.55625029150095584),
-    COEF_CONST(0.55760929107147217),
-    COEF_CONST(0.55896679775410718),
-    COEF_CONST(0.56032280791440714),
-    COEF_CONST(0.56167731792192455),
-    COEF_CONST(0.56303032415022869),
-    COEF_CONST(0.56438182297691453),
-    COEF_CONST(0.56573181078361312),
-    COEF_CONST(0.56708028395600085),
-    COEF_CONST(0.56842723888380908),
-    COEF_CONST(0.56977267196083425),
-    COEF_CONST(0.57111657958494688),
-    COEF_CONST(0.5724589581581021),
-    COEF_CONST(0.57379980408634845),
-    COEF_CONST(0.57513911377983773),
-    COEF_CONST(0.57647688365283478),
-    COEF_CONST(0.57781311012372738),
-    COEF_CONST(0.57914778961503466),
-    COEF_CONST(0.58048091855341843),
-    COEF_CONST(0.5818124933696911),
-    COEF_CONST(0.58314251049882604),
-    COEF_CONST(0.58447096637996743),
-    COEF_CONST(0.58579785745643886),
-    COEF_CONST(0.5871231801757536),
-    COEF_CONST(0.58844693098962408),
-    COEF_CONST(0.58976910635397084),
-    COEF_CONST(0.59108970272893235),
-    COEF_CONST(0.59240871657887517),
-    COEF_CONST(0.59372614437240179),
-    COEF_CONST(0.59504198258236196),
-    COEF_CONST(0.5963562276858605),
-    COEF_CONST(0.59766887616426767),
-    COEF_CONST(0.5989799245032289),
-    COEF_CONST(0.60028936919267273),
-    COEF_CONST(0.60159720672682204),
-    COEF_CONST(0.60290343360420195),
-    COEF_CONST(0.60420804632765002),
-    COEF_CONST(0.60551104140432543),
-    COEF_CONST(0.60681241534571839),
-    COEF_CONST(0.60811216466765883),
-    COEF_CONST(0.60941028589032709),
-    COEF_CONST(0.61070677553826169),
-    COEF_CONST(0.61200163014036979),
-    COEF_CONST(0.61329484622993602),
-    COEF_CONST(0.6145864203446314),
-    COEF_CONST(0.61587634902652377),
-    COEF_CONST(0.61716462882208556),
-    COEF_CONST(0.61845125628220421),
-    COEF_CONST(0.61973622796219074),
-    COEF_CONST(0.6210195404217892),
-    COEF_CONST(0.62230119022518593),
-    COEF_CONST(0.62358117394101897),
-    COEF_CONST(0.62485948814238634),
-    COEF_CONST(0.62613612940685637),
-    COEF_CONST(0.62741109431647646),
-    COEF_CONST(0.62868437945778133),
-    COEF_CONST(0.62995598142180387),
-    COEF_CONST(0.6312258968040827),
-    COEF_CONST(0.63249412220467238),
-    COEF_CONST(0.63376065422815175),
-    COEF_CONST(0.63502548948363347),
-    COEF_CONST(0.63628862458477287),
-    COEF_CONST(0.63755005614977711),
-    COEF_CONST(0.63880978080141437),
-    COEF_CONST(0.6400677951670225),
-    COEF_CONST(0.6413240958785188),
-    COEF_CONST(0.64257867957240766),
-    COEF_CONST(0.6438315428897915),
-    COEF_CONST(0.64508268247637779),
-    COEF_CONST(0.64633209498248945),
-    COEF_CONST(0.64757977706307335),
-    COEF_CONST(0.64882572537770888),
-    COEF_CONST(0.65006993659061751),
-    COEF_CONST(0.65131240737067142),
-    COEF_CONST(0.65255313439140239),
-    COEF_CONST(0.65379211433101081),
-    COEF_CONST(0.65502934387237444),
-    COEF_CONST(0.6562648197030575),
-    COEF_CONST(0.65749853851531959),
-    COEF_CONST(0.65873049700612374),
-    COEF_CONST(0.65996069187714679),
-    COEF_CONST(0.66118911983478657),
-    COEF_CONST(0.66241577759017178),
-    COEF_CONST(0.66364066185917048),
-    COEF_CONST(0.66486376936239888),
-    COEF_CONST(0.66608509682523009),
-    COEF_CONST(0.66730464097780284),
-    COEF_CONST(0.66852239855503071),
-    COEF_CONST(0.66973836629660977),
-    COEF_CONST(0.67095254094702894),
-    COEF_CONST(0.67216491925557675),
-    COEF_CONST(0.67337549797635199),
-    COEF_CONST(0.67458427386827102),
-    COEF_CONST(0.67579124369507693),
-    COEF_CONST(0.67699640422534846),
-    COEF_CONST(0.67819975223250772),
-    COEF_CONST(0.6794012844948305),
-    COEF_CONST(0.68060099779545302),
-    COEF_CONST(0.68179888892238183),
-    COEF_CONST(0.6829949546685018),
-    COEF_CONST(0.68418919183158522),
-    COEF_CONST(0.68538159721429948),
-    COEF_CONST(0.6865721676242168),
-    COEF_CONST(0.68776089987382172),
-    COEF_CONST(0.68894779078052026),
-    COEF_CONST(0.69013283716664853),
-    COEF_CONST(0.69131603585948032),
-    COEF_CONST(0.69249738369123692),
-    COEF_CONST(0.69367687749909468),
-    COEF_CONST(0.69485451412519361),
-    COEF_CONST(0.69603029041664599),
-    COEF_CONST(0.6972042032255451),
-    COEF_CONST(0.6983762494089728),
-    COEF_CONST(0.69954642582900894),
-    COEF_CONST(0.70071472935273893),
-    COEF_CONST(0.70188115685226271),
-    COEF_CONST(0.703045705204703),
-    COEF_CONST(0.70420837129221303),
-    COEF_CONST(0.70536915200198613),
-    COEF_CONST(0.70652804422626281),
-    COEF_CONST(0.70768504486233985),
-    COEF_CONST(0.70884015081257845),
-    COEF_CONST(0.70999335898441229),
-    COEF_CONST(0.711144666290356),
-    COEF_CONST(0.71229406964801356),
-    COEF_CONST(0.71344156598008623),
-    COEF_CONST(0.71458715221438096),
-    COEF_CONST(0.71573082528381871),
-    COEF_CONST(0.71687258212644234),
-    COEF_CONST(0.7180124196854254),
-    COEF_CONST(0.71915033490907943),
-    COEF_CONST(0.72028632475086318),
-    COEF_CONST(0.72142038616938997),
-    COEF_CONST(0.72255251612843596),
-    COEF_CONST(0.72368271159694852),
-    COEF_CONST(0.72481096954905444),
-    COEF_CONST(0.72593728696406756),
-    COEF_CONST(0.72706166082649704),
-    COEF_CONST(0.72818408812605595),
-    COEF_CONST(0.72930456585766834),
-    COEF_CONST(0.73042309102147851),
-    COEF_CONST(0.73153966062285747),
-    COEF_CONST(0.73265427167241282),
-    COEF_CONST(0.73376692118599507),
-    COEF_CONST(0.73487760618470677),
-    COEF_CONST(0.73598632369490979),
-    COEF_CONST(0.73709307074823405),
-    COEF_CONST(0.73819784438158409),
-    COEF_CONST(0.73930064163714881),
-    COEF_CONST(0.74040145956240788),
-    COEF_CONST(0.74150029521014049),
-    COEF_CONST(0.74259714563843304),
-    COEF_CONST(0.74369200791068657),
-    COEF_CONST(0.74478487909562552),
-    COEF_CONST(0.74587575626730485),
-    COEF_CONST(0.74696463650511791),
-    COEF_CONST(0.74805151689380456),
-    COEF_CONST(0.74913639452345926),
-    COEF_CONST(0.75021926648953785),
-    COEF_CONST(0.75130012989286621),
-    COEF_CONST(0.7523789818396478),
-    COEF_CONST(0.75345581944147111),
-    COEF_CONST(0.75453063981531809),
-    COEF_CONST(0.75560344008357094),
-    COEF_CONST(0.75667421737402052),
-    COEF_CONST(0.7577429688198738),
-    COEF_CONST(0.75880969155976163),
-    COEF_CONST(0.75987438273774599),
-    COEF_CONST(0.76093703950332836),
-    COEF_CONST(0.76199765901145666),
-    COEF_CONST(0.76305623842253345),
-    COEF_CONST(0.76411277490242291),
-    COEF_CONST(0.76516726562245885),
-    COEF_CONST(0.76621970775945258),
-    COEF_CONST(0.76727009849569949),
-    COEF_CONST(0.76831843501898767),
-    COEF_CONST(0.76936471452260458),
-    COEF_CONST(0.77040893420534517),
-    COEF_CONST(0.77145109127151923),
-    COEF_CONST(0.77249118293095853),
-    COEF_CONST(0.77352920639902467),
-    COEF_CONST(0.77456515889661659),
-    COEF_CONST(0.77559903765017746),
-    COEF_CONST(0.7766308398917029),
-    COEF_CONST(0.77766056285874774),
-    COEF_CONST(0.77868820379443371),
-    COEF_CONST(0.77971375994745684),
-    COEF_CONST(0.78073722857209438),
-    COEF_CONST(0.7817586069282132),
-    COEF_CONST(0.78277789228127592),
-    COEF_CONST(0.78379508190234881),
-    COEF_CONST(0.78481017306810918),
-    COEF_CONST(0.78582316306085265),
-    COEF_CONST(0.78683404916849986),
-    COEF_CONST(0.78784282868460476),
-    COEF_CONST(0.78884949890836087),
-    COEF_CONST(0.78985405714460888),
-    COEF_CONST(0.7908565007038445),
-    COEF_CONST(0.79185682690222425),
-    COEF_CONST(0.79285503306157412),
-    COEF_CONST(0.79385111650939566),
-    COEF_CONST(0.79484507457887377),
-    COEF_CONST(0.79583690460888357),
-    COEF_CONST(0.79682660394399751),
-    COEF_CONST(0.79781416993449272),
-    COEF_CONST(0.79879959993635785),
-    COEF_CONST(0.7997828913113002),
-    COEF_CONST(0.80076404142675273),
-    COEF_CONST(0.80174304765588156),
-    COEF_CONST(0.80271990737759213),
-    COEF_CONST(0.80369461797653707),
-    COEF_CONST(0.80466717684312306),
-    COEF_CONST(0.80563758137351682),
-    COEF_CONST(0.80660582896965372),
-    COEF_CONST(0.80757191703924336),
-    COEF_CONST(0.80853584299577752),
-    COEF_CONST(0.80949760425853612),
-    COEF_CONST(0.81045719825259477),
-    COEF_CONST(0.81141462240883167),
-    COEF_CONST(0.81236987416393436),
-    COEF_CONST(0.81332295096040608),
-    COEF_CONST(0.81427385024657373),
-    COEF_CONST(0.81522256947659355),
-    COEF_CONST(0.81616910611045879),
-    COEF_CONST(0.817113457614006),
-    COEF_CONST(0.81805562145892186),
-    COEF_CONST(0.81899559512275044),
-    COEF_CONST(0.81993337608889916),
-    COEF_CONST(0.82086896184664637),
-    COEF_CONST(0.8218023498911472),
-    COEF_CONST(0.82273353772344116),
-    COEF_CONST(0.82366252285045805),
-    COEF_CONST(0.82458930278502529),
-    COEF_CONST(0.82551387504587381),
-    COEF_CONST(0.82643623715764558),
-    COEF_CONST(0.82735638665089983),
-    COEF_CONST(0.82827432106211907),
-    COEF_CONST(0.82919003793371693),
-    COEF_CONST(0.83010353481404364),
-    COEF_CONST(0.83101480925739324),
-    COEF_CONST(0.83192385882400965),
-    COEF_CONST(0.83283068108009373),
-    COEF_CONST(0.8337352735978093),
-    COEF_CONST(0.83463763395529011),
-    COEF_CONST(0.83553775973664579),
-    COEF_CONST(0.83643564853196872),
-    COEF_CONST(0.83733129793734051),
-    COEF_CONST(0.83822470555483797),
-    COEF_CONST(0.83911586899254031),
-    COEF_CONST(0.84000478586453453),
-    COEF_CONST(0.84089145379092289),
-    COEF_CONST(0.84177587039782842),
-    COEF_CONST(0.84265803331740163),
-    COEF_CONST(0.84353794018782702),
-    COEF_CONST(0.844415588653329),
-    COEF_CONST(0.8452909763641786),
-    COEF_CONST(0.84616410097669936),
-    COEF_CONST(0.84703496015327406),
-    COEF_CONST(0.84790355156235053),
-    COEF_CONST(0.84876987287844818),
-    COEF_CONST(0.8496339217821639),
-    COEF_CONST(0.85049569596017938),
-    COEF_CONST(0.85135519310526508),
-    COEF_CONST(0.85221241091628896),
-    COEF_CONST(0.85306734709822085),
-    COEF_CONST(0.85391999936213903),
-    COEF_CONST(0.85477036542523732),
-    COEF_CONST(0.85561844301082923),
-    COEF_CONST(0.85646422984835635),
-    COEF_CONST(0.85730772367339259),
-    COEF_CONST(0.85814892222765116),
-    COEF_CONST(0.85898782325899026),
-    COEF_CONST(0.85982442452141961),
-    COEF_CONST(0.86065872377510555),
-    COEF_CONST(0.86149071878637817),
-    COEF_CONST(0.8623204073277364),
-    COEF_CONST(0.86314778717785412),
-    COEF_CONST(0.8639728561215867),
-    COEF_CONST(0.86479561194997623),
-    COEF_CONST(0.86561605246025763),
-    COEF_CONST(0.86643417545586487),
-    COEF_CONST(0.8672499787464365),
-    COEF_CONST(0.86806346014782154),
-    COEF_CONST(0.8688746174820855),
-    COEF_CONST(0.86968344857751589),
-    COEF_CONST(0.87048995126862883),
-    COEF_CONST(0.87129412339617363),
-    COEF_CONST(0.87209596280713941),
-    COEF_CONST(0.8728954673547612),
-    COEF_CONST(0.87369263489852422),
-    COEF_CONST(0.87448746330417149),
-    COEF_CONST(0.87527995044370765),
-    COEF_CONST(0.8760700941954066),
-    COEF_CONST(0.87685789244381551),
-    COEF_CONST(0.87764334307976144),
-    COEF_CONST(0.87842644400035663),
-    COEF_CONST(0.8792071931090043),
-    COEF_CONST(0.87998558831540408),
-    COEF_CONST(0.88076162753555787),
-    COEF_CONST(0.88153530869177488),
-    COEF_CONST(0.88230662971267804),
-    COEF_CONST(0.88307558853320878),
-    COEF_CONST(0.88384218309463292),
-    COEF_CONST(0.8846064113445461),
-    COEF_CONST(0.88536827123687933),
-    COEF_CONST(0.88612776073190425),
-    COEF_CONST(0.88688487779623937),
-    COEF_CONST(0.88763962040285393),
-    COEF_CONST(0.8883919865310751),
-    COEF_CONST(0.88914197416659235),
-    COEF_CONST(0.88988958130146301),
-    COEF_CONST(0.8906348059341177),
-    COEF_CONST(0.89137764606936609),
-    COEF_CONST(0.89211809971840139),
-    COEF_CONST(0.89285616489880615),
-    COEF_CONST(0.89359183963455813),
-    COEF_CONST(0.89432512195603453),
-    COEF_CONST(0.89505600990001799),
-    COEF_CONST(0.89578450150970124),
-    COEF_CONST(0.8965105948346932),
-    COEF_CONST(0.89723428793102367),
-    COEF_CONST(0.89795557886114807),
-    COEF_CONST(0.89867446569395382),
-    COEF_CONST(0.89939094650476448),
-    COEF_CONST(0.90010501937534515),
-    COEF_CONST(0.900816682393908),
-    COEF_CONST(0.90152593365511691),
-    COEF_CONST(0.90223277126009283),
-    COEF_CONST(0.90293719331641886),
-    COEF_CONST(0.90363919793814496),
-    COEF_CONST(0.90433878324579353),
-    COEF_CONST(0.90503594736636439),
-    COEF_CONST(0.90573068843333915),
-    COEF_CONST(0.90642300458668679),
-    COEF_CONST(0.90711289397286898),
-    COEF_CONST(0.90780035474484411),
-    COEF_CONST(0.90848538506207266),
-    COEF_CONST(0.90916798309052227),
-    COEF_CONST(0.90984814700267291),
-    COEF_CONST(0.9105258749775208),
-    COEF_CONST(0.91120116520058425),
-    COEF_CONST(0.91187401586390815),
-    COEF_CONST(0.91254442516606893),
-    COEF_CONST(0.9132123913121788),
-    COEF_CONST(0.91387791251389161),
-    COEF_CONST(0.91454098698940678),
-    COEF_CONST(0.91520161296347435),
-    COEF_CONST(0.91585978866739981),
-    COEF_CONST(0.91651551233904871),
-    COEF_CONST(0.91716878222285148),
-    COEF_CONST(0.91781959656980805),
-    COEF_CONST(0.91846795363749245),
-    COEF_CONST(0.91911385169005766),
-    COEF_CONST(0.9197572889982405),
-    COEF_CONST(0.9203982638393654),
-    COEF_CONST(0.92103677449734989),
-    COEF_CONST(0.92167281926270861),
-    COEF_CONST(0.92230639643255874),
-    COEF_CONST(0.92293750431062316),
-    COEF_CONST(0.92356614120723612),
-    COEF_CONST(0.92419230543934783),
-    COEF_CONST(0.92481599533052783),
-    COEF_CONST(0.92543720921097061),
-    COEF_CONST(0.92605594541749991),
-    COEF_CONST(0.92667220229357261),
-    COEF_CONST(0.92728597818928349),
-    COEF_CONST(0.9278972714613698),
-    COEF_CONST(0.92850608047321548),
-    COEF_CONST(0.9291124035948557),
-    COEF_CONST(0.92971623920298097),
-    COEF_CONST(0.93031758568094147),
-    COEF_CONST(0.93091644141875196),
-    COEF_CONST(0.93151280481309506),
-    COEF_CONST(0.93210667426732674),
-    COEF_CONST(0.93269804819147983),
-    COEF_CONST(0.93328692500226818),
-    COEF_CONST(0.93387330312309147),
-    COEF_CONST(0.93445718098403896),
-    COEF_CONST(0.93503855702189376),
-    COEF_CONST(0.9356174296801375),
-    COEF_CONST(0.93619379740895381),
-    COEF_CONST(0.93676765866523259),
-    COEF_CONST(0.93733901191257496),
-    COEF_CONST(0.93790785562129597),
-    COEF_CONST(0.93847418826842988),
-    COEF_CONST(0.93903800833773399),
-    COEF_CONST(0.93959931431969212),
-    COEF_CONST(0.94015810471151917),
-    COEF_CONST(0.94071437801716529),
-    COEF_CONST(0.94126813274731924),
-    COEF_CONST(0.94181936741941319),
-    COEF_CONST(0.94236808055762578),
-    COEF_CONST(0.94291427069288691),
-    COEF_CONST(0.94345793636288133),
-    COEF_CONST(0.94399907611205225),
-    COEF_CONST(0.9445376884916058),
-    COEF_CONST(0.94507377205951448),
-    COEF_CONST(0.94560732538052128),
-    COEF_CONST(0.94613834702614352),
-    COEF_CONST(0.94666683557467624),
-    COEF_CONST(0.94719278961119657),
-    COEF_CONST(0.94771620772756759),
-    COEF_CONST(0.94823708852244104),
-    COEF_CONST(0.94875543060126255),
-    COEF_CONST(0.94927123257627433),
-    COEF_CONST(0.94978449306651924),
-    COEF_CONST(0.95029521069784428),
-    COEF_CONST(0.9508033841029051),
-    COEF_CONST(0.95130901192116835),
-    COEF_CONST(0.9518120927989161),
-    COEF_CONST(0.95231262538924943),
-    COEF_CONST(0.95281060835209208),
-    COEF_CONST(0.95330604035419386),
-    COEF_CONST(0.95379892006913403),
-    COEF_CONST(0.95428924617732525),
-    COEF_CONST(0.95477701736601728),
-    COEF_CONST(0.95526223232929941),
-    COEF_CONST(0.95574488976810545),
-    COEF_CONST(0.95622498839021619),
-    COEF_CONST(0.95670252691026292),
-    COEF_CONST(0.95717750404973156),
-    COEF_CONST(0.95764991853696524),
-    COEF_CONST(0.95811976910716812),
-    COEF_CONST(0.95858705450240911),
-    COEF_CONST(0.95905177347162429),
-    COEF_CONST(0.95951392477062125),
-    COEF_CONST(0.95997350716208196),
-    COEF_CONST(0.96043051941556579),
-    COEF_CONST(0.96088496030751369),
-    COEF_CONST(0.96133682862125036),
-    COEF_CONST(0.96178612314698864),
-    COEF_CONST(0.96223284268183173),
-    COEF_CONST(0.9626769860297768),
-    COEF_CONST(0.96311855200171881),
-    COEF_CONST(0.96355753941545252),
-    COEF_CONST(0.96399394709567654),
-    COEF_CONST(0.96442777387399625),
-    COEF_CONST(0.96485901858892686),
-    COEF_CONST(0.96528768008589627),
-    COEF_CONST(0.96571375721724895),
-    COEF_CONST(0.96613724884224783),
-    COEF_CONST(0.96655815382707866),
-    COEF_CONST(0.96697647104485207),
-    COEF_CONST(0.96739219937560694),
-    COEF_CONST(0.96780533770631338),
-    COEF_CONST(0.96821588493087585),
-    COEF_CONST(0.9686238399501359),
-    COEF_CONST(0.96902920167187501),
-    COEF_CONST(0.96943196901081796),
-    COEF_CONST(0.96983214088863534),
-    COEF_CONST(0.9702297162339466),
-    COEF_CONST(0.97062469398232287),
-    COEF_CONST(0.97101707307629004),
-    COEF_CONST(0.97140685246533098),
-    COEF_CONST(0.97179403110588902),
-    COEF_CONST(0.97217860796137046),
-    COEF_CONST(0.97256058200214734),
-    COEF_CONST(0.97293995220556007),
-    COEF_CONST(0.97331671755592064),
-    COEF_CONST(0.97369087704451474),
-    COEF_CONST(0.97406242966960455),
-    COEF_CONST(0.97443137443643235),
-    COEF_CONST(0.97479771035722163),
-    COEF_CONST(0.97516143645118103),
-    COEF_CONST(0.97552255174450631),
-    COEF_CONST(0.97588105527038305),
-    COEF_CONST(0.97623694606898959),
-    COEF_CONST(0.97659022318749911),
-    COEF_CONST(0.97694088568008242),
-    COEF_CONST(0.97728893260791039),
-    COEF_CONST(0.97763436303915685),
-    COEF_CONST(0.97797717604900047),
-    COEF_CONST(0.97831737071962765),
-    COEF_CONST(0.97865494614023485),
-    COEF_CONST(0.97898990140703124),
-    COEF_CONST(0.97932223562324061),
-    COEF_CONST(0.97965194789910426),
-    COEF_CONST(0.9799790373518833),
-    COEF_CONST(0.98030350310586067),
-    COEF_CONST(0.98062534429234405),
-    COEF_CONST(0.98094456004966768),
-    COEF_CONST(0.98126114952319499),
-    COEF_CONST(0.98157511186532054),
-    COEF_CONST(0.98188644623547261),
-    COEF_CONST(0.98219515180011563),
-    COEF_CONST(0.98250122773275184),
-    COEF_CONST(0.98280467321392362),
-    COEF_CONST(0.98310548743121629),
-    COEF_CONST(0.98340366957925973),
-    COEF_CONST(0.98369921885973044),
-    COEF_CONST(0.98399213448135414),
-    COEF_CONST(0.98428241565990748),
-    COEF_CONST(0.98457006161822058),
-    COEF_CONST(0.98485507158617835),
-    COEF_CONST(0.98513744480072363),
-    COEF_CONST(0.98541718050585803),
-    COEF_CONST(0.98569427795264519),
-    COEF_CONST(0.98596873639921168),
-    COEF_CONST(0.98624055511074971),
-    COEF_CONST(0.98650973335951875),
-    COEF_CONST(0.98677627042484772),
-    COEF_CONST(0.98704016559313645),
-    COEF_CONST(0.98730141815785832),
-    COEF_CONST(0.98756002741956173),
-    COEF_CONST(0.9878159926858715),
-    COEF_CONST(0.98806931327149194),
-    COEF_CONST(0.98831998849820735),
-    COEF_CONST(0.98856801769488489),
-    COEF_CONST(0.98881340019747566),
-    COEF_CONST(0.98905613534901682),
-    COEF_CONST(0.98929622249963345),
-    COEF_CONST(0.98953366100653983),
-    COEF_CONST(0.98976845023404181),
-    COEF_CONST(0.99000058955353776),
-    COEF_CONST(0.99023007834352106),
-    COEF_CONST(0.99045691598958097),
-    COEF_CONST(0.99068110188440506),
-    COEF_CONST(0.99090263542778001),
-    COEF_CONST(0.99112151602659404),
-    COEF_CONST(0.99133774309483769),
-    COEF_CONST(0.99155131605360625),
-    COEF_CONST(0.99176223433110056),
-    COEF_CONST(0.99197049736262888),
-    COEF_CONST(0.99217610459060845),
-    COEF_CONST(0.99237905546456673),
-    COEF_CONST(0.99257934944114334),
-    COEF_CONST(0.99277698598409092),
-    COEF_CONST(0.99297196456427694),
-    COEF_CONST(0.99316428465968509),
-    COEF_CONST(0.99335394575541669),
-    COEF_CONST(0.99354094734369169),
-    COEF_CONST(0.99372528892385081),
-    COEF_CONST(0.99390697000235606),
-    COEF_CONST(0.99408599009279242),
-    COEF_CONST(0.99426234871586938),
-    COEF_CONST(0.99443604539942176),
-    COEF_CONST(0.99460707967841133),
-    COEF_CONST(0.99477545109492771),
-    COEF_CONST(0.99494115919819004),
-    COEF_CONST(0.99510420354454787),
-    COEF_CONST(0.99526458369748239),
-    COEF_CONST(0.99542229922760772),
-    COEF_CONST(0.99557734971267187),
-    COEF_CONST(0.9957297347375581),
-    COEF_CONST(0.99587945389428578),
-    COEF_CONST(0.99602650678201154),
-    COEF_CONST(0.99617089300703077),
-    COEF_CONST(0.996312612182778),
-    COEF_CONST(0.99645166392982831),
-    COEF_CONST(0.99658804787589839),
-    COEF_CONST(0.99672176365584741),
-    COEF_CONST(0.99685281091167788),
-    COEF_CONST(0.99698118929253687),
-    COEF_CONST(0.99710689845471678),
-    COEF_CONST(0.99722993806165661),
-    COEF_CONST(0.99735030778394196),
-    COEF_CONST(0.99746800729930707),
-    COEF_CONST(0.99758303629263489),
-    COEF_CONST(0.99769539445595812),
-    COEF_CONST(0.99780508148846014),
-    COEF_CONST(0.99791209709647588),
-    COEF_CONST(0.99801644099349218),
-    COEF_CONST(0.99811811290014918),
-    COEF_CONST(0.9982171125442405),
-    COEF_CONST(0.9983134396607144),
-    COEF_CONST(0.99840709399167404),
-    COEF_CONST(0.99849807528637868),
-    COEF_CONST(0.99858638330124405),
-    COEF_CONST(0.99867201779984294),
-    COEF_CONST(0.99875497855290607),
-    COEF_CONST(0.99883526533832245),
-    COEF_CONST(0.99891287794114036),
-    COEF_CONST(0.99898781615356746),
-    COEF_CONST(0.99906007977497147),
-    COEF_CONST(0.99912966861188113),
-    COEF_CONST(0.99919658247798593),
-    COEF_CONST(0.99926082119413751),
-    COEF_CONST(0.99932238458834954),
-    COEF_CONST(0.999381272495798),
-    COEF_CONST(0.99943748475882255),
-    COEF_CONST(0.9994910212269259),
-    COEF_CONST(0.99954188175677483),
-    COEF_CONST(0.99959006621220048),
-    COEF_CONST(0.99963557446419837),
-    COEF_CONST(0.99967840639092931),
-    COEF_CONST(0.99971856187771946),
-    COEF_CONST(0.99975604081706027),
-    COEF_CONST(0.99979084310860955),
-    COEF_CONST(0.99982296865919107),
-    COEF_CONST(0.99985241738279484),
-    COEF_CONST(0.99987918920057806),
-    COEF_CONST(0.99990328404086426),
-    COEF_CONST(0.9999247018391445),
-    COEF_CONST(0.99994344253807688),
-    COEF_CONST(0.99995950608748674),
-    COEF_CONST(0.99997289244436727),
-    COEF_CONST(0.99998360157287902),
-    COEF_CONST(0.9999916334443506),
-    COEF_CONST(0.99999698803727821),
-    COEF_CONST(0.99999966533732598)
+    FRAC_CONST(0.00081812299560725323),
+    FRAC_CONST(0.0024543667964602917),
+    FRAC_CONST(0.0040906040262347889),
+    FRAC_CONST(0.0057268303042312674),
+    FRAC_CONST(0.0073630412497795667),
+    FRAC_CONST(0.0089992324822505774),
+    FRAC_CONST(0.010635399621067975),
+    FRAC_CONST(0.012271538285719924),
+    FRAC_CONST(0.013907644095770845),
+    FRAC_CONST(0.015543712670873098),
+    FRAC_CONST(0.017179739630778748),
+    FRAC_CONST(0.018815720595351273),
+    FRAC_CONST(0.020451651184577292),
+    FRAC_CONST(0.022087527018578291),
+    FRAC_CONST(0.023723343717622358),
+    FRAC_CONST(0.025359096902135895),
+    FRAC_CONST(0.02699478219271537),
+    FRAC_CONST(0.028630395210139003),
+    FRAC_CONST(0.030265931575378519),
+    FRAC_CONST(0.031901386909610863),
+    FRAC_CONST(0.033536756834229922),
+    FRAC_CONST(0.035172036970858266),
+    FRAC_CONST(0.036807222941358832),
+    FRAC_CONST(0.038442310367846677),
+    FRAC_CONST(0.040077294872700696),
+    FRAC_CONST(0.041712172078575326),
+    FRAC_CONST(0.043346937608412288),
+    FRAC_CONST(0.044981587085452281),
+    FRAC_CONST(0.046616116133246711),
+    FRAC_CONST(0.048250520375669431),
+    FRAC_CONST(0.049884795436928406),
+    FRAC_CONST(0.051518936941577477),
+    FRAC_CONST(0.053152940514528055),
+    FRAC_CONST(0.05478680178106083),
+    FRAC_CONST(0.056420516366837495),
+    FRAC_CONST(0.05805407989791244),
+    FRAC_CONST(0.059687488000744485),
+    FRAC_CONST(0.061320736302208578),
+    FRAC_CONST(0.062953820429607482),
+    FRAC_CONST(0.064586736010683557),
+    FRAC_CONST(0.066219478673630344),
+    FRAC_CONST(0.06785204404710439),
+    FRAC_CONST(0.069484427760236861),
+    FRAC_CONST(0.071116625442645326),
+    FRAC_CONST(0.072748632724445372),
+    FRAC_CONST(0.07438044523626236),
+    FRAC_CONST(0.076012058609243122),
+    FRAC_CONST(0.077643468475067631),
+    FRAC_CONST(0.079274670465960706),
+    FRAC_CONST(0.080905660214703745),
+    FRAC_CONST(0.082536433354646319),
+    FRAC_CONST(0.084166985519717977),
+    FRAC_CONST(0.085797312344439894),
+    FRAC_CONST(0.08742740946393647),
+    FRAC_CONST(0.089057272513947183),
+    FRAC_CONST(0.090686897130838162),
+    FRAC_CONST(0.092316278951613845),
+    FRAC_CONST(0.093945413613928788),
+    FRAC_CONST(0.095574296756099186),
+    FRAC_CONST(0.097202924017114667),
+    FRAC_CONST(0.098831291036649963),
+    FRAC_CONST(0.10045939345507648),
+    FRAC_CONST(0.10208722691347409),
+    FRAC_CONST(0.10371478705364276),
+    FRAC_CONST(0.10534206951811415),
+    FRAC_CONST(0.10696906995016341),
+    FRAC_CONST(0.10859578399382072),
+    FRAC_CONST(0.11022220729388306),
+    FRAC_CONST(0.11184833549592579),
+    FRAC_CONST(0.11347416424631435),
+    FRAC_CONST(0.11509968919221586),
+    FRAC_CONST(0.11672490598161089),
+    FRAC_CONST(0.11834981026330495),
+    FRAC_CONST(0.11997439768694031),
+    FRAC_CONST(0.12159866390300751),
+    FRAC_CONST(0.12322260456285709),
+    FRAC_CONST(0.12484621531871121),
+    FRAC_CONST(0.12646949182367517),
+    FRAC_CONST(0.12809242973174936),
+    FRAC_CONST(0.12971502469784052),
+    FRAC_CONST(0.13133727237777362),
+    FRAC_CONST(0.13295916842830346),
+    FRAC_CONST(0.13458070850712617),
+    FRAC_CONST(0.13620188827289101),
+    FRAC_CONST(0.1378227033852118),
+    FRAC_CONST(0.13944314950467873),
+    FRAC_CONST(0.14106322229286994),
+    FRAC_CONST(0.14268291741236291),
+    FRAC_CONST(0.14430223052674654),
+    FRAC_CONST(0.1459211573006321),
+    FRAC_CONST(0.14753969339966552),
+    FRAC_CONST(0.14915783449053857),
+    FRAC_CONST(0.15077557624100058),
+    FRAC_CONST(0.15239291431987001),
+    FRAC_CONST(0.1540098443970461),
+    FRAC_CONST(0.15562636214352044),
+    FRAC_CONST(0.15724246323138855),
+    FRAC_CONST(0.15885814333386142),
+    FRAC_CONST(0.16047339812527725),
+    FRAC_CONST(0.16208822328111283),
+    FRAC_CONST(0.16370261447799525),
+    FRAC_CONST(0.16531656739371339),
+    FRAC_CONST(0.16693007770722967),
+    FRAC_CONST(0.16854314109869134),
+    FRAC_CONST(0.17015575324944232),
+    FRAC_CONST(0.17176790984203447),
+    FRAC_CONST(0.17337960656023954),
+    FRAC_CONST(0.1749908390890603),
+    FRAC_CONST(0.17660160311474243),
+    FRAC_CONST(0.17821189432478593),
+    FRAC_CONST(0.17982170840795647),
+    FRAC_CONST(0.18143104105429744),
+    FRAC_CONST(0.18303988795514095),
+    FRAC_CONST(0.1846482448031197),
+    FRAC_CONST(0.18625610729217834),
+    FRAC_CONST(0.1878634711175852),
+    FRAC_CONST(0.18947033197594348),
+    FRAC_CONST(0.19107668556520319),
+    FRAC_CONST(0.19268252758467228),
+    FRAC_CONST(0.19428785373502844),
+    FRAC_CONST(0.19589265971833042),
+    FRAC_CONST(0.19749694123802966),
+    FRAC_CONST(0.19910069399898173),
+    FRAC_CONST(0.20070391370745785),
+    FRAC_CONST(0.20230659607115639),
+    FRAC_CONST(0.20390873679921437),
+    FRAC_CONST(0.20551033160221882),
+    FRAC_CONST(0.20711137619221856),
+    FRAC_CONST(0.2087118662827353),
+    FRAC_CONST(0.21031179758877552),
+    FRAC_CONST(0.21191116582684155),
+    FRAC_CONST(0.21350996671494335),
+    FRAC_CONST(0.21510819597260972),
+    FRAC_CONST(0.21670584932089998),
+    FRAC_CONST(0.2183029224824154),
+    FRAC_CONST(0.21989941118131037),
+    FRAC_CONST(0.22149531114330431),
+    FRAC_CONST(0.22309061809569264),
+    FRAC_CONST(0.22468532776735861),
+    FRAC_CONST(0.22627943588878449),
+    FRAC_CONST(0.22787293819206314),
+    FRAC_CONST(0.22946583041090929),
+    FRAC_CONST(0.23105810828067114),
+    FRAC_CONST(0.23264976753834157),
+    FRAC_CONST(0.23424080392256985),
+    FRAC_CONST(0.2358312131736727),
+    FRAC_CONST(0.23742099103364595),
+    FRAC_CONST(0.23901013324617584),
+    FRAC_CONST(0.24059863555665045),
+    FRAC_CONST(0.24218649371217096),
+    FRAC_CONST(0.24377370346156332),
+    FRAC_CONST(0.24536026055538934),
+    FRAC_CONST(0.24694616074595824),
+    FRAC_CONST(0.24853139978733788),
+    FRAC_CONST(0.25011597343536629),
+    FRAC_CONST(0.25169987744766298),
+    FRAC_CONST(0.25328310758364025),
+    FRAC_CONST(0.25486565960451457),
+    FRAC_CONST(0.25644752927331788),
+    FRAC_CONST(0.25802871235490898),
+    FRAC_CONST(0.25960920461598508),
+    FRAC_CONST(0.26118900182509258),
+    FRAC_CONST(0.26276809975263904),
+    FRAC_CONST(0.264346494170904),
+    FRAC_CONST(0.26592418085405067),
+    FRAC_CONST(0.26750115557813692),
+    FRAC_CONST(0.2690774141211269),
+    FRAC_CONST(0.27065295226290209),
+    FRAC_CONST(0.2722277657852728),
+    FRAC_CONST(0.27380185047198918),
+    FRAC_CONST(0.27537520210875299),
+    FRAC_CONST(0.2769478164832283),
+    FRAC_CONST(0.27851968938505312),
+    FRAC_CONST(0.28009081660585067),
+    FRAC_CONST(0.28166119393924061),
+    FRAC_CONST(0.28323081718085019),
+    FRAC_CONST(0.28479968212832563),
+    FRAC_CONST(0.28636778458134327),
+    FRAC_CONST(0.28793512034162105),
+    FRAC_CONST(0.2895016852129294),
+    FRAC_CONST(0.29106747500110264),
+    FRAC_CONST(0.29263248551405047),
+    FRAC_CONST(0.2941967125617686),
+    FRAC_CONST(0.29576015195635058),
+    FRAC_CONST(0.29732279951199847),
+    FRAC_CONST(0.29888465104503475),
+    FRAC_CONST(0.30044570237391266),
+    FRAC_CONST(0.30200594931922808),
+    FRAC_CONST(0.30356538770373032),
+    FRAC_CONST(0.30512401335233358),
+    FRAC_CONST(0.30668182209212791),
+    FRAC_CONST(0.3082388097523906),
+    FRAC_CONST(0.30979497216459695),
+    FRAC_CONST(0.31135030516243201),
+    FRAC_CONST(0.3129048045818012),
+    FRAC_CONST(0.31445846626084178),
+    FRAC_CONST(0.31601128603993378),
+    FRAC_CONST(0.31756325976171151),
+    FRAC_CONST(0.31911438327107416),
+    FRAC_CONST(0.32066465241519732),
+    FRAC_CONST(0.32221406304354389),
+    FRAC_CONST(0.3237626110078754),
+    FRAC_CONST(0.32531029216226293),
+    FRAC_CONST(0.32685710236309828),
+    FRAC_CONST(0.32840303746910487),
+    FRAC_CONST(0.32994809334134939),
+    FRAC_CONST(0.3314922658432522),
+    FRAC_CONST(0.33303555084059877),
+    FRAC_CONST(0.33457794420155085),
+    FRAC_CONST(0.33611944179665709),
+    FRAC_CONST(0.33766003949886464),
+    FRAC_CONST(0.33919973318352969),
+    FRAC_CONST(0.34073851872842903),
+    FRAC_CONST(0.34227639201377064),
+    FRAC_CONST(0.34381334892220483),
+    FRAC_CONST(0.34534938533883547),
+    FRAC_CONST(0.34688449715123082),
+    FRAC_CONST(0.34841868024943456),
+    FRAC_CONST(0.34995193052597684),
+    FRAC_CONST(0.35148424387588523),
+    FRAC_CONST(0.3530156161966958),
+    FRAC_CONST(0.35454604338846402),
+    FRAC_CONST(0.35607552135377557),
+    FRAC_CONST(0.35760404599775775),
+    FRAC_CONST(0.35913161322809023),
+    FRAC_CONST(0.36065821895501554),
+    FRAC_CONST(0.36218385909135092),
+    FRAC_CONST(0.36370852955249849),
+    FRAC_CONST(0.36523222625645668),
+    FRAC_CONST(0.36675494512383078),
+    FRAC_CONST(0.36827668207784414),
+    FRAC_CONST(0.36979743304434909),
+    FRAC_CONST(0.37131719395183754),
+    FRAC_CONST(0.37283596073145214),
+    FRAC_CONST(0.37435372931699717),
+    FRAC_CONST(0.37587049564494951),
+    FRAC_CONST(0.37738625565446909),
+    FRAC_CONST(0.37890100528741022),
+    FRAC_CONST(0.38041474048833229),
+    FRAC_CONST(0.38192745720451066),
+    FRAC_CONST(0.38343915138594736),
+    FRAC_CONST(0.38494981898538222),
+    FRAC_CONST(0.38645945595830333),
+    FRAC_CONST(0.38796805826295838),
+    FRAC_CONST(0.38947562186036483),
+    FRAC_CONST(0.39098214271432141),
+    FRAC_CONST(0.39248761679141814),
+    FRAC_CONST(0.3939920400610481),
+    FRAC_CONST(0.39549540849541737),
+    FRAC_CONST(0.39699771806955625),
+    FRAC_CONST(0.39849896476132979),
+    FRAC_CONST(0.39999914455144892),
+    FRAC_CONST(0.40149825342348083),
+    FRAC_CONST(0.4029962873638599),
+    FRAC_CONST(0.40449324236189854),
+    FRAC_CONST(0.40598911440979762),
+    FRAC_CONST(0.40748389950265762),
+    FRAC_CONST(0.40897759363848879),
+    FRAC_CONST(0.41047019281822261),
+    FRAC_CONST(0.41196169304572178),
+    FRAC_CONST(0.4134520903277914),
+    FRAC_CONST(0.41494138067418929),
+    FRAC_CONST(0.41642956009763715),
+    FRAC_CONST(0.41791662461383078),
+    FRAC_CONST(0.41940257024145089),
+    FRAC_CONST(0.42088739300217382),
+    FRAC_CONST(0.42237108892068231),
+    FRAC_CONST(0.42385365402467584),
+    FRAC_CONST(0.42533508434488143),
+    FRAC_CONST(0.42681537591506419),
+    FRAC_CONST(0.42829452477203828),
+    FRAC_CONST(0.42977252695567697),
+    FRAC_CONST(0.43124937850892364),
+    FRAC_CONST(0.4327250754778022),
+    FRAC_CONST(0.43419961391142781),
+    FRAC_CONST(0.43567298986201736),
+    FRAC_CONST(0.43714519938489987),
+    FRAC_CONST(0.43861623853852766),
+    FRAC_CONST(0.44008610338448595),
+    FRAC_CONST(0.44155478998750436),
+    FRAC_CONST(0.44302229441546676),
+    FRAC_CONST(0.4444886127394222),
+    FRAC_CONST(0.44595374103359531),
+    FRAC_CONST(0.44741767537539667),
+    FRAC_CONST(0.44888041184543348),
+    FRAC_CONST(0.45034194652752002),
+    FRAC_CONST(0.45180227550868812),
+    FRAC_CONST(0.45326139487919759),
+    FRAC_CONST(0.45471930073254679),
+    FRAC_CONST(0.45617598916548296),
+    FRAC_CONST(0.45763145627801283),
+    FRAC_CONST(0.45908569817341294),
+    FRAC_CONST(0.46053871095824001),
+    FRAC_CONST(0.46199049074234161),
+    FRAC_CONST(0.46344103363886635),
+    FRAC_CONST(0.46489033576427435),
+    FRAC_CONST(0.46633839323834758),
+    FRAC_CONST(0.46778520218420055),
+    FRAC_CONST(0.46923075872829029),
+    FRAC_CONST(0.47067505900042683),
+    FRAC_CONST(0.47211809913378361),
+    FRAC_CONST(0.47355987526490806),
+    FRAC_CONST(0.47500038353373153),
+    FRAC_CONST(0.47643962008357982),
+    FRAC_CONST(0.47787758106118372),
+    FRAC_CONST(0.47931426261668875),
+    FRAC_CONST(0.48074966090366611),
+    FRAC_CONST(0.48218377207912272),
+    FRAC_CONST(0.48361659230351117),
+    FRAC_CONST(0.48504811774074069),
+    FRAC_CONST(0.48647834455818684),
+    FRAC_CONST(0.48790726892670194),
+    FRAC_CONST(0.48933488702062544),
+    FRAC_CONST(0.49076119501779414),
+    FRAC_CONST(0.49218618909955225),
+    FRAC_CONST(0.4936098654507618),
+    FRAC_CONST(0.49503222025981269),
+    FRAC_CONST(0.49645324971863303),
+    FRAC_CONST(0.49787295002269943),
+    FRAC_CONST(0.49929131737104687),
+    FRAC_CONST(0.50070834796627917),
+    FRAC_CONST(0.50212403801457872),
+    FRAC_CONST(0.50353838372571758),
+    FRAC_CONST(0.50495138131306638),
+    FRAC_CONST(0.50636302699360547),
+    FRAC_CONST(0.50777331698793449),
+    FRAC_CONST(0.50918224752028263),
+    FRAC_CONST(0.51058981481851906),
+    FRAC_CONST(0.51199601511416237),
+    FRAC_CONST(0.51340084464239111),
+    FRAC_CONST(0.51480429964205421),
+    FRAC_CONST(0.51620637635567967),
+    FRAC_CONST(0.51760707102948678),
+    FRAC_CONST(0.51900637991339404),
+    FRAC_CONST(0.5204042992610306),
+    FRAC_CONST(0.52180082532974559),
+    FRAC_CONST(0.5231959543806185),
+    FRAC_CONST(0.52458968267846895),
+    FRAC_CONST(0.52598200649186677),
+    FRAC_CONST(0.52737292209314235),
+    FRAC_CONST(0.52876242575839572),
+    FRAC_CONST(0.53015051376750777),
+    FRAC_CONST(0.53153718240414882),
+    FRAC_CONST(0.53292242795578992),
+    FRAC_CONST(0.53430624671371152),
+    FRAC_CONST(0.53568863497301467),
+    FRAC_CONST(0.5370695890326298),
+    FRAC_CONST(0.5384491051953274),
+    FRAC_CONST(0.53982717976772743),
+    FRAC_CONST(0.54120380906030963),
+    FRAC_CONST(0.54257898938742311),
+    FRAC_CONST(0.54395271706729609),
+    FRAC_CONST(0.54532498842204646),
+    FRAC_CONST(0.54669579977769045),
+    FRAC_CONST(0.54806514746415402),
+    FRAC_CONST(0.54943302781528081),
+    FRAC_CONST(0.55079943716884383),
+    FRAC_CONST(0.55216437186655387),
+    FRAC_CONST(0.55352782825406999),
+    FRAC_CONST(0.55488980268100907),
+    FRAC_CONST(0.55625029150095584),
+    FRAC_CONST(0.55760929107147217),
+    FRAC_CONST(0.55896679775410718),
+    FRAC_CONST(0.56032280791440714),
+    FRAC_CONST(0.56167731792192455),
+    FRAC_CONST(0.56303032415022869),
+    FRAC_CONST(0.56438182297691453),
+    FRAC_CONST(0.56573181078361312),
+    FRAC_CONST(0.56708028395600085),
+    FRAC_CONST(0.56842723888380908),
+    FRAC_CONST(0.56977267196083425),
+    FRAC_CONST(0.57111657958494688),
+    FRAC_CONST(0.5724589581581021),
+    FRAC_CONST(0.57379980408634845),
+    FRAC_CONST(0.57513911377983773),
+    FRAC_CONST(0.57647688365283478),
+    FRAC_CONST(0.57781311012372738),
+    FRAC_CONST(0.57914778961503466),
+    FRAC_CONST(0.58048091855341843),
+    FRAC_CONST(0.5818124933696911),
+    FRAC_CONST(0.58314251049882604),
+    FRAC_CONST(0.58447096637996743),
+    FRAC_CONST(0.58579785745643886),
+    FRAC_CONST(0.5871231801757536),
+    FRAC_CONST(0.58844693098962408),
+    FRAC_CONST(0.58976910635397084),
+    FRAC_CONST(0.59108970272893235),
+    FRAC_CONST(0.59240871657887517),
+    FRAC_CONST(0.59372614437240179),
+    FRAC_CONST(0.59504198258236196),
+    FRAC_CONST(0.5963562276858605),
+    FRAC_CONST(0.59766887616426767),
+    FRAC_CONST(0.5989799245032289),
+    FRAC_CONST(0.60028936919267273),
+    FRAC_CONST(0.60159720672682204),
+    FRAC_CONST(0.60290343360420195),
+    FRAC_CONST(0.60420804632765002),
+    FRAC_CONST(0.60551104140432543),
+    FRAC_CONST(0.60681241534571839),
+    FRAC_CONST(0.60811216466765883),
+    FRAC_CONST(0.60941028589032709),
+    FRAC_CONST(0.61070677553826169),
+    FRAC_CONST(0.61200163014036979),
+    FRAC_CONST(0.61329484622993602),
+    FRAC_CONST(0.6145864203446314),
+    FRAC_CONST(0.61587634902652377),
+    FRAC_CONST(0.61716462882208556),
+    FRAC_CONST(0.61845125628220421),
+    FRAC_CONST(0.61973622796219074),
+    FRAC_CONST(0.6210195404217892),
+    FRAC_CONST(0.62230119022518593),
+    FRAC_CONST(0.62358117394101897),
+    FRAC_CONST(0.62485948814238634),
+    FRAC_CONST(0.62613612940685637),
+    FRAC_CONST(0.62741109431647646),
+    FRAC_CONST(0.62868437945778133),
+    FRAC_CONST(0.62995598142180387),
+    FRAC_CONST(0.6312258968040827),
+    FRAC_CONST(0.63249412220467238),
+    FRAC_CONST(0.63376065422815175),
+    FRAC_CONST(0.63502548948363347),
+    FRAC_CONST(0.63628862458477287),
+    FRAC_CONST(0.63755005614977711),
+    FRAC_CONST(0.63880978080141437),
+    FRAC_CONST(0.6400677951670225),
+    FRAC_CONST(0.6413240958785188),
+    FRAC_CONST(0.64257867957240766),
+    FRAC_CONST(0.6438315428897915),
+    FRAC_CONST(0.64508268247637779),
+    FRAC_CONST(0.64633209498248945),
+    FRAC_CONST(0.64757977706307335),
+    FRAC_CONST(0.64882572537770888),
+    FRAC_CONST(0.65006993659061751),
+    FRAC_CONST(0.65131240737067142),
+    FRAC_CONST(0.65255313439140239),
+    FRAC_CONST(0.65379211433101081),
+    FRAC_CONST(0.65502934387237444),
+    FRAC_CONST(0.6562648197030575),
+    FRAC_CONST(0.65749853851531959),
+    FRAC_CONST(0.65873049700612374),
+    FRAC_CONST(0.65996069187714679),
+    FRAC_CONST(0.66118911983478657),
+    FRAC_CONST(0.66241577759017178),
+    FRAC_CONST(0.66364066185917048),
+    FRAC_CONST(0.66486376936239888),
+    FRAC_CONST(0.66608509682523009),
+    FRAC_CONST(0.66730464097780284),
+    FRAC_CONST(0.66852239855503071),
+    FRAC_CONST(0.66973836629660977),
+    FRAC_CONST(0.67095254094702894),
+    FRAC_CONST(0.67216491925557675),
+    FRAC_CONST(0.67337549797635199),
+    FRAC_CONST(0.67458427386827102),
+    FRAC_CONST(0.67579124369507693),
+    FRAC_CONST(0.67699640422534846),
+    FRAC_CONST(0.67819975223250772),
+    FRAC_CONST(0.6794012844948305),
+    FRAC_CONST(0.68060099779545302),
+    FRAC_CONST(0.68179888892238183),
+    FRAC_CONST(0.6829949546685018),
+    FRAC_CONST(0.68418919183158522),
+    FRAC_CONST(0.68538159721429948),
+    FRAC_CONST(0.6865721676242168),
+    FRAC_CONST(0.68776089987382172),
+    FRAC_CONST(0.68894779078052026),
+    FRAC_CONST(0.69013283716664853),
+    FRAC_CONST(0.69131603585948032),
+    FRAC_CONST(0.69249738369123692),
+    FRAC_CONST(0.69367687749909468),
+    FRAC_CONST(0.69485451412519361),
+    FRAC_CONST(0.69603029041664599),
+    FRAC_CONST(0.6972042032255451),
+    FRAC_CONST(0.6983762494089728),
+    FRAC_CONST(0.69954642582900894),
+    FRAC_CONST(0.70071472935273893),
+    FRAC_CONST(0.70188115685226271),
+    FRAC_CONST(0.703045705204703),
+    FRAC_CONST(0.70420837129221303),
+    FRAC_CONST(0.70536915200198613),
+    FRAC_CONST(0.70652804422626281),
+    FRAC_CONST(0.70768504486233985),
+    FRAC_CONST(0.70884015081257845),
+    FRAC_CONST(0.70999335898441229),
+    FRAC_CONST(0.711144666290356),
+    FRAC_CONST(0.71229406964801356),
+    FRAC_CONST(0.71344156598008623),
+    FRAC_CONST(0.71458715221438096),
+    FRAC_CONST(0.71573082528381871),
+    FRAC_CONST(0.71687258212644234),
+    FRAC_CONST(0.7180124196854254),
+    FRAC_CONST(0.71915033490907943),
+    FRAC_CONST(0.72028632475086318),
+    FRAC_CONST(0.72142038616938997),
+    FRAC_CONST(0.72255251612843596),
+    FRAC_CONST(0.72368271159694852),
+    FRAC_CONST(0.72481096954905444),
+    FRAC_CONST(0.72593728696406756),
+    FRAC_CONST(0.72706166082649704),
+    FRAC_CONST(0.72818408812605595),
+    FRAC_CONST(0.72930456585766834),
+    FRAC_CONST(0.73042309102147851),
+    FRAC_CONST(0.73153966062285747),
+    FRAC_CONST(0.73265427167241282),
+    FRAC_CONST(0.73376692118599507),
+    FRAC_CONST(0.73487760618470677),
+    FRAC_CONST(0.73598632369490979),
+    FRAC_CONST(0.73709307074823405),
+    FRAC_CONST(0.73819784438158409),
+    FRAC_CONST(0.73930064163714881),
+    FRAC_CONST(0.74040145956240788),
+    FRAC_CONST(0.74150029521014049),
+    FRAC_CONST(0.74259714563843304),
+    FRAC_CONST(0.74369200791068657),
+    FRAC_CONST(0.74478487909562552),
+    FRAC_CONST(0.74587575626730485),
+    FRAC_CONST(0.74696463650511791),
+    FRAC_CONST(0.74805151689380456),
+    FRAC_CONST(0.74913639452345926),
+    FRAC_CONST(0.75021926648953785),
+    FRAC_CONST(0.75130012989286621),
+    FRAC_CONST(0.7523789818396478),
+    FRAC_CONST(0.75345581944147111),
+    FRAC_CONST(0.75453063981531809),
+    FRAC_CONST(0.75560344008357094),
+    FRAC_CONST(0.75667421737402052),
+    FRAC_CONST(0.7577429688198738),
+    FRAC_CONST(0.75880969155976163),
+    FRAC_CONST(0.75987438273774599),
+    FRAC_CONST(0.76093703950332836),
+    FRAC_CONST(0.76199765901145666),
+    FRAC_CONST(0.76305623842253345),
+    FRAC_CONST(0.76411277490242291),
+    FRAC_CONST(0.76516726562245885),
+    FRAC_CONST(0.76621970775945258),
+    FRAC_CONST(0.76727009849569949),
+    FRAC_CONST(0.76831843501898767),
+    FRAC_CONST(0.76936471452260458),
+    FRAC_CONST(0.77040893420534517),
+    FRAC_CONST(0.77145109127151923),
+    FRAC_CONST(0.77249118293095853),
+    FRAC_CONST(0.77352920639902467),
+    FRAC_CONST(0.77456515889661659),
+    FRAC_CONST(0.77559903765017746),
+    FRAC_CONST(0.7766308398917029),
+    FRAC_CONST(0.77766056285874774),
+    FRAC_CONST(0.77868820379443371),
+    FRAC_CONST(0.77971375994745684),
+    FRAC_CONST(0.78073722857209438),
+    FRAC_CONST(0.7817586069282132),
+    FRAC_CONST(0.78277789228127592),
+    FRAC_CONST(0.78379508190234881),
+    FRAC_CONST(0.78481017306810918),
+    FRAC_CONST(0.78582316306085265),
+    FRAC_CONST(0.78683404916849986),
+    FRAC_CONST(0.78784282868460476),
+    FRAC_CONST(0.78884949890836087),
+    FRAC_CONST(0.78985405714460888),
+    FRAC_CONST(0.7908565007038445),
+    FRAC_CONST(0.79185682690222425),
+    FRAC_CONST(0.79285503306157412),
+    FRAC_CONST(0.79385111650939566),
+    FRAC_CONST(0.79484507457887377),
+    FRAC_CONST(0.79583690460888357),
+    FRAC_CONST(0.79682660394399751),
+    FRAC_CONST(0.79781416993449272),
+    FRAC_CONST(0.79879959993635785),
+    FRAC_CONST(0.7997828913113002),
+    FRAC_CONST(0.80076404142675273),
+    FRAC_CONST(0.80174304765588156),
+    FRAC_CONST(0.80271990737759213),
+    FRAC_CONST(0.80369461797653707),
+    FRAC_CONST(0.80466717684312306),
+    FRAC_CONST(0.80563758137351682),
+    FRAC_CONST(0.80660582896965372),
+    FRAC_CONST(0.80757191703924336),
+    FRAC_CONST(0.80853584299577752),
+    FRAC_CONST(0.80949760425853612),
+    FRAC_CONST(0.81045719825259477),
+    FRAC_CONST(0.81141462240883167),
+    FRAC_CONST(0.81236987416393436),
+    FRAC_CONST(0.81332295096040608),
+    FRAC_CONST(0.81427385024657373),
+    FRAC_CONST(0.81522256947659355),
+    FRAC_CONST(0.81616910611045879),
+    FRAC_CONST(0.817113457614006),
+    FRAC_CONST(0.81805562145892186),
+    FRAC_CONST(0.81899559512275044),
+    FRAC_CONST(0.81993337608889916),
+    FRAC_CONST(0.82086896184664637),
+    FRAC_CONST(0.8218023498911472),
+    FRAC_CONST(0.82273353772344116),
+    FRAC_CONST(0.82366252285045805),
+    FRAC_CONST(0.82458930278502529),
+    FRAC_CONST(0.82551387504587381),
+    FRAC_CONST(0.82643623715764558),
+    FRAC_CONST(0.82735638665089983),
+    FRAC_CONST(0.82827432106211907),
+    FRAC_CONST(0.82919003793371693),
+    FRAC_CONST(0.83010353481404364),
+    FRAC_CONST(0.83101480925739324),
+    FRAC_CONST(0.83192385882400965),
+    FRAC_CONST(0.83283068108009373),
+    FRAC_CONST(0.8337352735978093),
+    FRAC_CONST(0.83463763395529011),
+    FRAC_CONST(0.83553775973664579),
+    FRAC_CONST(0.83643564853196872),
+    FRAC_CONST(0.83733129793734051),
+    FRAC_CONST(0.83822470555483797),
+    FRAC_CONST(0.83911586899254031),
+    FRAC_CONST(0.84000478586453453),
+    FRAC_CONST(0.84089145379092289),
+    FRAC_CONST(0.84177587039782842),
+    FRAC_CONST(0.84265803331740163),
+    FRAC_CONST(0.84353794018782702),
+    FRAC_CONST(0.844415588653329),
+    FRAC_CONST(0.8452909763641786),
+    FRAC_CONST(0.84616410097669936),
+    FRAC_CONST(0.84703496015327406),
+    FRAC_CONST(0.84790355156235053),
+    FRAC_CONST(0.84876987287844818),
+    FRAC_CONST(0.8496339217821639),
+    FRAC_CONST(0.85049569596017938),
+    FRAC_CONST(0.85135519310526508),
+    FRAC_CONST(0.85221241091628896),
+    FRAC_CONST(0.85306734709822085),
+    FRAC_CONST(0.85391999936213903),
+    FRAC_CONST(0.85477036542523732),
+    FRAC_CONST(0.85561844301082923),
+    FRAC_CONST(0.85646422984835635),
+    FRAC_CONST(0.85730772367339259),
+    FRAC_CONST(0.85814892222765116),
+    FRAC_CONST(0.85898782325899026),
+    FRAC_CONST(0.85982442452141961),
+    FRAC_CONST(0.86065872377510555),
+    FRAC_CONST(0.86149071878637817),
+    FRAC_CONST(0.8623204073277364),
+    FRAC_CONST(0.86314778717785412),
+    FRAC_CONST(0.8639728561215867),
+    FRAC_CONST(0.86479561194997623),
+    FRAC_CONST(0.86561605246025763),
+    FRAC_CONST(0.86643417545586487),
+    FRAC_CONST(0.8672499787464365),
+    FRAC_CONST(0.86806346014782154),
+    FRAC_CONST(0.8688746174820855),
+    FRAC_CONST(0.86968344857751589),
+    FRAC_CONST(0.87048995126862883),
+    FRAC_CONST(0.87129412339617363),
+    FRAC_CONST(0.87209596280713941),
+    FRAC_CONST(0.8728954673547612),
+    FRAC_CONST(0.87369263489852422),
+    FRAC_CONST(0.87448746330417149),
+    FRAC_CONST(0.87527995044370765),
+    FRAC_CONST(0.8760700941954066),
+    FRAC_CONST(0.87685789244381551),
+    FRAC_CONST(0.87764334307976144),
+    FRAC_CONST(0.87842644400035663),
+    FRAC_CONST(0.8792071931090043),
+    FRAC_CONST(0.87998558831540408),
+    FRAC_CONST(0.88076162753555787),
+    FRAC_CONST(0.88153530869177488),
+    FRAC_CONST(0.88230662971267804),
+    FRAC_CONST(0.88307558853320878),
+    FRAC_CONST(0.88384218309463292),
+    FRAC_CONST(0.8846064113445461),
+    FRAC_CONST(0.88536827123687933),
+    FRAC_CONST(0.88612776073190425),
+    FRAC_CONST(0.88688487779623937),
+    FRAC_CONST(0.88763962040285393),
+    FRAC_CONST(0.8883919865310751),
+    FRAC_CONST(0.88914197416659235),
+    FRAC_CONST(0.88988958130146301),
+    FRAC_CONST(0.8906348059341177),
+    FRAC_CONST(0.89137764606936609),
+    FRAC_CONST(0.89211809971840139),
+    FRAC_CONST(0.89285616489880615),
+    FRAC_CONST(0.89359183963455813),
+    FRAC_CONST(0.89432512195603453),
+    FRAC_CONST(0.89505600990001799),
+    FRAC_CONST(0.89578450150970124),
+    FRAC_CONST(0.8965105948346932),
+    FRAC_CONST(0.89723428793102367),
+    FRAC_CONST(0.89795557886114807),
+    FRAC_CONST(0.89867446569395382),
+    FRAC_CONST(0.89939094650476448),
+    FRAC_CONST(0.90010501937534515),
+    FRAC_CONST(0.900816682393908),
+    FRAC_CONST(0.90152593365511691),
+    FRAC_CONST(0.90223277126009283),
+    FRAC_CONST(0.90293719331641886),
+    FRAC_CONST(0.90363919793814496),
+    FRAC_CONST(0.90433878324579353),
+    FRAC_CONST(0.90503594736636439),
+    FRAC_CONST(0.90573068843333915),
+    FRAC_CONST(0.90642300458668679),
+    FRAC_CONST(0.90711289397286898),
+    FRAC_CONST(0.90780035474484411),
+    FRAC_CONST(0.90848538506207266),
+    FRAC_CONST(0.90916798309052227),
+    FRAC_CONST(0.90984814700267291),
+    FRAC_CONST(0.9105258749775208),
+    FRAC_CONST(0.91120116520058425),
+    FRAC_CONST(0.91187401586390815),
+    FRAC_CONST(0.91254442516606893),
+    FRAC_CONST(0.9132123913121788),
+    FRAC_CONST(0.91387791251389161),
+    FRAC_CONST(0.91454098698940678),
+    FRAC_CONST(0.91520161296347435),
+    FRAC_CONST(0.91585978866739981),
+    FRAC_CONST(0.91651551233904871),
+    FRAC_CONST(0.91716878222285148),
+    FRAC_CONST(0.91781959656980805),
+    FRAC_CONST(0.91846795363749245),
+    FRAC_CONST(0.91911385169005766),
+    FRAC_CONST(0.9197572889982405),
+    FRAC_CONST(0.9203982638393654),
+    FRAC_CONST(0.92103677449734989),
+    FRAC_CONST(0.92167281926270861),
+    FRAC_CONST(0.92230639643255874),
+    FRAC_CONST(0.92293750431062316),
+    FRAC_CONST(0.92356614120723612),
+    FRAC_CONST(0.92419230543934783),
+    FRAC_CONST(0.92481599533052783),
+    FRAC_CONST(0.92543720921097061),
+    FRAC_CONST(0.92605594541749991),
+    FRAC_CONST(0.92667220229357261),
+    FRAC_CONST(0.92728597818928349),
+    FRAC_CONST(0.9278972714613698),
+    FRAC_CONST(0.92850608047321548),
+    FRAC_CONST(0.9291124035948557),
+    FRAC_CONST(0.92971623920298097),
+    FRAC_CONST(0.93031758568094147),
+    FRAC_CONST(0.93091644141875196),
+    FRAC_CONST(0.93151280481309506),
+    FRAC_CONST(0.93210667426732674),
+    FRAC_CONST(0.93269804819147983),
+    FRAC_CONST(0.93328692500226818),
+    FRAC_CONST(0.93387330312309147),
+    FRAC_CONST(0.93445718098403896),
+    FRAC_CONST(0.93503855702189376),
+    FRAC_CONST(0.9356174296801375),
+    FRAC_CONST(0.93619379740895381),
+    FRAC_CONST(0.93676765866523259),
+    FRAC_CONST(0.93733901191257496),
+    FRAC_CONST(0.93790785562129597),
+    FRAC_CONST(0.93847418826842988),
+    FRAC_CONST(0.93903800833773399),
+    FRAC_CONST(0.93959931431969212),
+    FRAC_CONST(0.94015810471151917),
+    FRAC_CONST(0.94071437801716529),
+    FRAC_CONST(0.94126813274731924),
+    FRAC_CONST(0.94181936741941319),
+    FRAC_CONST(0.94236808055762578),
+    FRAC_CONST(0.94291427069288691),
+    FRAC_CONST(0.94345793636288133),
+    FRAC_CONST(0.94399907611205225),
+    FRAC_CONST(0.9445376884916058),
+    FRAC_CONST(0.94507377205951448),
+    FRAC_CONST(0.94560732538052128),
+    FRAC_CONST(0.94613834702614352),
+    FRAC_CONST(0.94666683557467624),
+    FRAC_CONST(0.94719278961119657),
+    FRAC_CONST(0.94771620772756759),
+    FRAC_CONST(0.94823708852244104),
+    FRAC_CONST(0.94875543060126255),
+    FRAC_CONST(0.94927123257627433),
+    FRAC_CONST(0.94978449306651924),
+    FRAC_CONST(0.95029521069784428),
+    FRAC_CONST(0.9508033841029051),
+    FRAC_CONST(0.95130901192116835),
+    FRAC_CONST(0.9518120927989161),
+    FRAC_CONST(0.95231262538924943),
+    FRAC_CONST(0.95281060835209208),
+    FRAC_CONST(0.95330604035419386),
+    FRAC_CONST(0.95379892006913403),
+    FRAC_CONST(0.95428924617732525),
+    FRAC_CONST(0.95477701736601728),
+    FRAC_CONST(0.95526223232929941),
+    FRAC_CONST(0.95574488976810545),
+    FRAC_CONST(0.95622498839021619),
+    FRAC_CONST(0.95670252691026292),
+    FRAC_CONST(0.95717750404973156),
+    FRAC_CONST(0.95764991853696524),
+    FRAC_CONST(0.95811976910716812),
+    FRAC_CONST(0.95858705450240911),
+    FRAC_CONST(0.95905177347162429),
+    FRAC_CONST(0.95951392477062125),
+    FRAC_CONST(0.95997350716208196),
+    FRAC_CONST(0.96043051941556579),
+    FRAC_CONST(0.96088496030751369),
+    FRAC_CONST(0.96133682862125036),
+    FRAC_CONST(0.96178612314698864),
+    FRAC_CONST(0.96223284268183173),
+    FRAC_CONST(0.9626769860297768),
+    FRAC_CONST(0.96311855200171881),
+    FRAC_CONST(0.96355753941545252),
+    FRAC_CONST(0.96399394709567654),
+    FRAC_CONST(0.96442777387399625),
+    FRAC_CONST(0.96485901858892686),
+    FRAC_CONST(0.96528768008589627),
+    FRAC_CONST(0.96571375721724895),
+    FRAC_CONST(0.96613724884224783),
+    FRAC_CONST(0.96655815382707866),
+    FRAC_CONST(0.96697647104485207),
+    FRAC_CONST(0.96739219937560694),
+    FRAC_CONST(0.96780533770631338),
+    FRAC_CONST(0.96821588493087585),
+    FRAC_CONST(0.9686238399501359),
+    FRAC_CONST(0.96902920167187501),
+    FRAC_CONST(0.96943196901081796),
+    FRAC_CONST(0.96983214088863534),
+    FRAC_CONST(0.9702297162339466),
+    FRAC_CONST(0.97062469398232287),
+    FRAC_CONST(0.97101707307629004),
+    FRAC_CONST(0.97140685246533098),
+    FRAC_CONST(0.97179403110588902),
+    FRAC_CONST(0.97217860796137046),
+    FRAC_CONST(0.97256058200214734),
+    FRAC_CONST(0.97293995220556007),
+    FRAC_CONST(0.97331671755592064),
+    FRAC_CONST(0.97369087704451474),
+    FRAC_CONST(0.97406242966960455),
+    FRAC_CONST(0.97443137443643235),
+    FRAC_CONST(0.97479771035722163),
+    FRAC_CONST(0.97516143645118103),
+    FRAC_CONST(0.97552255174450631),
+    FRAC_CONST(0.97588105527038305),
+    FRAC_CONST(0.97623694606898959),
+    FRAC_CONST(0.97659022318749911),
+    FRAC_CONST(0.97694088568008242),
+    FRAC_CONST(0.97728893260791039),
+    FRAC_CONST(0.97763436303915685),
+    FRAC_CONST(0.97797717604900047),
+    FRAC_CONST(0.97831737071962765),
+    FRAC_CONST(0.97865494614023485),
+    FRAC_CONST(0.97898990140703124),
+    FRAC_CONST(0.97932223562324061),
+    FRAC_CONST(0.97965194789910426),
+    FRAC_CONST(0.9799790373518833),
+    FRAC_CONST(0.98030350310586067),
+    FRAC_CONST(0.98062534429234405),
+    FRAC_CONST(0.98094456004966768),
+    FRAC_CONST(0.98126114952319499),
+    FRAC_CONST(0.98157511186532054),
+    FRAC_CONST(0.98188644623547261),
+    FRAC_CONST(0.98219515180011563),
+    FRAC_CONST(0.98250122773275184),
+    FRAC_CONST(0.98280467321392362),
+    FRAC_CONST(0.98310548743121629),
+    FRAC_CONST(0.98340366957925973),
+    FRAC_CONST(0.98369921885973044),
+    FRAC_CONST(0.98399213448135414),
+    FRAC_CONST(0.98428241565990748),
+    FRAC_CONST(0.98457006161822058),
+    FRAC_CONST(0.98485507158617835),
+    FRAC_CONST(0.98513744480072363),
+    FRAC_CONST(0.98541718050585803),
+    FRAC_CONST(0.98569427795264519),
+    FRAC_CONST(0.98596873639921168),
+    FRAC_CONST(0.98624055511074971),
+    FRAC_CONST(0.98650973335951875),
+    FRAC_CONST(0.98677627042484772),
+    FRAC_CONST(0.98704016559313645),
+    FRAC_CONST(0.98730141815785832),
+    FRAC_CONST(0.98756002741956173),
+    FRAC_CONST(0.9878159926858715),
+    FRAC_CONST(0.98806931327149194),
+    FRAC_CONST(0.98831998849820735),
+    FRAC_CONST(0.98856801769488489),
+    FRAC_CONST(0.98881340019747566),
+    FRAC_CONST(0.98905613534901682),
+    FRAC_CONST(0.98929622249963345),
+    FRAC_CONST(0.98953366100653983),
+    FRAC_CONST(0.98976845023404181),
+    FRAC_CONST(0.99000058955353776),
+    FRAC_CONST(0.99023007834352106),
+    FRAC_CONST(0.99045691598958097),
+    FRAC_CONST(0.99068110188440506),
+    FRAC_CONST(0.99090263542778001),
+    FRAC_CONST(0.99112151602659404),
+    FRAC_CONST(0.99133774309483769),
+    FRAC_CONST(0.99155131605360625),
+    FRAC_CONST(0.99176223433110056),
+    FRAC_CONST(0.99197049736262888),
+    FRAC_CONST(0.99217610459060845),
+    FRAC_CONST(0.99237905546456673),
+    FRAC_CONST(0.99257934944114334),
+    FRAC_CONST(0.99277698598409092),
+    FRAC_CONST(0.99297196456427694),
+    FRAC_CONST(0.99316428465968509),
+    FRAC_CONST(0.99335394575541669),
+    FRAC_CONST(0.99354094734369169),
+    FRAC_CONST(0.99372528892385081),
+    FRAC_CONST(0.99390697000235606),
+    FRAC_CONST(0.99408599009279242),
+    FRAC_CONST(0.99426234871586938),
+    FRAC_CONST(0.99443604539942176),
+    FRAC_CONST(0.99460707967841133),
+    FRAC_CONST(0.99477545109492771),
+    FRAC_CONST(0.99494115919819004),
+    FRAC_CONST(0.99510420354454787),
+    FRAC_CONST(0.99526458369748239),
+    FRAC_CONST(0.99542229922760772),
+    FRAC_CONST(0.99557734971267187),
+    FRAC_CONST(0.9957297347375581),
+    FRAC_CONST(0.99587945389428578),
+    FRAC_CONST(0.99602650678201154),
+    FRAC_CONST(0.99617089300703077),
+    FRAC_CONST(0.996312612182778),
+    FRAC_CONST(0.99645166392982831),
+    FRAC_CONST(0.99658804787589839),
+    FRAC_CONST(0.99672176365584741),
+    FRAC_CONST(0.99685281091167788),
+    FRAC_CONST(0.99698118929253687),
+    FRAC_CONST(0.99710689845471678),
+    FRAC_CONST(0.99722993806165661),
+    FRAC_CONST(0.99735030778394196),
+    FRAC_CONST(0.99746800729930707),
+    FRAC_CONST(0.99758303629263489),
+    FRAC_CONST(0.99769539445595812),
+    FRAC_CONST(0.99780508148846014),
+    FRAC_CONST(0.99791209709647588),
+    FRAC_CONST(0.99801644099349218),
+    FRAC_CONST(0.99811811290014918),
+    FRAC_CONST(0.9982171125442405),
+    FRAC_CONST(0.9983134396607144),
+    FRAC_CONST(0.99840709399167404),
+    FRAC_CONST(0.99849807528637868),
+    FRAC_CONST(0.99858638330124405),
+    FRAC_CONST(0.99867201779984294),
+    FRAC_CONST(0.99875497855290607),
+    FRAC_CONST(0.99883526533832245),
+    FRAC_CONST(0.99891287794114036),
+    FRAC_CONST(0.99898781615356746),
+    FRAC_CONST(0.99906007977497147),
+    FRAC_CONST(0.99912966861188113),
+    FRAC_CONST(0.99919658247798593),
+    FRAC_CONST(0.99926082119413751),
+    FRAC_CONST(0.99932238458834954),
+    FRAC_CONST(0.999381272495798),
+    FRAC_CONST(0.99943748475882255),
+    FRAC_CONST(0.9994910212269259),
+    FRAC_CONST(0.99954188175677483),
+    FRAC_CONST(0.99959006621220048),
+    FRAC_CONST(0.99963557446419837),
+    FRAC_CONST(0.99967840639092931),
+    FRAC_CONST(0.99971856187771946),
+    FRAC_CONST(0.99975604081706027),
+    FRAC_CONST(0.99979084310860955),
+    FRAC_CONST(0.99982296865919107),
+    FRAC_CONST(0.99985241738279484),
+    FRAC_CONST(0.99987918920057806),
+    FRAC_CONST(0.99990328404086426),
+    FRAC_CONST(0.9999247018391445),
+    FRAC_CONST(0.99994344253807688),
+    FRAC_CONST(0.99995950608748674),
+    FRAC_CONST(0.99997289244436727),
+    FRAC_CONST(0.99998360157287902),
+    FRAC_CONST(0.9999916334443506),
+    FRAC_CONST(0.99999698803727821),
+    FRAC_CONST(0.99999966533732598)
 };
 #endif
 
 real_t sine_short_128[] =
 {
-    COEF_CONST(0.0061358846491544753),
-    COEF_CONST(0.01840672990580482),
-    COEF_CONST(0.030674803176636626),
-    COEF_CONST(0.04293825693494082),
-    COEF_CONST(0.055195244349689934),
-    COEF_CONST(0.067443919563664051),
-    COEF_CONST(0.079682437971430126),
-    COEF_CONST(0.091908956497132724),
-    COEF_CONST(0.10412163387205459),
-    COEF_CONST(0.11631863091190475),
-    COEF_CONST(0.12849811079379317),
-    COEF_CONST(0.14065823933284921),
-    COEF_CONST(0.15279718525844344),
-    COEF_CONST(0.16491312048996989),
-    COEF_CONST(0.17700422041214875),
-    COEF_CONST(0.18906866414980619),
-    COEF_CONST(0.2011046348420919),
-    COEF_CONST(0.21311031991609136),
-    COEF_CONST(0.22508391135979283),
-    COEF_CONST(0.2370236059943672),
-    COEF_CONST(0.24892760574572015),
-    COEF_CONST(0.26079411791527551),
-    COEF_CONST(0.27262135544994898),
-    COEF_CONST(0.28440753721127188),
-    COEF_CONST(0.29615088824362379),
-    COEF_CONST(0.30784964004153487),
-    COEF_CONST(0.31950203081601569),
-    COEF_CONST(0.33110630575987643),
-    COEF_CONST(0.34266071731199438),
-    COEF_CONST(0.35416352542049034),
-    COEF_CONST(0.36561299780477385),
-    COEF_CONST(0.37700741021641826),
-    COEF_CONST(0.38834504669882625),
-    COEF_CONST(0.39962419984564679),
-    COEF_CONST(0.41084317105790391),
-    COEF_CONST(0.42200027079979968),
-    COEF_CONST(0.43309381885315196),
-    COEF_CONST(0.4441221445704292),
-    COEF_CONST(0.45508358712634384),
-    COEF_CONST(0.46597649576796618),
-    COEF_CONST(0.47679923006332209),
-    COEF_CONST(0.487550160148436),
-    COEF_CONST(0.49822766697278187),
-    COEF_CONST(0.50883014254310699),
-    COEF_CONST(0.51935599016558964),
-    COEF_CONST(0.52980362468629461),
-    COEF_CONST(0.54017147272989285),
-    COEF_CONST(0.55045797293660481),
-    COEF_CONST(0.56066157619733603),
-    COEF_CONST(0.57078074588696726),
-    COEF_CONST(0.58081395809576453),
-    COEF_CONST(0.59075970185887416),
-    COEF_CONST(0.60061647938386897),
-    COEF_CONST(0.61038280627630948),
-    COEF_CONST(0.6200572117632891),
-    COEF_CONST(0.62963823891492698),
-    COEF_CONST(0.63912444486377573),
-    COEF_CONST(0.64851440102211244),
-    COEF_CONST(0.65780669329707864),
-    COEF_CONST(0.66699992230363747),
-    COEF_CONST(0.67609270357531592),
-    COEF_CONST(0.68508366777270036),
-    COEF_CONST(0.693971460889654),
-    COEF_CONST(0.7027547444572253),
-    COEF_CONST(0.71143219574521643),
-    COEF_CONST(0.72000250796138165),
-    COEF_CONST(0.7284643904482252),
-    COEF_CONST(0.73681656887736979),
-    COEF_CONST(0.74505778544146595),
-    COEF_CONST(0.75318679904361241),
-    COEF_CONST(0.76120238548426178),
-    COEF_CONST(0.76910333764557959),
-    COEF_CONST(0.77688846567323244),
-    COEF_CONST(0.78455659715557524),
-    COEF_CONST(0.79210657730021239),
-    COEF_CONST(0.79953726910790501),
-    COEF_CONST(0.80684755354379922),
-    COEF_CONST(0.8140363297059483),
-    COEF_CONST(0.82110251499110465),
-    COEF_CONST(0.8280450452577558),
-    COEF_CONST(0.83486287498638001),
-    COEF_CONST(0.84155497743689833),
-    COEF_CONST(0.84812034480329712),
-    COEF_CONST(0.85455798836540053),
-    COEF_CONST(0.86086693863776731),
-    COEF_CONST(0.86704624551569265),
-    COEF_CONST(0.87309497841829009),
-    COEF_CONST(0.87901222642863341),
-    COEF_CONST(0.88479709843093779),
-    COEF_CONST(0.89044872324475788),
-    COEF_CONST(0.89596624975618511),
-    COEF_CONST(0.90134884704602203),
-    COEF_CONST(0.90659570451491533),
-    COEF_CONST(0.91170603200542988),
-    COEF_CONST(0.9166790599210427),
-    COEF_CONST(0.9215140393420419),
-    COEF_CONST(0.92621024213831127),
-    COEF_CONST(0.93076696107898371),
-    COEF_CONST(0.9351835099389475),
-    COEF_CONST(0.93945922360218992),
-    COEF_CONST(0.94359345816196039),
-    COEF_CONST(0.94758559101774109),
-    COEF_CONST(0.95143502096900834),
-    COEF_CONST(0.95514116830577067),
-    COEF_CONST(0.9587034748958716),
-    COEF_CONST(0.96212140426904158),
-    COEF_CONST(0.9653944416976894),
-    COEF_CONST(0.96852209427441727),
-    COEF_CONST(0.97150389098625178),
-    COEF_CONST(0.97433938278557586),
-    COEF_CONST(0.97702814265775439),
-    COEF_CONST(0.97956976568544052),
-    COEF_CONST(0.98196386910955524),
-    COEF_CONST(0.98421009238692903),
-    COEF_CONST(0.98630809724459867),
-    COEF_CONST(0.98825756773074946),
-    COEF_CONST(0.99005821026229712),
-    COEF_CONST(0.99170975366909953),
-    COEF_CONST(0.9932119492347945),
-    COEF_CONST(0.99456457073425542),
-    COEF_CONST(0.99576741446765982),
-    COEF_CONST(0.99682029929116567),
-    COEF_CONST(0.99772306664419164),
-    COEF_CONST(0.99847558057329477),
-    COEF_CONST(0.99907772775264536),
-    COEF_CONST(0.99952941750109314),
-    COEF_CONST(0.9998305817958234),
-    COEF_CONST(0.99998117528260111)
+    FRAC_CONST(0.0061358846491544753),
+    FRAC_CONST(0.01840672990580482),
+    FRAC_CONST(0.030674803176636626),
+    FRAC_CONST(0.04293825693494082),
+    FRAC_CONST(0.055195244349689934),
+    FRAC_CONST(0.067443919563664051),
+    FRAC_CONST(0.079682437971430126),
+    FRAC_CONST(0.091908956497132724),
+    FRAC_CONST(0.10412163387205459),
+    FRAC_CONST(0.11631863091190475),
+    FRAC_CONST(0.12849811079379317),
+    FRAC_CONST(0.14065823933284921),
+    FRAC_CONST(0.15279718525844344),
+    FRAC_CONST(0.16491312048996989),
+    FRAC_CONST(0.17700422041214875),
+    FRAC_CONST(0.18906866414980619),
+    FRAC_CONST(0.2011046348420919),
+    FRAC_CONST(0.21311031991609136),
+    FRAC_CONST(0.22508391135979283),
+    FRAC_CONST(0.2370236059943672),
+    FRAC_CONST(0.24892760574572015),
+    FRAC_CONST(0.26079411791527551),
+    FRAC_CONST(0.27262135544994898),
+    FRAC_CONST(0.28440753721127188),
+    FRAC_CONST(0.29615088824362379),
+    FRAC_CONST(0.30784964004153487),
+    FRAC_CONST(0.31950203081601569),
+    FRAC_CONST(0.33110630575987643),
+    FRAC_CONST(0.34266071731199438),
+    FRAC_CONST(0.35416352542049034),
+    FRAC_CONST(0.36561299780477385),
+    FRAC_CONST(0.37700741021641826),
+    FRAC_CONST(0.38834504669882625),
+    FRAC_CONST(0.39962419984564679),
+    FRAC_CONST(0.41084317105790391),
+    FRAC_CONST(0.42200027079979968),
+    FRAC_CONST(0.43309381885315196),
+    FRAC_CONST(0.4441221445704292),
+    FRAC_CONST(0.45508358712634384),
+    FRAC_CONST(0.46597649576796618),
+    FRAC_CONST(0.47679923006332209),
+    FRAC_CONST(0.487550160148436),
+    FRAC_CONST(0.49822766697278187),
+    FRAC_CONST(0.50883014254310699),
+    FRAC_CONST(0.51935599016558964),
+    FRAC_CONST(0.52980362468629461),
+    FRAC_CONST(0.54017147272989285),
+    FRAC_CONST(0.55045797293660481),
+    FRAC_CONST(0.56066157619733603),
+    FRAC_CONST(0.57078074588696726),
+    FRAC_CONST(0.58081395809576453),
+    FRAC_CONST(0.59075970185887416),
+    FRAC_CONST(0.60061647938386897),
+    FRAC_CONST(0.61038280627630948),
+    FRAC_CONST(0.6200572117632891),
+    FRAC_CONST(0.62963823891492698),
+    FRAC_CONST(0.63912444486377573),
+    FRAC_CONST(0.64851440102211244),
+    FRAC_CONST(0.65780669329707864),
+    FRAC_CONST(0.66699992230363747),
+    FRAC_CONST(0.67609270357531592),
+    FRAC_CONST(0.68508366777270036),
+    FRAC_CONST(0.693971460889654),
+    FRAC_CONST(0.7027547444572253),
+    FRAC_CONST(0.71143219574521643),
+    FRAC_CONST(0.72000250796138165),
+    FRAC_CONST(0.7284643904482252),
+    FRAC_CONST(0.73681656887736979),
+    FRAC_CONST(0.74505778544146595),
+    FRAC_CONST(0.75318679904361241),
+    FRAC_CONST(0.76120238548426178),
+    FRAC_CONST(0.76910333764557959),
+    FRAC_CONST(0.77688846567323244),
+    FRAC_CONST(0.78455659715557524),
+    FRAC_CONST(0.79210657730021239),
+    FRAC_CONST(0.79953726910790501),
+    FRAC_CONST(0.80684755354379922),
+    FRAC_CONST(0.8140363297059483),
+    FRAC_CONST(0.82110251499110465),
+    FRAC_CONST(0.8280450452577558),
+    FRAC_CONST(0.83486287498638001),
+    FRAC_CONST(0.84155497743689833),
+    FRAC_CONST(0.84812034480329712),
+    FRAC_CONST(0.85455798836540053),
+    FRAC_CONST(0.86086693863776731),
+    FRAC_CONST(0.86704624551569265),
+    FRAC_CONST(0.87309497841829009),
+    FRAC_CONST(0.87901222642863341),
+    FRAC_CONST(0.88479709843093779),
+    FRAC_CONST(0.89044872324475788),
+    FRAC_CONST(0.89596624975618511),
+    FRAC_CONST(0.90134884704602203),
+    FRAC_CONST(0.90659570451491533),
+    FRAC_CONST(0.91170603200542988),
+    FRAC_CONST(0.9166790599210427),
+    FRAC_CONST(0.9215140393420419),
+    FRAC_CONST(0.92621024213831127),
+    FRAC_CONST(0.93076696107898371),
+    FRAC_CONST(0.9351835099389475),
+    FRAC_CONST(0.93945922360218992),
+    FRAC_CONST(0.94359345816196039),
+    FRAC_CONST(0.94758559101774109),
+    FRAC_CONST(0.95143502096900834),
+    FRAC_CONST(0.95514116830577067),
+    FRAC_CONST(0.9587034748958716),
+    FRAC_CONST(0.96212140426904158),
+    FRAC_CONST(0.9653944416976894),
+    FRAC_CONST(0.96852209427441727),
+    FRAC_CONST(0.97150389098625178),
+    FRAC_CONST(0.97433938278557586),
+    FRAC_CONST(0.97702814265775439),
+    FRAC_CONST(0.97956976568544052),
+    FRAC_CONST(0.98196386910955524),
+    FRAC_CONST(0.98421009238692903),
+    FRAC_CONST(0.98630809724459867),
+    FRAC_CONST(0.98825756773074946),
+    FRAC_CONST(0.99005821026229712),
+    FRAC_CONST(0.99170975366909953),
+    FRAC_CONST(0.9932119492347945),
+    FRAC_CONST(0.99456457073425542),
+    FRAC_CONST(0.99576741446765982),
+    FRAC_CONST(0.99682029929116567),
+    FRAC_CONST(0.99772306664419164),
+    FRAC_CONST(0.99847558057329477),
+    FRAC_CONST(0.99907772775264536),
+    FRAC_CONST(0.99952941750109314),
+    FRAC_CONST(0.9998305817958234),
+    FRAC_CONST(0.99998117528260111)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t sine_short_120[] =
 {
-    COEF_CONST(0.0065449379673518581),
-    COEF_CONST(0.019633692460628301),
-    COEF_CONST(0.032719082821776137),
-    COEF_CONST(0.045798866936520771),
-    COEF_CONST(0.058870803651189033),
-    COEF_CONST(0.071932653156719387),
-    COEF_CONST(0.084982177372441667),
-    COEF_CONST(0.09801714032956059),
-    COEF_CONST(0.11103530855427769),
-    COEF_CONST(0.12403445145048532),
-    COEF_CONST(0.13701234168196802),
-    COEF_CONST(0.14996675555404498),
-    COEF_CONST(0.16289547339458874),
-    COEF_CONST(0.17579627993435451),
-    COEF_CONST(0.18866696468655525),
-    COEF_CONST(0.2015053223256171),
-    COEF_CONST(0.21430915306505074),
-    COEF_CONST(0.2270762630343732),
-    COEF_CONST(0.23980446465501654),
-    COEF_CONST(0.25249157701515795),
-    COEF_CONST(0.26513542624340797),
-    COEF_CONST(0.27773384588129219),
-    COEF_CONST(0.29028467725446233),
-    COEF_CONST(0.3027857698425746),
-    COEF_CONST(0.31523498164776964),
-    COEF_CONST(0.32763017956169349),
-    COEF_CONST(0.33996923973099424),
-    COEF_CONST(0.35225004792123354),
-    COEF_CONST(0.36447049987914965),
-    COEF_CONST(0.37662850169321077),
-    COEF_CONST(0.38872197015239557),
-    COEF_CONST(0.40074883310314097),
-    COEF_CONST(0.41270702980439467),
-    COEF_CONST(0.42459451128071307),
-    COEF_CONST(0.43640924067334208),
-    COEF_CONST(0.44814919358922256),
-    COEF_CONST(0.45981235844785984),
-    COEF_CONST(0.47139673682599764),
-    COEF_CONST(0.48290034380003727),
-    COEF_CONST(0.49432120828614462),
-    COEF_CONST(0.50565737337798455),
-    COEF_CONST(0.51690689668202761),
-    COEF_CONST(0.52806785065036799),
-    COEF_CONST(0.53913832291100017),
-    COEF_CONST(0.55011641659549337),
-    COEF_CONST(0.56100025066400983),
-    COEF_CONST(0.57178796022761225),
-    COEF_CONST(0.58247769686780215),
-    COEF_CONST(0.59306762895323706),
-    COEF_CONST(0.60355594195357143),
-    COEF_CONST(0.61394083875036642),
-    COEF_CONST(0.62422053994501758),
-    COEF_CONST(0.63439328416364549),
-    COEF_CONST(0.64445732835889735),
-    COEF_CONST(0.65441094810861034),
-    COEF_CONST(0.66425243791128175),
-    COEF_CONST(0.67398011147829784),
-    COEF_CONST(0.68359230202287125),
-    COEF_CONST(0.69308736254563585),
-    COEF_CONST(0.70246366611685174),
-    COEF_CONST(0.71171960615517138),
-    COEF_CONST(0.72085359670291882),
-    COEF_CONST(0.7298640726978356),
-    COEF_CONST(0.73874949024124625),
-    COEF_CONST(0.74750832686259672),
-    COEF_CONST(0.75613908178032285),
-    COEF_CONST(0.76464027615900032),
-    COEF_CONST(0.77301045336273699),
-    COEF_CONST(0.78124817920475853),
-    COEF_CONST(0.78935204219315003),
-    COEF_CONST(0.79732065377270711),
-    COEF_CONST(0.80515264856285829),
-    COEF_CONST(0.81284668459161513),
-    COEF_CONST(0.82040144352551359),
-    COEF_CONST(0.82781563089550203),
-    COEF_CONST(0.83508797631874299),
-    COEF_CONST(0.84221723371628654),
-    COEF_CONST(0.84920218152657889),
-    COEF_CONST(0.85604162291477137),
-    COEF_CONST(0.86273438597779184),
-    COEF_CONST(0.86927932394514362),
-    COEF_CONST(0.87567531537539967),
-    COEF_CONST(0.88192126434835494),
-    COEF_CONST(0.88801610065280734),
-    COEF_CONST(0.89395877996993212),
-    COEF_CONST(0.8997482840522214),
-    COEF_CONST(0.90538362089795521),
-    COEF_CONST(0.91086382492117568),
-    COEF_CONST(0.91618795711713596),
-    COEF_CONST(0.92135510522319242),
-    COEF_CONST(0.9263643838751181),
-    COEF_CONST(0.93121493475880346),
-    COEF_CONST(0.93590592675732565),
-    COEF_CONST(0.94043655609335486),
-    COEF_CONST(0.94480604646687805),
-    COEF_CONST(0.94901364918821385),
-    COEF_CONST(0.95305864330629697),
-    COEF_CONST(0.95694033573220882),
-    COEF_CONST(0.9606580613579353),
-    COEF_CONST(0.96421118317032928),
-    COEF_CONST(0.96759909236025976),
-    COEF_CONST(0.9708212084269281),
-    COEF_CONST(0.97387697927733363),
-    COEF_CONST(0.97676588132087239),
-    COEF_CONST(0.97948741955905139),
-    COEF_CONST(0.98204112767030394),
-    COEF_CONST(0.98442656808989171),
-    COEF_CONST(0.98664333208487898),
-    COEF_CONST(0.98869103982416728),
-    COEF_CONST(0.99056934044357725),
-    COEF_CONST(0.99227791210596705),
-    COEF_CONST(0.99381646205637808),
-    COEF_CONST(0.99518472667219682),
-    COEF_CONST(0.99638247150832537),
-    COEF_CONST(0.99740949133735191),
-    COEF_CONST(0.99826561018471593),
-    COEF_CONST(0.99895068135886012),
-    COEF_CONST(0.99946458747636568),
-    COEF_CONST(0.99980724048206482),
-    COEF_CONST(0.99997858166412923)
+    FRAC_CONST(0.0065449379673518581),
+    FRAC_CONST(0.019633692460628301),
+    FRAC_CONST(0.032719082821776137),
+    FRAC_CONST(0.045798866936520771),
+    FRAC_CONST(0.058870803651189033),
+    FRAC_CONST(0.071932653156719387),
+    FRAC_CONST(0.084982177372441667),
+    FRAC_CONST(0.09801714032956059),
+    FRAC_CONST(0.11103530855427769),
+    FRAC_CONST(0.12403445145048532),
+    FRAC_CONST(0.13701234168196802),
+    FRAC_CONST(0.14996675555404498),
+    FRAC_CONST(0.16289547339458874),
+    FRAC_CONST(0.17579627993435451),
+    FRAC_CONST(0.18866696468655525),
+    FRAC_CONST(0.2015053223256171),
+    FRAC_CONST(0.21430915306505074),
+    FRAC_CONST(0.2270762630343732),
+    FRAC_CONST(0.23980446465501654),
+    FRAC_CONST(0.25249157701515795),
+    FRAC_CONST(0.26513542624340797),
+    FRAC_CONST(0.27773384588129219),
+    FRAC_CONST(0.29028467725446233),
+    FRAC_CONST(0.3027857698425746),
+    FRAC_CONST(0.31523498164776964),
+    FRAC_CONST(0.32763017956169349),
+    FRAC_CONST(0.33996923973099424),
+    FRAC_CONST(0.35225004792123354),
+    FRAC_CONST(0.36447049987914965),
+    FRAC_CONST(0.37662850169321077),
+    FRAC_CONST(0.38872197015239557),
+    FRAC_CONST(0.40074883310314097),
+    FRAC_CONST(0.41270702980439467),
+    FRAC_CONST(0.42459451128071307),
+    FRAC_CONST(0.43640924067334208),
+    FRAC_CONST(0.44814919358922256),
+    FRAC_CONST(0.45981235844785984),
+    FRAC_CONST(0.47139673682599764),
+    FRAC_CONST(0.48290034380003727),
+    FRAC_CONST(0.49432120828614462),
+    FRAC_CONST(0.50565737337798455),
+    FRAC_CONST(0.51690689668202761),
+    FRAC_CONST(0.52806785065036799),
+    FRAC_CONST(0.53913832291100017),
+    FRAC_CONST(0.55011641659549337),
+    FRAC_CONST(0.56100025066400983),
+    FRAC_CONST(0.57178796022761225),
+    FRAC_CONST(0.58247769686780215),
+    FRAC_CONST(0.59306762895323706),
+    FRAC_CONST(0.60355594195357143),
+    FRAC_CONST(0.61394083875036642),
+    FRAC_CONST(0.62422053994501758),
+    FRAC_CONST(0.63439328416364549),
+    FRAC_CONST(0.64445732835889735),
+    FRAC_CONST(0.65441094810861034),
+    FRAC_CONST(0.66425243791128175),
+    FRAC_CONST(0.67398011147829784),
+    FRAC_CONST(0.68359230202287125),
+    FRAC_CONST(0.69308736254563585),
+    FRAC_CONST(0.70246366611685174),
+    FRAC_CONST(0.71171960615517138),
+    FRAC_CONST(0.72085359670291882),
+    FRAC_CONST(0.7298640726978356),
+    FRAC_CONST(0.73874949024124625),
+    FRAC_CONST(0.74750832686259672),
+    FRAC_CONST(0.75613908178032285),
+    FRAC_CONST(0.76464027615900032),
+    FRAC_CONST(0.77301045336273699),
+    FRAC_CONST(0.78124817920475853),
+    FRAC_CONST(0.78935204219315003),
+    FRAC_CONST(0.79732065377270711),
+    FRAC_CONST(0.80515264856285829),
+    FRAC_CONST(0.81284668459161513),
+    FRAC_CONST(0.82040144352551359),
+    FRAC_CONST(0.82781563089550203),
+    FRAC_CONST(0.83508797631874299),
+    FRAC_CONST(0.84221723371628654),
+    FRAC_CONST(0.84920218152657889),
+    FRAC_CONST(0.85604162291477137),
+    FRAC_CONST(0.86273438597779184),
+    FRAC_CONST(0.86927932394514362),
+    FRAC_CONST(0.87567531537539967),
+    FRAC_CONST(0.88192126434835494),
+    FRAC_CONST(0.88801610065280734),
+    FRAC_CONST(0.89395877996993212),
+    FRAC_CONST(0.8997482840522214),
+    FRAC_CONST(0.90538362089795521),
+    FRAC_CONST(0.91086382492117568),
+    FRAC_CONST(0.91618795711713596),
+    FRAC_CONST(0.92135510522319242),
+    FRAC_CONST(0.9263643838751181),
+    FRAC_CONST(0.93121493475880346),
+    FRAC_CONST(0.93590592675732565),
+    FRAC_CONST(0.94043655609335486),
+    FRAC_CONST(0.94480604646687805),
+    FRAC_CONST(0.94901364918821385),
+    FRAC_CONST(0.95305864330629697),
+    FRAC_CONST(0.95694033573220882),
+    FRAC_CONST(0.9606580613579353),
+    FRAC_CONST(0.96421118317032928),
+    FRAC_CONST(0.96759909236025976),
+    FRAC_CONST(0.9708212084269281),
+    FRAC_CONST(0.97387697927733363),
+    FRAC_CONST(0.97676588132087239),
+    FRAC_CONST(0.97948741955905139),
+    FRAC_CONST(0.98204112767030394),
+    FRAC_CONST(0.98442656808989171),
+    FRAC_CONST(0.98664333208487898),
+    FRAC_CONST(0.98869103982416728),
+    FRAC_CONST(0.99056934044357725),
+    FRAC_CONST(0.99227791210596705),
+    FRAC_CONST(0.99381646205637808),
+    FRAC_CONST(0.99518472667219682),
+    FRAC_CONST(0.99638247150832537),
+    FRAC_CONST(0.99740949133735191),
+    FRAC_CONST(0.99826561018471593),
+    FRAC_CONST(0.99895068135886012),
+    FRAC_CONST(0.99946458747636568),
+    FRAC_CONST(0.99980724048206482),
+    FRAC_CONST(0.99997858166412923)
 };
 #endif
 
@@ -2292,2005 +2292,2005 @@
 #ifdef LD_DEC
 real_t sine_mid_512[] =
 {
-    COEF_CONST(0.0015339801862847655),
-    COEF_CONST(0.0046019261204485705),
-    COEF_CONST(0.007669828739531097),
-    COEF_CONST(0.010737659167264491),
-    COEF_CONST(0.013805388528060391),
-    COEF_CONST(0.01687298794728171),
-    COEF_CONST(0.019940428551514441),
-    COEF_CONST(0.023007681468839369),
-    COEF_CONST(0.026074717829103901),
-    COEF_CONST(0.029141508764193722),
-    COEF_CONST(0.032208025408304586),
-    COEF_CONST(0.035274238898213947),
-    COEF_CONST(0.038340120373552694),
-    COEF_CONST(0.041405640977076739),
-    COEF_CONST(0.044470771854938668),
-    COEF_CONST(0.047535484156959303),
-    COEF_CONST(0.050599749036899282),
-    COEF_CONST(0.05366353765273052),
-    COEF_CONST(0.056726821166907748),
-    COEF_CONST(0.059789570746639868),
-    COEF_CONST(0.062851757564161406),
-    COEF_CONST(0.065913352797003805),
-    COEF_CONST(0.068974327628266746),
-    COEF_CONST(0.072034653246889332),
-    COEF_CONST(0.075094300847921305),
-    COEF_CONST(0.078153241632794232),
-    COEF_CONST(0.081211446809592441),
-    COEF_CONST(0.084268887593324071),
-    COEF_CONST(0.087325535206192059),
-    COEF_CONST(0.090381360877864983),
-    COEF_CONST(0.093436335845747787),
-    COEF_CONST(0.096490431355252593),
-    COEF_CONST(0.099543618660069319),
-    COEF_CONST(0.10259586902243628),
-    COEF_CONST(0.10564715371341062),
-    COEF_CONST(0.10869744401313872),
-    COEF_CONST(0.11174671121112659),
-    COEF_CONST(0.11479492660651008),
-    COEF_CONST(0.11784206150832498),
-    COEF_CONST(0.12088808723577708),
-    COEF_CONST(0.12393297511851216),
-    COEF_CONST(0.12697669649688587),
-    COEF_CONST(0.13001922272223335),
-    COEF_CONST(0.13306052515713906),
-    COEF_CONST(0.1361005751757062),
-    COEF_CONST(0.1391393441638262),
-    COEF_CONST(0.14217680351944803),
-    COEF_CONST(0.14521292465284746),
-    COEF_CONST(0.14824767898689603),
-    COEF_CONST(0.15128103795733022),
-    COEF_CONST(0.1543129730130201),
-    COEF_CONST(0.15734345561623825),
-    COEF_CONST(0.16037245724292828),
-    COEF_CONST(0.16339994938297323),
-    COEF_CONST(0.1664259035404641),
-    COEF_CONST(0.16945029123396796),
-    COEF_CONST(0.17247308399679595),
-    COEF_CONST(0.17549425337727143),
-    COEF_CONST(0.17851377093899751),
-    COEF_CONST(0.18153160826112497),
-    COEF_CONST(0.18454773693861962),
-    COEF_CONST(0.1875621285825296),
-    COEF_CONST(0.19057475482025274),
-    COEF_CONST(0.19358558729580361),
-    COEF_CONST(0.19659459767008022),
-    COEF_CONST(0.19960175762113097),
-    COEF_CONST(0.20260703884442113),
-    COEF_CONST(0.20561041305309924),
-    COEF_CONST(0.20861185197826349),
-    COEF_CONST(0.21161132736922755),
-    COEF_CONST(0.21460881099378676),
-    COEF_CONST(0.21760427463848364),
-    COEF_CONST(0.22059769010887351),
-    COEF_CONST(0.22358902922978999),
-    COEF_CONST(0.22657826384561),
-    COEF_CONST(0.22956536582051887),
-    COEF_CONST(0.23255030703877524),
-    COEF_CONST(0.23553305940497549),
-    COEF_CONST(0.23851359484431842),
-    COEF_CONST(0.24149188530286933),
-    COEF_CONST(0.24446790274782415),
-    COEF_CONST(0.24744161916777327),
-    COEF_CONST(0.25041300657296522),
-    COEF_CONST(0.25338203699557016),
-    COEF_CONST(0.25634868248994291),
-    COEF_CONST(0.25931291513288623),
-    COEF_CONST(0.26227470702391359),
-    COEF_CONST(0.26523403028551179),
-    COEF_CONST(0.26819085706340318),
-    COEF_CONST(0.27114515952680801),
-    COEF_CONST(0.27409690986870638),
-    COEF_CONST(0.2770460803060999),
-    COEF_CONST(0.27999264308027322),
-    COEF_CONST(0.28293657045705539),
-    COEF_CONST(0.28587783472708062),
-    COEF_CONST(0.28881640820604948),
-    COEF_CONST(0.29175226323498926),
-    COEF_CONST(0.29468537218051433),
-    COEF_CONST(0.2976157074350862),
-    COEF_CONST(0.30054324141727345),
-    COEF_CONST(0.30346794657201132),
-    COEF_CONST(0.30638979537086092),
-    COEF_CONST(0.30930876031226873),
-    COEF_CONST(0.31222481392182488),
-    COEF_CONST(0.31513792875252244),
-    COEF_CONST(0.31804807738501495),
-    COEF_CONST(0.32095523242787521),
-    COEF_CONST(0.32385936651785285),
-    COEF_CONST(0.32676045232013173),
-    COEF_CONST(0.32965846252858749),
-    COEF_CONST(0.33255336986604422),
-    COEF_CONST(0.3354451470845316),
-    COEF_CONST(0.33833376696554113),
-    COEF_CONST(0.34121920232028236),
-    COEF_CONST(0.34410142598993881),
-    COEF_CONST(0.34698041084592368),
-    COEF_CONST(0.34985612979013492),
-    COEF_CONST(0.35272855575521073),
-    COEF_CONST(0.35559766170478385),
-    COEF_CONST(0.35846342063373654),
-    COEF_CONST(0.36132580556845428),
-    COEF_CONST(0.36418478956707989),
-    COEF_CONST(0.36704034571976718),
-    COEF_CONST(0.3698924471489341),
-    COEF_CONST(0.37274106700951576),
-    COEF_CONST(0.37558617848921722),
-    COEF_CONST(0.37842775480876556),
-    COEF_CONST(0.38126576922216238),
-    COEF_CONST(0.38410019501693504),
-    COEF_CONST(0.38693100551438858),
-    COEF_CONST(0.38975817406985641),
-    COEF_CONST(0.39258167407295147),
-    COEF_CONST(0.39540147894781635),
-    COEF_CONST(0.39821756215337356),
-    COEF_CONST(0.40102989718357562),
-    COEF_CONST(0.40383845756765407),
-    COEF_CONST(0.40664321687036903),
-    COEF_CONST(0.40944414869225759),
-    COEF_CONST(0.41224122666988289),
-    COEF_CONST(0.41503442447608163),
-    COEF_CONST(0.41782371582021227),
-    COEF_CONST(0.42060907444840251),
-    COEF_CONST(0.42339047414379605),
-    COEF_CONST(0.42616788872679962),
-    COEF_CONST(0.42894129205532949),
-    COEF_CONST(0.43171065802505726),
-    COEF_CONST(0.43447596056965565),
-    COEF_CONST(0.43723717366104409),
-    COEF_CONST(0.43999427130963326),
-    COEF_CONST(0.44274722756457002),
-    COEF_CONST(0.44549601651398174),
-    COEF_CONST(0.44824061228521989),
-    COEF_CONST(0.45098098904510386),
-    COEF_CONST(0.45371712100016387),
-    COEF_CONST(0.45644898239688392),
-    COEF_CONST(0.45917654752194409),
-    COEF_CONST(0.46189979070246273),
-    COEF_CONST(0.46461868630623782),
-    COEF_CONST(0.46733320874198842),
-    COEF_CONST(0.47004333245959562),
-    COEF_CONST(0.47274903195034279),
-    COEF_CONST(0.47545028174715587),
-    COEF_CONST(0.47814705642484301),
-    COEF_CONST(0.48083933060033396),
-    COEF_CONST(0.48352707893291874),
-    COEF_CONST(0.48621027612448642),
-    COEF_CONST(0.48888889691976317),
-    COEF_CONST(0.4915629161065499),
-    COEF_CONST(0.49423230851595967),
-    COEF_CONST(0.49689704902265447),
-    COEF_CONST(0.49955711254508184),
-    COEF_CONST(0.50221247404571079),
-    COEF_CONST(0.50486310853126759),
-    COEF_CONST(0.50750899105297087),
-    COEF_CONST(0.51015009670676681),
-    COEF_CONST(0.51278640063356296),
-    COEF_CONST(0.51541787801946293),
-    COEF_CONST(0.51804450409599934),
-    COEF_CONST(0.52066625414036716),
-    COEF_CONST(0.52328310347565643),
-    COEF_CONST(0.52589502747108463),
-    COEF_CONST(0.52850200154222848),
-    COEF_CONST(0.531104001151255),
-    COEF_CONST(0.53370100180715296),
-    COEF_CONST(0.53629297906596318),
-    COEF_CONST(0.53887990853100842),
-    COEF_CONST(0.54146176585312344),
-    COEF_CONST(0.54403852673088382),
-    COEF_CONST(0.54661016691083486),
-    COEF_CONST(0.54917666218771966),
-    COEF_CONST(0.55173798840470734),
-    COEF_CONST(0.55429412145362),
-    COEF_CONST(0.5568450372751601),
-    COEF_CONST(0.55939071185913614),
-    COEF_CONST(0.56193112124468947),
-    COEF_CONST(0.5644662415205195),
-    COEF_CONST(0.56699604882510868),
-    COEF_CONST(0.56952051934694714),
-    COEF_CONST(0.57203962932475705),
-    COEF_CONST(0.57455335504771576),
-    COEF_CONST(0.57706167285567944),
-    COEF_CONST(0.57956455913940563),
-    COEF_CONST(0.58206199034077544),
-    COEF_CONST(0.58455394295301533),
-    COEF_CONST(0.58704039352091797),
-    COEF_CONST(0.58952131864106394),
-    COEF_CONST(0.59199669496204099),
-    COEF_CONST(0.59446649918466443),
-    COEF_CONST(0.5969307080621965),
-    COEF_CONST(0.59938929840056454),
-    COEF_CONST(0.60184224705858003),
-    COEF_CONST(0.60428953094815596),
-    COEF_CONST(0.60673112703452448),
-    COEF_CONST(0.60916701233645321),
-    COEF_CONST(0.61159716392646191),
-    COEF_CONST(0.61402155893103838),
-    COEF_CONST(0.61644017453085365),
-    COEF_CONST(0.61885298796097632),
-    COEF_CONST(0.62125997651108755),
-    COEF_CONST(0.62366111752569453),
-    COEF_CONST(0.62605638840434352),
-    COEF_CONST(0.62844576660183271),
-    COEF_CONST(0.63082922962842447),
-    COEF_CONST(0.63320675505005719),
-    COEF_CONST(0.63557832048855611),
-    COEF_CONST(0.63794390362184406),
-    COEF_CONST(0.64030348218415167),
-    COEF_CONST(0.64265703396622686),
-    COEF_CONST(0.64500453681554393),
-    COEF_CONST(0.64734596863651206),
-    COEF_CONST(0.64968130739068319),
-    COEF_CONST(0.6520105310969595),
-    COEF_CONST(0.65433361783180044),
-    COEF_CONST(0.65665054572942894),
-    COEF_CONST(0.65896129298203732),
-    COEF_CONST(0.66126583783999227),
-    COEF_CONST(0.66356415861203977),
-    COEF_CONST(0.66585623366550972),
-    COEF_CONST(0.66814204142651845),
-    COEF_CONST(0.67042156038017309),
-    COEF_CONST(0.67269476907077286),
-    COEF_CONST(0.67496164610201193),
-    COEF_CONST(0.67722217013718033),
-    COEF_CONST(0.67947631989936497),
-    COEF_CONST(0.68172407417164971),
-    COEF_CONST(0.6839654117973154),
-    COEF_CONST(0.68620031168003859),
-    COEF_CONST(0.68842875278409044),
-    COEF_CONST(0.6906507141345346),
-    COEF_CONST(0.69286617481742463),
-    COEF_CONST(0.69507511398000088),
-    COEF_CONST(0.69727751083088652),
-    COEF_CONST(0.69947334464028377),
-    COEF_CONST(0.70166259474016845),
-    COEF_CONST(0.70384524052448494),
-    COEF_CONST(0.70602126144933974),
-    COEF_CONST(0.70819063703319529),
-    COEF_CONST(0.71035334685706231),
-    COEF_CONST(0.71250937056469232),
-    COEF_CONST(0.71465868786276898),
-    COEF_CONST(0.71680127852109954),
-    COEF_CONST(0.71893712237280438),
-    COEF_CONST(0.72106619931450811),
-    COEF_CONST(0.72318848930652735),
-    COEF_CONST(0.72530397237306066),
-    COEF_CONST(0.72741262860237577),
-    COEF_CONST(0.7295144381469969),
-    COEF_CONST(0.73160938122389252),
-    COEF_CONST(0.73369743811466026),
-    COEF_CONST(0.73577858916571348),
-    COEF_CONST(0.73785281478846598),
-    COEF_CONST(0.73992009545951609),
-    COEF_CONST(0.74198041172083096),
-    COEF_CONST(0.74403374417992918),
-    COEF_CONST(0.74608007351006378),
-    COEF_CONST(0.74811938045040349),
-    COEF_CONST(0.75015164580621496),
-    COEF_CONST(0.7521768504490427),
-    COEF_CONST(0.75419497531688917),
-    COEF_CONST(0.75620600141439454),
-    COEF_CONST(0.75820990981301528),
-    COEF_CONST(0.76020668165120242),
-    COEF_CONST(0.7621962981345789),
-    COEF_CONST(0.76417874053611667),
-    COEF_CONST(0.76615399019631281),
-    COEF_CONST(0.76812202852336531),
-    COEF_CONST(0.7700828369933479),
-    COEF_CONST(0.77203639715038441),
-    COEF_CONST(0.77398269060682279),
-    COEF_CONST(0.77592169904340758),
-    COEF_CONST(0.77785340420945304),
-    COEF_CONST(0.77977778792301444),
-    COEF_CONST(0.78169483207105939),
-    COEF_CONST(0.7836045186096382),
-    COEF_CONST(0.78550682956405393),
-    COEF_CONST(0.78740174702903132),
-    COEF_CONST(0.78928925316888565),
-    COEF_CONST(0.79116933021769009),
-    COEF_CONST(0.79304196047944364),
-    COEF_CONST(0.79490712632823701),
-    COEF_CONST(0.79676481020841872),
-    COEF_CONST(0.79861499463476082),
-    COEF_CONST(0.80045766219262271),
-    COEF_CONST(0.80229279553811572),
-    COEF_CONST(0.8041203773982657),
-    COEF_CONST(0.80594039057117628),
-    COEF_CONST(0.80775281792619036),
-    COEF_CONST(0.80955764240405126),
-    COEF_CONST(0.81135484701706373),
-    COEF_CONST(0.81314441484925359),
-    COEF_CONST(0.81492632905652662),
-    COEF_CONST(0.81670057286682785),
-    COEF_CONST(0.81846712958029866),
-    COEF_CONST(0.82022598256943469),
-    COEF_CONST(0.82197711527924155),
-    COEF_CONST(0.82372051122739132),
-    COEF_CONST(0.82545615400437744),
-    COEF_CONST(0.82718402727366902),
-    COEF_CONST(0.82890411477186487),
-    COEF_CONST(0.8306164003088462),
-    COEF_CONST(0.83232086776792968),
-    COEF_CONST(0.83401750110601813),
-    COEF_CONST(0.8357062843537526),
-    COEF_CONST(0.83738720161566194),
-    COEF_CONST(0.83906023707031263),
-    COEF_CONST(0.84072537497045807),
-    COEF_CONST(0.84238259964318596),
-    COEF_CONST(0.84403189549006641),
-    COEF_CONST(0.84567324698729907),
-    COEF_CONST(0.84730663868585832),
-    COEF_CONST(0.84893205521163961),
-    COEF_CONST(0.85054948126560337),
-    COEF_CONST(0.85215890162391983),
-    COEF_CONST(0.8537603011381113),
-    COEF_CONST(0.85535366473519603),
-    COEF_CONST(0.85693897741782865),
-    COEF_CONST(0.85851622426444274),
-    COEF_CONST(0.86008539042939014),
-    COEF_CONST(0.8616464611430813),
-    COEF_CONST(0.86319942171212416),
-    COEF_CONST(0.86474425751946238),
-    COEF_CONST(0.86628095402451299),
-    COEF_CONST(0.86780949676330321),
-    COEF_CONST(0.86932987134860673),
-    COEF_CONST(0.87084206347007886),
-    COEF_CONST(0.87234605889439154),
-    COEF_CONST(0.87384184346536675),
-    COEF_CONST(0.87532940310411078),
-    COEF_CONST(0.87680872380914576),
-    COEF_CONST(0.87827979165654146),
-    COEF_CONST(0.87974259280004741),
-    COEF_CONST(0.88119711347122198),
-    COEF_CONST(0.88264333997956279),
-    COEF_CONST(0.88408125871263499),
-    COEF_CONST(0.88551085613619995),
-    COEF_CONST(0.88693211879434208),
-    COEF_CONST(0.88834503330959624),
-    COEF_CONST(0.88974958638307289),
-    COEF_CONST(0.89114576479458318),
-    COEF_CONST(0.89253355540276469),
-    COEF_CONST(0.89391294514520325),
-    COEF_CONST(0.89528392103855758),
-    COEF_CONST(0.89664647017868015),
-    COEF_CONST(0.89800057974073988),
-    COEF_CONST(0.89934623697934146),
-    COEF_CONST(0.90068342922864686),
-    COEF_CONST(0.90201214390249307),
-    COEF_CONST(0.90333236849451182),
-    COEF_CONST(0.90464409057824624),
-    COEF_CONST(0.90594729780726846),
-    COEF_CONST(0.90724197791529593),
-    COEF_CONST(0.90852811871630612),
-    COEF_CONST(0.90980570810465222),
-    COEF_CONST(0.91107473405517625),
-    COEF_CONST(0.91233518462332275),
-    COEF_CONST(0.91358704794525081),
-    COEF_CONST(0.91483031223794609),
-    COEF_CONST(0.91606496579933161),
-    COEF_CONST(0.91729099700837791),
-    COEF_CONST(0.91850839432521225),
-    COEF_CONST(0.91971714629122736),
-    COEF_CONST(0.92091724152918952),
-    COEF_CONST(0.92210866874334507),
-    COEF_CONST(0.92329141671952764),
-    COEF_CONST(0.9244654743252626),
-    COEF_CONST(0.92563083050987272),
-    COEF_CONST(0.92678747430458175),
-    COEF_CONST(0.92793539482261789),
-    COEF_CONST(0.92907458125931575),
-    COEF_CONST(0.93020502289221907),
-    COEF_CONST(0.93132670908118043),
-    COEF_CONST(0.93243962926846236),
-    COEF_CONST(0.93354377297883617),
-    COEF_CONST(0.93463912981968078),
-    COEF_CONST(0.93572568948108037),
-    COEF_CONST(0.93680344173592156),
-    COEF_CONST(0.93787237643998989),
-    COEF_CONST(0.93893248353206449),
-    COEF_CONST(0.93998375303401394),
-    COEF_CONST(0.94102617505088926),
-    COEF_CONST(0.94205973977101731),
-    COEF_CONST(0.94308443746609349),
-    COEF_CONST(0.94410025849127266),
-    COEF_CONST(0.94510719328526061),
-    COEF_CONST(0.94610523237040334),
-    COEF_CONST(0.94709436635277722),
-    COEF_CONST(0.94807458592227623),
-    COEF_CONST(0.94904588185270056),
-    COEF_CONST(0.950008245001843),
-    COEF_CONST(0.95096166631157508),
-    COEF_CONST(0.95190613680793223),
-    COEF_CONST(0.95284164760119872),
-    COEF_CONST(0.95376818988599033),
-    COEF_CONST(0.95468575494133834),
-    COEF_CONST(0.95559433413077111),
-    COEF_CONST(0.95649391890239499),
-    COEF_CONST(0.95738450078897586),
-    COEF_CONST(0.95826607140801767),
-    COEF_CONST(0.95913862246184189),
-    COEF_CONST(0.96000214573766585),
-    COEF_CONST(0.96085663310767966),
-    COEF_CONST(0.96170207652912254),
-    COEF_CONST(0.96253846804435916),
-    COEF_CONST(0.96336579978095405),
-    COEF_CONST(0.96418406395174572),
-    COEF_CONST(0.96499325285492032),
-    COEF_CONST(0.96579335887408357),
-    COEF_CONST(0.96658437447833312),
-    COEF_CONST(0.96736629222232851),
-    COEF_CONST(0.96813910474636233),
-    COEF_CONST(0.96890280477642887),
-    COEF_CONST(0.96965738512429245),
-    COEF_CONST(0.9704028386875555),
-    COEF_CONST(0.97113915844972509),
-    COEF_CONST(0.9718663374802794),
-    COEF_CONST(0.97258436893473221),
-    COEF_CONST(0.97329324605469825),
-    COEF_CONST(0.97399296216795583),
-    COEF_CONST(0.97468351068851067),
-    COEF_CONST(0.97536488511665687),
-    COEF_CONST(0.97603707903903902),
-    COEF_CONST(0.97670008612871184),
-    COEF_CONST(0.97735390014519996),
-    COEF_CONST(0.97799851493455714),
-    COEF_CONST(0.9786339244294231),
-    COEF_CONST(0.97926012264908202),
-    COEF_CONST(0.97987710369951764),
-    COEF_CONST(0.98048486177346938),
-    COEF_CONST(0.98108339115048659),
-    COEF_CONST(0.98167268619698311),
-    COEF_CONST(0.98225274136628937),
-    COEF_CONST(0.98282355119870524),
-    COEF_CONST(0.98338511032155118),
-    COEF_CONST(0.98393741344921892),
-    COEF_CONST(0.98448045538322093),
-    COEF_CONST(0.98501423101223984),
-    COEF_CONST(0.98553873531217606),
-    COEF_CONST(0.98605396334619544),
-    COEF_CONST(0.98655991026477541),
-    COEF_CONST(0.98705657130575097),
-    COEF_CONST(0.98754394179435923),
-    COEF_CONST(0.98802201714328353),
-    COEF_CONST(0.98849079285269659),
-    COEF_CONST(0.98895026451030299),
-    COEF_CONST(0.98940042779138038),
-    COEF_CONST(0.98984127845882053),
-    COEF_CONST(0.99027281236316911),
-    COEF_CONST(0.99069502544266463),
-    COEF_CONST(0.99110791372327678),
-    COEF_CONST(0.9915114733187439),
-    COEF_CONST(0.99190570043060933),
-    COEF_CONST(0.99229059134825737),
-    COEF_CONST(0.99266614244894802),
-    COEF_CONST(0.99303235019785141),
-    COEF_CONST(0.99338921114808065),
-    COEF_CONST(0.9937367219407246),
-    COEF_CONST(0.99407487930487937),
-    COEF_CONST(0.9944036800576791),
-    COEF_CONST(0.9947231211043257),
-    COEF_CONST(0.99503319943811863),
-    COEF_CONST(0.99533391214048228),
-    COEF_CONST(0.99562525638099431),
-    COEF_CONST(0.99590722941741172),
-    COEF_CONST(0.99617982859569687),
-    COEF_CONST(0.99644305135004263),
-    COEF_CONST(0.99669689520289606),
-    COEF_CONST(0.99694135776498216),
-    COEF_CONST(0.99717643673532619),
-    COEF_CONST(0.9974021299012753),
-    COEF_CONST(0.99761843513851955),
-    COEF_CONST(0.99782535041111164),
-    COEF_CONST(0.99802287377148624),
-    COEF_CONST(0.99821100336047819),
-    COEF_CONST(0.99838973740734016),
-    COEF_CONST(0.99855907422975931),
-    COEF_CONST(0.99871901223387294),
-    COEF_CONST(0.99886954991428356),
-    COEF_CONST(0.99901068585407338),
-    COEF_CONST(0.99914241872481691),
-    COEF_CONST(0.99926474728659442),
-    COEF_CONST(0.99937767038800285),
-    COEF_CONST(0.99948118696616695),
-    COEF_CONST(0.99957529604674922),
-    COEF_CONST(0.99965999674395922),
-    COEF_CONST(0.99973528826056168),
-    COEF_CONST(0.99980116988788426),
-    COEF_CONST(0.99985764100582386),
-    COEF_CONST(0.9999047010828529),
-    COEF_CONST(0.99994234967602391),
-    COEF_CONST(0.99997058643097414),
-    COEF_CONST(0.9999894110819284),
-    COEF_CONST(0.99999882345170188)
+    FRAC_CONST(0.0015339801862847655),
+    FRAC_CONST(0.0046019261204485705),
+    FRAC_CONST(0.007669828739531097),
+    FRAC_CONST(0.010737659167264491),
+    FRAC_CONST(0.013805388528060391),
+    FRAC_CONST(0.01687298794728171),
+    FRAC_CONST(0.019940428551514441),
+    FRAC_CONST(0.023007681468839369),
+    FRAC_CONST(0.026074717829103901),
+    FRAC_CONST(0.029141508764193722),
+    FRAC_CONST(0.032208025408304586),
+    FRAC_CONST(0.035274238898213947),
+    FRAC_CONST(0.038340120373552694),
+    FRAC_CONST(0.041405640977076739),
+    FRAC_CONST(0.044470771854938668),
+    FRAC_CONST(0.047535484156959303),
+    FRAC_CONST(0.050599749036899282),
+    FRAC_CONST(0.05366353765273052),
+    FRAC_CONST(0.056726821166907748),
+    FRAC_CONST(0.059789570746639868),
+    FRAC_CONST(0.062851757564161406),
+    FRAC_CONST(0.065913352797003805),
+    FRAC_CONST(0.068974327628266746),
+    FRAC_CONST(0.072034653246889332),
+    FRAC_CONST(0.075094300847921305),
+    FRAC_CONST(0.078153241632794232),
+    FRAC_CONST(0.081211446809592441),
+    FRAC_CONST(0.084268887593324071),
+    FRAC_CONST(0.087325535206192059),
+    FRAC_CONST(0.090381360877864983),
+    FRAC_CONST(0.093436335845747787),
+    FRAC_CONST(0.096490431355252593),
+    FRAC_CONST(0.099543618660069319),
+    FRAC_CONST(0.10259586902243628),
+    FRAC_CONST(0.10564715371341062),
+    FRAC_CONST(0.10869744401313872),
+    FRAC_CONST(0.11174671121112659),
+    FRAC_CONST(0.11479492660651008),
+    FRAC_CONST(0.11784206150832498),
+    FRAC_CONST(0.12088808723577708),
+    FRAC_CONST(0.12393297511851216),
+    FRAC_CONST(0.12697669649688587),
+    FRAC_CONST(0.13001922272223335),
+    FRAC_CONST(0.13306052515713906),
+    FRAC_CONST(0.1361005751757062),
+    FRAC_CONST(0.1391393441638262),
+    FRAC_CONST(0.14217680351944803),
+    FRAC_CONST(0.14521292465284746),
+    FRAC_CONST(0.14824767898689603),
+    FRAC_CONST(0.15128103795733022),
+    FRAC_CONST(0.1543129730130201),
+    FRAC_CONST(0.15734345561623825),
+    FRAC_CONST(0.16037245724292828),
+    FRAC_CONST(0.16339994938297323),
+    FRAC_CONST(0.1664259035404641),
+    FRAC_CONST(0.16945029123396796),
+    FRAC_CONST(0.17247308399679595),
+    FRAC_CONST(0.17549425337727143),
+    FRAC_CONST(0.17851377093899751),
+    FRAC_CONST(0.18153160826112497),
+    FRAC_CONST(0.18454773693861962),
+    FRAC_CONST(0.1875621285825296),
+    FRAC_CONST(0.19057475482025274),
+    FRAC_CONST(0.19358558729580361),
+    FRAC_CONST(0.19659459767008022),
+    FRAC_CONST(0.19960175762113097),
+    FRAC_CONST(0.20260703884442113),
+    FRAC_CONST(0.20561041305309924),
+    FRAC_CONST(0.20861185197826349),
+    FRAC_CONST(0.21161132736922755),
+    FRAC_CONST(0.21460881099378676),
+    FRAC_CONST(0.21760427463848364),
+    FRAC_CONST(0.22059769010887351),
+    FRAC_CONST(0.22358902922978999),
+    FRAC_CONST(0.22657826384561),
+    FRAC_CONST(0.22956536582051887),
+    FRAC_CONST(0.23255030703877524),
+    FRAC_CONST(0.23553305940497549),
+    FRAC_CONST(0.23851359484431842),
+    FRAC_CONST(0.24149188530286933),
+    FRAC_CONST(0.24446790274782415),
+    FRAC_CONST(0.24744161916777327),
+    FRAC_CONST(0.25041300657296522),
+    FRAC_CONST(0.25338203699557016),
+    FRAC_CONST(0.25634868248994291),
+    FRAC_CONST(0.25931291513288623),
+    FRAC_CONST(0.26227470702391359),
+    FRAC_CONST(0.26523403028551179),
+    FRAC_CONST(0.26819085706340318),
+    FRAC_CONST(0.27114515952680801),
+    FRAC_CONST(0.27409690986870638),
+    FRAC_CONST(0.2770460803060999),
+    FRAC_CONST(0.27999264308027322),
+    FRAC_CONST(0.28293657045705539),
+    FRAC_CONST(0.28587783472708062),
+    FRAC_CONST(0.28881640820604948),
+    FRAC_CONST(0.29175226323498926),
+    FRAC_CONST(0.29468537218051433),
+    FRAC_CONST(0.2976157074350862),
+    FRAC_CONST(0.30054324141727345),
+    FRAC_CONST(0.30346794657201132),
+    FRAC_CONST(0.30638979537086092),
+    FRAC_CONST(0.30930876031226873),
+    FRAC_CONST(0.31222481392182488),
+    FRAC_CONST(0.31513792875252244),
+    FRAC_CONST(0.31804807738501495),
+    FRAC_CONST(0.32095523242787521),
+    FRAC_CONST(0.32385936651785285),
+    FRAC_CONST(0.32676045232013173),
+    FRAC_CONST(0.32965846252858749),
+    FRAC_CONST(0.33255336986604422),
+    FRAC_CONST(0.3354451470845316),
+    FRAC_CONST(0.33833376696554113),
+    FRAC_CONST(0.34121920232028236),
+    FRAC_CONST(0.34410142598993881),
+    FRAC_CONST(0.34698041084592368),
+    FRAC_CONST(0.34985612979013492),
+    FRAC_CONST(0.35272855575521073),
+    FRAC_CONST(0.35559766170478385),
+    FRAC_CONST(0.35846342063373654),
+    FRAC_CONST(0.36132580556845428),
+    FRAC_CONST(0.36418478956707989),
+    FRAC_CONST(0.36704034571976718),
+    FRAC_CONST(0.3698924471489341),
+    FRAC_CONST(0.37274106700951576),
+    FRAC_CONST(0.37558617848921722),
+    FRAC_CONST(0.37842775480876556),
+    FRAC_CONST(0.38126576922216238),
+    FRAC_CONST(0.38410019501693504),
+    FRAC_CONST(0.38693100551438858),
+    FRAC_CONST(0.38975817406985641),
+    FRAC_CONST(0.39258167407295147),
+    FRAC_CONST(0.39540147894781635),
+    FRAC_CONST(0.39821756215337356),
+    FRAC_CONST(0.40102989718357562),
+    FRAC_CONST(0.40383845756765407),
+    FRAC_CONST(0.40664321687036903),
+    FRAC_CONST(0.40944414869225759),
+    FRAC_CONST(0.41224122666988289),
+    FRAC_CONST(0.41503442447608163),
+    FRAC_CONST(0.41782371582021227),
+    FRAC_CONST(0.42060907444840251),
+    FRAC_CONST(0.42339047414379605),
+    FRAC_CONST(0.42616788872679962),
+    FRAC_CONST(0.42894129205532949),
+    FRAC_CONST(0.43171065802505726),
+    FRAC_CONST(0.43447596056965565),
+    FRAC_CONST(0.43723717366104409),
+    FRAC_CONST(0.43999427130963326),
+    FRAC_CONST(0.44274722756457002),
+    FRAC_CONST(0.44549601651398174),
+    FRAC_CONST(0.44824061228521989),
+    FRAC_CONST(0.45098098904510386),
+    FRAC_CONST(0.45371712100016387),
+    FRAC_CONST(0.45644898239688392),
+    FRAC_CONST(0.45917654752194409),
+    FRAC_CONST(0.46189979070246273),
+    FRAC_CONST(0.46461868630623782),
+    FRAC_CONST(0.46733320874198842),
+    FRAC_CONST(0.47004333245959562),
+    FRAC_CONST(0.47274903195034279),
+    FRAC_CONST(0.47545028174715587),
+    FRAC_CONST(0.47814705642484301),
+    FRAC_CONST(0.48083933060033396),
+    FRAC_CONST(0.48352707893291874),
+    FRAC_CONST(0.48621027612448642),
+    FRAC_CONST(0.48888889691976317),
+    FRAC_CONST(0.4915629161065499),
+    FRAC_CONST(0.49423230851595967),
+    FRAC_CONST(0.49689704902265447),
+    FRAC_CONST(0.49955711254508184),
+    FRAC_CONST(0.50221247404571079),
+    FRAC_CONST(0.50486310853126759),
+    FRAC_CONST(0.50750899105297087),
+    FRAC_CONST(0.51015009670676681),
+    FRAC_CONST(0.51278640063356296),
+    FRAC_CONST(0.51541787801946293),
+    FRAC_CONST(0.51804450409599934),
+    FRAC_CONST(0.52066625414036716),
+    FRAC_CONST(0.52328310347565643),
+    FRAC_CONST(0.52589502747108463),
+    FRAC_CONST(0.52850200154222848),
+    FRAC_CONST(0.531104001151255),
+    FRAC_CONST(0.53370100180715296),
+    FRAC_CONST(0.53629297906596318),
+    FRAC_CONST(0.53887990853100842),
+    FRAC_CONST(0.54146176585312344),
+    FRAC_CONST(0.54403852673088382),
+    FRAC_CONST(0.54661016691083486),
+    FRAC_CONST(0.54917666218771966),
+    FRAC_CONST(0.55173798840470734),
+    FRAC_CONST(0.55429412145362),
+    FRAC_CONST(0.5568450372751601),
+    FRAC_CONST(0.55939071185913614),
+    FRAC_CONST(0.56193112124468947),
+    FRAC_CONST(0.5644662415205195),
+    FRAC_CONST(0.56699604882510868),
+    FRAC_CONST(0.56952051934694714),
+    FRAC_CONST(0.57203962932475705),
+    FRAC_CONST(0.57455335504771576),
+    FRAC_CONST(0.57706167285567944),
+    FRAC_CONST(0.57956455913940563),
+    FRAC_CONST(0.58206199034077544),
+    FRAC_CONST(0.58455394295301533),
+    FRAC_CONST(0.58704039352091797),
+    FRAC_CONST(0.58952131864106394),
+    FRAC_CONST(0.59199669496204099),
+    FRAC_CONST(0.59446649918466443),
+    FRAC_CONST(0.5969307080621965),
+    FRAC_CONST(0.59938929840056454),
+    FRAC_CONST(0.60184224705858003),
+    FRAC_CONST(0.60428953094815596),
+    FRAC_CONST(0.60673112703452448),
+    FRAC_CONST(0.60916701233645321),
+    FRAC_CONST(0.61159716392646191),
+    FRAC_CONST(0.61402155893103838),
+    FRAC_CONST(0.61644017453085365),
+    FRAC_CONST(0.61885298796097632),
+    FRAC_CONST(0.62125997651108755),
+    FRAC_CONST(0.62366111752569453),
+    FRAC_CONST(0.62605638840434352),
+    FRAC_CONST(0.62844576660183271),
+    FRAC_CONST(0.63082922962842447),
+    FRAC_CONST(0.63320675505005719),
+    FRAC_CONST(0.63557832048855611),
+    FRAC_CONST(0.63794390362184406),
+    FRAC_CONST(0.64030348218415167),
+    FRAC_CONST(0.64265703396622686),
+    FRAC_CONST(0.64500453681554393),
+    FRAC_CONST(0.64734596863651206),
+    FRAC_CONST(0.64968130739068319),
+    FRAC_CONST(0.6520105310969595),
+    FRAC_CONST(0.65433361783180044),
+    FRAC_CONST(0.65665054572942894),
+    FRAC_CONST(0.65896129298203732),
+    FRAC_CONST(0.66126583783999227),
+    FRAC_CONST(0.66356415861203977),
+    FRAC_CONST(0.66585623366550972),
+    FRAC_CONST(0.66814204142651845),
+    FRAC_CONST(0.67042156038017309),
+    FRAC_CONST(0.67269476907077286),
+    FRAC_CONST(0.67496164610201193),
+    FRAC_CONST(0.67722217013718033),
+    FRAC_CONST(0.67947631989936497),
+    FRAC_CONST(0.68172407417164971),
+    FRAC_CONST(0.6839654117973154),
+    FRAC_CONST(0.68620031168003859),
+    FRAC_CONST(0.68842875278409044),
+    FRAC_CONST(0.6906507141345346),
+    FRAC_CONST(0.69286617481742463),
+    FRAC_CONST(0.69507511398000088),
+    FRAC_CONST(0.69727751083088652),
+    FRAC_CONST(0.69947334464028377),
+    FRAC_CONST(0.70166259474016845),
+    FRAC_CONST(0.70384524052448494),
+    FRAC_CONST(0.70602126144933974),
+    FRAC_CONST(0.70819063703319529),
+    FRAC_CONST(0.71035334685706231),
+    FRAC_CONST(0.71250937056469232),
+    FRAC_CONST(0.71465868786276898),
+    FRAC_CONST(0.71680127852109954),
+    FRAC_CONST(0.71893712237280438),
+    FRAC_CONST(0.72106619931450811),
+    FRAC_CONST(0.72318848930652735),
+    FRAC_CONST(0.72530397237306066),
+    FRAC_CONST(0.72741262860237577),
+    FRAC_CONST(0.7295144381469969),
+    FRAC_CONST(0.73160938122389252),
+    FRAC_CONST(0.73369743811466026),
+    FRAC_CONST(0.73577858916571348),
+    FRAC_CONST(0.73785281478846598),
+    FRAC_CONST(0.73992009545951609),
+    FRAC_CONST(0.74198041172083096),
+    FRAC_CONST(0.74403374417992918),
+    FRAC_CONST(0.74608007351006378),
+    FRAC_CONST(0.74811938045040349),
+    FRAC_CONST(0.75015164580621496),
+    FRAC_CONST(0.7521768504490427),
+    FRAC_CONST(0.75419497531688917),
+    FRAC_CONST(0.75620600141439454),
+    FRAC_CONST(0.75820990981301528),
+    FRAC_CONST(0.76020668165120242),
+    FRAC_CONST(0.7621962981345789),
+    FRAC_CONST(0.76417874053611667),
+    FRAC_CONST(0.76615399019631281),
+    FRAC_CONST(0.76812202852336531),
+    FRAC_CONST(0.7700828369933479),
+    FRAC_CONST(0.77203639715038441),
+    FRAC_CONST(0.77398269060682279),
+    FRAC_CONST(0.77592169904340758),
+    FRAC_CONST(0.77785340420945304),
+    FRAC_CONST(0.77977778792301444),
+    FRAC_CONST(0.78169483207105939),
+    FRAC_CONST(0.7836045186096382),
+    FRAC_CONST(0.78550682956405393),
+    FRAC_CONST(0.78740174702903132),
+    FRAC_CONST(0.78928925316888565),
+    FRAC_CONST(0.79116933021769009),
+    FRAC_CONST(0.79304196047944364),
+    FRAC_CONST(0.79490712632823701),
+    FRAC_CONST(0.79676481020841872),
+    FRAC_CONST(0.79861499463476082),
+    FRAC_CONST(0.80045766219262271),
+    FRAC_CONST(0.80229279553811572),
+    FRAC_CONST(0.8041203773982657),
+    FRAC_CONST(0.80594039057117628),
+    FRAC_CONST(0.80775281792619036),
+    FRAC_CONST(0.80955764240405126),
+    FRAC_CONST(0.81135484701706373),
+    FRAC_CONST(0.81314441484925359),
+    FRAC_CONST(0.81492632905652662),
+    FRAC_CONST(0.81670057286682785),
+    FRAC_CONST(0.81846712958029866),
+    FRAC_CONST(0.82022598256943469),
+    FRAC_CONST(0.82197711527924155),
+    FRAC_CONST(0.82372051122739132),
+    FRAC_CONST(0.82545615400437744),
+    FRAC_CONST(0.82718402727366902),
+    FRAC_CONST(0.82890411477186487),
+    FRAC_CONST(0.8306164003088462),
+    FRAC_CONST(0.83232086776792968),
+    FRAC_CONST(0.83401750110601813),
+    FRAC_CONST(0.8357062843537526),
+    FRAC_CONST(0.83738720161566194),
+    FRAC_CONST(0.83906023707031263),
+    FRAC_CONST(0.84072537497045807),
+    FRAC_CONST(0.84238259964318596),
+    FRAC_CONST(0.84403189549006641),
+    FRAC_CONST(0.84567324698729907),
+    FRAC_CONST(0.84730663868585832),
+    FRAC_CONST(0.84893205521163961),
+    FRAC_CONST(0.85054948126560337),
+    FRAC_CONST(0.85215890162391983),
+    FRAC_CONST(0.8537603011381113),
+    FRAC_CONST(0.85535366473519603),
+    FRAC_CONST(0.85693897741782865),
+    FRAC_CONST(0.85851622426444274),
+    FRAC_CONST(0.86008539042939014),
+    FRAC_CONST(0.8616464611430813),
+    FRAC_CONST(0.86319942171212416),
+    FRAC_CONST(0.86474425751946238),
+    FRAC_CONST(0.86628095402451299),
+    FRAC_CONST(0.86780949676330321),
+    FRAC_CONST(0.86932987134860673),
+    FRAC_CONST(0.87084206347007886),
+    FRAC_CONST(0.87234605889439154),
+    FRAC_CONST(0.87384184346536675),
+    FRAC_CONST(0.87532940310411078),
+    FRAC_CONST(0.87680872380914576),
+    FRAC_CONST(0.87827979165654146),
+    FRAC_CONST(0.87974259280004741),
+    FRAC_CONST(0.88119711347122198),
+    FRAC_CONST(0.88264333997956279),
+    FRAC_CONST(0.88408125871263499),
+    FRAC_CONST(0.88551085613619995),
+    FRAC_CONST(0.88693211879434208),
+    FRAC_CONST(0.88834503330959624),
+    FRAC_CONST(0.88974958638307289),
+    FRAC_CONST(0.89114576479458318),
+    FRAC_CONST(0.89253355540276469),
+    FRAC_CONST(0.89391294514520325),
+    FRAC_CONST(0.89528392103855758),
+    FRAC_CONST(0.89664647017868015),
+    FRAC_CONST(0.89800057974073988),
+    FRAC_CONST(0.89934623697934146),
+    FRAC_CONST(0.90068342922864686),
+    FRAC_CONST(0.90201214390249307),
+    FRAC_CONST(0.90333236849451182),
+    FRAC_CONST(0.90464409057824624),
+    FRAC_CONST(0.90594729780726846),
+    FRAC_CONST(0.90724197791529593),
+    FRAC_CONST(0.90852811871630612),
+    FRAC_CONST(0.90980570810465222),
+    FRAC_CONST(0.91107473405517625),
+    FRAC_CONST(0.91233518462332275),
+    FRAC_CONST(0.91358704794525081),
+    FRAC_CONST(0.91483031223794609),
+    FRAC_CONST(0.91606496579933161),
+    FRAC_CONST(0.91729099700837791),
+    FRAC_CONST(0.91850839432521225),
+    FRAC_CONST(0.91971714629122736),
+    FRAC_CONST(0.92091724152918952),
+    FRAC_CONST(0.92210866874334507),
+    FRAC_CONST(0.92329141671952764),
+    FRAC_CONST(0.9244654743252626),
+    FRAC_CONST(0.92563083050987272),
+    FRAC_CONST(0.92678747430458175),
+    FRAC_CONST(0.92793539482261789),
+    FRAC_CONST(0.92907458125931575),
+    FRAC_CONST(0.93020502289221907),
+    FRAC_CONST(0.93132670908118043),
+    FRAC_CONST(0.93243962926846236),
+    FRAC_CONST(0.93354377297883617),
+    FRAC_CONST(0.93463912981968078),
+    FRAC_CONST(0.93572568948108037),
+    FRAC_CONST(0.93680344173592156),
+    FRAC_CONST(0.93787237643998989),
+    FRAC_CONST(0.93893248353206449),
+    FRAC_CONST(0.93998375303401394),
+    FRAC_CONST(0.94102617505088926),
+    FRAC_CONST(0.94205973977101731),
+    FRAC_CONST(0.94308443746609349),
+    FRAC_CONST(0.94410025849127266),
+    FRAC_CONST(0.94510719328526061),
+    FRAC_CONST(0.94610523237040334),
+    FRAC_CONST(0.94709436635277722),
+    FRAC_CONST(0.94807458592227623),
+    FRAC_CONST(0.94904588185270056),
+    FRAC_CONST(0.950008245001843),
+    FRAC_CONST(0.95096166631157508),
+    FRAC_CONST(0.95190613680793223),
+    FRAC_CONST(0.95284164760119872),
+    FRAC_CONST(0.95376818988599033),
+    FRAC_CONST(0.95468575494133834),
+    FRAC_CONST(0.95559433413077111),
+    FRAC_CONST(0.95649391890239499),
+    FRAC_CONST(0.95738450078897586),
+    FRAC_CONST(0.95826607140801767),
+    FRAC_CONST(0.95913862246184189),
+    FRAC_CONST(0.96000214573766585),
+    FRAC_CONST(0.96085663310767966),
+    FRAC_CONST(0.96170207652912254),
+    FRAC_CONST(0.96253846804435916),
+    FRAC_CONST(0.96336579978095405),
+    FRAC_CONST(0.96418406395174572),
+    FRAC_CONST(0.96499325285492032),
+    FRAC_CONST(0.96579335887408357),
+    FRAC_CONST(0.96658437447833312),
+    FRAC_CONST(0.96736629222232851),
+    FRAC_CONST(0.96813910474636233),
+    FRAC_CONST(0.96890280477642887),
+    FRAC_CONST(0.96965738512429245),
+    FRAC_CONST(0.9704028386875555),
+    FRAC_CONST(0.97113915844972509),
+    FRAC_CONST(0.9718663374802794),
+    FRAC_CONST(0.97258436893473221),
+    FRAC_CONST(0.97329324605469825),
+    FRAC_CONST(0.97399296216795583),
+    FRAC_CONST(0.97468351068851067),
+    FRAC_CONST(0.97536488511665687),
+    FRAC_CONST(0.97603707903903902),
+    FRAC_CONST(0.97670008612871184),
+    FRAC_CONST(0.97735390014519996),
+    FRAC_CONST(0.97799851493455714),
+    FRAC_CONST(0.9786339244294231),
+    FRAC_CONST(0.97926012264908202),
+    FRAC_CONST(0.97987710369951764),
+    FRAC_CONST(0.98048486177346938),
+    FRAC_CONST(0.98108339115048659),
+    FRAC_CONST(0.98167268619698311),
+    FRAC_CONST(0.98225274136628937),
+    FRAC_CONST(0.98282355119870524),
+    FRAC_CONST(0.98338511032155118),
+    FRAC_CONST(0.98393741344921892),
+    FRAC_CONST(0.98448045538322093),
+    FRAC_CONST(0.98501423101223984),
+    FRAC_CONST(0.98553873531217606),
+    FRAC_CONST(0.98605396334619544),
+    FRAC_CONST(0.98655991026477541),
+    FRAC_CONST(0.98705657130575097),
+    FRAC_CONST(0.98754394179435923),
+    FRAC_CONST(0.98802201714328353),
+    FRAC_CONST(0.98849079285269659),
+    FRAC_CONST(0.98895026451030299),
+    FRAC_CONST(0.98940042779138038),
+    FRAC_CONST(0.98984127845882053),
+    FRAC_CONST(0.99027281236316911),
+    FRAC_CONST(0.99069502544266463),
+    FRAC_CONST(0.99110791372327678),
+    FRAC_CONST(0.9915114733187439),
+    FRAC_CONST(0.99190570043060933),
+    FRAC_CONST(0.99229059134825737),
+    FRAC_CONST(0.99266614244894802),
+    FRAC_CONST(0.99303235019785141),
+    FRAC_CONST(0.99338921114808065),
+    FRAC_CONST(0.9937367219407246),
+    FRAC_CONST(0.99407487930487937),
+    FRAC_CONST(0.9944036800576791),
+    FRAC_CONST(0.9947231211043257),
+    FRAC_CONST(0.99503319943811863),
+    FRAC_CONST(0.99533391214048228),
+    FRAC_CONST(0.99562525638099431),
+    FRAC_CONST(0.99590722941741172),
+    FRAC_CONST(0.99617982859569687),
+    FRAC_CONST(0.99644305135004263),
+    FRAC_CONST(0.99669689520289606),
+    FRAC_CONST(0.99694135776498216),
+    FRAC_CONST(0.99717643673532619),
+    FRAC_CONST(0.9974021299012753),
+    FRAC_CONST(0.99761843513851955),
+    FRAC_CONST(0.99782535041111164),
+    FRAC_CONST(0.99802287377148624),
+    FRAC_CONST(0.99821100336047819),
+    FRAC_CONST(0.99838973740734016),
+    FRAC_CONST(0.99855907422975931),
+    FRAC_CONST(0.99871901223387294),
+    FRAC_CONST(0.99886954991428356),
+    FRAC_CONST(0.99901068585407338),
+    FRAC_CONST(0.99914241872481691),
+    FRAC_CONST(0.99926474728659442),
+    FRAC_CONST(0.99937767038800285),
+    FRAC_CONST(0.99948118696616695),
+    FRAC_CONST(0.99957529604674922),
+    FRAC_CONST(0.99965999674395922),
+    FRAC_CONST(0.99973528826056168),
+    FRAC_CONST(0.99980116988788426),
+    FRAC_CONST(0.99985764100582386),
+    FRAC_CONST(0.9999047010828529),
+    FRAC_CONST(0.99994234967602391),
+    FRAC_CONST(0.99997058643097414),
+    FRAC_CONST(0.9999894110819284),
+    FRAC_CONST(0.99999882345170188)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t sine_mid_480[] =
 {
-    COEF_CONST(0.0016362454436240478),
-    COEF_CONST(0.00490871880799799),
-    COEF_CONST(0.0081811396039371282),
-    COEF_CONST(0.011453472786443779),
-    COEF_CONST(0.014725683311458524),
-    COEF_CONST(0.017997736136235509),
-    COEF_CONST(0.021269596219717739),
-    COEF_CONST(0.024541228522912285),
-    COEF_CONST(0.027812598009265607),
-    COEF_CONST(0.03108366964503869),
-    COEF_CONST(0.034354408399682276),
-    COEF_CONST(0.037624779246211978),
-    COEF_CONST(0.04089474716158345),
-    COEF_CONST(0.044164277127067358),
-    COEF_CONST(0.047433334128624507),
-    COEF_CONST(0.050701883157280733),
-    COEF_CONST(0.053969889209501881),
-    COEF_CONST(0.057237317287568618),
-    COEF_CONST(0.060504132399951269),
-    COEF_CONST(0.063770299561684493),
-    COEF_CONST(0.06703578379474201),
-    COEF_CONST(0.070300550128411174),
-    COEF_CONST(0.073564563599667426),
-    COEF_CONST(0.076827789253548759),
-    COEF_CONST(0.080090192143530081),
-    COEF_CONST(0.083351737331897449),
-    COEF_CONST(0.086612389890122182),
-    COEF_CONST(0.089872114899234967),
-    COEF_CONST(0.093130877450199795),
-    COEF_CONST(0.096388642644287828),
-    COEF_CONST(0.09964537559345106),
-    COEF_CONST(0.1029010414206961),
-    COEF_CONST(0.10615560526045748),
-    COEF_CONST(0.10940903225897117),
-    COEF_CONST(0.11266128757464781),
-    COEF_CONST(0.11591233637844581),
-    COEF_CONST(0.11916214385424433),
-    COEF_CONST(0.1224106751992162),
-    COEF_CONST(0.12565789562420052),
-    COEF_CONST(0.12890377035407541),
-    COEF_CONST(0.13214826462813015),
-    COEF_CONST(0.13539134370043773),
-    COEF_CONST(0.13863297284022669),
-    COEF_CONST(0.14187311733225325),
-    COEF_CONST(0.14511174247717309),
-    COEF_CONST(0.14834881359191271),
-    COEF_CONST(0.15158429601004111),
-    COEF_CONST(0.15481815508214106),
-    COEF_CONST(0.1580503561761798),
-    COEF_CONST(0.16128086467788047),
-    COEF_CONST(0.16450964599109233),
-    COEF_CONST(0.16773666553816149),
-    COEF_CONST(0.17096188876030122),
-    COEF_CONST(0.17418528111796186),
-    COEF_CONST(0.17740680809120093),
-    COEF_CONST(0.18062643518005275),
-    COEF_CONST(0.18384412790489776),
-    COEF_CONST(0.18705985180683199),
-    COEF_CONST(0.19027357244803589),
-    COEF_CONST(0.19348525541214331),
-    COEF_CONST(0.19669486630460997),
-    COEF_CONST(0.19990237075308173),
-    COEF_CONST(0.20310773440776286),
-    COEF_CONST(0.20631092294178383),
-    COEF_CONST(0.20951190205156878),
-    COEF_CONST(0.21271063745720317),
-    COEF_CONST(0.21590709490280058),
-    COEF_CONST(0.2191012401568698),
-    COEF_CONST(0.22229303901268133),
-    COEF_CONST(0.22548245728863364),
-    COEF_CONST(0.22866946082861941),
-    COEF_CONST(0.23185401550239115),
-    COEF_CONST(0.23503608720592667),
-    COEF_CONST(0.23821564186179459),
-    COEF_CONST(0.24139264541951888),
-    COEF_CONST(0.24456706385594387),
-    COEF_CONST(0.24773886317559846),
-    COEF_CONST(0.25090800941106001),
-    COEF_CONST(0.25407446862331851),
-    COEF_CONST(0.25723820690213967),
-    COEF_CONST(0.26039919036642817),
-    COEF_CONST(0.26355738516459076),
-    COEF_CONST(0.26671275747489837),
-    COEF_CONST(0.2698652735058486),
-    COEF_CONST(0.27301489949652735),
-    COEF_CONST(0.27616160171697068),
-    COEF_CONST(0.27930534646852595),
-    COEF_CONST(0.28244610008421245),
-    COEF_CONST(0.2855838289290823),
-    COEF_CONST(0.28871849940058025),
-    COEF_CONST(0.29185007792890405),
-    COEF_CONST(0.29497853097736348),
-    COEF_CONST(0.2981038250427398),
-    COEF_CONST(0.30122592665564446),
-    COEF_CONST(0.30434480238087736),
-    COEF_CONST(0.30746041881778519),
-    COEF_CONST(0.31057274260061901),
-    COEF_CONST(0.31368174039889146),
-    COEF_CONST(0.31678737891773395),
-    COEF_CONST(0.31988962489825296),
-    COEF_CONST(0.32298844511788638),
-    COEF_CONST(0.32608380639075912),
-    COEF_CONST(0.32917567556803889),
-    COEF_CONST(0.33226401953829071),
-    COEF_CONST(0.33534880522783189),
-    COEF_CONST(0.33842999960108583),
-    COEF_CONST(0.34150756966093632),
-    COEF_CONST(0.34458148244908043),
-    COEF_CONST(0.34765170504638188),
-    COEF_CONST(0.35071820457322322),
-    COEF_CONST(0.35378094818985806),
-    COEF_CONST(0.35683990309676283),
-    COEF_CONST(0.35989503653498811),
-    COEF_CONST(0.36294631578650921),
-    COEF_CONST(0.36599370817457672),
-    COEF_CONST(0.36903718106406647),
-    COEF_CONST(0.37207670186182878),
-    COEF_CONST(0.37511223801703802),
-    COEF_CONST(0.37814375702154046),
-    COEF_CONST(0.38117122641020335),
-    COEF_CONST(0.38419461376126157),
-    COEF_CONST(0.38721388669666562),
-    COEF_CONST(0.39022901288242801),
-    COEF_CONST(0.39323996002896966),
-    COEF_CONST(0.39624669589146555),
-    COEF_CONST(0.39924918827019029),
-    COEF_CONST(0.40224740501086254),
-    COEF_CONST(0.40524131400498986),
-    COEF_CONST(0.40823088319021217),
-    COEF_CONST(0.41121608055064529),
-    COEF_CONST(0.41419687411722372),
-    COEF_CONST(0.41717323196804335),
-    COEF_CONST(0.42014512222870243),
-    COEF_CONST(0.42311251307264408),
-    COEF_CONST(0.42607537272149631),
-    COEF_CONST(0.4290336694454126),
-    COEF_CONST(0.43198737156341183),
-    COEF_CONST(0.43493644744371707),
-    COEF_CONST(0.43788086550409511),
-    COEF_CONST(0.44082059421219388),
-    COEF_CONST(0.44375560208588088),
-    COEF_CONST(0.44668585769357955),
-    COEF_CONST(0.4496113296546066),
-    COEF_CONST(0.45253198663950756),
-    COEF_CONST(0.45544779737039259),
-    COEF_CONST(0.45835873062127125),
-    COEF_CONST(0.46126475521838717),
-    COEF_CONST(0.46416584004055156),
-    COEF_CONST(0.46706195401947659),
-    COEF_CONST(0.46995306614010829),
-    COEF_CONST(0.47283914544095862),
-    COEF_CONST(0.47572016101443682),
-    COEF_CONST(0.47859608200718085),
-    COEF_CONST(0.4814668776203872),
-    COEF_CONST(0.48433251711014125),
-    COEF_CONST(0.4871929697877464),
-    COEF_CONST(0.49004820502005247),
-    COEF_CONST(0.49289819222978404),
-    COEF_CONST(0.49574290089586776),
-    COEF_CONST(0.49858230055375902),
-    COEF_CONST(0.50141636079576901),
-    COEF_CONST(0.50424505127138919),
-    COEF_CONST(0.50706834168761705),
-    COEF_CONST(0.50988620180928057),
-    COEF_CONST(0.51269860145936175),
-    COEF_CONST(0.51550551051931948),
-    COEF_CONST(0.51830689892941317),
-    COEF_CONST(0.5211027366890234),
-    COEF_CONST(0.52389299385697385),
-    COEF_CONST(0.52667764055185196),
-    COEF_CONST(0.52945664695232897),
-    COEF_CONST(0.53222998329747884),
-    COEF_CONST(0.53499761988709726),
-    COEF_CONST(0.53775952708201991),
-    COEF_CONST(0.54051567530443978),
-    COEF_CONST(0.54326603503822357),
-    COEF_CONST(0.54601057682922816),
-    COEF_CONST(0.54874927128561579),
-    COEF_CONST(0.55148208907816942),
-    COEF_CONST(0.55420900094060566),
-    COEF_CONST(0.55692997766988939),
-    COEF_CONST(0.559644990126546),
-    COEF_CONST(0.56235400923497314),
-    COEF_CONST(0.56505700598375252),
-    COEF_CONST(0.56775395142596052),
-    COEF_CONST(0.57044481667947822),
-    COEF_CONST(0.57312957292730071),
-    COEF_CONST(0.57580819141784534),
-    COEF_CONST(0.57848064346525996),
-    COEF_CONST(0.58114690044973039),
-    COEF_CONST(0.58380693381778626),
-    COEF_CONST(0.58646071508260733),
-    COEF_CONST(0.58910821582432815),
-    COEF_CONST(0.5917494076903429),
-    COEF_CONST(0.5943842623956086),
-    COEF_CONST(0.59701275172294799),
-    COEF_CONST(0.59963484752335228),
-    COEF_CONST(0.60225052171628191),
-    COEF_CONST(0.60485974628996786),
-    COEF_CONST(0.60746249330171098),
-    COEF_CONST(0.61005873487818185),
-    COEF_CONST(0.61264844321571899),
-    COEF_CONST(0.61523159058062682),
-    COEF_CONST(0.61780814930947225),
-    COEF_CONST(0.62037809180938108),
-    COEF_CONST(0.62294139055833397),
-    COEF_CONST(0.6254980181054608),
-    COEF_CONST(0.62804794707133416),
-    COEF_CONST(0.63059115014826372),
-    COEF_CONST(0.63312760010058777),
-    COEF_CONST(0.63565726976496484),
-    COEF_CONST(0.63818013205066515),
-    COEF_CONST(0.64069615993986073),
-    COEF_CONST(0.64320532648791406),
-    COEF_CONST(0.64570760482366729),
-    COEF_CONST(0.64820296814972966),
-    COEF_CONST(0.65069138974276486),
-    COEF_CONST(0.65317284295377676),
-    COEF_CONST(0.65564730120839498),
-    COEF_CONST(0.65811473800715958),
-    COEF_CONST(0.660575126925805),
-    COEF_CONST(0.66302844161554231),
-    COEF_CONST(0.6654746558033422),
-    COEF_CONST(0.66791374329221598),
-    COEF_CONST(0.67034567796149647),
-    COEF_CONST(0.67277043376711676),
-    COEF_CONST(0.67518798474189046),
-    COEF_CONST(0.67759830499578866),
-    COEF_CONST(0.68000136871621808),
-    COEF_CONST(0.68239715016829683),
-    COEF_CONST(0.6847856236951303),
-    COEF_CONST(0.68716676371808583),
-    COEF_CONST(0.68954054473706683),
-    COEF_CONST(0.69190694133078579),
-    COEF_CONST(0.69426592815703603),
-    COEF_CONST(0.69661747995296419),
-    COEF_CONST(0.69896157153533944),
-    COEF_CONST(0.70129817780082437),
-    COEF_CONST(0.7036272737262429),
-    COEF_CONST(0.70594883436884903),
-    COEF_CONST(0.70826283486659336),
-    COEF_CONST(0.71056925043838959),
-    COEF_CONST(0.71286805638437978),
-    COEF_CONST(0.71515922808619936),
-    COEF_CONST(0.71744274100723993),
-    COEF_CONST(0.71971857069291278),
-    COEF_CONST(0.7219866927709101),
-    COEF_CONST(0.72424708295146689),
-    COEF_CONST(0.72649971702762028),
-    COEF_CONST(0.72874457087546896),
-    COEF_CONST(0.73098162045443171),
-    COEF_CONST(0.73321084180750484),
-    COEF_CONST(0.73543221106151868),
-    COEF_CONST(0.73764570442739286),
-    COEF_CONST(0.73985129820039208),
-    COEF_CONST(0.74204896876037885),
-    COEF_CONST(0.7442386925720671),
-    COEF_CONST(0.74642044618527381),
-    COEF_CONST(0.74859420623517081),
-    COEF_CONST(0.75075994944253421),
-    COEF_CONST(0.75291765261399446),
-    COEF_CONST(0.75506729264228367),
-    COEF_CONST(0.75720884650648446),
-    COEF_CONST(0.75934229127227548),
-    COEF_CONST(0.76146760409217706),
-    COEF_CONST(0.76358476220579641),
-    COEF_CONST(0.7656937429400712),
-    COEF_CONST(0.76779452370951196),
-    COEF_CONST(0.76988708201644451),
-    COEF_CONST(0.77197139545125026),
-    COEF_CONST(0.7740474416926072),
-    COEF_CONST(0.77611519850772781),
-    COEF_CONST(0.77817464375259782),
-    COEF_CONST(0.78022575537221317),
-    COEF_CONST(0.78226851140081632),
-    COEF_CONST(0.78430288996213138),
-    COEF_CONST(0.78632886926959822),
-    COEF_CONST(0.78834642762660623),
-    COEF_CONST(0.79035554342672631),
-    COEF_CONST(0.79235619515394229),
-    COEF_CONST(0.79434836138288134),
-    COEF_CONST(0.79633202077904397),
-    COEF_CONST(0.79830715209903147),
-    COEF_CONST(0.8002737341907743),
-    COEF_CONST(0.80223174599375802),
-    COEF_CONST(0.80418116653924954),
-    COEF_CONST(0.80612197495052085),
-    COEF_CONST(0.80805415044307316),
-    COEF_CONST(0.80997767232485907),
-    COEF_CONST(0.81189251999650469),
-    COEF_CONST(0.81379867295152986),
-    COEF_CONST(0.81569611077656778),
-    COEF_CONST(0.81758481315158371),
-    COEF_CONST(0.81946475985009259),
-    COEF_CONST(0.82133593073937561),
-    COEF_CONST(0.82319830578069586),
-    COEF_CONST(0.82505186502951278),
-    COEF_CONST(0.82689658863569615),
-    COEF_CONST(0.82873245684373809),
-    COEF_CONST(0.83055944999296494),
-    COEF_CONST(0.83237754851774781),
-    COEF_CONST(0.83418673294771239),
-    COEF_CONST(0.83598698390794668),
-    COEF_CONST(0.83777828211920935),
-    COEF_CONST(0.83956060839813562),
-    COEF_CONST(0.84133394365744296),
-    COEF_CONST(0.84309826890613537),
-    COEF_CONST(0.84485356524970701),
-    COEF_CONST(0.84659981389034411),
-    COEF_CONST(0.84833699612712676),
-    COEF_CONST(0.85006509335622882),
-    COEF_CONST(0.8517840870711173),
-    COEF_CONST(0.85349395886275037),
-    COEF_CONST(0.85519469041977514),
-    COEF_CONST(0.85688626352872277),
-    COEF_CONST(0.85856866007420429),
-    COEF_CONST(0.86024186203910447),
-    COEF_CONST(0.86190585150477417),
-    COEF_CONST(0.86356061065122347),
-    COEF_CONST(0.86520612175731115),
-    COEF_CONST(0.86684236720093533),
-    COEF_CONST(0.86846932945922151),
-    COEF_CONST(0.87008699110871135),
-    COEF_CONST(0.87169533482554817),
-    COEF_CONST(0.87329434338566281),
-    COEF_CONST(0.87488399966495822),
-    COEF_CONST(0.87646428663949283),
-    COEF_CONST(0.87803518738566277),
-    COEF_CONST(0.87959668508038291),
-    COEF_CONST(0.88114876300126743),
-    COEF_CONST(0.88269140452680916),
-    COEF_CONST(0.8842245931365561),
-    COEF_CONST(0.88574831241129048),
-    COEF_CONST(0.88726254603320276),
-    COEF_CONST(0.88876727778606746),
-    COEF_CONST(0.89026249155541637),
-    COEF_CONST(0.8917481713287112),
-    COEF_CONST(0.89322430119551532),
-    COEF_CONST(0.89469086534766362),
-    COEF_CONST(0.89614784807943237),
-    COEF_CONST(0.89759523378770689),
-    COEF_CONST(0.89903300697214927),
-    COEF_CONST(0.9004611522353636),
-    COEF_CONST(0.90187965428306172),
-    COEF_CONST(0.90328849792422594),
-    COEF_CONST(0.90468766807127299),
-    COEF_CONST(0.90607714974021469),
-    COEF_CONST(0.90745692805081868),
-    COEF_CONST(0.90882698822676755),
-    COEF_CONST(0.91018731559581767),
-    COEF_CONST(0.91153789558995579),
-    COEF_CONST(0.91287871374555518),
-    COEF_CONST(0.91420975570353069),
-    COEF_CONST(0.9155310072094921),
-    COEF_CONST(0.91684245411389753),
-    COEF_CONST(0.91814408237220391),
-    COEF_CONST(0.91943587804501858),
-    COEF_CONST(0.92071782729824769),
-    COEF_CONST(0.92198991640324446),
-    COEF_CONST(0.92325213173695675),
-    COEF_CONST(0.92450445978207241),
-    COEF_CONST(0.92574688712716402),
-    COEF_CONST(0.92697940046683291),
-    COEF_CONST(0.92820198660185149),
-    COEF_CONST(0.92941463243930444),
-    COEF_CONST(0.93061732499272909),
-    COEF_CONST(0.93181005138225426),
-    COEF_CONST(0.93299279883473885),
-    COEF_CONST(0.93416555468390772),
-    COEF_CONST(0.93532830637048769),
-    COEF_CONST(0.93648104144234268),
-    COEF_CONST(0.93762374755460598),
-    COEF_CONST(0.93875641246981323),
-    COEF_CONST(0.93987902405803303),
-    COEF_CONST(0.94099157029699743),
-    COEF_CONST(0.94209403927222979),
-    COEF_CONST(0.94318641917717327),
-    COEF_CONST(0.9442686983133165),
-    COEF_CONST(0.94534086509031956),
-    COEF_CONST(0.9464029080261378),
-    COEF_CONST(0.94745481574714419),
-    COEF_CONST(0.94849657698825252),
-    COEF_CONST(0.94952818059303667),
-    COEF_CONST(0.95054961551385087),
-    COEF_CONST(0.95156087081194762),
-    COEF_CONST(0.95256193565759528),
-    COEF_CONST(0.95355279933019343),
-    COEF_CONST(0.9545334512183884),
-    COEF_CONST(0.95550388082018611),
-    COEF_CONST(0.95646407774306541),
-    COEF_CONST(0.95741403170408834),
-    COEF_CONST(0.95835373253001133),
-    COEF_CONST(0.95928317015739362),
-    COEF_CONST(0.96020233463270466),
-    COEF_CONST(0.96111121611243155),
-    COEF_CONST(0.96200980486318388),
-    COEF_CONST(0.96289809126179782),
-    COEF_CONST(0.96377606579543984),
-    COEF_CONST(0.96464371906170809),
-    COEF_CONST(0.96550104176873297),
-    COEF_CONST(0.96634802473527726),
-    COEF_CONST(0.96718465889083372),
-    COEF_CONST(0.96801093527572268),
-    COEF_CONST(0.96882684504118799),
-    COEF_CONST(0.96963237944949143),
-    COEF_CONST(0.97042752987400682),
-    COEF_CONST(0.97121228779931179),
-    COEF_CONST(0.97198664482127939),
-    COEF_CONST(0.97275059264716823),
-    COEF_CONST(0.97350412309571066),
-    COEF_CONST(0.97424722809720088),
-    COEF_CONST(0.97497989969358168),
-    COEF_CONST(0.97570213003852857),
-    COEF_CONST(0.97641391139753486),
-    COEF_CONST(0.97711523614799412),
-    COEF_CONST(0.97780609677928154),
-    COEF_CONST(0.97848648589283505),
-    COEF_CONST(0.97915639620223371),
-    COEF_CONST(0.9798158205332762),
-    COEF_CONST(0.98046475182405801),
-    COEF_CONST(0.98110318312504607),
-    COEF_CONST(0.98173110759915416),
-    COEF_CONST(0.98234851852181571),
-    COEF_CONST(0.98295540928105563),
-    COEF_CONST(0.9835517733775615),
-    COEF_CONST(0.98413760442475307),
-    COEF_CONST(0.98471289614885038),
-    COEF_CONST(0.98527764238894122),
-    COEF_CONST(0.98583183709704714),
-    COEF_CONST(0.98637547433818806),
-    COEF_CONST(0.98690854829044583),
-    COEF_CONST(0.98743105324502667),
-    COEF_CONST(0.98794298360632238),
-    COEF_CONST(0.98844433389196995),
-    COEF_CONST(0.98893509873291074),
-    COEF_CONST(0.98941527287344755),
-    COEF_CONST(0.98988485117130098),
-    COEF_CONST(0.99034382859766479),
-    COEF_CONST(0.99079220023725967),
-    COEF_CONST(0.99122996128838525),
-    COEF_CONST(0.9916571070629725),
-    COEF_CONST(0.99207363298663342),
-    COEF_CONST(0.99247953459870997),
-    COEF_CONST(0.99287480755232194),
-    COEF_CONST(0.99325944761441354),
-    COEF_CONST(0.99363345066579889),
-    COEF_CONST(0.99399681270120555),
-    COEF_CONST(0.99434952982931812),
-    COEF_CONST(0.9946915982728195),
-    COEF_CONST(0.99502301436843166),
-    COEF_CONST(0.99534377456695422),
-    COEF_CONST(0.9956538754333033),
-    COEF_CONST(0.99595331364654771),
-    COEF_CONST(0.99624208599994479),
-    COEF_CONST(0.99652018940097464),
-    COEF_CONST(0.99678762087137318),
-    COEF_CONST(0.99704437754716424),
-    COEF_CONST(0.99729045667869021),
-    COEF_CONST(0.99752585563064111),
-    COEF_CONST(0.99775057188208349),
-    COEF_CONST(0.9979646030264866),
-    COEF_CONST(0.99816794677174903),
-    COEF_CONST(0.9983606009402225),
-    COEF_CONST(0.99854256346873571),
-    COEF_CONST(0.99871383240861611),
-    COEF_CONST(0.99887440592571108),
-    COEF_CONST(0.99902428230040718),
-    COEF_CONST(0.99916345992764877),
-    COEF_CONST(0.99929193731695531),
-    COEF_CONST(0.99940971309243731),
-    COEF_CONST(0.99951678599281069),
-    COEF_CONST(0.99961315487141078),
-    COEF_CONST(0.99969881869620425),
-    COEF_CONST(0.99977377654980037),
-    COEF_CONST(0.99983802762946083),
-    COEF_CONST(0.99989157124710804),
-    COEF_CONST(0.9999344068293331),
-    COEF_CONST(0.99996653391740109),
-    COEF_CONST(0.99998795216725689),
-    COEF_CONST(0.99999866134952808)
+    FRAC_CONST(0.0016362454436240478),
+    FRAC_CONST(0.00490871880799799),
+    FRAC_CONST(0.0081811396039371282),
+    FRAC_CONST(0.011453472786443779),
+    FRAC_CONST(0.014725683311458524),
+    FRAC_CONST(0.017997736136235509),
+    FRAC_CONST(0.021269596219717739),
+    FRAC_CONST(0.024541228522912285),
+    FRAC_CONST(0.027812598009265607),
+    FRAC_CONST(0.03108366964503869),
+    FRAC_CONST(0.034354408399682276),
+    FRAC_CONST(0.037624779246211978),
+    FRAC_CONST(0.04089474716158345),
+    FRAC_CONST(0.044164277127067358),
+    FRAC_CONST(0.047433334128624507),
+    FRAC_CONST(0.050701883157280733),
+    FRAC_CONST(0.053969889209501881),
+    FRAC_CONST(0.057237317287568618),
+    FRAC_CONST(0.060504132399951269),
+    FRAC_CONST(0.063770299561684493),
+    FRAC_CONST(0.06703578379474201),
+    FRAC_CONST(0.070300550128411174),
+    FRAC_CONST(0.073564563599667426),
+    FRAC_CONST(0.076827789253548759),
+    FRAC_CONST(0.080090192143530081),
+    FRAC_CONST(0.083351737331897449),
+    FRAC_CONST(0.086612389890122182),
+    FRAC_CONST(0.089872114899234967),
+    FRAC_CONST(0.093130877450199795),
+    FRAC_CONST(0.096388642644287828),
+    FRAC_CONST(0.09964537559345106),
+    FRAC_CONST(0.1029010414206961),
+    FRAC_CONST(0.10615560526045748),
+    FRAC_CONST(0.10940903225897117),
+    FRAC_CONST(0.11266128757464781),
+    FRAC_CONST(0.11591233637844581),
+    FRAC_CONST(0.11916214385424433),
+    FRAC_CONST(0.1224106751992162),
+    FRAC_CONST(0.12565789562420052),
+    FRAC_CONST(0.12890377035407541),
+    FRAC_CONST(0.13214826462813015),
+    FRAC_CONST(0.13539134370043773),
+    FRAC_CONST(0.13863297284022669),
+    FRAC_CONST(0.14187311733225325),
+    FRAC_CONST(0.14511174247717309),
+    FRAC_CONST(0.14834881359191271),
+    FRAC_CONST(0.15158429601004111),
+    FRAC_CONST(0.15481815508214106),
+    FRAC_CONST(0.1580503561761798),
+    FRAC_CONST(0.16128086467788047),
+    FRAC_CONST(0.16450964599109233),
+    FRAC_CONST(0.16773666553816149),
+    FRAC_CONST(0.17096188876030122),
+    FRAC_CONST(0.17418528111796186),
+    FRAC_CONST(0.17740680809120093),
+    FRAC_CONST(0.18062643518005275),
+    FRAC_CONST(0.18384412790489776),
+    FRAC_CONST(0.18705985180683199),
+    FRAC_CONST(0.19027357244803589),
+    FRAC_CONST(0.19348525541214331),
+    FRAC_CONST(0.19669486630460997),
+    FRAC_CONST(0.19990237075308173),
+    FRAC_CONST(0.20310773440776286),
+    FRAC_CONST(0.20631092294178383),
+    FRAC_CONST(0.20951190205156878),
+    FRAC_CONST(0.21271063745720317),
+    FRAC_CONST(0.21590709490280058),
+    FRAC_CONST(0.2191012401568698),
+    FRAC_CONST(0.22229303901268133),
+    FRAC_CONST(0.22548245728863364),
+    FRAC_CONST(0.22866946082861941),
+    FRAC_CONST(0.23185401550239115),
+    FRAC_CONST(0.23503608720592667),
+    FRAC_CONST(0.23821564186179459),
+    FRAC_CONST(0.24139264541951888),
+    FRAC_CONST(0.24456706385594387),
+    FRAC_CONST(0.24773886317559846),
+    FRAC_CONST(0.25090800941106001),
+    FRAC_CONST(0.25407446862331851),
+    FRAC_CONST(0.25723820690213967),
+    FRAC_CONST(0.26039919036642817),
+    FRAC_CONST(0.26355738516459076),
+    FRAC_CONST(0.26671275747489837),
+    FRAC_CONST(0.2698652735058486),
+    FRAC_CONST(0.27301489949652735),
+    FRAC_CONST(0.27616160171697068),
+    FRAC_CONST(0.27930534646852595),
+    FRAC_CONST(0.28244610008421245),
+    FRAC_CONST(0.2855838289290823),
+    FRAC_CONST(0.28871849940058025),
+    FRAC_CONST(0.29185007792890405),
+    FRAC_CONST(0.29497853097736348),
+    FRAC_CONST(0.2981038250427398),
+    FRAC_CONST(0.30122592665564446),
+    FRAC_CONST(0.30434480238087736),
+    FRAC_CONST(0.30746041881778519),
+    FRAC_CONST(0.31057274260061901),
+    FRAC_CONST(0.31368174039889146),
+    FRAC_CONST(0.31678737891773395),
+    FRAC_CONST(0.31988962489825296),
+    FRAC_CONST(0.32298844511788638),
+    FRAC_CONST(0.32608380639075912),
+    FRAC_CONST(0.32917567556803889),
+    FRAC_CONST(0.33226401953829071),
+    FRAC_CONST(0.33534880522783189),
+    FRAC_CONST(0.33842999960108583),
+    FRAC_CONST(0.34150756966093632),
+    FRAC_CONST(0.34458148244908043),
+    FRAC_CONST(0.34765170504638188),
+    FRAC_CONST(0.35071820457322322),
+    FRAC_CONST(0.35378094818985806),
+    FRAC_CONST(0.35683990309676283),
+    FRAC_CONST(0.35989503653498811),
+    FRAC_CONST(0.36294631578650921),
+    FRAC_CONST(0.36599370817457672),
+    FRAC_CONST(0.36903718106406647),
+    FRAC_CONST(0.37207670186182878),
+    FRAC_CONST(0.37511223801703802),
+    FRAC_CONST(0.37814375702154046),
+    FRAC_CONST(0.38117122641020335),
+    FRAC_CONST(0.38419461376126157),
+    FRAC_CONST(0.38721388669666562),
+    FRAC_CONST(0.39022901288242801),
+    FRAC_CONST(0.39323996002896966),
+    FRAC_CONST(0.39624669589146555),
+    FRAC_CONST(0.39924918827019029),
+    FRAC_CONST(0.40224740501086254),
+    FRAC_CONST(0.40524131400498986),
+    FRAC_CONST(0.40823088319021217),
+    FRAC_CONST(0.41121608055064529),
+    FRAC_CONST(0.41419687411722372),
+    FRAC_CONST(0.41717323196804335),
+    FRAC_CONST(0.42014512222870243),
+    FRAC_CONST(0.42311251307264408),
+    FRAC_CONST(0.42607537272149631),
+    FRAC_CONST(0.4290336694454126),
+    FRAC_CONST(0.43198737156341183),
+    FRAC_CONST(0.43493644744371707),
+    FRAC_CONST(0.43788086550409511),
+    FRAC_CONST(0.44082059421219388),
+    FRAC_CONST(0.44375560208588088),
+    FRAC_CONST(0.44668585769357955),
+    FRAC_CONST(0.4496113296546066),
+    FRAC_CONST(0.45253198663950756),
+    FRAC_CONST(0.45544779737039259),
+    FRAC_CONST(0.45835873062127125),
+    FRAC_CONST(0.46126475521838717),
+    FRAC_CONST(0.46416584004055156),
+    FRAC_CONST(0.46706195401947659),
+    FRAC_CONST(0.46995306614010829),
+    FRAC_CONST(0.47283914544095862),
+    FRAC_CONST(0.47572016101443682),
+    FRAC_CONST(0.47859608200718085),
+    FRAC_CONST(0.4814668776203872),
+    FRAC_CONST(0.48433251711014125),
+    FRAC_CONST(0.4871929697877464),
+    FRAC_CONST(0.49004820502005247),
+    FRAC_CONST(0.49289819222978404),
+    FRAC_CONST(0.49574290089586776),
+    FRAC_CONST(0.49858230055375902),
+    FRAC_CONST(0.50141636079576901),
+    FRAC_CONST(0.50424505127138919),
+    FRAC_CONST(0.50706834168761705),
+    FRAC_CONST(0.50988620180928057),
+    FRAC_CONST(0.51269860145936175),
+    FRAC_CONST(0.51550551051931948),
+    FRAC_CONST(0.51830689892941317),
+    FRAC_CONST(0.5211027366890234),
+    FRAC_CONST(0.52389299385697385),
+    FRAC_CONST(0.52667764055185196),
+    FRAC_CONST(0.52945664695232897),
+    FRAC_CONST(0.53222998329747884),
+    FRAC_CONST(0.53499761988709726),
+    FRAC_CONST(0.53775952708201991),
+    FRAC_CONST(0.54051567530443978),
+    FRAC_CONST(0.54326603503822357),
+    FRAC_CONST(0.54601057682922816),
+    FRAC_CONST(0.54874927128561579),
+    FRAC_CONST(0.55148208907816942),
+    FRAC_CONST(0.55420900094060566),
+    FRAC_CONST(0.55692997766988939),
+    FRAC_CONST(0.559644990126546),
+    FRAC_CONST(0.56235400923497314),
+    FRAC_CONST(0.56505700598375252),
+    FRAC_CONST(0.56775395142596052),
+    FRAC_CONST(0.57044481667947822),
+    FRAC_CONST(0.57312957292730071),
+    FRAC_CONST(0.57580819141784534),
+    FRAC_CONST(0.57848064346525996),
+    FRAC_CONST(0.58114690044973039),
+    FRAC_CONST(0.58380693381778626),
+    FRAC_CONST(0.58646071508260733),
+    FRAC_CONST(0.58910821582432815),
+    FRAC_CONST(0.5917494076903429),
+    FRAC_CONST(0.5943842623956086),
+    FRAC_CONST(0.59701275172294799),
+    FRAC_CONST(0.59963484752335228),
+    FRAC_CONST(0.60225052171628191),
+    FRAC_CONST(0.60485974628996786),
+    FRAC_CONST(0.60746249330171098),
+    FRAC_CONST(0.61005873487818185),
+    FRAC_CONST(0.61264844321571899),
+    FRAC_CONST(0.61523159058062682),
+    FRAC_CONST(0.61780814930947225),
+    FRAC_CONST(0.62037809180938108),
+    FRAC_CONST(0.62294139055833397),
+    FRAC_CONST(0.6254980181054608),
+    FRAC_CONST(0.62804794707133416),
+    FRAC_CONST(0.63059115014826372),
+    FRAC_CONST(0.63312760010058777),
+    FRAC_CONST(0.63565726976496484),
+    FRAC_CONST(0.63818013205066515),
+    FRAC_CONST(0.64069615993986073),
+    FRAC_CONST(0.64320532648791406),
+    FRAC_CONST(0.64570760482366729),
+    FRAC_CONST(0.64820296814972966),
+    FRAC_CONST(0.65069138974276486),
+    FRAC_CONST(0.65317284295377676),
+    FRAC_CONST(0.65564730120839498),
+    FRAC_CONST(0.65811473800715958),
+    FRAC_CONST(0.660575126925805),
+    FRAC_CONST(0.66302844161554231),
+    FRAC_CONST(0.6654746558033422),
+    FRAC_CONST(0.66791374329221598),
+    FRAC_CONST(0.67034567796149647),
+    FRAC_CONST(0.67277043376711676),
+    FRAC_CONST(0.67518798474189046),
+    FRAC_CONST(0.67759830499578866),
+    FRAC_CONST(0.68000136871621808),
+    FRAC_CONST(0.68239715016829683),
+    FRAC_CONST(0.6847856236951303),
+    FRAC_CONST(0.68716676371808583),
+    FRAC_CONST(0.68954054473706683),
+    FRAC_CONST(0.69190694133078579),
+    FRAC_CONST(0.69426592815703603),
+    FRAC_CONST(0.69661747995296419),
+    FRAC_CONST(0.69896157153533944),
+    FRAC_CONST(0.70129817780082437),
+    FRAC_CONST(0.7036272737262429),
+    FRAC_CONST(0.70594883436884903),
+    FRAC_CONST(0.70826283486659336),
+    FRAC_CONST(0.71056925043838959),
+    FRAC_CONST(0.71286805638437978),
+    FRAC_CONST(0.71515922808619936),
+    FRAC_CONST(0.71744274100723993),
+    FRAC_CONST(0.71971857069291278),
+    FRAC_CONST(0.7219866927709101),
+    FRAC_CONST(0.72424708295146689),
+    FRAC_CONST(0.72649971702762028),
+    FRAC_CONST(0.72874457087546896),
+    FRAC_CONST(0.73098162045443171),
+    FRAC_CONST(0.73321084180750484),
+    FRAC_CONST(0.73543221106151868),
+    FRAC_CONST(0.73764570442739286),
+    FRAC_CONST(0.73985129820039208),
+    FRAC_CONST(0.74204896876037885),
+    FRAC_CONST(0.7442386925720671),
+    FRAC_CONST(0.74642044618527381),
+    FRAC_CONST(0.74859420623517081),
+    FRAC_CONST(0.75075994944253421),
+    FRAC_CONST(0.75291765261399446),
+    FRAC_CONST(0.75506729264228367),
+    FRAC_CONST(0.75720884650648446),
+    FRAC_CONST(0.75934229127227548),
+    FRAC_CONST(0.76146760409217706),
+    FRAC_CONST(0.76358476220579641),
+    FRAC_CONST(0.7656937429400712),
+    FRAC_CONST(0.76779452370951196),
+    FRAC_CONST(0.76988708201644451),
+    FRAC_CONST(0.77197139545125026),
+    FRAC_CONST(0.7740474416926072),
+    FRAC_CONST(0.77611519850772781),
+    FRAC_CONST(0.77817464375259782),
+    FRAC_CONST(0.78022575537221317),
+    FRAC_CONST(0.78226851140081632),
+    FRAC_CONST(0.78430288996213138),
+    FRAC_CONST(0.78632886926959822),
+    FRAC_CONST(0.78834642762660623),
+    FRAC_CONST(0.79035554342672631),
+    FRAC_CONST(0.79235619515394229),
+    FRAC_CONST(0.79434836138288134),
+    FRAC_CONST(0.79633202077904397),
+    FRAC_CONST(0.79830715209903147),
+    FRAC_CONST(0.8002737341907743),
+    FRAC_CONST(0.80223174599375802),
+    FRAC_CONST(0.80418116653924954),
+    FRAC_CONST(0.80612197495052085),
+    FRAC_CONST(0.80805415044307316),
+    FRAC_CONST(0.80997767232485907),
+    FRAC_CONST(0.81189251999650469),
+    FRAC_CONST(0.81379867295152986),
+    FRAC_CONST(0.81569611077656778),
+    FRAC_CONST(0.81758481315158371),
+    FRAC_CONST(0.81946475985009259),
+    FRAC_CONST(0.82133593073937561),
+    FRAC_CONST(0.82319830578069586),
+    FRAC_CONST(0.82505186502951278),
+    FRAC_CONST(0.82689658863569615),
+    FRAC_CONST(0.82873245684373809),
+    FRAC_CONST(0.83055944999296494),
+    FRAC_CONST(0.83237754851774781),
+    FRAC_CONST(0.83418673294771239),
+    FRAC_CONST(0.83598698390794668),
+    FRAC_CONST(0.83777828211920935),
+    FRAC_CONST(0.83956060839813562),
+    FRAC_CONST(0.84133394365744296),
+    FRAC_CONST(0.84309826890613537),
+    FRAC_CONST(0.84485356524970701),
+    FRAC_CONST(0.84659981389034411),
+    FRAC_CONST(0.84833699612712676),
+    FRAC_CONST(0.85006509335622882),
+    FRAC_CONST(0.8517840870711173),
+    FRAC_CONST(0.85349395886275037),
+    FRAC_CONST(0.85519469041977514),
+    FRAC_CONST(0.85688626352872277),
+    FRAC_CONST(0.85856866007420429),
+    FRAC_CONST(0.86024186203910447),
+    FRAC_CONST(0.86190585150477417),
+    FRAC_CONST(0.86356061065122347),
+    FRAC_CONST(0.86520612175731115),
+    FRAC_CONST(0.86684236720093533),
+    FRAC_CONST(0.86846932945922151),
+    FRAC_CONST(0.87008699110871135),
+    FRAC_CONST(0.87169533482554817),
+    FRAC_CONST(0.87329434338566281),
+    FRAC_CONST(0.87488399966495822),
+    FRAC_CONST(0.87646428663949283),
+    FRAC_CONST(0.87803518738566277),
+    FRAC_CONST(0.87959668508038291),
+    FRAC_CONST(0.88114876300126743),
+    FRAC_CONST(0.88269140452680916),
+    FRAC_CONST(0.8842245931365561),
+    FRAC_CONST(0.88574831241129048),
+    FRAC_CONST(0.88726254603320276),
+    FRAC_CONST(0.88876727778606746),
+    FRAC_CONST(0.89026249155541637),
+    FRAC_CONST(0.8917481713287112),
+    FRAC_CONST(0.89322430119551532),
+    FRAC_CONST(0.89469086534766362),
+    FRAC_CONST(0.89614784807943237),
+    FRAC_CONST(0.89759523378770689),
+    FRAC_CONST(0.89903300697214927),
+    FRAC_CONST(0.9004611522353636),
+    FRAC_CONST(0.90187965428306172),
+    FRAC_CONST(0.90328849792422594),
+    FRAC_CONST(0.90468766807127299),
+    FRAC_CONST(0.90607714974021469),
+    FRAC_CONST(0.90745692805081868),
+    FRAC_CONST(0.90882698822676755),
+    FRAC_CONST(0.91018731559581767),
+    FRAC_CONST(0.91153789558995579),
+    FRAC_CONST(0.91287871374555518),
+    FRAC_CONST(0.91420975570353069),
+    FRAC_CONST(0.9155310072094921),
+    FRAC_CONST(0.91684245411389753),
+    FRAC_CONST(0.91814408237220391),
+    FRAC_CONST(0.91943587804501858),
+    FRAC_CONST(0.92071782729824769),
+    FRAC_CONST(0.92198991640324446),
+    FRAC_CONST(0.92325213173695675),
+    FRAC_CONST(0.92450445978207241),
+    FRAC_CONST(0.92574688712716402),
+    FRAC_CONST(0.92697940046683291),
+    FRAC_CONST(0.92820198660185149),
+    FRAC_CONST(0.92941463243930444),
+    FRAC_CONST(0.93061732499272909),
+    FRAC_CONST(0.93181005138225426),
+    FRAC_CONST(0.93299279883473885),
+    FRAC_CONST(0.93416555468390772),
+    FRAC_CONST(0.93532830637048769),
+    FRAC_CONST(0.93648104144234268),
+    FRAC_CONST(0.93762374755460598),
+    FRAC_CONST(0.93875641246981323),
+    FRAC_CONST(0.93987902405803303),
+    FRAC_CONST(0.94099157029699743),
+    FRAC_CONST(0.94209403927222979),
+    FRAC_CONST(0.94318641917717327),
+    FRAC_CONST(0.9442686983133165),
+    FRAC_CONST(0.94534086509031956),
+    FRAC_CONST(0.9464029080261378),
+    FRAC_CONST(0.94745481574714419),
+    FRAC_CONST(0.94849657698825252),
+    FRAC_CONST(0.94952818059303667),
+    FRAC_CONST(0.95054961551385087),
+    FRAC_CONST(0.95156087081194762),
+    FRAC_CONST(0.95256193565759528),
+    FRAC_CONST(0.95355279933019343),
+    FRAC_CONST(0.9545334512183884),
+    FRAC_CONST(0.95550388082018611),
+    FRAC_CONST(0.95646407774306541),
+    FRAC_CONST(0.95741403170408834),
+    FRAC_CONST(0.95835373253001133),
+    FRAC_CONST(0.95928317015739362),
+    FRAC_CONST(0.96020233463270466),
+    FRAC_CONST(0.96111121611243155),
+    FRAC_CONST(0.96200980486318388),
+    FRAC_CONST(0.96289809126179782),
+    FRAC_CONST(0.96377606579543984),
+    FRAC_CONST(0.96464371906170809),
+    FRAC_CONST(0.96550104176873297),
+    FRAC_CONST(0.96634802473527726),
+    FRAC_CONST(0.96718465889083372),
+    FRAC_CONST(0.96801093527572268),
+    FRAC_CONST(0.96882684504118799),
+    FRAC_CONST(0.96963237944949143),
+    FRAC_CONST(0.97042752987400682),
+    FRAC_CONST(0.97121228779931179),
+    FRAC_CONST(0.97198664482127939),
+    FRAC_CONST(0.97275059264716823),
+    FRAC_CONST(0.97350412309571066),
+    FRAC_CONST(0.97424722809720088),
+    FRAC_CONST(0.97497989969358168),
+    FRAC_CONST(0.97570213003852857),
+    FRAC_CONST(0.97641391139753486),
+    FRAC_CONST(0.97711523614799412),
+    FRAC_CONST(0.97780609677928154),
+    FRAC_CONST(0.97848648589283505),
+    FRAC_CONST(0.97915639620223371),
+    FRAC_CONST(0.9798158205332762),
+    FRAC_CONST(0.98046475182405801),
+    FRAC_CONST(0.98110318312504607),
+    FRAC_CONST(0.98173110759915416),
+    FRAC_CONST(0.98234851852181571),
+    FRAC_CONST(0.98295540928105563),
+    FRAC_CONST(0.9835517733775615),
+    FRAC_CONST(0.98413760442475307),
+    FRAC_CONST(0.98471289614885038),
+    FRAC_CONST(0.98527764238894122),
+    FRAC_CONST(0.98583183709704714),
+    FRAC_CONST(0.98637547433818806),
+    FRAC_CONST(0.98690854829044583),
+    FRAC_CONST(0.98743105324502667),
+    FRAC_CONST(0.98794298360632238),
+    FRAC_CONST(0.98844433389196995),
+    FRAC_CONST(0.98893509873291074),
+    FRAC_CONST(0.98941527287344755),
+    FRAC_CONST(0.98988485117130098),
+    FRAC_CONST(0.99034382859766479),
+    FRAC_CONST(0.99079220023725967),
+    FRAC_CONST(0.99122996128838525),
+    FRAC_CONST(0.9916571070629725),
+    FRAC_CONST(0.99207363298663342),
+    FRAC_CONST(0.99247953459870997),
+    FRAC_CONST(0.99287480755232194),
+    FRAC_CONST(0.99325944761441354),
+    FRAC_CONST(0.99363345066579889),
+    FRAC_CONST(0.99399681270120555),
+    FRAC_CONST(0.99434952982931812),
+    FRAC_CONST(0.9946915982728195),
+    FRAC_CONST(0.99502301436843166),
+    FRAC_CONST(0.99534377456695422),
+    FRAC_CONST(0.9956538754333033),
+    FRAC_CONST(0.99595331364654771),
+    FRAC_CONST(0.99624208599994479),
+    FRAC_CONST(0.99652018940097464),
+    FRAC_CONST(0.99678762087137318),
+    FRAC_CONST(0.99704437754716424),
+    FRAC_CONST(0.99729045667869021),
+    FRAC_CONST(0.99752585563064111),
+    FRAC_CONST(0.99775057188208349),
+    FRAC_CONST(0.9979646030264866),
+    FRAC_CONST(0.99816794677174903),
+    FRAC_CONST(0.9983606009402225),
+    FRAC_CONST(0.99854256346873571),
+    FRAC_CONST(0.99871383240861611),
+    FRAC_CONST(0.99887440592571108),
+    FRAC_CONST(0.99902428230040718),
+    FRAC_CONST(0.99916345992764877),
+    FRAC_CONST(0.99929193731695531),
+    FRAC_CONST(0.99940971309243731),
+    FRAC_CONST(0.99951678599281069),
+    FRAC_CONST(0.99961315487141078),
+    FRAC_CONST(0.99969881869620425),
+    FRAC_CONST(0.99977377654980037),
+    FRAC_CONST(0.99983802762946083),
+    FRAC_CONST(0.99989157124710804),
+    FRAC_CONST(0.9999344068293331),
+    FRAC_CONST(0.99996653391740109),
+    FRAC_CONST(0.99998795216725689),
+    FRAC_CONST(0.99999866134952808)
 };
 #endif
 
 real_t ld_mid_512[] =
 {
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0.0061358846491544753),
-    COEF_CONST(0.01840672990580482),
-    COEF_CONST(0.030674803176636626),
-    COEF_CONST(0.04293825693494082),
-    COEF_CONST(0.055195244349689934),
-    COEF_CONST(0.067443919563664051),
-    COEF_CONST(0.079682437971430126),
-    COEF_CONST(0.091908956497132724),
-    COEF_CONST(0.10412163387205459),
-    COEF_CONST(0.11631863091190475),
-    COEF_CONST(0.12849811079379317),
-    COEF_CONST(0.14065823933284921),
-    COEF_CONST(0.15279718525844344),
-    COEF_CONST(0.16491312048996989),
-    COEF_CONST(0.17700422041214875),
-    COEF_CONST(0.18906866414980619),
-    COEF_CONST(0.2011046348420919),
-    COEF_CONST(0.21311031991609136),
-    COEF_CONST(0.22508391135979283),
-    COEF_CONST(0.2370236059943672),
-    COEF_CONST(0.24892760574572015),
-    COEF_CONST(0.26079411791527551),
-    COEF_CONST(0.27262135544994898),
-    COEF_CONST(0.28440753721127188),
-    COEF_CONST(0.29615088824362379),
-    COEF_CONST(0.30784964004153487),
-    COEF_CONST(0.31950203081601569),
-    COEF_CONST(0.33110630575987643),
-    COEF_CONST(0.34266071731199438),
-    COEF_CONST(0.35416352542049034),
-    COEF_CONST(0.36561299780477385),
-    COEF_CONST(0.37700741021641826),
-    COEF_CONST(0.38834504669882625),
-    COEF_CONST(0.39962419984564679),
-    COEF_CONST(0.41084317105790391),
-    COEF_CONST(0.42200027079979968),
-    COEF_CONST(0.43309381885315196),
-    COEF_CONST(0.4441221445704292),
-    COEF_CONST(0.45508358712634384),
-    COEF_CONST(0.46597649576796618),
-    COEF_CONST(0.47679923006332209),
-    COEF_CONST(0.487550160148436),
-    COEF_CONST(0.49822766697278187),
-    COEF_CONST(0.50883014254310699),
-    COEF_CONST(0.51935599016558964),
-    COEF_CONST(0.52980362468629461),
-    COEF_CONST(0.54017147272989285),
-    COEF_CONST(0.55045797293660481),
-    COEF_CONST(0.56066157619733603),
-    COEF_CONST(0.57078074588696726),
-    COEF_CONST(0.58081395809576453),
-    COEF_CONST(0.59075970185887416),
-    COEF_CONST(0.60061647938386897),
-    COEF_CONST(0.61038280627630948),
-    COEF_CONST(0.6200572117632891),
-    COEF_CONST(0.62963823891492698),
-    COEF_CONST(0.63912444486377573),
-    COEF_CONST(0.64851440102211244),
-    COEF_CONST(0.65780669329707864),
-    COEF_CONST(0.66699992230363747),
-    COEF_CONST(0.67609270357531592),
-    COEF_CONST(0.68508366777270036),
-    COEF_CONST(0.693971460889654),
-    COEF_CONST(0.7027547444572253),
-    COEF_CONST(0.71143219574521643),
-    COEF_CONST(0.72000250796138165),
-    COEF_CONST(0.7284643904482252),
-    COEF_CONST(0.73681656887736979),
-    COEF_CONST(0.74505778544146595),
-    COEF_CONST(0.75318679904361241),
-    COEF_CONST(0.76120238548426178),
-    COEF_CONST(0.76910333764557959),
-    COEF_CONST(0.77688846567323244),
-    COEF_CONST(0.78455659715557524),
-    COEF_CONST(0.79210657730021239),
-    COEF_CONST(0.79953726910790501),
-    COEF_CONST(0.80684755354379922),
-    COEF_CONST(0.8140363297059483),
-    COEF_CONST(0.82110251499110465),
-    COEF_CONST(0.8280450452577558),
-    COEF_CONST(0.83486287498638001),
-    COEF_CONST(0.84155497743689833),
-    COEF_CONST(0.84812034480329712),
-    COEF_CONST(0.85455798836540053),
-    COEF_CONST(0.86086693863776731),
-    COEF_CONST(0.86704624551569265),
-    COEF_CONST(0.87309497841829009),
-    COEF_CONST(0.87901222642863341),
-    COEF_CONST(0.88479709843093779),
-    COEF_CONST(0.89044872324475788),
-    COEF_CONST(0.89596624975618511),
-    COEF_CONST(0.90134884704602203),
-    COEF_CONST(0.90659570451491533),
-    COEF_CONST(0.91170603200542988),
-    COEF_CONST(0.9166790599210427),
-    COEF_CONST(0.9215140393420419),
-    COEF_CONST(0.92621024213831127),
-    COEF_CONST(0.93076696107898371),
-    COEF_CONST(0.9351835099389475),
-    COEF_CONST(0.93945922360218992),
-    COEF_CONST(0.94359345816196039),
-    COEF_CONST(0.94758559101774109),
-    COEF_CONST(0.95143502096900834),
-    COEF_CONST(0.95514116830577067),
-    COEF_CONST(0.9587034748958716),
-    COEF_CONST(0.96212140426904158),
-    COEF_CONST(0.9653944416976894),
-    COEF_CONST(0.96852209427441727),
-    COEF_CONST(0.97150389098625178),
-    COEF_CONST(0.97433938278557586),
-    COEF_CONST(0.97702814265775439),
-    COEF_CONST(0.97956976568544052),
-    COEF_CONST(0.98196386910955524),
-    COEF_CONST(0.98421009238692903),
-    COEF_CONST(0.98630809724459867),
-    COEF_CONST(0.98825756773074946),
-    COEF_CONST(0.99005821026229712),
-    COEF_CONST(0.99170975366909953),
-    COEF_CONST(0.9932119492347945),
-    COEF_CONST(0.99456457073425542),
-    COEF_CONST(0.99576741446765982),
-    COEF_CONST(0.99682029929116567),
-    COEF_CONST(0.99772306664419164),
-    COEF_CONST(0.99847558057329477),
-    COEF_CONST(0.99907772775264536),
-    COEF_CONST(0.99952941750109314),
-    COEF_CONST(0.9998305817958234),
-    COEF_CONST(0.99998117528260111),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1)
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0.0061358846491544753),
+    FRAC_CONST(0.01840672990580482),
+    FRAC_CONST(0.030674803176636626),
+    FRAC_CONST(0.04293825693494082),
+    FRAC_CONST(0.055195244349689934),
+    FRAC_CONST(0.067443919563664051),
+    FRAC_CONST(0.079682437971430126),
+    FRAC_CONST(0.091908956497132724),
+    FRAC_CONST(0.10412163387205459),
+    FRAC_CONST(0.11631863091190475),
+    FRAC_CONST(0.12849811079379317),
+    FRAC_CONST(0.14065823933284921),
+    FRAC_CONST(0.15279718525844344),
+    FRAC_CONST(0.16491312048996989),
+    FRAC_CONST(0.17700422041214875),
+    FRAC_CONST(0.18906866414980619),
+    FRAC_CONST(0.2011046348420919),
+    FRAC_CONST(0.21311031991609136),
+    FRAC_CONST(0.22508391135979283),
+    FRAC_CONST(0.2370236059943672),
+    FRAC_CONST(0.24892760574572015),
+    FRAC_CONST(0.26079411791527551),
+    FRAC_CONST(0.27262135544994898),
+    FRAC_CONST(0.28440753721127188),
+    FRAC_CONST(0.29615088824362379),
+    FRAC_CONST(0.30784964004153487),
+    FRAC_CONST(0.31950203081601569),
+    FRAC_CONST(0.33110630575987643),
+    FRAC_CONST(0.34266071731199438),
+    FRAC_CONST(0.35416352542049034),
+    FRAC_CONST(0.36561299780477385),
+    FRAC_CONST(0.37700741021641826),
+    FRAC_CONST(0.38834504669882625),
+    FRAC_CONST(0.39962419984564679),
+    FRAC_CONST(0.41084317105790391),
+    FRAC_CONST(0.42200027079979968),
+    FRAC_CONST(0.43309381885315196),
+    FRAC_CONST(0.4441221445704292),
+    FRAC_CONST(0.45508358712634384),
+    FRAC_CONST(0.46597649576796618),
+    FRAC_CONST(0.47679923006332209),
+    FRAC_CONST(0.487550160148436),
+    FRAC_CONST(0.49822766697278187),
+    FRAC_CONST(0.50883014254310699),
+    FRAC_CONST(0.51935599016558964),
+    FRAC_CONST(0.52980362468629461),
+    FRAC_CONST(0.54017147272989285),
+    FRAC_CONST(0.55045797293660481),
+    FRAC_CONST(0.56066157619733603),
+    FRAC_CONST(0.57078074588696726),
+    FRAC_CONST(0.58081395809576453),
+    FRAC_CONST(0.59075970185887416),
+    FRAC_CONST(0.60061647938386897),
+    FRAC_CONST(0.61038280627630948),
+    FRAC_CONST(0.6200572117632891),
+    FRAC_CONST(0.62963823891492698),
+    FRAC_CONST(0.63912444486377573),
+    FRAC_CONST(0.64851440102211244),
+    FRAC_CONST(0.65780669329707864),
+    FRAC_CONST(0.66699992230363747),
+    FRAC_CONST(0.67609270357531592),
+    FRAC_CONST(0.68508366777270036),
+    FRAC_CONST(0.693971460889654),
+    FRAC_CONST(0.7027547444572253),
+    FRAC_CONST(0.71143219574521643),
+    FRAC_CONST(0.72000250796138165),
+    FRAC_CONST(0.7284643904482252),
+    FRAC_CONST(0.73681656887736979),
+    FRAC_CONST(0.74505778544146595),
+    FRAC_CONST(0.75318679904361241),
+    FRAC_CONST(0.76120238548426178),
+    FRAC_CONST(0.76910333764557959),
+    FRAC_CONST(0.77688846567323244),
+    FRAC_CONST(0.78455659715557524),
+    FRAC_CONST(0.79210657730021239),
+    FRAC_CONST(0.79953726910790501),
+    FRAC_CONST(0.80684755354379922),
+    FRAC_CONST(0.8140363297059483),
+    FRAC_CONST(0.82110251499110465),
+    FRAC_CONST(0.8280450452577558),
+    FRAC_CONST(0.83486287498638001),
+    FRAC_CONST(0.84155497743689833),
+    FRAC_CONST(0.84812034480329712),
+    FRAC_CONST(0.85455798836540053),
+    FRAC_CONST(0.86086693863776731),
+    FRAC_CONST(0.86704624551569265),
+    FRAC_CONST(0.87309497841829009),
+    FRAC_CONST(0.87901222642863341),
+    FRAC_CONST(0.88479709843093779),
+    FRAC_CONST(0.89044872324475788),
+    FRAC_CONST(0.89596624975618511),
+    FRAC_CONST(0.90134884704602203),
+    FRAC_CONST(0.90659570451491533),
+    FRAC_CONST(0.91170603200542988),
+    FRAC_CONST(0.9166790599210427),
+    FRAC_CONST(0.9215140393420419),
+    FRAC_CONST(0.92621024213831127),
+    FRAC_CONST(0.93076696107898371),
+    FRAC_CONST(0.9351835099389475),
+    FRAC_CONST(0.93945922360218992),
+    FRAC_CONST(0.94359345816196039),
+    FRAC_CONST(0.94758559101774109),
+    FRAC_CONST(0.95143502096900834),
+    FRAC_CONST(0.95514116830577067),
+    FRAC_CONST(0.9587034748958716),
+    FRAC_CONST(0.96212140426904158),
+    FRAC_CONST(0.9653944416976894),
+    FRAC_CONST(0.96852209427441727),
+    FRAC_CONST(0.97150389098625178),
+    FRAC_CONST(0.97433938278557586),
+    FRAC_CONST(0.97702814265775439),
+    FRAC_CONST(0.97956976568544052),
+    FRAC_CONST(0.98196386910955524),
+    FRAC_CONST(0.98421009238692903),
+    FRAC_CONST(0.98630809724459867),
+    FRAC_CONST(0.98825756773074946),
+    FRAC_CONST(0.99005821026229712),
+    FRAC_CONST(0.99170975366909953),
+    FRAC_CONST(0.9932119492347945),
+    FRAC_CONST(0.99456457073425542),
+    FRAC_CONST(0.99576741446765982),
+    FRAC_CONST(0.99682029929116567),
+    FRAC_CONST(0.99772306664419164),
+    FRAC_CONST(0.99847558057329477),
+    FRAC_CONST(0.99907772775264536),
+    FRAC_CONST(0.99952941750109314),
+    FRAC_CONST(0.9998305817958234),
+    FRAC_CONST(0.99998117528260111),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1)
 };
 
 #ifdef ALLOW_SMALL_FRAMELENGTH
 real_t ld_mid_480[] =
 {
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0),
-    COEF_CONST(0.0065449379673518581),
-    COEF_CONST(0.019633692460628301),
-    COEF_CONST(0.032719082821776137),
-    COEF_CONST(0.045798866936520771),
-    COEF_CONST(0.058870803651189033),
-    COEF_CONST(0.071932653156719387),
-    COEF_CONST(0.084982177372441667),
-    COEF_CONST(0.09801714032956059),
-    COEF_CONST(0.11103530855427769),
-    COEF_CONST(0.12403445145048532),
-    COEF_CONST(0.13701234168196802),
-    COEF_CONST(0.14996675555404498),
-    COEF_CONST(0.16289547339458874),
-    COEF_CONST(0.17579627993435451),
-    COEF_CONST(0.18866696468655525),
-    COEF_CONST(0.2015053223256171),
-    COEF_CONST(0.21430915306505074),
-    COEF_CONST(0.2270762630343732),
-    COEF_CONST(0.23980446465501654),
-    COEF_CONST(0.25249157701515795),
-    COEF_CONST(0.26513542624340797),
-    COEF_CONST(0.27773384588129219),
-    COEF_CONST(0.29028467725446233),
-    COEF_CONST(0.3027857698425746),
-    COEF_CONST(0.31523498164776964),
-    COEF_CONST(0.32763017956169349),
-    COEF_CONST(0.33996923973099424),
-    COEF_CONST(0.35225004792123354),
-    COEF_CONST(0.36447049987914965),
-    COEF_CONST(0.37662850169321077),
-    COEF_CONST(0.38872197015239557),
-    COEF_CONST(0.40074883310314097),
-    COEF_CONST(0.41270702980439467),
-    COEF_CONST(0.42459451128071307),
-    COEF_CONST(0.43640924067334208),
-    COEF_CONST(0.44814919358922256),
-    COEF_CONST(0.45981235844785984),
-    COEF_CONST(0.47139673682599764),
-    COEF_CONST(0.48290034380003727),
-    COEF_CONST(0.49432120828614462),
-    COEF_CONST(0.50565737337798455),
-    COEF_CONST(0.51690689668202761),
-    COEF_CONST(0.52806785065036799),
-    COEF_CONST(0.53913832291100017),
-    COEF_CONST(0.55011641659549337),
-    COEF_CONST(0.56100025066400983),
-    COEF_CONST(0.57178796022761225),
-    COEF_CONST(0.58247769686780215),
-    COEF_CONST(0.59306762895323706),
-    COEF_CONST(0.60355594195357143),
-    COEF_CONST(0.61394083875036642),
-    COEF_CONST(0.62422053994501758),
-    COEF_CONST(0.63439328416364549),
-    COEF_CONST(0.64445732835889735),
-    COEF_CONST(0.65441094810861034),
-    COEF_CONST(0.66425243791128175),
-    COEF_CONST(0.67398011147829784),
-    COEF_CONST(0.68359230202287125),
-    COEF_CONST(0.69308736254563585),
-    COEF_CONST(0.70246366611685174),
-    COEF_CONST(0.71171960615517138),
-    COEF_CONST(0.72085359670291882),
-    COEF_CONST(0.7298640726978356),
-    COEF_CONST(0.73874949024124625),
-    COEF_CONST(0.74750832686259672),
-    COEF_CONST(0.75613908178032285),
-    COEF_CONST(0.76464027615900032),
-    COEF_CONST(0.77301045336273699),
-    COEF_CONST(0.78124817920475853),
-    COEF_CONST(0.78935204219315003),
-    COEF_CONST(0.79732065377270711),
-    COEF_CONST(0.80515264856285829),
-    COEF_CONST(0.81284668459161513),
-    COEF_CONST(0.82040144352551359),
-    COEF_CONST(0.82781563089550203),
-    COEF_CONST(0.83508797631874299),
-    COEF_CONST(0.84221723371628654),
-    COEF_CONST(0.84920218152657889),
-    COEF_CONST(0.85604162291477137),
-    COEF_CONST(0.86273438597779184),
-    COEF_CONST(0.86927932394514362),
-    COEF_CONST(0.87567531537539967),
-    COEF_CONST(0.88192126434835494),
-    COEF_CONST(0.88801610065280734),
-    COEF_CONST(0.89395877996993212),
-    COEF_CONST(0.8997482840522214),
-    COEF_CONST(0.90538362089795521),
-    COEF_CONST(0.91086382492117568),
-    COEF_CONST(0.91618795711713596),
-    COEF_CONST(0.92135510522319242),
-    COEF_CONST(0.9263643838751181),
-    COEF_CONST(0.93121493475880346),
-    COEF_CONST(0.93590592675732565),
-    COEF_CONST(0.94043655609335486),
-    COEF_CONST(0.94480604646687805),
-    COEF_CONST(0.94901364918821385),
-    COEF_CONST(0.95305864330629697),
-    COEF_CONST(0.95694033573220882),
-    COEF_CONST(0.9606580613579353),
-    COEF_CONST(0.96421118317032928),
-    COEF_CONST(0.96759909236025976),
-    COEF_CONST(0.9708212084269281),
-    COEF_CONST(0.97387697927733363),
-    COEF_CONST(0.97676588132087239),
-    COEF_CONST(0.97948741955905139),
-    COEF_CONST(0.98204112767030394),
-    COEF_CONST(0.98442656808989171),
-    COEF_CONST(0.98664333208487898),
-    COEF_CONST(0.98869103982416728),
-    COEF_CONST(0.99056934044357725),
-    COEF_CONST(0.99227791210596705),
-    COEF_CONST(0.99381646205637808),
-    COEF_CONST(0.99518472667219682),
-    COEF_CONST(0.99638247150832537),
-    COEF_CONST(0.99740949133735191),
-    COEF_CONST(0.99826561018471593),
-    COEF_CONST(0.99895068135886012),
-    COEF_CONST(0.99946458747636568),
-    COEF_CONST(0.99980724048206482),
-    COEF_CONST(0.99997858166412923),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1),
-    COEF_CONST(1)
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0),
+    FRAC_CONST(0.0065449379673518581),
+    FRAC_CONST(0.019633692460628301),
+    FRAC_CONST(0.032719082821776137),
+    FRAC_CONST(0.045798866936520771),
+    FRAC_CONST(0.058870803651189033),
+    FRAC_CONST(0.071932653156719387),
+    FRAC_CONST(0.084982177372441667),
+    FRAC_CONST(0.09801714032956059),
+    FRAC_CONST(0.11103530855427769),
+    FRAC_CONST(0.12403445145048532),
+    FRAC_CONST(0.13701234168196802),
+    FRAC_CONST(0.14996675555404498),
+    FRAC_CONST(0.16289547339458874),
+    FRAC_CONST(0.17579627993435451),
+    FRAC_CONST(0.18866696468655525),
+    FRAC_CONST(0.2015053223256171),
+    FRAC_CONST(0.21430915306505074),
+    FRAC_CONST(0.2270762630343732),
+    FRAC_CONST(0.23980446465501654),
+    FRAC_CONST(0.25249157701515795),
+    FRAC_CONST(0.26513542624340797),
+    FRAC_CONST(0.27773384588129219),
+    FRAC_CONST(0.29028467725446233),
+    FRAC_CONST(0.3027857698425746),
+    FRAC_CONST(0.31523498164776964),
+    FRAC_CONST(0.32763017956169349),
+    FRAC_CONST(0.33996923973099424),
+    FRAC_CONST(0.35225004792123354),
+    FRAC_CONST(0.36447049987914965),
+    FRAC_CONST(0.37662850169321077),
+    FRAC_CONST(0.38872197015239557),
+    FRAC_CONST(0.40074883310314097),
+    FRAC_CONST(0.41270702980439467),
+    FRAC_CONST(0.42459451128071307),
+    FRAC_CONST(0.43640924067334208),
+    FRAC_CONST(0.44814919358922256),
+    FRAC_CONST(0.45981235844785984),
+    FRAC_CONST(0.47139673682599764),
+    FRAC_CONST(0.48290034380003727),
+    FRAC_CONST(0.49432120828614462),
+    FRAC_CONST(0.50565737337798455),
+    FRAC_CONST(0.51690689668202761),
+    FRAC_CONST(0.52806785065036799),
+    FRAC_CONST(0.53913832291100017),
+    FRAC_CONST(0.55011641659549337),
+    FRAC_CONST(0.56100025066400983),
+    FRAC_CONST(0.57178796022761225),
+    FRAC_CONST(0.58247769686780215),
+    FRAC_CONST(0.59306762895323706),
+    FRAC_CONST(0.60355594195357143),
+    FRAC_CONST(0.61394083875036642),
+    FRAC_CONST(0.62422053994501758),
+    FRAC_CONST(0.63439328416364549),
+    FRAC_CONST(0.64445732835889735),
+    FRAC_CONST(0.65441094810861034),
+    FRAC_CONST(0.66425243791128175),
+    FRAC_CONST(0.67398011147829784),
+    FRAC_CONST(0.68359230202287125),
+    FRAC_CONST(0.69308736254563585),
+    FRAC_CONST(0.70246366611685174),
+    FRAC_CONST(0.71171960615517138),
+    FRAC_CONST(0.72085359670291882),
+    FRAC_CONST(0.7298640726978356),
+    FRAC_CONST(0.73874949024124625),
+    FRAC_CONST(0.74750832686259672),
+    FRAC_CONST(0.75613908178032285),
+    FRAC_CONST(0.76464027615900032),
+    FRAC_CONST(0.77301045336273699),
+    FRAC_CONST(0.78124817920475853),
+    FRAC_CONST(0.78935204219315003),
+    FRAC_CONST(0.79732065377270711),
+    FRAC_CONST(0.80515264856285829),
+    FRAC_CONST(0.81284668459161513),
+    FRAC_CONST(0.82040144352551359),
+    FRAC_CONST(0.82781563089550203),
+    FRAC_CONST(0.83508797631874299),
+    FRAC_CONST(0.84221723371628654),
+    FRAC_CONST(0.84920218152657889),
+    FRAC_CONST(0.85604162291477137),
+    FRAC_CONST(0.86273438597779184),
+    FRAC_CONST(0.86927932394514362),
+    FRAC_CONST(0.87567531537539967),
+    FRAC_CONST(0.88192126434835494),
+    FRAC_CONST(0.88801610065280734),
+    FRAC_CONST(0.89395877996993212),
+    FRAC_CONST(0.8997482840522214),
+    FRAC_CONST(0.90538362089795521),
+    FRAC_CONST(0.91086382492117568),
+    FRAC_CONST(0.91618795711713596),
+    FRAC_CONST(0.92135510522319242),
+    FRAC_CONST(0.9263643838751181),
+    FRAC_CONST(0.93121493475880346),
+    FRAC_CONST(0.93590592675732565),
+    FRAC_CONST(0.94043655609335486),
+    FRAC_CONST(0.94480604646687805),
+    FRAC_CONST(0.94901364918821385),
+    FRAC_CONST(0.95305864330629697),
+    FRAC_CONST(0.95694033573220882),
+    FRAC_CONST(0.9606580613579353),
+    FRAC_CONST(0.96421118317032928),
+    FRAC_CONST(0.96759909236025976),
+    FRAC_CONST(0.9708212084269281),
+    FRAC_CONST(0.97387697927733363),
+    FRAC_CONST(0.97676588132087239),
+    FRAC_CONST(0.97948741955905139),
+    FRAC_CONST(0.98204112767030394),
+    FRAC_CONST(0.98442656808989171),
+    FRAC_CONST(0.98664333208487898),
+    FRAC_CONST(0.98869103982416728),
+    FRAC_CONST(0.99056934044357725),
+    FRAC_CONST(0.99227791210596705),
+    FRAC_CONST(0.99381646205637808),
+    FRAC_CONST(0.99518472667219682),
+    FRAC_CONST(0.99638247150832537),
+    FRAC_CONST(0.99740949133735191),
+    FRAC_CONST(0.99826561018471593),
+    FRAC_CONST(0.99895068135886012),
+    FRAC_CONST(0.99946458747636568),
+    FRAC_CONST(0.99980724048206482),
+    FRAC_CONST(0.99997858166412923),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1),
+    FRAC_CONST(1)
 };
 #endif
 #endif
--- a/libfaad/specrec.c
+++ b/libfaad/specrec.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: specrec.c,v 1.32 2003/11/06 14:08:58 menno Exp $
+** $Id: specrec.c,v 1.33 2003/11/12 20:47:59 menno Exp $
 **/
 
 /*
@@ -475,25 +475,13 @@
 
 static INLINE real_t iquant(int16_t q, real_t *tab)
 {
-#ifdef SMALL_IQ_TAB
+#ifdef FIXED_POINT
     static const real_t errcorr[] = {
-        REAL_CONST(0), REAL_CONST(1.0/27.1), REAL_CONST(2.0/27.1), REAL_CONST(3.0/27.096),
-        REAL_CONST(4.0/27.093),  REAL_CONST(5.0/27.089), REAL_CONST(6.0/27.085), REAL_CONST(7.0/27.081),
-        REAL_CONST(8.0/27.077),  REAL_CONST(9.0/27.073), REAL_CONST(10.0/27.069), REAL_CONST(11.0/27.065),
-        REAL_CONST(12.0/27.061),  REAL_CONST(13.0/27.056), REAL_CONST(14.0/27.052), REAL_CONST(15.0/27.048),
-        REAL_CONST(16.0/27.044),  REAL_CONST(17.0/27.04), REAL_CONST(18.0/27.036), REAL_CONST(19.0/27.032),
-        REAL_CONST(20.0/27.028),  REAL_CONST(21.0/27.024), REAL_CONST(22.0/27.02), REAL_CONST(23.0/27.015),
-        REAL_CONST(24.0/27.011),  REAL_CONST(25.0/27.007), REAL_CONST(26.0/27.003), REAL_CONST(0)
-    };
-#else
-    static const real_t errcorr[] = {
         REAL_CONST(0), REAL_CONST(1.0/8.0), REAL_CONST(2.0/8.0), REAL_CONST(3.0/8.0),
         REAL_CONST(4.0/8.0),  REAL_CONST(5.0/8.0), REAL_CONST(6.0/8.0), REAL_CONST(7.0/8.0),
         REAL_CONST(0)
     };
-#endif
     real_t x1, x2;
-#ifdef FIXED_POINT
     int16_t sgn = 1;
 
     if (q < 0)
@@ -506,16 +494,10 @@
         return sgn * tab[q];
 
     /* linear interpolation */
-#ifndef SMALL_IQ_TAB
     x1 = tab[q>>3];
     x2 = tab[(q>>3) + 1];
-    return sgn * 16 * (MUL(errcorr[q&7],(x2-x1)) + x1);
+    return sgn * 16 * (MUL_R(errcorr[q&7],(x2-x1)) + x1);
 #else
-    x1 = tab[q/27];
-    x2 = tab[(q/27) + 1];
-    return sgn * 81 * (MUL(errcorr[q%27],(x2-x1)) + x1);
-#endif
-#else
     real_t sgn = REAL_CONST(1.0);
 
     if (q < 0)
@@ -636,10 +618,10 @@
 
                 if (frac)
                 {
-                    x_invquant[k+(groups*nshort)]   = MUL_R_C(x_invquant[k+(groups*nshort)],pow2_table[frac + 3]);
-                    x_invquant[k+(groups*nshort)+1] = MUL_R_C(x_invquant[k+(groups*nshort)+1],pow2_table[frac + 3]);
-                    x_invquant[k+(groups*nshort)+2] = MUL_R_C(x_invquant[k+(groups*nshort)+2],pow2_table[frac + 3]);
-                    x_invquant[k+(groups*nshort)+3] = MUL_R_C(x_invquant[k+(groups*nshort)+3],pow2_table[frac + 3]);
+                    x_invquant[k+(groups*nshort)]   = MUL_C(x_invquant[k+(groups*nshort)],pow2_table[frac + 3]);
+                    x_invquant[k+(groups*nshort)+1] = MUL_C(x_invquant[k+(groups*nshort)+1],pow2_table[frac + 3]);
+                    x_invquant[k+(groups*nshort)+2] = MUL_C(x_invquant[k+(groups*nshort)+2],pow2_table[frac + 3]);
+                    x_invquant[k+(groups*nshort)+3] = MUL_C(x_invquant[k+(groups*nshort)+3],pow2_table[frac + 3]);
                 }
 #endif
             }
--- a/libfaad/ssr.c
+++ b/libfaad/ssr.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: ssr.c,v 1.9 2003/11/04 21:43:30 menno Exp $
+** $Id: ssr.c,v 1.11 2003/12/17 14:43:16 menno Exp $
 **/
 
 #include "common.h"
@@ -87,7 +87,7 @@
     if (window_sequence != EIGHT_SHORT_SEQUENCE)
     {
         ssr_gc_function(ssr, &prev_fmd[band * frame_len*2],
-            gc_function, window_sequence, frame_len);
+            gc_function, window_sequence, band, frame_len);
 
         for (i = 0; i < frame_len*2; i++)
             data[band * frame_len*2 + i] *= gc_function[i];
@@ -133,7 +133,7 @@
 
 static void ssr_gc_function(ssr_info *ssr, real_t *prev_fmd,
                             real_t *gc_function, uint8_t window_sequence,
-                            uint16_t frame_len)
+                            uint8_t band, uint16_t frame_len)
 {
     uint16_t i;
     uint16_t len_area1, len_area2;
--- a/libfaad/structs.h
+++ b/libfaad/structs.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: structs.h,v 1.20 2003/11/04 21:43:30 menno Exp $
+** $Id: structs.h,v 1.21 2003/11/12 20:47:59 menno Exp $
 **/
 
 #ifndef __STRUCTS_H__
--- a/libfaad/syntax.c
+++ b/libfaad/syntax.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: syntax.c,v 1.60 2003/11/04 21:43:30 menno Exp $
+** $Id: syntax.c,v 1.61 2003/11/12 20:47:59 menno Exp $
 **/
 
 /*
@@ -377,7 +377,11 @@
                     return;
                 break;
             case ID_CCE: /* not implemented yet, but skip the bits */
+#ifdef COUPLING_DEC
                 hInfo->error = coupling_channel_element(hDecoder, ld);
+#else
+                hInfo->error = 6;
+#endif
                 if (hInfo->error > 0)
                     return;
                 break;
@@ -813,6 +817,7 @@
     return 0;
 }
 
+#ifdef COUPLING_DEC
 /* Table 4.4.8: Currently just for skipping the bits... */
 static uint8_t coupling_channel_element(faacDecHandle hDecoder, bitfile *ld)
 {
@@ -900,6 +905,7 @@
 
     return 0;
 }
+#endif
 
 /* Table 4.4.10 */
 static uint16_t data_stream_element(faacDecHandle hDecoder, bitfile *ld)
--- a/libfaad/syntax.h
+++ b/libfaad/syntax.h
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: syntax.h,v 1.41 2003/11/04 21:43:30 menno Exp $
+** $Id: syntax.h,v 1.42 2003/11/12 20:47:59 menno Exp $
 **/
 
 #ifndef __SYNTAX_H__
@@ -122,7 +122,9 @@
                                           uint8_t channel, uint8_t *tag);
 static uint8_t channel_pair_element(faacDecHandle hDecoder, bitfile *ld,
                                     uint8_t channel, uint8_t *tag);
+#ifdef COUPLING_DEC
 static uint8_t coupling_channel_element(faacDecHandle hDecoder, bitfile *ld);
+#endif
 static uint16_t data_stream_element(faacDecHandle hDecoder, bitfile *ld);
 static uint8_t program_config_element(program_config *pce, bitfile *ld);
 static uint8_t fill_element(faacDecHandle hDecoder, bitfile *ld, drc_info *drc
--- a/libfaad/tns.c
+++ b/libfaad/tns.c
@@ -22,7 +22,7 @@
 ** Commercial non-GPL licensing of this software is possible.
 ** For more info contact Ahead Software through [email protected].
 **
-** $Id: tns.c,v 1.26 2003/11/04 21:43:30 menno Exp $
+** $Id: tns.c,v 1.28 2003/12/17 14:43:17 menno Exp $
 **/
 
 #include "common.h"
@@ -71,7 +71,8 @@
 {
     uint8_t w, f, tns_order;
     int8_t inc;
-    uint16_t bottom, top, start, end, size;
+    int16_t size;
+    uint16_t bottom, top, start, end;
     uint16_t nshort = frame_len/8;
     real_t lpc[TNS_MAX_ORDER+1];
 
@@ -93,10 +94,16 @@
             tns_decode_coef(tns_order, tns->coef_res[w]+3,
                 tns->coef_compress[w][f], tns->coef[w][f], lpc);
 
-            start = ics->swb_offset[min(bottom, ics->max_sfb)];
-            end = ics->swb_offset[min(top, ics->max_sfb)];
+            start = min(bottom, max_tns_sfb(sr_index, object_type, (ics->window_sequence == EIGHT_SHORT_SEQUENCE)));
+            start = min(start, ics->max_sfb);
+            start = ics->swb_offset[start];
 
-            if ((size = end - start) <= 0)
+            end = min(top, max_tns_sfb(sr_index, object_type, (ics->window_sequence == EIGHT_SHORT_SEQUENCE)));
+            end = min(end, ics->max_sfb);
+            end = ics->swb_offset[end];
+
+            size = end - start;
+            if (size <= 0)
                 continue;
 
             if (tns->direction[w][f])
@@ -118,7 +125,8 @@
 {
     uint8_t w, f, tns_order;
     int8_t inc;
-    uint16_t bottom, top, start, end, size;
+    int16_t size;
+    uint16_t bottom, top, start, end;
     uint16_t nshort = frame_len/8;
     real_t lpc[TNS_MAX_ORDER+1];
 
@@ -140,10 +148,16 @@
             tns_decode_coef(tns_order, tns->coef_res[w]+3,
                 tns->coef_compress[w][f], tns->coef[w][f], lpc);
 
-            start = ics->swb_offset[min(bottom, ics->max_sfb)];
-            end = ics->swb_offset[min(top, ics->max_sfb)];
+            start = min(bottom, max_tns_sfb(sr_index, object_type, (ics->window_sequence == EIGHT_SHORT_SEQUENCE)));
+            start = min(start, ics->max_sfb);
+            start = ics->swb_offset[start];
 
-            if ((size = end - start) <= 0)
+            end = min(top, max_tns_sfb(sr_index, object_type, (ics->window_sequence == EIGHT_SHORT_SEQUENCE)));
+            end = min(end, ics->max_sfb);
+            end = ics->swb_offset[end];
+
+            size = end - start;
+            if (size <= 0)
                 continue;
 
             if (tns->direction[w][f])
@@ -192,7 +206,7 @@
     for (m = 1; m <= order; m++)
     {
         for (i = 1; i < m; i++) /* loop only while i<m */
-            b[i] = a[i] + MUL_C_C(tmp2[m-1], a[m-i]);
+            b[i] = a[i] + MUL_C(tmp2[m-1], a[m-i]);
 
         for (i = 1; i < m; i++) /* loop only while i<m */
             a[i] = b[i];
@@ -225,7 +239,7 @@
         y = *spectrum;
 
         for (j = 0; j < order; j++)
-            y -= MUL_R_C(state[j], lpc[j+1]);
+            y -= MUL_C(state[j], lpc[j+1]);
 
         for (j = order-1; j > 0; j--)
             state[j] = state[j-1];
@@ -260,7 +274,7 @@
         y = *spectrum;
 
         for (j = 0; j < order; j++)
-            y += MUL_R_C(state[j], lpc[j+1]);
+            y += MUL_C(state[j], lpc[j+1]);
 
         for (j = order-1; j > 0; j--)
             state[j] = state[j-1];