## MA01BZ

### Safely computing the general product of K complex scalars

[Specification] [Arguments] [Method] [References] [Comments] [Example]

Purpose

      To compute the general product of K complex scalars trying to
      avoid over- and underflow.

Specification

          SUBROUTINE MA01BZ( BASE, K, S, A, INCA, ALPHA, BETA, SCAL )
    C     .. Scalar Arguments ..
          INTEGER           INCA, K, SCAL
          DOUBLE PRECISION  BASE
          COMPLEX*16        ALPHA, BETA
    C     .. Array Arguments ..
          INTEGER           S(*)
          COMPLEX*16        A(*)

Arguments

Input/Output Parameters

      BASE    (input)  DOUBLE PRECISION
              Machine base.

      K       (input)  INTEGER
              The number of scalars.  K >= 1.

      S       (input)  INTEGER array, dimension (K)
              The signature array. Each entry of S must be 1 or -1.

      A       (input)  COMPLEX*16 array, dimension (K)
              Vector of complex scalars.

      INCA    (input)  INTEGER
              Increment for the array A. INCA <> 0.

      ALPHA   (output)  COMPLEX*16
              ALPHA is a complex scalar with ABS(ALPHA) = 0, or
              1.0 <= ABS(ALPHA) < BASE, such that

                 ALPHA / BETA * BASE**(SCAL)

              is the general product of the scalars in the array A.

      BETA    (output)  COMPLEX*16
              BETA is either 0.0 or 1.0.
              See also the description of ALPHA.

      SCAL    (output)  INTEGER
              Scaling factor exponent, see ALPHA.

Further Comments

      None

Example

Program Text

      None

Program Data

      None

Program Results

      None

Return to Supporting Routines index