cplxerr(3C)
complex_error - Error-handling function for the C++ Complex Math Library
As shipped in IRIX 6.5.22. Last changed in IRIX 6.5.19.
NAME complex_error - Error-handling function for the C++ Complex Math Library SYNOPSIS #include <complex.h> class c_exception { int type; char *name; complex arg1; complex arg2; complex retval; public: c_exception( char *n, const complex& a1, const complex& a2 = complex_zero ); friend int complex_error( c_exception& ); friend complex exp( complex ); friend complex sinh( complex ); friend complex cosh( complex ); friend complex log( complex ); }; DESCRIPTION NOTE: This man page applies only to the -o32 ABI. The MIPSpro -n32 and -64 ABIs support the template-based complex class which is included in the C++ standard library and is automatically loaded by the MIPSpro C++ compiler. The -lm option must still be used to link the math library. In the following description of the complex error handling routine, i is of type int and x is of type c_exception. i = complex_error(x) Invoked by functions in the C++ Complex Mathematics Library when errors are detected. Users may define their own procedures for handling errors, by defining a function named complex_error in their programs. complex_error must be of the form previously described. The type element is an integer describing the type of error that has occurred, from the following list of constants (defined in the header file): SING argument singularity OVERFLOW overflow range error UNDERFLOW underflow range error The name element points to a string containing the name of the function that incurred the error. The arg1 and arg2 variables are the arguments with which the function was invoked. retval is set to the default value that will be returned by the function unless the user's complex_error function sets it to a different value. If the user's complex_error function returns non-zero, no error message will be printed, and errno will not be set. If complex_error is not supplied by the user, the default error- handling procedures, described with the complex math functions involved, will be invoked upon error. These procedures are also summarized in the following table. In every case, errno is set to EDOM or ERANGE and the program continues. Note that complex math functions call functions included in the math library which has its own error handling routine, matherr(3M). Users may also override this routine by supplying their own version. ----------------------------------------------------------------- DEFAULT ERROR HANDLING PROCEDURES ----------------------------------------------------------------- Types of Errors type errno SING EDOM OVERFLOW ERANGE UNDERFLOW ERANGE EXP: real too large/small -- (+H, +H) (0, 0) imag too large -- (0, 0) LOG: arg = (0, 0) M, (H, 0) -- -- SINH: real too large -- (+H, +H) -- imag too large -- (0, 0) -- COSH: real too large -- (+H, +H) -- imag too large -- (0, 0) -- ----------------------------------------------------------------- ------------------------------------------------------- ABBREVIATIONS ------------------------------------------------------- M Message is printed (EDOM error). (H, 0) (HUGE, 0) is returned. (+H, +H) (+HUGE, +HUGE) is returned. (0, 0) (0, 0) is returned. ------------------------------------------------------- SEE ALSO complex(3C), cartpol(3C), cplxops(3C), cplxexp(3C), cplxtrig(3C), matherr(3M)