DTGEX2 man page on IRIX

Man page or keyword search:  
man Server   31559 pages
apropos Keyword Search (all sections)
Output format
IRIX logo
[printable version]



DTGEX2(3S)							    DTGEX2(3S)

NAME
     DTGEX2 - swap adjacent diagonal blocks (A11, B11) and (A22, B22) of size
     1-by-1 or 2-by-2 in an upper (quasi) triangular matrix pair (A, B) by an
     orthogonal equivalence transformation

SYNOPSIS
     SUBROUTINE DTGEX2( WANTQ, WANTZ, N, A, LDA, B, LDB, Q, LDQ, Z, LDZ, J1,
			N1, N2, WORK, LWORK, INFO )

	 LOGICAL	WANTQ, WANTZ

	 INTEGER	INFO, J1, LDA, LDB, LDQ, LDZ, LWORK, N, N1, N2

	 DOUBLE		PRECISION A( LDA, * ), B( LDB, * ), Q( LDQ, * ), WORK(
			* ), Z( LDZ, * )

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

PURPOSE
     DTGEX2 swaps adjacent diagonal blocks (A11, B11) and (A22, B22) of size
     1-by-1 or 2-by-2 in an upper (quasi) triangular matrix pair (A, B) by an
     orthogonal equivalence transformation. (A, B) must be in generalized real
     Schur canonical form (as returned by DGGES), i.e. A is block upper
     triangular with 1-by-1 and 2-by-2 diagonal blocks. B is upper triangular.

     Optionally, the matrices Q and Z of generalized Schur vectors are
     updated.

	    Q(in) * A(in) * Z(in)' = Q(out) * A(out) * Z(out)'
	    Q(in) * B(in) * Z(in)' = Q(out) * B(out) * Z(out)'

ARGUMENTS
     WANTQ   (input) LOGICAL

     WANTZ   (input) LOGICAL

     N	     (input) INTEGER
	     The order of the matrices A and B. N >= 0.

									Page 1

DTGEX2(3S)							    DTGEX2(3S)

     A	    (input/output) DOUBLE PRECISION arrays, dimensions (LDA,N)
	    On entry, the matrix A in the pair (A, B).	On exit, the updated
	    matrix A.

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

     B	    (input/output) DOUBLE PRECISION arrays, dimensions (LDB,N)
	    On entry, the matrix B in the pair (A, B).	On exit, the updated
	    matrix B.

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

     Q	     (input/output) DOUBLE PRECISION array, dimension (LDZ,N)
	     On entry, if WANTQ = .TRUE., the orthogonal matrix Q.  On exit,
	     the updated matrix Q.  Not referenced if WANTQ = .FALSE..

     LDQ     (input) INTEGER
	     The leading dimension of the array Q. LDQ >= 1.  If WANTQ =
	     .TRUE., LDQ >= N.

     Z	     (input/output) DOUBLE PRECISION array, dimension (LDZ,N)
	     On entry, if WANTZ =.TRUE., the orthogonal matrix Z.  On exit,
	     the updated matrix Z.  Not referenced if WANTZ = .FALSE..

     LDZ     (input) INTEGER
	     The leading dimension of the array Z. LDZ >= 1.  If WANTZ =
	     .TRUE., LDZ >= N.

     J1	     (input) INTEGER
	     The index to the first block (A11, B11). 1 <= J1 <= N.

     N1	     (input) INTEGER
	     The order of the first block (A11, B11). N1 = 0, 1 or 2.

     N2	     (input) INTEGER
	     The order of the second block (A22, B22). N2 = 0, 1 or 2.

     WORK    (workspace) DOUBLE PRECISION array, dimension (LWORK).

     LWORK   (input) INTEGER
	     The dimension of the array WORK.  LWORK >=	 MAX( N*(N2+N1),
	     (N2+N1)*(N2+N1)*2 )

     INFO    (output) INTEGER
	     =0: Successful exit
	     >0: If INFO = 1, the transformed matrix (A, B) would be too far
	     from generalized Schur form; the blocks are not swapped and (A,
	     B) and (Q, Z) are unchanged.  The problem of swapping is too
	     ill-conditioned.  <0: If INFO = -16: LWORK is too small.
	     Appropriate value for LWORK is returned in WORK(1).

									Page 2

DTGEX2(3S)							    DTGEX2(3S)

FURTHER DETAILS
     Based on contributions by
	Bo Kagstrom and Peter Poromaa, Department of Computing Science,
	Umea University, S-901 87 Umea, Sweden.

     In the current code both weak and strong stability tests are performed.
     The user can omit the strong stability test by changing the internal
     logical parameter WANDS to .FALSE.. See ref. [2] for details.

     [1] B. Kagstrom; A Direct Method for Reordering Eigenvalues in the
	 Generalized Real Schur Form of a Regular Matrix Pair (A, B), in
	 M.S. Moonen et al (eds), Linear Algebra for Large Scale and
	 Real-Time Applications, Kluwer Academic Publ. 1993, pp 195-218.

     [2] B. Kagstrom and P. Poromaa; Computing Eigenspaces with Specified
	 Eigenvalues of a Regular Matrix Pair (A, B) and Condition
	 Estimation: Theory, Algorithms and Software,
	 Report UMINF - 94.04, Department of Computing Science, Umea
	 University, S-901 87 Umea, Sweden, 1994. Also as LAPACK Working
	 Note 87. To appear in Numerical Algorithms, 1996.

SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.

									Page 3

[top]

List of man pages available for IRIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net