cplxerr(3C)

complex_error - Error-handling function for the C++ Complex Math Library

As shipped in IRIX 6.5.30. 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)