libSBML C API  5.18.0
util.h File Reference

Utility functions. More...

Include dependency graph for util.h:
This graph shows which files directly or indirectly include this file:

Functions

double util_epsilon ()
 
void util_free (void *element)
 Function for freeing memory allocated by libSBML functions. More...
 
void util_freeArray (void **objects, int length)
 Function for freeing memory allocated by libSBML functions. More...
 
int util_isEqual (double a, double b)
 
int util_isFinite (double d)
 
int util_isInf (double d)
 Function for testing whether a given value represents negative infinity. More...
 
int util_isNaN (double d)
 
int util_isNegZero (double d)
 Function for testing whether a given value represents negative zero. More...
 
double util_NaN (void)
 Returns a representation of NaN. More...
 
double util_NegInf (void)
 Returns a representation of the IEEE-754 "Negative Infinity" value. More...
 
double util_NegZero (void)
 Returns a representation of the IEEE-754 "Negative Zero" value. More...
 
double util_PosInf (void)
 Returns a representation of the IEEE-754 "Positive Infinity" value. More...
 

Detailed Description

Utility functions.

Author
Ben Bornstein

Function Documentation

double util_epsilon ( )
Returns
the machine epsilon
void util_free ( void *  element)

Function for freeing memory allocated by libSBML functions.

Parameters
elementpointer to the object to be freed. It must be data that was originally allocated by a libSBML function.

This function was introduced to deal with a specific memory issue arising on Windows OS when using libSBML compiled against a static MSVC runtime library. In this situation, it was not possible to use the standard free() function when freeing memory that was actually allocated within the libSBML function call. The following is an example of where the free function fails and needs to be replaced with util_free().

1 char * formula = SBML_formulaToString(astNode);
2 free(formula);
Note
This function is only necessary when using a version of libSBML compiled and linked against a static MSVC runtime library.
void util_freeArray ( void **  objects,
int  length 
)

Function for freeing memory allocated by libSBML functions.

Parameters
objectspointer to the array to be freed. It must be data that was originally allocated by a libSBML function.
lengthnumber of elements in the array to be freed.

This function was introduced to deal with a specific memory issue arising on Windows OS when using libSBML compiled against a static MSVC runtime library. In this situation, it was not possible to use the standard free() function when freeing memory that was actually allocated within the libSBML function call. The following is an example of where the free function fails and needs to be replaced with util_freeArray().

1 int length;
2 SBMLNamespaces_t** supported = SBMLNamespaces_getSupportedNamespaces(&length);
3 free(supported);
Note
This function is only necessary when using a version of libSBML compiled and linked against a static MSVC runtime library.
int util_isEqual ( double  a,
double  b 
)
Returns
1 if the number are equal up to the machine epsilon and 0 otherwise.
int util_isFinite ( double  d)
Returns
1 if the number is finite and 0 otherwise.
int util_isInf ( double  d)

Function for testing whether a given value represents negative infinity.

Parameters
dthe floating-point value to test.
Returns
-1 (for false) if d represents negative infinity, 1 (true) if d represents positive infinity, and 0 (false) otherwise.
int util_isNaN ( double  d)
Returns
1 if the number is NaN and 0 otherwise.
int util_isNegZero ( double  d)

Function for testing whether a given value represents negative zero.

Parameters
dthe floating-point value to test.
Returns
1 (true) if d is an IEEE-754 negative zero, 0 (false) otherwise.
double util_NaN ( void  )

Returns a representation of NaN.

Returns
a (quiet) NaN.
double util_NegInf ( void  )

Returns a representation of the IEEE-754 "Negative Infinity" value.

Returns
IEEE-754 Negative Infinity.
double util_NegZero ( void  )

Returns a representation of the IEEE-754 "Negative Zero" value.

Returns
IEEE-754 Negative Zero.
double util_PosInf ( void  )

Returns a representation of the IEEE-754 "Positive Infinity" value.

Returns
IEEE-754 Positive Infinity