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.