CGBFA(3F)

CGBFA - CGBFA factors a complex band matrix by elimination.

As shipped in IRIX 6.5.15. Unchanged since IRIX 6.5.

NAME
     CGBFA   - CGBFA factors a complex band matrix by elimination.

     CGBFA is usually called by CGBCO, but it can be called directly with a
     saving in time if  RCOND  is not needed.


SYNOPSYS
      SUBROUTINE CGBFA(ABD,LDA,N,ML,MU,IPVT,INFO)

DESCRIPTION
     On Entry

     ABD COMPLEX(LDA, N)
        contains the matrix in band storage.  The columns
        of the matrix are stored in the columns of  ABD  and
        the diagonals of the matrix are stored in rows
        ML+1 through 2*ML+MU+1 of  ABD .
        See the comments below for details.

     LDA INTEGER
        the leading dimension of the array  ABD .
        LDA must be .GE. 2*ML + MU + 1 .

     N INTEGER
        the order of the original matrix.

     ML INTEGER
        number of diagonals below the main diagonal.
        0 .LE. ML .LT. N .

     MU INTEGER
        number of diagonals above the main diagonal.
        0 .LE. MU .LT. N .
        More efficient if  ML .LE. MU .  On Return

     ABD an upper triangular matrix in band storage and
        the multipliers which were used to obtain it.
        The factorization can be written  A = L*U  where
        L  is a product of permutation and unit lower
        triangular matrices and  U  is upper triangular.

     IPVT INTEGER(N)
        an integer vector of pivot indices.

     INFO INTEGER
        = 0  normal value.
        = K  if  U(K,K) .EQ. 0.0 .  This is not an error
        condition for this subroutine, but it does
        indicate that CGBSL will divide by zero if
        called.  Use  RCOND  in CGBCO for a reliable
        indication of singularity.  Band Storage
        If  A  is a band matrix, the following program segment
        will set up the input.
        ML = (band width below the diagonal)
        MU = (band width above the diagonal)
        m = ML + MU + 1
        DO 20 J = 1, N
        I1 = MAX0(1, J-MU)
        I2 = MIN0(n, J+ML)
        DO 10 I = I1, I2
        K = I - J + M
        ABD(K,J) = A(I,J)
        10    CONTINUE
        20 CONTINUE
        This uses rows  ML+1  through  2*ML+MU+1  of  ABD .
        In addition, the first  ML  rows in  ABD  are used for
        elements generated during the triangularization.
        The total number of rows needed in  ABD  is  2*ML+MU+1 .
        The  ML+MU by ML+MU  upper left triangle and the
        ML by ML  lower right triangle are not referenced.  LINPACK.  This
     version dated 08/14/78 .  Cleve Moler, University of New Mexico, Argonne
     National Lab.  Subroutines and Functions BLAS CAXPY,CSCAL,ICAMAX Fortran
     ABS,AIMAG,MAX0,MIN0,REAL