mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			
		
			
				
	
	
		
			148 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			6.1 KiB
		
	
	
	
		
			C
		
	
	
	
| /* decDouble module for the decNumber C Library.
 | |
|    Copyright (C) 2007-2019 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 */
 | |
| 
 |