1
2/*
3 * IBM Accurate Mathematical Library
4 * Written by International Business Machines Corp.
5 * Copyright (C) 2001 Free Software Foundation, Inc.
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU Lesser General Public License as published by
9 * the Free Software Foundation; either version 2.1 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 * GNU Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 */
21
22/************************************************************************/
23/*  MODULE_NAME: atnat2.h                                                */
24/*                                                                      */
25/*                                                                      */
26/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
27/************************************************************************/
28
29
30
31#ifndef ATNAT2_H
32#define ATNAT2_H
33
34
35#define MM 5
36#ifdef BIG_ENDI
37
38  static const number
39  /* polynomial I */
40/**/ d3             = {{0xbfd55555, 0x55555555} }, /* -0.333... */
41/**/ d5             = {{0x3fc99999, 0x999997fd} }, /*  0.199... */
42/**/ d7             = {{0xbfc24924, 0x923f7603} }, /* -0.142... */
43/**/ d9             = {{0x3fbc71c6, 0xe5129a3b} }, /*  0.111... */
44/**/ d11            = {{0xbfb74580, 0x22b13c25} }, /* -0.090... */
45/**/ d13            = {{0x3fb375f0, 0x8b31cbce} }, /*  0.076... */
46  /* polynomial II */
47/**/ f3             = {{0xbfd55555, 0x55555555} }, /* -1/3      */
48/**/ ff3            = {{0xbc755555, 0x55555555} }, /* -1/3-f3   */
49/**/ f5             = {{0x3fc99999, 0x9999999a} }, /*  1/5      */
50/**/ ff5            = {{0xbc699999, 0x9999999a} }, /*  1/5-f5   */
51/**/ f7             = {{0xbfc24924, 0x92492492} }, /* -1/7      */
52/**/ ff7            = {{0xbc624924, 0x92492492} }, /* -1/7-f7   */
53/**/ f9             = {{0x3fbc71c7, 0x1c71c71c} }, /*  1/9      */
54/**/ ff9            = {{0x3c5c71c7, 0x1c71c71c} }, /*  1/9-f9   */
55/**/ f11            = {{0xbfb745d1, 0x745d1746} }, /* -1/11     */
56/**/ f13            = {{0x3fb3b13b, 0x13b13b14} }, /*  1/13     */
57/**/ f15            = {{0xbfb11111, 0x11111111} }, /* -1/15     */
58/**/ f17            = {{0x3fae1e1e, 0x1e1e1e1e} }, /*  1/17     */
59/**/ f19            = {{0xbfaaf286, 0xbca1af28} }, /* -1/19     */
60  /* constants    */
61/**/ zero           = {{0x00000000, 0x00000000} }, /*  0            */
62/**/ mzero          = {{0x80000000, 0x00000000} }, /* -0            */
63/**/ one            = {{0x3ff00000, 0x00000000} }, /*  1            */
64/**/ inv16          = {{0x3fb00000, 0x00000000} }, /*  1/16         */
65/**/ opi            = {{0x400921fb, 0x54442d18} }, /*  pi           */
66/**/ opi1           = {{0x3ca1a626, 0x33145c07} }, /*  pi-opi       */
67/**/ mopi           = {{0xc00921fb, 0x54442d18} }, /* -pi           */
68/**/ hpi            = {{0x3ff921fb, 0x54442d18} }, /*  pi/2         */
69/**/ hpi1           = {{0x3c91a626, 0x33145c07} }, /*  pi/2-hpi     */
70/**/ mhpi           = {{0xbff921fb, 0x54442d18} }, /* -pi/2         */
71/**/ qpi            = {{0x3fe921fb, 0x54442d18} }, /*  pi/4         */
72/**/ qpi1           = {{0x3c81a626, 0x33145c07} }, /*  pi/4-qpi     */
73/**/ mqpi           = {{0xbfe921fb, 0x54442d18} }, /* -pi/4         */
74/**/ tqpi           = {{0x4002d97c, 0x7f3321d2} }, /*  3pi/4        */
75/**/ tqpi1          = {{0x3c9a7939, 0x4c9e8a0a} }, /*  3pi/4-tqpi   */
76/**/ mtqpi          = {{0xc002d97c, 0x7f3321d2} }, /* -3pi/4        */
77/**/ u1             = {{0x3c314c2a, 0x00000000} }, /*  9.377e-19    */
78/**/ u2             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
79/**/ u3             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
80/**/ u4             = {{0x3bf955e4, 0x00000000} }, /*  8.584e-20    */
81/**/ u5             = {{0x3aaef2d1, 0x00000000} }, /*  5e-26        */
82/**/ u6             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
83/**/ u7             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
84/**/ u8             = {{0x3a6eeb36, 0x00000000} }, /*  3.122e-27    */
85/**/ u91            = {{0x3c6dffc0, 0x00000000} }, /*  1.301e-17    */
86/**/ u92            = {{0x3c527bd0, 0x00000000} }, /*  4.008e-18    */
87/**/ u93            = {{0x3c3cd057, 0x00000000} }, /*  1.562e-18    */
88/**/ u94            = {{0x3c329cdf, 0x00000000} }, /*  1.009e-18    */
89/**/ ua1            = {{0x3c3a1edf, 0x00000000} }, /*  1.416e-18    */
90/**/ ua2            = {{0x3c33f0e1, 0x00000000} }, /*  1.081e-18    */
91/**/ ub             = {{0x3a98c56d, 0x00000000} }, /*  2.001e-26    */
92/**/ uc             = {{0x3a9375de, 0x00000000} }, /*  1.572e-26    */
93/**/ ud[MM]         ={{{0x38c6eddf, 0x00000000} }, /*  3.450e-35    */
94/**/                  {{0x35c6ef60, 0x00000000} }, /*  1.226e-49    */
95/**/                  {{0x32c6ed2f, 0x00000000} }, /*  4.354e-64    */
96/**/                  {{0x23c6eee8, 0x00000000} }, /*  2.465e-136   */
97/**/                  {{0x11c6ed16, 0x00000000} }},/*  4.955e-223   */
98/**/ ue             = {{0x38900e9d, 0x00000000} }, /*  3.02e-36     */
99/**/ two8           = {{0x40700000, 0x00000000} }, /*  2**8=256     */
100/**/ two52          = {{0x43300000, 0x00000000} }, /*  2**52        */
101/**/ two500         = {{0x5f300000, 0x00000000} }, /*  2**500       */
102/**/ twom500        = {{0x20b00000, 0x00000000} }, /*  2**(-500)    */
103/**/ twom1022       = {{0x00100000, 0x00000000} }; /*  2**(-1022)   */
104
105#else
106#ifdef LITTLE_ENDI
107
108  static const number
109  /* polynomial I */
110/**/ d3             = {{0x55555555, 0xbfd55555} }, /* -0.333... */
111/**/ d5             = {{0x999997fd, 0x3fc99999} }, /*  0.199... */
112/**/ d7             = {{0x923f7603, 0xbfc24924} }, /* -0.142... */
113/**/ d9             = {{0xe5129a3b, 0x3fbc71c6} }, /*  0.111... */
114/**/ d11            = {{0x22b13c25, 0xbfb74580} }, /* -0.090... */
115/**/ d13            = {{0x8b31cbce, 0x3fb375f0} }, /*  0.076... */
116  /* polynomial II */
117/**/ f3             = {{0x55555555, 0xbfd55555} }, /* -1/3      */
118/**/ ff3            = {{0x55555555, 0xbc755555} }, /* -1/3-f3   */
119/**/ f5             = {{0x9999999a, 0x3fc99999} }, /*  1/5      */
120/**/ ff5            = {{0x9999999a, 0xbc699999} }, /*  1/5-f5   */
121/**/ f7             = {{0x92492492, 0xbfc24924} }, /* -1/7      */
122/**/ ff7            = {{0x92492492, 0xbc624924} }, /* -1/7-f7   */
123/**/ f9             = {{0x1c71c71c, 0x3fbc71c7} }, /*  1/9      */
124/**/ ff9            = {{0x1c71c71c, 0x3c5c71c7} }, /*  1/9-f9   */
125/**/ f11            = {{0x745d1746, 0xbfb745d1} }, /* -1/11     */
126/**/ f13            = {{0x13b13b14, 0x3fb3b13b} }, /*  1/13     */
127/**/ f15            = {{0x11111111, 0xbfb11111} }, /* -1/15     */
128/**/ f17            = {{0x1e1e1e1e, 0x3fae1e1e} }, /*  1/17     */
129/**/ f19            = {{0xbca1af28, 0xbfaaf286} }, /* -1/19     */
130  /* constants    */
131/**/ zero           = {{0x00000000, 0x00000000} }, /*  0            */
132/**/ mzero          = {{0x00000000, 0x80000000} }, /* -0            */
133/**/ one            = {{0x00000000, 0x3ff00000} }, /*  1            */
134/**/ inv16          = {{0x00000000, 0x3fb00000} }, /*  1/16         */
135/**/ opi            = {{0x54442d18, 0x400921fb} }, /*  pi           */
136/**/ opi1           = {{0x33145c07, 0x3ca1a626} }, /*  pi-opi       */
137/**/ mopi           = {{0x54442d18, 0xc00921fb} }, /* -pi           */
138/**/ hpi            = {{0x54442d18, 0x3ff921fb} }, /*  pi/2         */
139/**/ hpi1           = {{0x33145c07, 0x3c91a626} }, /*  pi/2-hpi     */
140/**/ mhpi           = {{0x54442d18, 0xbff921fb} }, /* -pi/2         */
141/**/ qpi            = {{0x54442d18, 0x3fe921fb} }, /*  pi/4         */
142/**/ qpi1           = {{0x33145c07, 0x3c81a626} }, /*  pi/4-qpi     */
143/**/ mqpi           = {{0x54442d18, 0xbfe921fb} }, /* -pi/4         */
144/**/ tqpi           = {{0x7f3321d2, 0x4002d97c} }, /*  3pi/4        */
145/**/ tqpi1          = {{0x4c9e8a0a, 0x3c9a7939} }, /*  3pi/4-tqpi   */
146/**/ mtqpi          = {{0x7f3321d2, 0xc002d97c} }, /* -3pi/4        */
147/**/ u1             = {{0x00000000, 0x3c314c2a} }, /*  9.377e-19    */
148/**/ u2             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
149/**/ u3             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
150/**/ u4             = {{0x00000000, 0x3bf955e4} }, /*  8.584e-20    */
151/**/ u5             = {{0x00000000, 0x3aaef2d1} }, /*  5e-26        */
152/**/ u6             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
153/**/ u7             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
154/**/ u8             = {{0x00000000, 0x3a6eeb36} }, /*  3.122e-27    */
155/**/ u91            = {{0x00000000, 0x3c6dffc0} }, /*  1.301e-17    */
156/**/ u92            = {{0x00000000, 0x3c527bd0} }, /*  4.008e-18    */
157/**/ u93            = {{0x00000000, 0x3c3cd057} }, /*  1.562e-18    */
158/**/ u94            = {{0x00000000, 0x3c329cdf} }, /*  1.009e-18    */
159/**/ ua1            = {{0x00000000, 0x3c3a1edf} }, /*  1.416e-18    */
160/**/ ua2            = {{0x00000000, 0x3c33f0e1} }, /*  1.081e-18    */
161/**/ ub             = {{0x00000000, 0x3a98c56d} }, /*  2.001e-26    */
162/**/ uc             = {{0x00000000, 0x3a9375de} }, /*  1.572e-26    */
163/**/ ud[MM]         ={{{0x00000000, 0x38c6eddf} }, /*  3.450e-35    */
164/**/                  {{0x00000000, 0x35c6ef60} }, /*  1.226e-49    */
165/**/                  {{0x00000000, 0x32c6ed2f} }, /*  4.354e-64    */
166/**/                  {{0x00000000, 0x23c6eee8} }, /*  2.465e-136   */
167/**/                  {{0x00000000, 0x11c6ed16} }},/*  4.955e-223   */
168/**/ ue             = {{0x00000000, 0x38900e9d} }, /*  3.02e-36     */
169/**/ two8           = {{0x00000000, 0x40700000} }, /*  2**8=256     */
170/**/ two52          = {{0x00000000, 0x43300000} }, /*  2**52        */
171/**/ two500         = {{0x00000000, 0x5f300000} }, /*  2**500       */
172/**/ twom500        = {{0x00000000, 0x20b00000} }, /*  2**(-500)    */
173/**/ twom1022       = {{0x00000000, 0x00100000} }; /*  2**(-1022)   */
174
175#endif
176#endif
177
178#define  ZERO      zero.d
179#define  MZERO     mzero.d
180#define  ONE       one.d
181#define  TWO8      two8.d
182#define  TWO52     two52.d
183#define  TWOM1022  twom1022.d
184
185#endif
186