Files correlati :gfm.dll Ricompilazione Demo : [ ] Commento :riportate sulla 2.1 le correzioni sulla gfm.dll della 2.0 git-svn-id: svn://10.65.10.50/trunk@11815 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			147 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			7.1 KiB
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
| /*      Include this only when compiling MathLib source code.
 | |
| *
 | |
| *       Greenleaf Financial Mathlib
 | |
| *
 | |
| *       Contains definitions and prototypes used by internal routines.
 | |
| *       Copyright (C)1987-1990 Greenleaf Software Inc.  All rights reserved.
 | |
| */
 | |
| 
 | |
| #ifndef GMDOTH
 | |
| #include <gm.h>
 | |
| #endif
 | |
| 
 | |
| #define GM_IMAXID       23      /* values for intermediate calcs. */
 | |
| #define GM_IMINID       0
 | |
| 
 | |
| /*  then define the global constants that are in gmglobal.c */
 | |
| extern  int             _wGMUser;
 | |
| extern  unsigned SHORT	wrgGMPowersOfTen80Bit[];
 | |
| extern  double          ergGMPowersOfTenDouble[];
 | |
| extern  double          eTwoTo31;
 | |
| extern  double          eTwoTo32;
 | |
| extern  double          eTwoTo63;
 | |
| extern  double          eTwoTo64;
 | |
| extern  DEC             decPoint7;
 | |
| extern  DEC             decOne;
 | |
| extern  DEC             decOnePoint4;
 | |
| extern  DEC             decReciprocalOfLn2;
 | |
| extern  DEC             decReciprocalOfLn10;
 | |
| extern  DEC             decLn2;
 | |
| extern  DEC             decLn10;
 | |
| extern  DEC             decE;           /*  Naperian base(2.71828...) */
 | |
| extern  DEC             decMaxExp;      /* max exponent for e**x in DEC */
 | |
| extern  DEC             decMinExp;      /* min exponent for e**x in DEC */
 | |
| extern  DEC             decPoint259;    /* next 5 used for square root */
 | |
| extern  DEC             decTwoPoint59;  /* 2.59 */
 | |
| extern  DEC             decPoint819;    /* 0.819 */
 | |
| extern  DEC             decPoint0819;   /* 0.0819 */
 | |
| extern  DEC             decPoint5;      /* 0.5 */
 | |
| extern  DEC             decPi;          /* next 6 used for trig */
 | |
| extern  DEC             decPiOver2;
 | |
| extern  DEC             decPiOver4;
 | |
| extern  DEC             decPiOver6;
 | |
| extern  DEC             dec2Pi;
 | |
| extern  DEC             decReciprocalOfSqrt3;
 | |
| extern  DEC             dec180OverPi;
 | |
| extern  DEC             decPiOver180;
 | |
| extern  DEC             decMaxLinEst;   /* next 2 used in linear estimation */
 | |
| extern  DEC             decMinLinEst;
 | |
| extern  DEC             decMaxTime;     /* maximum time for business */
 | |
| extern  DEC             decMinusHundred;
 | |
| extern  DEC             decHundred;
 | |
| extern  DEC             decMinus50;
 | |
| extern  DEC             decOnePoint6;
 | |
| extern  DEC             decPoint01;
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| //#ifdef M_I386
 | |
| //#define SHORT short
 | |
| //#else
 | |
| //#define SHORT int
 | |
| //#endif
 | |
| 
 | |
| 
 | |
| int               _AddDec80Bit( DEC *, DEC *, DEC *);
 | |
| int      GF_CDECL _AddUnsArrToUnsArr( unsigned SHORT [], unsigned SHORT [],
 | |
|                                       unsigned SHORT [], int );
 | |
| void              _ATanDec80Bit( DEC *, DEC *);
 | |
| int      GF_CDECL _CompareUnsArr( unsigned SHORT [], unsigned SHORT [], int );
 | |
| DEC *              _CompoundAux( int , int *, DEC *, DEC *, DEC *, DEC *,
 | |
|                                  DEC *, int , int );
 | |
| void              _ConvDecimalToAsciiFormatted( char *, DEC *, char *);
 | |
| void              _CosDec80Bit( DEC *, DEC *);
 | |
| void              _CosDecSmall( DEC *, DEC *);
 | |
| int               _DivDec80Bit( DEC *, DEC *, DEC *);
 | |
| int               _DivDecFast( DEC *, DEC *, DEC *);
 | |
| int               _DivProcFast( DEC *, DEC *, DEC *);
 | |
| int               _DivProcRnd( DEC *, unsigned SHORT [], unsigned SHORT [], int ,
 | |
|                                int , int );
 | |
| int               _DivProcTrn( DEC *, unsigned SHORT [], unsigned SHORT [], int ,
 | |
|                                int , int );
 | |
| int               _DivRndDec80Bit( DEC *, DEC *, DEC *, int );
 | |
| int               _DivTrnDec80Bit( DEC *, DEC *, DEC *, int );
 | |
| void              _DivUns10ArrByUns5Arr( unsigned SHORT [], unsigned SHORT [],
 | |
|                                          unsigned SHORT [] );
 | |
| void              _DivUns10ArrByUns5ArrTrn( unsigned SHORT [], unsigned SHORT [],
 | |
|                                             unsigned SHORT [] );
 | |
| void     GF_CDECL _DivUnsArrByPwrOf10( unsigned SHORT [], int , int );
 | |
| void     GF_CDECL _DivUnsArrByPwrOf10Trunc( unsigned SHORT [], int , int );
 | |
