1 /*
2  * IBM Accurate Mathematical Library
3  * Copyright (C) 2001-2022 Free Software Foundation, Inc.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU Lesser General Public License as published by
7  * the Free Software Foundation; either version 2.1 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU Lesser General Public License for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * along with this program; if not, see <https://www.gnu.org/licenses/>.
17  */
18 
19 /******************************************************************/
20 /*                                                                */
21 /* MODULE_NAME:utan.h                                             */
22 /*                                                                */
23 /* common data and variables prototype and definition             */
24 /******************************************************************/
25 
26 #ifndef UTAN_H
27 #define UTAN_H
28 
29 #ifdef BIG_ENDI
30   static const mynumber
31   /* polynomial I */
32 /**/ d3             = {{0x3FD55555, 0x55555555} }, /*  0.333... */
33 /**/ d5             = {{0x3FC11111, 0x111107C6} }, /*  0.133... */
34 /**/ d7             = {{0x3FABA1BA, 0x1CDB8745} }, /*    .      */
35 /**/ d9             = {{0x3F9664ED, 0x49CFC666} }, /*    .      */
36 /**/ d11            = {{0x3F82385A, 0x3CF2E4EA} }, /*    .      */
37   /* polynomial II */
38   /* polynomial III */
39 /**/ e0             = {{0x3FD55555, 0x55554DBD} }, /*    .      */
40 /**/ e1             = {{0x3FC11112, 0xE0A6B45F} }, /*    .      */
41 
42   /* constants    */
43 /**/ mfftnhf        = {{0xc02f0000, 0x00000000} }, /*-15.5      */
44 
45 /**/ g1             = {{0x3e4b096c, 0x00000000} }, /* 1.259e-8  */
46 /**/ g2             = {{0x3faf212d, 0x00000000} }, /* 0.0608    */
47 /**/ g3             = {{0x3fe92f1a, 0x00000000} }, /* 0.787     */
48 /**/ g4             = {{0x40390000, 0x00000000} }, /* 25.0      */
49 /**/ g5             = {{0x4197d784, 0x00000000} }, /* 1e8       */
50 /**/ gy2            = {{0x3faf212d, 0x00000000} }, /* 0.0608    */
51 
52 /**/            mp1 = {{0x3FF921FB, 0x58000000} },
53 /**/            mp2 = {{0xBE4DDE97, 0x3C000000} },
54 /**/            mp3 = {{0xBC8CB3B3, 0x99D747F2} },
55 /**/            pp3 = {{0xBC8CB3B3, 0x98000000} },
56 /**/            pp4 = {{0xbacd747f, 0x23e32ed7} },
57 /**/          hpinv = {{0x3FE45F30, 0x6DC9C883} },
58 /**/          toint = {{0x43380000, 0x00000000} };
59 
60 #else
61 #ifdef LITTLE_ENDI
62 
63   static const mynumber
64   /* polynomial I */
65 /**/ d3             = {{0x55555555, 0x3FD55555} }, /*  0.333... */
66 /**/ d5             = {{0x111107C6, 0x3FC11111} }, /*  0.133... */
67 /**/ d7             = {{0x1CDB8745, 0x3FABA1BA} }, /*    .      */
68 /**/ d9             = {{0x49CFC666, 0x3F9664ED} }, /*    .      */
69 /**/ d11            = {{0x3CF2E4EA, 0x3F82385A} }, /*    .      */
70   /* polynomial II */
71   /* polynomial III */
72 /**/ e0             = {{0x55554DBD, 0x3FD55555} }, /*    .      */
73 /**/ e1             = {{0xE0A6B45F, 0x3FC11112} }, /*    .      */
74 
75   /* constants    */
76 /**/ mfftnhf        = {{0x00000000, 0xc02f0000} }, /*-15.5      */
77 
78 /**/ g1             = {{0x00000000, 0x3e4b096c} }, /* 1.259e-8  */
79 /**/ g2             = {{0x00000000, 0x3faf212d} }, /* 0.0608    */
80 /**/ g3             = {{0x00000000, 0x3fe92f1a} }, /* 0.787     */
81 /**/ g4             = {{0x00000000, 0x40390000} }, /* 25.0      */
82 /**/ g5             = {{0x00000000, 0x4197d784} }, /* 1e8       */
83 /**/ gy2            = {{0x00000000, 0x3faf212d} }, /* 0.0608    */
84 
85 /**/            mp1 = {{0x58000000, 0x3FF921FB} },
86 /**/            mp2 = {{0x3C000000, 0xBE4DDE97} },
87 /**/            mp3 = {{0x99D747F2, 0xBC8CB3B3} },
88 /**/            pp3 = {{0x98000000, 0xBC8CB3B3} },
89 /**/            pp4 = {{0x23e32ed7, 0xbacd747f} },
90 /**/          hpinv = {{0x6DC9C883, 0x3FE45F30} },
91 /**/          toint = {{0x00000000, 0x43380000} };
92 
93 #endif
94 #endif
95 
96 #endif
97