1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
|
---
:name: dlaexc
:md5sum: 56c861d18592b42e26327b9686122ba6
:category: :subroutine
:arguments:
- wantq:
:type: logical
:intent: input
- n:
:type: integer
:intent: input
- t:
:type: doublereal
:intent: input/output
:dims:
- ldt
- n
- ldt:
:type: integer
:intent: input
- q:
:type: doublereal
:intent: input/output
:dims:
- ldq
- n
- ldq:
:type: integer
:intent: input
- j1:
:type: integer
:intent: input
- n1:
:type: integer
:intent: input
- n2:
:type: integer
:intent: input
- work:
:type: doublereal
:intent: workspace
:dims:
- n
- info:
:type: integer
:intent: output
:substitutions: {}
:fortran_help: " SUBROUTINE DLAEXC( WANTQ, N, T, LDT, Q, LDQ, J1, N1, N2, WORK, INFO )\n\n\
* Purpose\n\
* =======\n\
*\n\
* DLAEXC swaps adjacent diagonal blocks T11 and T22 of order 1 or 2 in\n\
* an upper quasi-triangular matrix T by an orthogonal similarity\n\
* transformation.\n\
*\n\
* T must be in Schur canonical form, that is, block upper triangular\n\
* with 1-by-1 and 2-by-2 diagonal blocks; each 2-by-2 diagonal block\n\
* has its diagonal elemnts equal and its off-diagonal elements of\n\
* opposite sign.\n\
*\n\n\
* Arguments\n\
* =========\n\
*\n\
* WANTQ (input) LOGICAL\n\
* = .TRUE. : accumulate the transformation in the matrix Q;\n\
* = .FALSE.: do not accumulate the transformation.\n\
*\n\
* N (input) INTEGER\n\
* The order of the matrix T. N >= 0.\n\
*\n\
* T (input/output) DOUBLE PRECISION array, dimension (LDT,N)\n\
* On entry, the upper quasi-triangular matrix T, in Schur\n\
* canonical form.\n\
* On exit, the updated matrix T, again in Schur canonical form.\n\
*\n\
* LDT (input) INTEGER\n\
* The leading dimension of the array T. LDT >= max(1,N).\n\
*\n\
* Q (input/output) DOUBLE PRECISION array, dimension (LDQ,N)\n\
* On entry, if WANTQ is .TRUE., the orthogonal matrix Q.\n\
* On exit, if WANTQ is .TRUE., the updated matrix Q.\n\
* If WANTQ is .FALSE., Q is not referenced.\n\
*\n\
* LDQ (input) INTEGER\n\
* The leading dimension of the array Q.\n\
* LDQ >= 1; and if WANTQ is .TRUE., LDQ >= N.\n\
*\n\
* J1 (input) INTEGER\n\
* The index of the first row of the first block T11.\n\
*\n\
* N1 (input) INTEGER\n\
* The order of the first block T11. N1 = 0, 1 or 2.\n\
*\n\
* N2 (input) INTEGER\n\
* The order of the second block T22. N2 = 0, 1 or 2.\n\
*\n\
* WORK (workspace) DOUBLE PRECISION array, dimension (N)\n\
*\n\
* INFO (output) INTEGER\n\
* = 0: successful exit\n\
* = 1: the transformed matrix T would be too far from Schur\n\
* form; the blocks are not swapped and T and Q are\n\
* unchanged.\n\
*\n\n\
* =====================================================================\n\
*\n"
|