| unsigned GF_CDECL _DivUnsArrByUns( unsigned SHORT [], unsigned SHORT , int );
 | |
| void     GF_CDECL _DivUnsArrByUnsArr( unsigned SHORT [], unsigned SHORT [], int ,
 | |
|                                       unsigned SHORT [], int , int );
 | |
| void     GF_CDECL _DivUnsArrByUnsRound( unsigned SHORT [], unsigned SHORT , int );
 | |
| unsigned GF_CDECL _DoubleUnsArr( unsigned SHORT [], int );
 | |
| int               _ExpDec80Bit( DEC *, DEC *);
 | |
| void     GF_CDECL _HalveUnsArr( unsigned SHORT [], int );
 | |
| void     GF_CDECL _IncrementUnsArr( unsigned SHORT [] );
 | |
| int               _IntPwrDec80Bit( DEC *, DEC *, int );
 | |
| DEC *             _InterestAux( int , int , DEC * , DEC * , DEC *, DEC *, DEC *,
 | |
|                                 int );
 | |
| int               _LnDec80Bit( DEC *, DEC *);
 | |
| int               _MulDec80Bit( DEC *, DEC *, DEC *);
 | |
| void     GF_CDECL _MulUnsArr( unsigned SHORT [], unsigned SHORT [], unsigned SHORT, int);
 | |
| int      GF_CDECL _MulUnsArrByPwrOf10( unsigned SHORT [], int , int );
 | |
| int      GF_CDECL _MulUnsArrByPwrOf10Limited( unsigned SHORT [], int , int );
 | |
| void     GF_CDECL _MulUnsArrByUnsArr( unsigned SHORT [], unsigned SHORT [],
 | |
|                                       unsigned SHORT [], int , int , int );
 | |
| int      GF_CDECL _MulUnsArrP10AndAddInt( unsigned SHORT [], int );
 | |
| int               _ScaleDec80Bit( DEC *, DEC *, int );
 | |
| int               _ScanfAux( int , char *, char *, ELLIPSES);
 | |
| DEC *             _SimpleAux( int *, DEC *, DEC *, DEC *, int , int );
 | |
| void              _SinDecSmall( DEC *, DEC *);
 | |
| int               _SortDec( DEC **, DEC **);
 | |
| int               _SortInc( DEC **, DEC **);
 | |
| int               _Sq5UnsTo4Uns( DEC *);
 | |
| void              _SqrtDec80Bit( DEC *, DEC *);
 | |
| int               _SubDec80Bit(DEC *, DEC *, DEC *);
 | |
| void     GF_CDECL _SubUnsArr( unsigned SHORT [], unsigned SHORT [], int );
 | |
| int      GF_CDECL _SubUnsArrFromUnsArr( unsigned SHORT [], unsigned SHORT [], unsigned SHORT [],
 | |
|                                         int );
 | |
| int               _TruncateDec80Bit( DEC *, DEC *, int );
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | |
| 
 | |
| /*****/
 | |
| 
 | |
| #define _MacDZero(a)    { (a)->dc.attr=0; (a)->dc.id=2; (a)->dc.sl[0]=0; (a)->dc.sl[1]=0; (a)->dc.sl[2]=0; (a)->dc.sl[3]=0; (a)->dc.msd=0; }
 | |
| #define _MacIsDecZ(a) ((((a)->ls.lsl[0])|((a)->ls.lsl[1])|((a)->dc.msd)) ? FALSE:TRUE)
 | |
| #define _MacIsDecP(a)   (((((a)->dc.attr&GM_NEG)^GM_NEG)&&(!_MacIsDecZ(a))) ? TRUE : FALSE)
 | |
| #define _MacIsDecN(a)   (((a)->dc.attr&GM_NEG)&&(!_MacIsDecZ(a)))
 | |
| #define _MacDCopy(a,b)  ((*a) = (*b))
 | |
| #define _MacDChgs(a)    a->dc.attr=a->dc.attr^GM_NEG;
 | |
| #define _MacStart(a)    int _wGMCurr=(a); if (!_wGMUser) _wGMUser=(a);
 | |
| #define _MacRet(a)      {if (_wGMUser==_wGMCurr) _wGMUser=0; return(a);}
 | |
| #define _MacRetV        {if (_wGMUser==_wGMCurr) _wGMUser=0; return;}
 | |
| #define _MacErr(a)      SetMathError((a),_wGMUser)
 | |
| #define _MacBad(a)      (a->dc.id<GM_IMINID||a->dc.id>GM_IMAXID+5)
 | |
| #define _MacInVar(a,b)  {if (!a) {_MacErr(GM_NULLPOINTER); _MacRet(b);} else if (_MacBad(a))  {_MacErr(GM_INIT); _MacRet(b);}}
 | |
| #define _MacOutVar(a,b) {if (!a) {_MacErr(GM_NULLPOINTER); _MacRet(b);}}
 | |
| #define _MacInVarD(a)   {if (!a) {_MacErr(GM_NULLPOINTER); _MacRet(GM_NULL);} else if (_MacBad(a))  {_MacErr(GM_INIT); _MacRet(GM_NULL);}}
 | |
| #define _MacOutVarD(a)  {if (!a) {_MacErr(GM_NULLPOINTER); _MacRet(GM_NULL);}}
 | |
| #define _MacInVarI(a)   {if (!a) {_MacErr(GM_NULLPOINTER); _MacRet(GM_NULLPOINTER);} else if (_MacBad(a))  {_MacErr(GM_INIT); _MacRet(GM_INIT);}}
 |