diff options
author | Daniel Jacobowitz <drow@false.org> | 2007-10-11 18:15:02 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2007-10-11 18:15:02 +0000 |
commit | f5bc1778c3150f6e9364a1af81f3ba2658f9e68c (patch) | |
tree | 70a9ff23817fe9ed2dadc01f6fd3a179bb7d18b9 /libdecnumber/decDouble.c | |
parent | 607ae575a784d7d02956031883ae407faf06fd89 (diff) | |
download | gdb-f5bc1778c3150f6e9364a1af81f3ba2658f9e68c.zip gdb-f5bc1778c3150f6e9364a1af81f3ba2658f9e68c.tar.gz gdb-f5bc1778c3150f6e9364a1af81f3ba2658f9e68c.tar.bz2 |
* src-release (GDB_SUPPORT_DIRS): Add libdecnumber.
* libdecnumber: New directory, imported from GCC.
Diffstat (limited to 'libdecnumber/decDouble.c')
-rw-r--r-- | libdecnumber/decDouble.c | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/libdecnumber/decDouble.c b/libdecnumber/decDouble.c new file mode 100644 index 0000000..ba6a0af --- /dev/null +++ b/libdecnumber/decDouble.c @@ -0,0 +1,154 @@ +/* decDouble module for the decNumber C Library. + Copyright (C) 2007 Free Software Foundation, Inc. + Contributed by IBM Corporation. Author Mike Cowlishaw. + + This file is part of GCC. + + GCC is free software; you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation; either version 2, or (at your option) any later + version. + + In addition to the permissions in the GNU General Public License, + the Free Software Foundation gives you unlimited permission to link + the compiled version of this file into combinations with other + programs, and to distribute those combinations without any + restriction coming from the use of this file. (The General Public + License restrictions do apply in other respects; for example, they + cover modification of the file, and distribution when not linked + into a combine executable.) + + GCC is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with GCC; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ + +/* ------------------------------------------------------------------ */ +/* decDouble.c -- decDouble operations module */ +/* ------------------------------------------------------------------ */ +/* This module comprises decDouble operations (including conversions) */ +/* ------------------------------------------------------------------ */ + +#include "decContext.h" /* public includes */ +#include "decDouble.h" /* .. */ + +/* Constant mappings for shared code */ +#define DECPMAX DECDOUBLE_Pmax +#define DECEMIN DECDOUBLE_Emin +#define DECEMAX DECDOUBLE_Emax +#define DECEMAXD DECDOUBLE_EmaxD +#define DECBYTES DECDOUBLE_Bytes +#define DECSTRING DECDOUBLE_String +#define DECECONL DECDOUBLE_EconL +#define DECBIAS DECDOUBLE_Bias +#define DECLETS DECDOUBLE_Declets +#define DECQTINY (-DECDOUBLE_Bias) +/* parameters of next-wider format */ +#define DECWBYTES DECQUAD_Bytes +#define DECWPMAX DECQUAD_Pmax +#define DECWECONL DECQUAD_EconL +#define DECWBIAS DECQUAD_Bias + +/* Type and function mappings for shared code */ +#define decFloat decDouble /* Type name */ +#define decFloatWider decQuad /* Type name */ + +/* Utilities and conversions (binary results, extractors, etc.) */ +#define decFloatFromBCD decDoubleFromBCD +#define decFloatFromInt32 decDoubleFromInt32 +#define decFloatFromPacked decDoubleFromPacked +#define decFloatFromString decDoubleFromString +#define decFloatFromUInt32 decDoubleFromUInt32 +#define decFloatFromWider decDoubleFromWider +#define decFloatGetCoefficient decDoubleGetCoefficient +#define decFloatGetExponent decDoubleGetExponent +#define decFloatSetCoefficient decDoubleSetCoefficient +#define decFloatSetExponent decDoubleSetExponent +#define decFloatShow decDoubleShow +#define decFloatToBCD decDoubleToBCD +#define decFloatToEngString decDoubleToEngString +#define decFloatToInt32 decDoubleToInt32 +#define decFloatToInt32Exact decDoubleToInt32Exact +#define decFloatToPacked decDoubleToPacked +#define decFloatToString decDoubleToString +#define decFloatToUInt32 decDoubleToUInt32 +#define decFloatToUInt32Exact decDoubleToUInt32Exact +#define decFloatToWider decDoubleToWider +#define decFloatZero decDoubleZero + +/* Computational (result is a decFloat) */ +#define decFloatAbs decDoubleAbs +#define decFloatAdd decDoubleAdd +#define decFloatAnd decDoubleAnd +#define decFloatDivide decDoubleDivide +#define decFloatDivideInteger decDoubleDivideInteger +#define decFloatFMA decDoubleFMA +#define decFloatInvert decDoubleInvert +#define decFloatLogB decDoubleLogB +#define decFloatMax decDoubleMax +#define decFloatMaxMag decDoubleMaxMag +#define decFloatMin decDoubleMin +#define decFloatMinMag decDoubleMinMag +#define decFloatMinus decDoubleMinus +#define decFloatMultiply decDoubleMultiply +#define decFloatNextMinus decDoubleNextMinus +#define decFloatNextPlus decDoubleNextPlus +#define decFloatNextToward decDoubleNextToward +#define decFloatOr decDoubleOr +#define decFloatPlus decDoublePlus +#define decFloatQuantize decDoubleQuantize +#define decFloatReduce decDoubleReduce +#define decFloatRemainder decDoubleRemainder +#define decFloatRemainderNear decDoubleRemainderNear +#define decFloatRotate decDoubleRotate +#define decFloatScaleB decDoubleScaleB +#define decFloatShift decDoubleShift +#define decFloatSubtract decDoubleSubtract +#define decFloatToIntegralValue decDoubleToIntegralValue +#define decFloatToIntegralExact decDoubleToIntegralExact +#define decFloatXor decDoubleXor + +/* Comparisons */ +#define decFloatCompare decDoubleCompare +#define decFloatCompareSignal decDoubleCompareSignal +#define decFloatCompareTotal decDoubleCompareTotal +#define decFloatCompareTotalMag decDoubleCompareTotalMag + +/* Copies */ +#define decFloatCanonical decDoubleCanonical +#define decFloatCopy decDoubleCopy +#define decFloatCopyAbs decDoubleCopyAbs +#define decFloatCopyNegate decDoubleCopyNegate +#define decFloatCopySign decDoubleCopySign + +/* Non-computational */ +#define decFloatClass decDoubleClass +#define decFloatClassString decDoubleClassString +#define decFloatDigits decDoubleDigits +#define decFloatIsCanonical decDoubleIsCanonical +#define decFloatIsFinite decDoubleIsFinite +#define decFloatIsInfinite decDoubleIsInfinite +#define decFloatIsInteger decDoubleIsInteger +#define decFloatIsNaN decDoubleIsNaN +#define decFloatIsNormal decDoubleIsNormal +#define decFloatIsSignaling decDoubleIsSignaling +#define decFloatIsSignalling decDoubleIsSignalling +#define decFloatIsSigned decDoubleIsSigned +#define decFloatIsSubnormal decDoubleIsSubnormal +#define decFloatIsZero decDoubleIsZero +#define decFloatRadix decDoubleRadix +#define decFloatSameQuantum decDoubleSameQuantum +#define decFloatVersion decDoubleVersion + + +#include "decNumberLocal.h" /* local includes (need DECPMAX) */ +#include "decCommon.c" /* non-arithmetic decFloat routines */ +#include "decBasic.c" /* basic formats routines */ + +/* Below here will move to shared file as completed */ + |