laqz3(3)

NAME
laqz3 - laqz3: step in ggev3, gges3

SYNOPSIS

  Functions
subroutine claqz3 (ilschur, ilq, ilz, n, ilo, ihi, nshifts, nblock_desired, alpha, beta, a, lda, b, ldb, q, ldq, z, ldz, qc, ldqc, zc, ldzc, work, lwork, info)
CLAQZ3
recursive subroutine dlaqz3 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda, b, ldb, q, ldq, z, ldz, ns, nd, alphar, alphai, beta, qc, ldqc, zc, ldzc, work, lwork, rec, info)
DLAQZ3
recursive subroutine slaqz3 (ilschur, ilq, ilz, n, ilo, ihi, nw, a, lda, b, ldb, q, ldq, z, ldz, ns, nd, alphar, alphai, beta, qc, ldqc, zc, ldzc, work, lwork, rec, info)
SLAQZ3
subroutine zlaqz3 (ilschur, ilq, ilz, n, ilo, ihi, nshifts, nblock_desired, alpha, beta, a, lda, b, ldb, q, ldq, z, ldz, qc, ldqc, zc, ldzc, work, lwork, info)
ZLAQZ3

Detailed Description

Function Documentation

  subroutine claqz3 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nshifts, integer, intent(in) nblock_desired, complex, dimension( * ), intent(inout) alpha, complex, dimension( * ), intent(inout) beta, complex, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, complex, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, complex, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, complex, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, complex, dimension( ldqc, * ), intent(inout) qc, integer, intent(in) ldqc, complex, dimension( ldzc, * ), intent(inout) zc, integer, intent(in) ldzc, complex, dimension( * ), intent(inout) work, integer, intent(in) lwork, integer, intent(out) info)

CLAQZ3

Purpose:

     CLAQZ3 Executes a single multishift QZ sweep

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER

    NSHIFTS

              NSHIFTS is INTEGER
              The desired number of shifts to use

    NBLOCK_DESIRED

              NBLOCK_DESIRED is INTEGER
              The desired size of the computational windows

    ALPHA

              ALPHA is COMPLEX array. SR contains
              the alpha parts of the shifts to use.

    BETA

              BETA is COMPLEX array. SS contains
              the scale of the shifts to use.

    A

              A is COMPLEX array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is COMPLEX array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is COMPLEX array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is COMPLEX array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    QC

              QC is COMPLEX array, dimension (LDQC, NBLOCK_DESIRED)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is COMPLEX array, dimension (LDZC, NBLOCK_DESIRED)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is COMPLEX array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 203 of file claqz3.f.

  recursive subroutine dlaqz3 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw, double precision, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, double precision, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, double precision, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, double precision, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, integer, intent(out) ns, integer, intent(out) nd, double precision, dimension( * ), intent(inout) alphar, double precision, dimension( * ), intent(inout) alphai, double precision, dimension( * ), intent(inout) beta, double precision, dimension( ldqc, * ) qc, integer, intent(in) ldqc, double precision, dimension( ldzc, * ) zc, integer, intent(in) ldzc, double precision, dimension( * ) work, integer, intent(in) lwork, integer, intent(in) rec, integer, intent(out) info)

DLAQZ3

Purpose:

     DLAQZ3 performs AED

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER
              ILO and IHI mark the rows and columns of (A,B) which
              are to be normalized

    NW

              NW is INTEGER
              The desired size of the deflation window.

    A

              A is DOUBLE PRECISION array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is DOUBLE PRECISION array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is DOUBLE PRECISION array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is DOUBLE PRECISION array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    NS

              NS is INTEGER
              The number of unconverged eigenvalues available to
              use as shifts.

    ND

              ND is INTEGER
              The number of converged eigenvalues found.

    ALPHAR

              ALPHAR is DOUBLE PRECISION array, dimension (N)
              The real parts of each scalar alpha defining an eigenvalue
              of GNEP.

    ALPHAI

              ALPHAI is DOUBLE PRECISION array, dimension (N)
              The imaginary parts of each scalar alpha defining an
              eigenvalue of GNEP.
              If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
              positive, then the j-th and (j+1)-st eigenvalues are a
              complex conjugate pair, with ALPHAI(j+1) = -ALPHAI(j).

    BETA

              BETA is DOUBLE PRECISION array, dimension (N)
              The scalars beta that define the eigenvalues of GNEP.
              Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and
              beta = BETA(j) represent the j-th eigenvalue of the matrix
              pair (A,B), in one of the forms lambda = alpha/beta or
              mu = beta/alpha.  Since either lambda or mu may overflow,
              they should not, in general, be computed.

    QC

              QC is DOUBLE PRECISION array, dimension (LDQC, NW)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is DOUBLE PRECISION array, dimension (LDZC, NW)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is DOUBLE PRECISION array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    REC

              REC is INTEGER
                 REC indicates the current recursion level. Should be set
                 to 0 on first call.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 235 of file dlaqz3.f.

  recursive subroutine slaqz3 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nw, real, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, real, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, real, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, real, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, integer, intent(out) ns, integer, intent(out) nd, real, dimension( * ), intent(inout) alphar, real, dimension( * ), intent(inout) alphai, real, dimension( * ), intent(inout) beta, real, dimension( ldqc, * ) qc, integer, intent(in) ldqc, real, dimension( ldzc, * ) zc, integer, intent(in) ldzc, real, dimension( * ) work, integer, intent(in) lwork, integer, intent(in) rec, integer, intent(out) info)

