The
functions in the IMSL C Numerical Library attempt to detect and
report errors and invalid input. This error-handling capability
provides automatic protection for the user without requiring the
user to make any specific provisions for the treatment of error
conditions. Errors are classified according to severity and are
assigned a code number. By default, errors of moderate or higher
severity result in messages being automatically printed by the function.
Moreover, errors of highest severity cause program execution to
stop. The severity level, as well as the general nature of the error,
is designated by an "error type" with symbolic names IMSLS_FATAL,
IMSLS_WARNING, etc.
See the section "User Errors"
in the reference material for further details.
In general, the IMSL C Numerical Library codes are written so that
computations are not affected by underflow, provided the system
(hardware or software) replaces an underflow with the value 0. Normally,
system error messages indicating underflow can be ignored.
IMSL codes also are written to avoid overflow. A program that produces
system error messages indicating overflow should be examined for
programming errors such as incorrect input data, mismatch of argument
types or improper dimensions. In many cases, the documentation for
a function points out common pitfalls that can lead to failure of
the algorithm.