Geant4 Cross Reference |
1 /* 2 # <<BEGIN-copyright>> 3 # <<END-copyright>> 4 */ 5 6 #ifndef nf_utilities_h_included 7 #define nf_utilities_h_included 8 9 #include <stdio.h> 10 #include <stdint.h> 11 #include <string.h> 12 #include <stdarg.h> 13 14 #define NUMERICALFUNCTIONS_SVN_VERSION 110+ 15 16 #define nf_floatToShortestString_trimZeros ( 1 << 0 ) 17 #define nf_floatToShortestString_keepPeriod ( 1 << 1 ) 18 #define nf_floatToShortestString_includeSign ( 1 << 2 ) 19 20 #if defined __cplusplus 21 extern "C" { 22 namespace GIDI { 23 #endif 24 25 typedef enum nfu_status_e { nfu_Okay, nfu_mallocError, nfu_insufficientMemory, 26 nfu_badIndex, nfu_XNotAscending, nfu_badIndexForX, nfu_XOutsideDomain, 27 nfu_invalidInterpolation, nfu_badSelf, nfu_divByZero, nfu_unsupportedInterpolationConversion, 28 nfu_unsupportedInterpolation, nfu_empty, nfu_tooFewPoints, nfu_domainsNotMutual, 29 nfu_badInput, nfu_badNorm, nfu_badIntegrationInput, nfu_otherInterpolation, 30 nfu_failedToConverge, nfu_oddNumberOfValues } nfu_status; 31 32 /* 33 * Functions in nf_utilities.c 34 */ 35 double nfu_getNAN( void ); 36 int nfu_isNAN( double d ); 37 double nfu_getInfinity( double sign ); 38 const char *nfu_statusMessage( nfu_status status ); 39 void nfu_setMemoryDebugMode( int mode ); 40 void *nfu_malloc( size_t size ); 41 void *nfu_calloc( size_t size, size_t n ); 42 void *nfu_realloc( size_t size, void *old ); 43 void *nfu_free( void *p ); 44 void nfu_printMsg( char *fmt, ... ); 45 void nfu_printErrorMsg( char *fmt, ... ); 46 47 /* 48 * Functions in nf_stringToDoubles.c 49 */ 50 nfu_status nfu_stringToListOfDoubles( char const *str, int64_t *numberConverted, double **doublePtr, char **endCharacter ); 51 char *nf_floatToShortestString( double value, int significantDigits, int favorEFormBy, int flags ); 52 53 #if defined __cplusplus 54 } 55 } 56 #endif 57 58 #endif /* End of nf_utilities_h_included. */ 59