1/* decDouble module for the decNumber C Library. 2 Copyright (C) 2007-2015 Free Software Foundation, Inc. 3 Contributed by IBM Corporation. Author Mike Cowlishaw. 4 5 This file is part of GCC. 6 7 GCC is free software; you can redistribute it and/or modify it under 8 the terms of the GNU General Public License as published by the Free 9 Software Foundation; either version 3, or (at your option) any later 10 version. 11 12 GCC is distributed in the hope that it will be useful, but WITHOUT ANY 13 WARRANTY; without even the implied warranty of MERCHANTABILITY or 14 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15 for more details. 16 17Under Section 7 of GPL version 3, you are granted additional 18permissions described in the GCC Runtime Library Exception, version 193.1, as published by the Free Software Foundation. 20 21You should have received a copy of the GNU General Public License and 22a copy of the GCC Runtime Library Exception along with this program; 23see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 24<http://www.gnu.org/licenses/>. */ 25 26/* ------------------------------------------------------------------ */ 27/* decDouble.c -- decDouble operations module */ 28/* ------------------------------------------------------------------ */ 29/* This module comprises decDouble operations (including conversions) */ 30/* ------------------------------------------------------------------ */ 31 32#include "decContext.h" /* public includes */ 33#include "decDouble.h" /* .. */ 34 35/* Constant mappings for shared code */ 36#define DECPMAX DECDOUBLE_Pmax 37#define DECEMIN DECDOUBLE_Emin 38#define DECEMAX DECDOUBLE_Emax 39#define DECEMAXD DECDOUBLE_EmaxD 40#define DECBYTES DECDOUBLE_Bytes 41#define DECSTRING DECDOUBLE_String 42#define DECECONL DECDOUBLE_EconL 43#define DECBIAS DECDOUBLE_Bias 44#define DECLETS DECDOUBLE_Declets 45#define DECQTINY (-DECDOUBLE_Bias) 46/* parameters of next-wider format */ 47#define DECWBYTES DECQUAD_Bytes 48#define DECWPMAX DECQUAD_Pmax 49#define DECWECONL DECQUAD_EconL 50#define DECWBIAS DECQUAD_Bias 51 52/* Type and function mappings for shared code */ 53#define decFloat decDouble /* Type name */ 54#define decFloatWider decQuad /* Type name */ 55 56/* Utilities and conversions (binary results, extractors, etc.) */ 57#define decFloatFromBCD decDoubleFromBCD 58#define decFloatFromInt32 decDoubleFromInt32 59#define decFloatFromPacked decDoubleFromPacked 60#define decFloatFromPackedChecked decDoubleFromPackedChecked 61#define decFloatFromString decDoubleFromString 62#define decFloatFromUInt32 decDoubleFromUInt32 63#define decFloatFromWider decDoubleFromWider 64#define decFloatGetCoefficient decDoubleGetCoefficient 65#define decFloatGetExponent decDoubleGetExponent 66#define decFloatSetCoefficient decDoubleSetCoefficient 67#define decFloatSetExponent decDoubleSetExponent 68#define decFloatShow decDoubleShow 69#define decFloatToBCD decDoubleToBCD 70#define decFloatToEngString decDoubleToEngString 71#define decFloatToInt32 decDoubleToInt32 72#define decFloatToInt32Exact decDoubleToInt32Exact 73#define decFloatToPacked decDoubleToPacked 74#define decFloatToString decDoubleToString 75#define decFloatToUInt32 decDoubleToUInt32 76#define decFloatToUInt32Exact decDoubleToUInt32Exact 77#define decFloatToWider decDoubleToWider 78#define decFloatZero decDoubleZero 79 80/* Computational (result is a decFloat) */ 81#define decFloatAbs decDoubleAbs 82#define decFloatAdd decDoubleAdd 83#define decFloatAnd decDoubleAnd 84#define decFloatDivide decDoubleDivide 85#define decFloatDivideInteger decDoubleDivideInteger 86#define decFloatFMA decDoubleFMA 87#define decFloatInvert decDoubleInvert 88#define decFloatLogB decDoubleLogB 89#define decFloatMax decDoubleMax 90#define decFloatMaxMag decDoubleMaxMag 91#define decFloatMin decDoubleMin 92#define decFloatMinMag decDoubleMinMag 93#define decFloatMinus decDoubleMinus 94#define decFloatMultiply decDoubleMultiply 95#define decFloatNextMinus decDoubleNextMinus 96#define decFloatNextPlus decDoubleNextPlus 97#define decFloatNextToward decDoubleNextToward 98#define decFloatOr decDoubleOr 99#define decFloatPlus decDoublePlus 100#define decFloatQuantize decDoubleQuantize 101#define decFloatReduce decDoubleReduce 102#define decFloatRemainder decDoubleRemainder 103#define decFloatRemainderNear decDoubleRemainderNear 104#define decFloatRotate decDoubleRotate 105#define decFloatScaleB decDoubleScaleB 106#define decFloatShift decDoubleShift 107#define decFloatSubtract decDoubleSubtract 108#define decFloatToIntegralValue decDoubleToIntegralValue 109#define decFloatToIntegralExact decDoubleToIntegralExact 110#define decFloatXor decDoubleXor 111 112/* Comparisons */ 113#define decFloatCompare decDoubleCompare 114#define decFloatCompareSignal decDoubleCompareSignal 115#define decFloatCompareTotal decDoubleCompareTotal 116#define decFloatCompareTotalMag decDoubleCompareTotalMag 117 118/* Copies */ 119#define decFloatCanonical decDoubleCanonical 120#define decFloatCopy decDoubleCopy 121#define decFloatCopyAbs decDoubleCopyAbs 122#define decFloatCopyNegate decDoubleCopyNegate 123#define decFloatCopySign decDoubleCopySign 124 125/* Non-computational */ 126#define decFloatClass decDoubleClass 127#define decFloatClassString decDoubleClassString 128#define decFloatDigits decDoubleDigits 129#define decFloatIsCanonical decDoubleIsCanonical 130#define decFloatIsFinite decDoubleIsFinite 131#define decFloatIsInfinite decDoubleIsInfinite 132#define decFloatIsInteger decDoubleIsInteger 133#define decFloatIsNaN decDoubleIsNaN 134#define decFloatIsNormal decDoubleIsNormal 135#define decFloatIsSignaling decDoubleIsSignaling 136#define decFloatIsSignalling decDoubleIsSignalling 137#define decFloatIsSigned decDoubleIsSigned 138#define decFloatIsSubnormal decDoubleIsSubnormal 139#define decFloatIsZero decDoubleIsZero 140#define decFloatRadix decDoubleRadix 141#define decFloatSameQuantum decDoubleSameQuantum 142#define decFloatVersion decDoubleVersion 143 144#include "decNumberLocal.h" /* local includes (need DECPMAX) */ 145#include "decCommon.c" /* non-arithmetic decFloat routines */ 146#include "decBasic.c" /* basic formats routines */ 147 148