summaryrefslogtreecommitdiff
path: root/libdecnumber/decDouble.c
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libdecnumber/decDouble.c
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libdecnumber/decDouble.c')
-rw-r--r--libdecnumber/decDouble.c147
1 files changed, 147 insertions, 0 deletions
diff --git a/libdecnumber/decDouble.c b/libdecnumber/decDouble.c
new file mode 100644
index 000000000..9af8e15c6
--- /dev/null
+++ b/libdecnumber/decDouble.c
@@ -0,0 +1,147 @@
+/* decDouble module for the decNumber C Library.
+ Copyright (C) 2007, 2009 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 3, or (at your option) any later
+ version.
+
+ 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.
+
+Under Section 7 of GPL version 3, you are granted additional
+permissions described in the GCC Runtime Library Exception, version
+3.1, as published by the Free Software Foundation.
+
+You should have received a copy of the GNU General Public License and
+a copy of the GCC Runtime Library Exception along with this program;
+see the files COPYING3 and COPYING.RUNTIME respectively. If not, see
+<http://www.gnu.org/licenses/>. */
+
+/* ------------------------------------------------------------------ */
+/* 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 decFloatFromPackedChecked decDoubleFromPackedChecked
+#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 */
+