HPUX cplxerr[3]






 CPLXERR(3C++)                                                 CPLXERR(3C++)

                          C++ Complex Math Library



 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
      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 described above.

      The element type 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 element name points to a string containing the name of the
      function that incurred the error.  The variables arg1 and arg2 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



                                    - 1 -        Formatted:  August 11, 1996






 CPLXERR(3C++)                                                 CPLXERR(3C++)

                          C++ Complex Math Library



      complex_error 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 table below.  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.

 center allbox ; cB s s s c | cI s s c | c | c | c cI | c | c | c l | c | c
 | c .  DEFAULT ERROR HANDLING PROCEDURES _      Types of Errors _
 type SING OVERFLOW  UNDERFLOW  _ errno     EDOM ERANGE    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)    -

      box; cB s c l .  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
      CPLX.INTRO(3C++), matherr(3M), cartpol(3C++), cplxops(3C++),
      cplxexp(3C++), and cplxtrig(3C++).



















                                    - 2 -        Formatted:  August 11, 1996