/* decDouble module for the decNumber C Library.
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007-2018 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
+ Software Foundation; either version 3, 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. */
+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 "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 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 DECBIAS DECDOUBLE_Bias
+#define DECLETS DECDOUBLE_Declets
#define DECQTINY (-DECDOUBLE_Bias)
/* parameters of next-wider format */
#define DECWBYTES DECQUAD_Bytes
#define DECWBIAS DECQUAD_Bias
/* Type and function mappings for shared code */
-#define decFloat decDouble /* Type name */
-#define decFloatWider decQuad /* Type name */
+#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
+#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
+#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
+#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
+#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
-
+#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 */
-