1/* decQuad 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/* decQuad.c -- decQuad operations module */ 28/* ------------------------------------------------------------------ */ 29/* This module comprises decQuad operations (including conversions) */ 30/* ------------------------------------------------------------------ */ 31 32#include "decContext.h" /* public includes */ 33#include "decQuad.h" /* .. */ 34 35/* Constant mappings for shared code */ 36#define DECPMAX DECQUAD_Pmax 37#define DECEMIN DECQUAD_Emin 38#define DECEMAX DECQUAD_Emax 39#define DECEMAXD DECQUAD_EmaxD 40#define DECBYTES DECQUAD_Bytes 41#define DECSTRING DECQUAD_String 42#define DECECONL DECQUAD_EconL 43#define DECBIAS DECQUAD_Bias 44#define DECLETS DECQUAD_Declets 45#define DECQTINY (-DECQUAD_Bias) 46 47/* Type and function mappings for shared code */ 48#define decFloat decQuad /* Type name */ 49 50/* Utilities and conversions (binary results, extractors, etc.) */ 51#define decFloatFromBCD decQuadFromBCD 52#define decFloatFromInt32 decQuadFromInt32 53#define decFloatFromPacked decQuadFromPacked 54#define decFloatFromPackedChecked decQuadFromPackedChecked 55#define decFloatFromString decQuadFromString 56#define decFloatFromUInt32 decQuadFromUInt32 57#define decFloatFromWider decQuadFromWider 58#define decFloatGetCoefficient decQuadGetCoefficient 59#define decFloatGetExponent decQuadGetExponent 60#define decFloatSetCoefficient decQuadSetCoefficient 61#define decFloatSetExponent decQuadSetExponent 62#define decFloatShow decQuadShow 63#define decFloatToBCD decQuadToBCD 64#define decFloatToEngString decQuadToEngString 65#define decFloatToInt32 decQuadToInt32 66#define decFloatToInt32Exact decQuadToInt32Exact 67#define decFloatToPacked decQuadToPacked 68#define decFloatToString decQuadToString 69#define decFloatToUInt32 decQuadToUInt32 70#define decFloatToUInt32Exact decQuadToUInt32Exact 71#define decFloatToWider decQuadToWider 72#define decFloatZero decQuadZero 73 74/* Computational (result is a decFloat) */ 75#define decFloatAbs decQuadAbs 76#define decFloatAdd decQuadAdd 77#define decFloatAnd decQuadAnd 78#define decFloatDivide decQuadDivide 79#define decFloatDivideInteger decQuadDivideInteger 80#define decFloatFMA decQuadFMA 81#define decFloatInvert decQuadInvert 82#define decFloatLogB decQuadLogB 83#define decFloatMax decQuadMax 84#define decFloatMaxMag decQuadMaxMag 85#define decFloatMin decQuadMin 86#define decFloatMinMag decQuadMinMag 87#define decFloatMinus decQuadMinus 88#define decFloatMultiply decQuadMultiply 89#define decFloatNextMinus decQuadNextMinus 90#define decFloatNextPlus decQuadNextPlus 91#define decFloatNextToward decQuadNextToward 92#define decFloatOr decQuadOr 93#define decFloatPlus decQuadPlus 94#define decFloatQuantize decQuadQuantize 95#define decFloatReduce decQuadReduce 96#define decFloatRemainder decQuadRemainder 97#define decFloatRemainderNear decQuadRemainderNear 98#define decFloatRotate decQuadRotate 99#define decFloatScaleB decQuadScaleB 100#define decFloatShift decQuadShift 101#define decFloatSubtract decQuadSubtract 102#define decFloatToIntegralValue decQuadToIntegralValue 103#define decFloatToIntegralExact decQuadToIntegralExact 104#define decFloatXor decQuadXor 105 106/* Comparisons */ 107#define decFloatCompare decQuadCompare 108#define decFloatCompareSignal decQuadCompareSignal 109#define decFloatCompareTotal decQuadCompareTotal 110#define decFloatCompareTotalMag decQuadCompareTotalMag 111 112/* Copies */ 113#define decFloatCanonical decQuadCanonical 114#define decFloatCopy decQuadCopy 115#define decFloatCopyAbs decQuadCopyAbs 116#define decFloatCopyNegate decQuadCopyNegate 117#define decFloatCopySign decQuadCopySign 118 119/* Non-computational */ 120#define decFloatClass decQuadClass 121#define decFloatClassString decQuadClassString 122#define decFloatDigits decQuadDigits 123#define decFloatIsCanonical decQuadIsCanonical 124#define decFloatIsFinite decQuadIsFinite 125#define decFloatIsInfinite decQuadIsInfinite 126#define decFloatIsInteger decQuadIsInteger 127#define decFloatIsNaN decQuadIsNaN 128#define decFloatIsNormal decQuadIsNormal 129#define decFloatIsSignaling decQuadIsSignaling 130#define decFloatIsSignalling decQuadIsSignalling 131#define decFloatIsSigned decQuadIsSigned 132#define decFloatIsSubnormal decQuadIsSubnormal 133#define decFloatIsZero decQuadIsZero 134#define decFloatRadix decQuadRadix 135#define decFloatSameQuantum decQuadSameQuantum 136#define decFloatVersion decQuadVersion 137 138#include "decNumberLocal.h" /* local includes (need DECPMAX) */ 139#include "decCommon.c" /* non-arithmetic decFloat routines */ 140#include "decBasic.c" /* basic formats routines */ 141 142