Apply nan/inf handling patch from Sisyphus
[Math-GSL.git] / Errno.i
blob340b298a2904b051d906af888a2d18600fd04ee8
1 %module "Math::GSL::Errno"
2 %{
3 #include "gsl/gsl_errno.h"
4 #include "gsl/gsl_types.h"
5 %}
6 %include "gsl/gsl_errno.h"
7 %include "gsl/gsl_types.h"
9 %perlcode %{
10 @EXPORT_OK = qw/
11 gsl_error gsl_stream_printf gsl_strerror gsl_set_error_handler
12 gsl_set_error_handler_off gsl_set_stream_handler gsl_set_stream
13 $GSL_SUCCESS $GSL_FAILURE $GSL_CONTINUE $GSL_EDOM
14 $GSL_ERANGE $GSL_EFAULT $GSL_EINVAL $GSL_EFAILED
15 $GSL_EFACTOR $GSL_ESANITY $GSL_ENOMEM $GSL_EBADFUNC
16 $GSL_ERUNAWAY $GSL_EMAXITER $GSL_EZERODIV $GSL_EBADTOL
17 $GSL_ETOL $GSL_EUNDRFLW $GSL_EOVRFLW $GSL_ELOSS
18 $GSL_EROUND $GSL_EBADLEN $GSL_ENOTSQR $GSL_ESING
19 $GSL_EDIVERGE $GSL_EUNSUP $GSL_EUNIMPL $GSL_ECACHE
20 $GSL_ETABLE $GSL_ENOPROG $GSL_ENOPROGJ $GSL_ETOLF
21 $GSL_ETOLX $GSL_ETOLG $GSL_EOF
23 %EXPORT_TAGS = ( all => [ @EXPORT_OK ] );
25 =head1 NAME
27 Math::GSL::Errno - Error Handling
29 =cut
31 =head1 SYNOPSIS
33 use Math::GSL::Errno qw/:all/;
34 gsl_set_error_handler_off();
36 print gsl_strerror($GSL_EDOM) . "\n";
38 =head1 STATUS CODES
40 =over 4
42 =item * $GSL_SUCCESS
44 Success
46 =item * $GSL_FAILURE
48 General Failure
50 =item * $GSL_CONTINUE
52 Iteration has not converged
54 =item * $GSL_EDOM
56 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)
58 =item * $GSL_ERANGE
60 Range error; used by mathematical functions when the result value is not representable because of overflow or underflow (like ERANGE in the C library)
62 =item * $GSL_EFAULT
64 Invalid Pointer
66 =item * $GSL_EINVAL
68 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).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).
70 =item * $GSL_EFAILED
72 Generic Failure
74 =item * $GSL_EFACTOR
76 Factorization Failed
78 =item * $GSL_ESANITY
80 Sanity Check Failed
82 =item * $GSL_ENOMEM
84 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.
86 =item * $GSL_EBADFUNC
88 Problem with user-supplied function
90 =item * $GSL_ERUNAWAY
92 Iterative process is our of control
94 =item * $GSL_EMAXITER
96 Exceeded max number of iterations
98 =item * $GSL_EZERODIV
100 Division by zero
102 =item * $GSL_EBADTOL
104 Invalid user-specified tolerance
106 =item * $GSL_ETOL
108 Failed to reach the specified tolerance
110 =item * $GSL_EUNDRFLW
112 Underflow
114 =item * $GSL_EOVRFLW
116 Overflow
118 =item * $GSL_ELOSS
120 Loss of accuracy
122 =item * $GSL_EROUND
124 Failed due to roundoff error
126 =item * $GSL_EBADLEN
128 Matrix/vector lengths not compatible
130 =item * $GSL_ENOTSQR
132 Not a square matrix
134 =item * $GSL_ESING
136 Singularity Detected
138 =item * $GSL_EDIVERGE
140 Integral/Series is divergent
142 =item * $GSL_EUNSUP
144 Not supported by hardware
146 =item * $GSL_EUNIMPL
148 Not implemented
150 =item * $GSL_ECACHE
152 Cache limit exceeded
154 =item * $GSL_ETABLE
156 Table limit exceeded
158 =item * $GSL_ENOPROG
160 Iteration not converging
162 =item * $GSL_ENOPROGJ
164 Jacobian not improving solution
166 =item * $GSL_ETOLF
168 Cannot reach tolerance in F
170 =item * $GSL_ETOLX
172 Cannot reach tolerance in X
174 =item * $GSL_ETOLG
176 Cannot reach tolerance in Gradient
178 =item * $GSL_EOF
180 End of file
182 =back
184 =head1 FUNCTIONS
186 =over
188 =item * gsl_error
190 =item * gsl_stream_printf
192 =item * gsl_strerror($gsl_errno) - This function returns a pointer to a string describing the error code gsl_errno. For example, print ("error: gsl_strerror ($status)\n"); would print an error message like error: output range error for a status value of GSL_ERANGE.
194 =item * gsl_set_error_handler
196 =item * gsl_set_error_handler_off() - This function turns off the error handler by defining an error handler which does nothing. This will cause the program to continue after any error, so the return values from any library routines must be checked. This is the recommended behavior for production programs. The previous handler is returned (so that you can restore it later).
198 =item * gsl_set_stream_handler
200 =item * gsl_set_stream
202 =back
204 =cut