SLAQZ3

Purpose:

     SLAQZ3 performs AED

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER
              ILO and IHI mark the rows and columns of (A,B) which
              are to be normalized

    NW

              NW is INTEGER
              The desired size of the deflation window.

    A

              A is REAL array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is REAL array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is REAL array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is REAL array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    NS

              NS is INTEGER
              The number of unconverged eigenvalues available to
              use as shifts.

    ND

              ND is INTEGER
              The number of converged eigenvalues found.

    ALPHAR

              ALPHAR is REAL array, dimension (N)
              The real parts of each scalar alpha defining an eigenvalue
              of GNEP.

    ALPHAI

              ALPHAI is REAL array, dimension (N)
              The imaginary parts of each scalar alpha defining an
              eigenvalue of GNEP.
              If ALPHAI(j) is zero, then the j-th eigenvalue is real; if
              positive, then the j-th and (j+1)-st eigenvalues are a
              complex conjugate pair, with ALPHAI(j+1) = -ALPHAI(j).

    BETA

              BETA is REAL array, dimension (N)
              The scalars beta that define the eigenvalues of GNEP.
              Together, the quantities alpha = (ALPHAR(j),ALPHAI(j)) and
              beta = BETA(j) represent the j-th eigenvalue of the matrix
              pair (A,B), in one of the forms lambda = alpha/beta or
              mu = beta/alpha.  Since either lambda or mu may overflow,
              they should not, in general, be computed.

    QC

              QC is REAL array, dimension (LDQC, NW)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is REAL array, dimension (LDZC, NW)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is REAL array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    REC

              REC is INTEGER
                 REC indicates the current recursion level. Should be set
                 to 0 on first call.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 234 of file slaqz3.f.

  subroutine zlaqz3 (logical, intent(in) ilschur, logical, intent(in) ilq, logical, intent(in) ilz, integer, intent(in) n, integer, intent(in) ilo, integer, intent(in) ihi, integer, intent(in) nshifts, integer, intent(in) nblock_desired, complex*16, dimension( * ), intent(inout) alpha, complex*16, dimension( * ), intent(inout) beta, complex*16, dimension( lda, * ), intent(inout) a, integer, intent(in) lda, complex*16, dimension( ldb, * ), intent(inout) b, integer, intent(in) ldb, complex*16, dimension( ldq, * ), intent(inout) q, integer, intent(in) ldq, complex*16, dimension( ldz, * ), intent(inout) z, integer, intent(in) ldz, complex*16, dimension( ldqc, * ), intent(inout) qc, integer, intent(in) ldqc, complex*16, dimension( ldzc, * ), intent(inout) zc, integer, intent(in) ldzc, complex*16, dimension( * ), intent(inout) work, integer, intent(in) lwork, integer, intent(out) info)

ZLAQZ3

Purpose:

     ZLAQZ3 Executes a single multishift QZ sweep

Parameters
    ILSCHUR

              ILSCHUR is LOGICAL
                  Determines whether or not to update the full Schur form

    ILQ

              ILQ is LOGICAL
                  Determines whether or not to update the matrix Q

    ILZ

              ILZ is LOGICAL
                  Determines whether or not to update the matrix Z

    N

              N is INTEGER
              The order of the matrices A, B, Q, and Z.  N >= 0.

    ILO

              ILO is INTEGER

    IHI

              IHI is INTEGER

    NSHIFTS

              NSHIFTS is INTEGER
              The desired number of shifts to use

    NBLOCK_DESIRED

              NBLOCK_DESIRED is INTEGER
              The desired size of the computational windows

    ALPHA

              ALPHA is COMPLEX*16 array. SR contains
              the alpha parts of the shifts to use.

    BETA

              BETA is COMPLEX*16 array. SS contains
              the scale of the shifts to use.

    A

              A is COMPLEX*16 array, dimension (LDA, N)

    LDA

              LDA is INTEGER
              The leading dimension of the array A.  LDA >= max( 1, N ).

    B

              B is COMPLEX*16 array, dimension (LDB, N)

    LDB

              LDB is INTEGER
              The leading dimension of the array B.  LDB >= max( 1, N ).

    Q

              Q is COMPLEX*16 array, dimension (LDQ, N)

    LDQ

              LDQ is INTEGER

    Z

              Z is COMPLEX*16 array, dimension (LDZ, N)

    LDZ

              LDZ is INTEGER

    QC

              QC is COMPLEX*16 array, dimension (LDQC, NBLOCK_DESIRED)

    LDQC

              LDQC is INTEGER

    ZC

              ZC is COMPLEX*16 array, dimension (LDZC, NBLOCK_DESIRED)

    LDZC

              LDZ is INTEGER

    WORK

              WORK is COMPLEX*16 array, dimension (MAX(1,LWORK))
              On exit, if INFO >= 0, WORK(1) returns the optimal LWORK.

    LWORK

              LWORK is INTEGER
              The dimension of the array WORK.  LWORK >= max(1,N).
              If LWORK = -1, then a workspace query is assumed; the routine
              only calculates the optimal size of the WORK array, returns
              this value as the first entry of the WORK array, and no error
              message related to LWORK is issued by XERBLA.

    INFO

              INFO is INTEGER
              = 0: successful exit
              < 0: if INFO = -i, the i-th argument had an illegal value

Author
    Thijs Steel, KU Leuven

Date
    May 2020

Definition at line 204 of file zlaqz3.f.

Author

Generated automatically by Doxygen for LAPACK from the source code.