Go to main content
Oracle Developer Studio 12.5 Man Pages

Exit Print View

Updated: June 2017
 
 

cgbtrf (3p)

Name

cgbtrf - n band matrix A using partial pivoting with row interchanges

Synopsis

SUBROUTINE CGBTRF(M, N, KL, KU, A, LDA, IPIVOT, INFO)

COMPLEX A(LDA,N)
INTEGER M, N, KL, KU, LDA, INFO
INTEGER IPIVOT(MIN(M,N))

SUBROUTINE CGBTRF_64(M, N, KL, KU, A, LDA, IPIVOT, INFO)

COMPLEX A(LDA,N)
INTEGER*8 M, N, KL, KU, LDA, INFO
INTEGER*8 IPIVOT(MIN(M,N))




F95 INTERFACE
SUBROUTINE GBTRF(M, N, KL, KU, A, LDA, IPIVOT, INFO)

COMPLEX, DIMENSION(:,:) :: A
INTEGER :: M, N, KL, KU, LDA, INFO
INTEGER, DIMENSION(:) :: IPIVOT

SUBROUTINE GBTRF_64(M, N, KL, KU, A, LDA, IPIVOT, INFO)

COMPLEX, DIMENSION(:,:) :: A
INTEGER(8) :: M, N, KL, KU, LDA, INFO
INTEGER(8), DIMENSION(:) :: IPIVOT




C INTERFACE
#include <sunperf.h>

void cgbtrf(int m, int n, int kl, int ku,  complex  *a,  int  lda,  int
*ipivot, int *info);

void  cgbtrf_64(long m, long n, long kl, long ku, complex *a, long lda,
long *ipivot, long *info);

Description

Oracle Solaris Studio Performance Library                           cgbtrf(3P)



NAME
       cgbtrf  - compute an LU factorization of a complex m-by-n band matrix A
       using partial pivoting with row interchanges


SYNOPSIS
       SUBROUTINE CGBTRF(M, N, KL, KU, A, LDA, IPIVOT, INFO)

       COMPLEX A(LDA,N)
       INTEGER M, N, KL, KU, LDA, INFO
       INTEGER IPIVOT(MIN(M,N))

       SUBROUTINE CGBTRF_64(M, N, KL, KU, A, LDA, IPIVOT, INFO)

       COMPLEX A(LDA,N)
       INTEGER*8 M, N, KL, KU, LDA, INFO
       INTEGER*8 IPIVOT(MIN(M,N))




   F95 INTERFACE
       SUBROUTINE GBTRF(M, N, KL, KU, A, LDA, IPIVOT, INFO)

       COMPLEX, DIMENSION(:,:) :: A
       INTEGER :: M, N, KL, KU, LDA, INFO
       INTEGER, DIMENSION(:) :: IPIVOT

       SUBROUTINE GBTRF_64(M, N, KL, KU, A, LDA, IPIVOT, INFO)

       COMPLEX, DIMENSION(:,:) :: A
       INTEGER(8) :: M, N, KL, KU, LDA, INFO
       INTEGER(8), DIMENSION(:) :: IPIVOT




   C INTERFACE
       #include <sunperf.h>

       void cgbtrf(int m, int n, int kl, int ku,  complex  *a,  int  lda,  int
                 *ipivot, int *info);

       void  cgbtrf_64(long m, long n, long kl, long ku, complex *a, long lda,
                 long *ipivot, long *info);



PURPOSE
       cgbtrf computes an LU factorization of a complex m-by-n band  matrix  A
       using partial pivoting with row interchanges.

       This is the blocked version of the algorithm, calling Level 3 BLAS.


ARGUMENTS
       M (input) Integer
                 The number of rows of the matrix A.  M >= 0.


       N (input) Integer
                 The number of columns of the matrix A.  N >= 0.


       KL (input) Integer
                 The number of subdiagonals within the band of A.  KL >= 0.


       KU (input) Integer
                 The  number of superdiagonals within the band of A.  KU >= 0.


       A (input/output) Complex array of dimension (LDA,N).
                 On entry, the matrix A in  band  storage,  in  rows  KL+1  to
                 2*KL+KU+1; rows 1 to KL of the array need not be set.  The J-
                 th column of A is stored in the J-th column of the array A as
                 follows:
                 A(KL+KU+1+I-J,J) = A(I,J) for MAX(1,J-KU)<=I<=MIN(M,J+KL)
                 On  exit,  details  of  the  factorization: U is stored as an
                 upper triangular band matrix  with  KL+KU  superdiagonals  in
                 rows  1  to KL+KU+1, and the multipliers used during the fac-
                 torization are stored in rows KL+KU+2 to 2*KL+KU+1.
                 See below for further details.


       LDA (input) Integer
                 The leading dimension of the array A.
                 LDA >= 2*KL+KU+1.


       IPIVOT (output) Integer array of dimension MIN(M,N)
                 The pivot indices; for 1 <= I  <=  MIN(M,N),  row  I  of  the
                 matrix was interchanged with row IPIVOT(I).


       INFO (output) INTEGER
                 = 0: successful exit;
                 < 0: if INFO = -I, the I-th argument had an illegal value;
                 >  0: if INFO = +I, U(I,I) is exactly zero. The factorization
                 has been completed, but the factor U is exactly singular, and
                 division  by  zero will occur if it is used to solve a system
                 of equations.

FURTHER DETAILS
       The band storage scheme is illustrated by the following example, when M
       = N = 6, KL = 2, KU = 1:

       On entry:                       On exit:

        *   *   *   +   +   +       *   *   *  u14 u25 u36
        *   *   +   +   +   +       *   *  u13 u24 u35 u46
        *  a12 a23 a34 a45 a56      *  u12 u23 u34 u45 u56
       a11 a22 a33 a44 a55 a66     u11 u22 u33 u44 u55 u66
       a21 a32 a43 a54 a65  *      m21 m32 m43 m54 m65  *
       a31 a42 a53 a64  *   *      m31 m42 m53 m64  *   *

       Array  elements marked * are not used by the routine; elements marked +
       need not be set on entry, but are required by the routine to store ele-
       ments of U because of fill-in resulting from the row interchanges.




                                  7 Nov 2015                        cgbtrf(3P)