Error Codes
The error code numbers returned by library functions are defined in the
file `gsl_errno.h'. They all have the prefix GSL_
and
expand to non-zero constant integer values. Many of the error codes use
the same base name as a corresponding error code in C library. Here are
some of the most common error codes,
- Macro: int GSL_EDOM
-
Domain error; used by mathematical functions when an argument value does
not fall into the domain over which the function is defined (like
EDOM in the C library)
- Macro: int GSL_ERANGE
-
Range error; used by mathematical functions when the result value is not
representable because of overflow or underflow (like ERANGE in the C
library)
- Macro: int GSL_ENOMEM
-
No memory available. The system cannot allocate more virtual memory
because its capacity is full (like ENOMEM in the C library). This error
is reported when a GSL routine encounters problems when trying to
allocate memory with
malloc
.
- Macro: int GSL_EINVAL
-
Invalid argument. This is used to indicate various kinds of problems
with passing the wrong argument to a library function (like EINVAL in the C
library).
The error codes can be converted into an error message using the
function gsl_strerror
.
- Function: const char * gsl_strerror (const int gsl_errno)
-
This function returns a pointer to a string describing the error code
gsl_errno. For example,
printf("error: %s\n", gsl_strerror (status));
would print an error message like error: output range error
for a
status value of GSL_ERANGE
.