Blame sysdeps/ieee754/dbl-64/branred.h

Packit 6c4009
/*
Packit 6c4009
 * IBM Accurate Mathematical Library
Packit 6c4009
 * Written by International Business Machines Corp.
Packit 6c4009
 * Copyright (C) 2001-2018 Free Software Foundation, Inc.
Packit 6c4009
 *
Packit 6c4009
 * This program is free software; you can redistribute it and/or modify
Packit 6c4009
 * it under the terms of the GNU Lesser General Public License as published by
Packit 6c4009
 * the Free Software Foundation; either version 2.1 of the License, or
Packit 6c4009
 * (at your option) any later version.
Packit 6c4009
 *
Packit 6c4009
 * This program is distributed in the hope that it will be useful,
Packit 6c4009
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 6c4009
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit 6c4009
 * GNU Lesser General Public License for more details.
Packit 6c4009
 *
Packit 6c4009
 * You should have received a copy of the GNU Lesser General Public License
Packit 6c4009
 * along with this program; if not, see <http://www.gnu.org/licenses/>.
Packit 6c4009
 */
Packit 6c4009
/************************************************************************/
Packit 6c4009
/*  MODULE_NAME: branred.h                                              */
Packit 6c4009
/*                                                                      */
Packit 6c4009
/*                                                                      */
Packit 6c4009
/* 	common data and variables definition for BIG or LITTLE ENDIAN   */
Packit 6c4009
/************************************************************************/
Packit 6c4009
Packit 6c4009
#ifndef BRANRED_H
Packit 6c4009
#define BRANRED_H
Packit 6c4009
Packit 6c4009
#include <dla.h>
Packit 6c4009
Packit 6c4009
#ifdef BIG_ENDI
Packit 6c4009
static const mynumber
Packit 6c4009
Packit 6c4009
/**/           t576 = {{0x63f00000, 0x00000000}}, /* 2 ^ 576  */
Packit 6c4009
/**/          tm600 = {{0x1a700000, 0x00000000}}, /* 2 ^- 600 */
Packit 6c4009
/**/           tm24 = {{0x3e700000, 0x00000000}}, /* 2 ^- 24  */
Packit 6c4009
/**/            big = {{0x43380000, 0x00000000}}, /*  6755399441055744      */
Packit 6c4009
/**/           big1 = {{0x43580000, 0x00000000}}, /* 27021597764222976      */
Packit 6c4009
/**/            hp0 = {{0x3FF921FB, 0x54442D18}} ,/* 1.5707963267948966     */
Packit 6c4009
/**/            hp1 = {{0x3C91A626, 0x33145C07}} ,/* 6.123233995736766e-17  */
Packit 6c4009
/**/            mp1 = {{0x3FF921FB, 0x58000000}}, /* 1.5707963407039642     */
Packit 6c4009
/**/            mp2 = {{0xBE4DDE97, 0x40000000}}; /*-1.3909067675399456e-08 */
Packit 6c4009
Packit 6c4009
#else
Packit 6c4009
#ifdef LITTLE_ENDI
Packit 6c4009
static const mynumber
Packit 6c4009
Packit 6c4009
/**/           t576 = {{0x00000000, 0x63f00000}},  /* 2 ^ 576  */
Packit 6c4009
/**/          tm600 = {{0x00000000, 0x1a700000}},  /* 2 ^- 600 */
Packit 6c4009
/**/           tm24 = {{0x00000000, 0x3e700000}},  /* 2 ^- 24  */
Packit 6c4009
/**/            big = {{0x00000000, 0x43380000}},  /*  6755399441055744      */
Packit 6c4009
/**/           big1 = {{0x00000000, 0x43580000}},  /* 27021597764222976      */
Packit 6c4009
/**/            hp0 = {{0x54442D18, 0x3FF921FB}},  /* 1.5707963267948966     */
Packit 6c4009
/**/            hp1 = {{0x33145C07, 0x3C91A626}},  /* 6.123233995736766e-17  */
Packit 6c4009
/**/            mp1 = {{0x58000000, 0x3FF921FB}},  /* 1.5707963407039642     */
Packit 6c4009
/**/            mp2 = {{0x40000000, 0xBE4DDE97}};  /*-1.3909067675399456e-08 */
Packit 6c4009
Packit 6c4009
#endif
Packit 6c4009
#endif
Packit 6c4009
Packit 6c4009
static const double toverp[75] = { /*  2/ PI base 24*/
Packit 6c4009
  10680707.0,  7228996.0,  1387004.0,  2578385.0, 16069853.0,
Packit 6c4009
  12639074.0,  9804092.0,  4427841.0, 16666979.0, 11263675.0,
Packit 6c4009
  12935607.0,  2387514.0,  4345298.0, 14681673.0,  3074569.0,
Packit 6c4009
  13734428.0, 16653803.0,  1880361.0, 10960616.0,  8533493.0,
Packit 6c4009
   3062596.0,  8710556.0,  7349940.0,  6258241.0,  3772886.0,
Packit 6c4009
   3769171.0,  3798172.0,  8675211.0, 12450088.0,  3874808.0,
Packit 6c4009
   9961438.0,   366607.0, 15675153.0,  9132554.0,  7151469.0,
Packit 6c4009
   3571407.0,  2607881.0, 12013382.0,  4155038.0,  6285869.0,
Packit 6c4009
   7677882.0, 13102053.0, 15825725.0,   473591.0,  9065106.0,
Packit 6c4009
  15363067.0,  6271263.0,  9264392.0,  5636912.0,  4652155.0,
Packit 6c4009
   7056368.0, 13614112.0, 10155062.0,  1944035.0,  9527646.0,
Packit 6c4009
  15080200.0,  6658437.0,  6231200.0,  6832269.0, 16767104.0,
Packit 6c4009
   5075751.0,  3212806.0,  1398474.0,  7579849.0,  6349435.0,
Packit 6c4009
  12618859.0,  4703257.0, 12806093.0, 14477321.0,  2786137.0,
Packit 6c4009
  12875403.0,  9837734.0, 14528324.0, 13719321.0,   343717.0 };
Packit 6c4009
Packit 6c4009
static const double split =  CN;	/* 2^27 + 1 */
Packit 6c4009
Packit 6c4009
#endif