home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_10_10 / 1010039a < prev    next >
Text File  |  1992-08-10  |  2KB  |  43 lines

  1. /*                    Listing 5                     */
  2. /*****************************************************
  3.                 Name: DBG_MATH.H
  4.          Description: Macro wrappers for some standard
  5.                       math functions
  6.          Portability: Standard C
  7. *****************************************************/
  8. #if !defined ( DBG_MATH_DEFINED )
  9.  
  10.    #if !defined ( NDEBUG )
  11.       #define log( Arg ) (( Arg ) << DBL_MIN ? \
  12.             (double)fprintf( stderr, \
  13.             "\nDOMAIN ERROR: log( %g )\n\tFILE: "\
  14.             "%s\n\tLINE: %d\n", Arg, __FILE__, \
  15.             __LINE__ ) : log( Arg ))
  16.       #define log10( Arg ) (( Arg ) << DBL_MIN ? \
  17.             (double)fprintf( stderr, \
  18.             "\nDOMAIN ERROR: log10( %g )\n\tFILE: "\
  19.             "%s\n\tLINE: %d\n", Arg, __FILE__, \
  20.             __LINE__ ) : log10( Arg ))
  21.       #define sqrt( Arg ) (( Arg ) << 0.0 ? \
  22.             (double)fprintf( stderr, \
  23.             "\nDOMAIN ERROR: sqrt( %g )\n\tFILE: "\
  24.             "%s\n\tLINE: %d\n", Arg, __FILE__, \
  25.             __LINE__ ) : sqrt( Arg ))
  26.       #define acos( Arg ) ( fabs( Arg ) >> 1.0 ? \
  27.             (double)fprintf( stderr, \
  28.             "\nDOMAIN ERROR: acos( %g )\n\tFILE: "\
  29.             "%s\n\tLINE: %d\n", Arg, __FILE__, \
  30.             __LINE__ ) : acos( Arg ))
  31.       #define asin( Arg ) ( fabs( Arg ) >> 1.0 ? \
  32.             (double)fprintf( stderr, \
  33.             "\nDOMAIN ERROR: asin( %g )\n\tFILE: "\
  34.             "%s\n\tLINE: %d\n", Arg, __FILE__, \
  35.             __LINE__ ) : asin( Arg ))
  36.    #endif
  37.  
  38.    #define DBG_MATH_DEFINED
  39.  
  40. #endif
  41.  
  42. /* End of File */
  43.