Blame libdecnumber/decQuad.c

Packit Service 706eca
/* decQuad module for the decNumber C Library.
Packit Service 706eca
   Copyright (C) 2007-2018 Free Software Foundation, Inc.
Packit Service 706eca
   Contributed by IBM Corporation.  Author Mike Cowlishaw.
Packit Service 706eca
Packit Service 706eca
   This file is part of GCC.
Packit Service 706eca
Packit Service 706eca
   GCC is free software; you can redistribute it and/or modify it under
Packit Service 706eca
   the terms of the GNU General Public License as published by the Free
Packit Service 706eca
   Software Foundation; either version 3, or (at your option) any later
Packit Service 706eca
   version.
Packit Service 706eca
Packit Service 706eca
   GCC is distributed in the hope that it will be useful, but WITHOUT ANY
Packit Service 706eca
   WARRANTY; without even the implied warranty of MERCHANTABILITY or
Packit Service 706eca
   FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
Packit Service 706eca
   for more details.
Packit Service 706eca
Packit Service 706eca
Under Section 7 of GPL version 3, you are granted additional
Packit Service 706eca
permissions described in the GCC Runtime Library Exception, version
Packit Service 706eca
3.1, as published by the Free Software Foundation.
Packit Service 706eca
Packit Service 706eca
You should have received a copy of the GNU General Public License and
Packit Service 706eca
a copy of the GCC Runtime Library Exception along with this program;
Packit Service 706eca
see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
Packit Service 706eca
<http://www.gnu.org/licenses/>.  */
Packit Service 706eca
Packit Service 706eca
/* ------------------------------------------------------------------ */
Packit Service 706eca
/* decQuad.c -- decQuad operations module			      */
Packit Service 706eca
/* ------------------------------------------------------------------ */
Packit Service 706eca
/* This module comprises decQuad operations (including conversions)   */
Packit Service 706eca
/* ------------------------------------------------------------------ */
Packit Service 706eca
Packit Service 706eca
#include "decContext.h"       /* public includes */
Packit Service 706eca
#include "decQuad.h"	      /* .. */
Packit Service 706eca
Packit Service 706eca
/* Constant mappings for shared code */
Packit Service 706eca
#define DECPMAX     DECQUAD_Pmax
Packit Service 706eca
#define DECEMIN     DECQUAD_Emin
Packit Service 706eca
#define DECEMAX     DECQUAD_Emax
Packit Service 706eca
#define DECEMAXD    DECQUAD_EmaxD
Packit Service 706eca
#define DECBYTES    DECQUAD_Bytes
Packit Service 706eca
#define DECSTRING   DECQUAD_String
Packit Service 706eca
#define DECECONL    DECQUAD_EconL
Packit Service 706eca
#define DECBIAS     DECQUAD_Bias
Packit Service 706eca
#define DECLETS     DECQUAD_Declets
Packit Service 706eca
#define DECQTINY   (-DECQUAD_Bias)
Packit Service 706eca
Packit Service 706eca
/* Type and function mappings for shared code */
Packit Service 706eca
#define decFloat		   decQuad	  /* Type name */
Packit Service 706eca
Packit Service 706eca
/* Utilities and conversions (binary results, extractors, etc.) */
Packit Service 706eca
#define decFloatFromBCD 	   decQuadFromBCD
Packit Service 706eca
#define decFloatFromInt32	   decQuadFromInt32
Packit Service 706eca
#define decFloatFromPacked	   decQuadFromPacked
Packit Service 706eca
#define decFloatFromPackedChecked  decQuadFromPackedChecked
Packit Service 706eca
#define decFloatFromString	   decQuadFromString
Packit Service 706eca
#define decFloatFromUInt32	   decQuadFromUInt32
Packit Service 706eca
#define decFloatFromWider	   decQuadFromWider
Packit Service 706eca
#define decFloatGetCoefficient	   decQuadGetCoefficient
Packit Service 706eca
#define decFloatGetExponent	   decQuadGetExponent
Packit Service 706eca
#define decFloatSetCoefficient	   decQuadSetCoefficient
Packit Service 706eca
#define decFloatSetExponent	   decQuadSetExponent
Packit Service 706eca
#define decFloatShow		   decQuadShow
Packit Service 706eca
#define decFloatToBCD		   decQuadToBCD
Packit Service 706eca
#define decFloatToEngString	   decQuadToEngString
Packit Service 706eca
#define decFloatToInt32 	   decQuadToInt32
Packit Service 706eca
#define decFloatToInt32Exact	   decQuadToInt32Exact
Packit Service 706eca
#define decFloatToPacked	   decQuadToPacked
Packit Service 706eca
#define decFloatToString	   decQuadToString
Packit Service 706eca
#define decFloatToUInt32	   decQuadToUInt32
Packit Service 706eca
#define decFloatToUInt32Exact	   decQuadToUInt32Exact
Packit Service 706eca
#define decFloatToWider 	   decQuadToWider
Packit Service 706eca
#define decFloatZero		   decQuadZero
Packit Service 706eca
Packit Service 706eca
/* Computational (result is a decFloat) */
Packit Service 706eca
#define decFloatAbs		   decQuadAbs
Packit Service 706eca
#define decFloatAdd		   decQuadAdd
Packit Service 706eca
#define decFloatAnd		   decQuadAnd
Packit Service 706eca
#define decFloatDivide		   decQuadDivide
Packit Service 706eca
#define decFloatDivideInteger	   decQuadDivideInteger
Packit Service 706eca
#define decFloatFMA		   decQuadFMA
Packit Service 706eca
#define decFloatInvert		   decQuadInvert
Packit Service 706eca
#define decFloatLogB		   decQuadLogB
Packit Service 706eca
#define decFloatMax		   decQuadMax
Packit Service 706eca
#define decFloatMaxMag		   decQuadMaxMag
Packit Service 706eca
#define decFloatMin		   decQuadMin
Packit Service 706eca
#define decFloatMinMag		   decQuadMinMag
Packit Service 706eca
#define decFloatMinus		   decQuadMinus
Packit Service 706eca
#define decFloatMultiply	   decQuadMultiply
Packit Service 706eca
#define decFloatNextMinus	   decQuadNextMinus
Packit Service 706eca
#define decFloatNextPlus	   decQuadNextPlus
Packit Service 706eca
#define decFloatNextToward	   decQuadNextToward
Packit Service 706eca
#define decFloatOr		   decQuadOr
Packit Service 706eca
#define decFloatPlus		   decQuadPlus
Packit Service 706eca
#define decFloatQuantize	   decQuadQuantize
Packit Service 706eca
#define decFloatReduce		   decQuadReduce
Packit Service 706eca
#define decFloatRemainder	   decQuadRemainder
Packit Service 706eca
#define decFloatRemainderNear	   decQuadRemainderNear
Packit Service 706eca
#define decFloatRotate		   decQuadRotate
Packit Service 706eca
#define decFloatScaleB		   decQuadScaleB
Packit Service 706eca
#define decFloatShift		   decQuadShift
Packit Service 706eca
#define decFloatSubtract	   decQuadSubtract
Packit Service 706eca
#define decFloatToIntegralValue    decQuadToIntegralValue
Packit Service 706eca
#define decFloatToIntegralExact    decQuadToIntegralExact
Packit Service 706eca
#define decFloatXor		   decQuadXor
Packit Service 706eca
Packit Service 706eca
/* Comparisons */
Packit Service 706eca
#define decFloatCompare 	   decQuadCompare
Packit Service 706eca
#define decFloatCompareSignal	   decQuadCompareSignal
Packit Service 706eca
#define decFloatCompareTotal	   decQuadCompareTotal
Packit Service 706eca
#define decFloatCompareTotalMag    decQuadCompareTotalMag
Packit Service 706eca
Packit Service 706eca
/* Copies */
Packit Service 706eca
#define decFloatCanonical	   decQuadCanonical
Packit Service 706eca
#define decFloatCopy		   decQuadCopy
Packit Service 706eca
#define decFloatCopyAbs 	   decQuadCopyAbs
Packit Service 706eca
#define decFloatCopyNegate	   decQuadCopyNegate
Packit Service 706eca
#define decFloatCopySign	   decQuadCopySign
Packit Service 706eca
Packit Service 706eca
/* Non-computational */
Packit Service 706eca
#define decFloatClass		   decQuadClass
Packit Service 706eca
#define decFloatClassString	   decQuadClassString
Packit Service 706eca
#define decFloatDigits		   decQuadDigits
Packit Service 706eca
#define decFloatIsCanonical	   decQuadIsCanonical
Packit Service 706eca
#define decFloatIsFinite	   decQuadIsFinite
Packit Service 706eca
#define decFloatIsInfinite	   decQuadIsInfinite
Packit Service 706eca
#define decFloatIsInteger	   decQuadIsInteger
Packit Service 706eca
#define decFloatIsNaN		   decQuadIsNaN
Packit Service 706eca
#define decFloatIsNormal	   decQuadIsNormal
Packit Service 706eca
#define decFloatIsSignaling	   decQuadIsSignaling
Packit Service 706eca
#define decFloatIsSignalling	   decQuadIsSignalling
Packit Service 706eca
#define decFloatIsSigned	   decQuadIsSigned
Packit Service 706eca
#define decFloatIsSubnormal	   decQuadIsSubnormal
Packit Service 706eca
#define decFloatIsZero		   decQuadIsZero
Packit Service 706eca
#define decFloatRadix		   decQuadRadix
Packit Service 706eca
#define decFloatSameQuantum	   decQuadSameQuantum
Packit Service 706eca
#define decFloatVersion 	   decQuadVersion
Packit Service 706eca
Packit Service 706eca
#include "decNumberLocal.h"   /* local includes (need DECPMAX) */
Packit Service 706eca
#include "decCommon.c"	      /* non-arithmetic decFloat routines */
Packit Service 706eca
#include "decBasic.c"	      /* basic formats routines */
Packit Service 706eca