ch24safe.h

来自「稀疏矩阵、链表、图、队列、二叉树、多叉树、排序、遗传算法等的实现」· C头文件 代码 · 共 78 行

H
78
字号
/* Code by Ian D. K. Kelly for Chapter 24, "C Unleashed"    */

/* Ch24Safe.h
* 
*  Prototypes for Safe Arithmetic Functions.
* 
*  Copyright (C) 1999  Ian D. K. Kelly, 
*                      idkk Consultancy Ltd.
*                      Macmillan Computer Publishing 
* 
*  This program 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 2 of the License, or 
*  (at your option) any later version. 
* 
*  This program 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. 
* 
*  You should have received a copy of the GNU General Public License 
*  along with this program; if not, write to the Free Software 
*  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 
* 
*  Ian Kelly may be contacted at idkk@idkk.com
* 
*/ 

#ifndef Ch24_safearithmetic_h
#define Ch24_safearithmetic_h

/* Prototypes for the "first" (simple) safe arithmetic functions:     */
 double flpSafeAdd ( double flpFirstAddend,
                     double flpSecondAddend );
 double flpSafeSubtract ( double flpMinuend,
                          double flpSubtrahend );
 double flpSafeMultiply ( double flpFirstMultiplicand,
                          double flpSecondMultiplicand );
 double flpSafeDivide ( double flpNumerator,
                        double flpDenominator );

/* Prototypes for the "second" (complex) safe arithmetic functions:  */
 double flpSafeAddSensitive ( double flpFirstAddend,
                              double flpFirstAddendPrecision,
                              double flpSecondAddend,
                              double flpSecondAddendPrecision,
                              double * flpReturnPrecision,
                              int RaiseError,
                              int * ErrorRaised );
 double flpSafeSubtractSensitive ( double flpMinuend,
                                   double flpMinuendPrecision,
                                   double flpSubtrahend,
                                   double flpSubtrahendPrecision,
                                   double * flpReturnPrecision,
                                   int RaiseError,
                                   int * ErrorRaised );
 double flpSafeMultiplySensitive ( double flpFirstMultiplicand,
                                   double flpFirstMultiplicandPrecision,
                                   double flpSecondMultiplicand,
                                   double flpSecondMultiplicandPrecision,
                                   double * flpReturnPrecision,
                                   int RaiseError,
                                   int * ErrorRaised );
 double flpSafeDivideSensitive ( double flpNumerator,
                                 double flpNumeratorPrecision,
                                 double flpDenominator,
                                 double flpDenominatorPrecision,
                                 double * flpReturnPrecision,
                                 int RaiseError,
                                 int * ErrorRaised );

/* general floating compare and equivalence routines: */
 int flpcmp( double dA, char *sCond, double dB );
 int flpSetEquivalent( double *dA, double *dB );
   
   
#endif    /* Ch24_safearithmetic_h double copy protection */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?