Back to index

glibc  2.9
branred.h
Go to the documentation of this file.
00001 /*
00002  * IBM Accurate Mathematical Library
00003  * Written by International Business Machines Corp.
00004  * Copyright (C) 2001 Free Software Foundation, Inc.
00005  *
00006  * This program is free software; you can redistribute it and/or modify
00007  * it under the terms of the GNU Lesser General Public License as published by
00008  * the Free Software Foundation; either version 2.1 of the License, or
00009  * (at your option) any later version.
00010  *
00011  * This program is distributed in the hope that it will be useful,
00012  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  * GNU Lesser General Public License for more details.
00015  *
00016  * You should have received a copy of the GNU Lesser General Public License
00017  * along with this program; if not, write to the Free Software
00018  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00019  */
00020 /************************************************************************/
00021 /*  MODULE_NAME: branred.h                                              */
00022 /*                                                                      */
00023 /*                                                                      */
00024 /*     common data and variables definition for BIG or LITTLE ENDIAN   */
00025 /************************************************************************/
00026 
00027 #ifndef BRANRED_H
00028 #define BRANRED_H
00029 
00030 
00031 #ifdef BIG_ENDI
00032 static const mynumber
00033 
00034            t576 = {{0x63f00000, 0x00000000}}, /* 2 ^ 576  */
00035           tm600 = {{0x1a700000, 0x00000000}}, /* 2 ^- 600 */
00036            tm24 = {{0x3e700000, 0x00000000}}, /* 2 ^- 24  */
00037             big = {{0x43380000, 0x00000000}}, /*  6755399441055744      */
00038            big1 = {{0x43580000, 0x00000000}}, /* 27021597764222976      */
00039             hp0 = {{0x3FF921FB, 0x54442D18}} ,/* 1.5707963267948966     */
00040             hp1 = {{0x3C91A626, 0x33145C07}} ,/* 6.123233995736766e-17  */
00041             mp1 = {{0x3FF921FB, 0x58000000}}, /* 1.5707963407039642     */
00042             mp2 = {{0xBE4DDE97, 0x40000000}}; /*-1.3909067675399456e-08 */
00043 
00044 #else
00045 #ifdef LITTLE_ENDI
00046 static const mynumber
00047 
00048            t576 = {{0x00000000, 0x63f00000}},  /* 2 ^ 576  */
00049           tm600 = {{0x00000000, 0x1a700000}},  /* 2 ^- 600 */
00050            tm24 = {{0x00000000, 0x3e700000}},  /* 2 ^- 24  */
00051             big = {{0x00000000, 0x43380000}},  /*  6755399441055744      */
00052            big1 = {{0x00000000, 0x43580000}},  /* 27021597764222976      */
00053             hp0 = {{0x54442D18, 0x3FF921FB}},  /* 1.5707963267948966     */
00054             hp1 = {{0x33145C07, 0x3C91A626}},  /* 6.123233995736766e-17  */
00055             mp1 = {{0x58000000, 0x3FF921FB}},  /* 1.5707963407039642     */
00056             mp2 = {{0x40000000, 0xBE4DDE97}};  /*-1.3909067675399456e-08 */
00057 
00058 #endif
00059 #endif
00060 
00061 static const double toverp[75] = { /*  2/ PI base 24*/
00062   10680707.0,  7228996.0,  1387004.0,  2578385.0, 16069853.0,
00063   12639074.0,  9804092.0,  4427841.0, 16666979.0, 11263675.0,
00064   12935607.0,  2387514.0,  4345298.0, 14681673.0,  3074569.0,
00065   13734428.0, 16653803.0,  1880361.0, 10960616.0,  8533493.0,
00066    3062596.0,  8710556.0,  7349940.0,  6258241.0,  3772886.0,
00067    3769171.0,  3798172.0,  8675211.0, 12450088.0,  3874808.0,
00068    9961438.0,   366607.0, 15675153.0,  9132554.0,  7151469.0,
00069    3571407.0,  2607881.0, 12013382.0,  4155038.0,  6285869.0,
00070    7677882.0, 13102053.0, 15825725.0,   473591.0,  9065106.0,
00071   15363067.0,  6271263.0,  9264392.0,  5636912.0,  4652155.0,
00072    7056368.0, 13614112.0, 10155062.0,  1944035.0,  9527646.0,
00073   15080200.0,  6658437.0,  6231200.0,  6832269.0, 16767104.0,
00074    5075751.0,  3212806.0,  1398474.0,  7579849.0,  6349435.0,
00075   12618859.0,  4703257.0, 12806093.0, 14477321.0,  2786137.0,
00076   12875403.0,  9837734.0, 14528324.0, 13719321.0,   343717.0 };
00077 
00078 static const double split =  134217729.0;
00079 
00080 #endif