LAPACK  3.4.1
LAPACK: Linear Algebra PACKage
clarfx.f
Go to the documentation of this file.
00001 *> \brief \b CLARFX
00002 *
00003 *  =========== DOCUMENTATION ===========
00004 *
00005 * Online html documentation available at 
00006 *            http://www.netlib.org/lapack/explore-html/ 
00007 *
00008 *> \htmlonly
00009 *> Download CLARFX + dependencies 
00010 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/clarfx.f"> 
00011 *> [TGZ]</a> 
00012 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/clarfx.f"> 
00013 *> [ZIP]</a> 
00014 *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/clarfx.f"> 
00015 *> [TXT]</a>
00016 *> \endhtmlonly 
00017 *
00018 *  Definition:
00019 *  ===========
00020 *
00021 *       SUBROUTINE CLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
00022 * 
00023 *       .. Scalar Arguments ..
00024 *       CHARACTER          SIDE
00025 *       INTEGER            LDC, M, N
00026 *       COMPLEX            TAU
00027 *       ..
00028 *       .. Array Arguments ..
00029 *       COMPLEX            C( LDC, * ), V( * ), WORK( * )
00030 *       ..
00031 *  
00032 *
00033 *> \par Purpose:
00034 *  =============
00035 *>
00036 *> \verbatim
00037 *>
00038 *> CLARFX applies a complex elementary reflector H to a complex m by n
00039 *> matrix C, from either the left or the right. H is represented in the
00040 *> form
00041 *>
00042 *>       H = I - tau * v * v**H
00043 *>
00044 *> where tau is a complex scalar and v is a complex vector.
00045 *>
00046 *> If tau = 0, then H is taken to be the unit matrix
00047 *>
00048 *> This version uses inline code if H has order < 11.
00049 *> \endverbatim
00050 *
00051 *  Arguments:
00052 *  ==========
00053 *
00054 *> \param[in] SIDE
00055 *> \verbatim
00056 *>          SIDE is CHARACTER*1
00057 *>          = 'L': form  H * C
00058 *>          = 'R': form  C * H
00059 *> \endverbatim
00060 *>
00061 *> \param[in] M
00062 *> \verbatim
00063 *>          M is INTEGER
00064 *>          The number of rows of the matrix C.
00065 *> \endverbatim
00066 *>
00067 *> \param[in] N
00068 *> \verbatim
00069 *>          N is INTEGER
00070 *>          The number of columns of the matrix C.
00071 *> \endverbatim
00072 *>
00073 *> \param[in] V
00074 *> \verbatim
00075 *>          V is COMPLEX array, dimension (M) if SIDE = 'L'
00076 *>                                        or (N) if SIDE = 'R'
00077 *>          The vector v in the representation of H.
00078 *> \endverbatim
00079 *>
00080 *> \param[in] TAU
00081 *> \verbatim
00082 *>          TAU is COMPLEX
00083 *>          The value tau in the representation of H.
00084 *> \endverbatim
00085 *>
00086 *> \param[in,out] C
00087 *> \verbatim
00088 *>          C is COMPLEX array, dimension (LDC,N)
00089 *>          On entry, the m by n matrix C.
00090 *>          On exit, C is overwritten by the matrix H * C if SIDE = 'L',
00091 *>          or C * H if SIDE = 'R'.
00092 *> \endverbatim
00093 *>
00094 *> \param[in] LDC
00095 *> \verbatim
00096 *>          LDC is INTEGER
00097 *>          The leading dimension of the array C. LDA >= max(1,M).
00098 *> \endverbatim
00099 *>
00100 *> \param[out] WORK
00101 *> \verbatim
00102 *>          WORK is COMPLEX array, dimension (N) if SIDE = 'L'
00103 *>                                            or (M) if SIDE = 'R'
00104 *>          WORK is not referenced if H has order < 11.
00105 *> \endverbatim
00106 *
00107 *  Authors:
00108 *  ========
00109 *
00110 *> \author Univ. of Tennessee 
00111 *> \author Univ. of California Berkeley 
00112 *> \author Univ. of Colorado Denver 
00113 *> \author NAG Ltd. 
00114 *
00115 *> \date November 2011
00116 *
00117 *> \ingroup complexOTHERauxiliary
00118 *
00119 *  =====================================================================
00120       SUBROUTINE CLARFX( SIDE, M, N, V, TAU, C, LDC, WORK )
00121 *
00122 *  -- LAPACK auxiliary routine (version 3.4.0) --
00123 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
00124 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
00125 *     November 2011
00126 *
00127 *     .. Scalar Arguments ..
00128       CHARACTER          SIDE
00129       INTEGER            LDC, M, N
00130       COMPLEX            TAU
00131 *     ..
00132 *     .. Array Arguments ..
00133       COMPLEX            C( LDC, * ), V( * ), WORK( * )
00134 *     ..
00135 *
00136 *  =====================================================================
00137 *
00138 *     .. Parameters ..
00139       COMPLEX            ZERO, ONE
00140       PARAMETER          ( ZERO = ( 0.0E+0, 0.0E+0 ),
00141      $                   ONE = ( 1.0E+0, 0.0E+0 ) )
00142 *     ..
00143 *     .. Local Scalars ..
00144       INTEGER            J
00145       COMPLEX            SUM, T1, T10, T2, T3, T4, T5, T6, T7, T8, T9,
00146      $                   V1, V10, V2, V3, V4, V5, V6, V7, V8, V9
00147 *     ..
00148 *     .. External Functions ..
00149       LOGICAL            LSAME
00150       EXTERNAL           LSAME
00151 *     ..
00152 *     .. External Subroutines ..
00153       EXTERNAL           CLARF
00154 *     ..
00155 *     .. Intrinsic Functions ..
00156       INTRINSIC          CONJG
00157 *     ..
00158 *     .. Executable Statements ..
00159 *
00160       IF( TAU.EQ.ZERO )
00161      $   RETURN
00162       IF( LSAME( SIDE, 'L' ) ) THEN
00163 *
00164 *        Form  H * C, where H has order m.
00165 *
00166          GO TO ( 10, 30, 50, 70, 90, 110, 130, 150,
00167      $           170, 190 )M
00168 *
00169 *        Code for general M
00170 *
00171          CALL CLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
00172          GO TO 410
00173    10    CONTINUE
00174 *
00175 *        Special code for 1 x 1 Householder
00176 *
00177          T1 = ONE - TAU*V( 1 )*CONJG( V( 1 ) )
00178          DO 20 J = 1, N
00179             C( 1, J ) = T1*C( 1, J )
00180    20    CONTINUE
00181          GO TO 410
00182    30    CONTINUE
00183 *
00184 *        Special code for 2 x 2 Householder
00185 *
00186          V1 = CONJG( V( 1 ) )
00187          T1 = TAU*CONJG( V1 )
00188          V2 = CONJG( V( 2 ) )
00189          T2 = TAU*CONJG( V2 )
00190          DO 40 J = 1, N
00191             SUM = V1*C( 1, J ) + V2*C( 2, J )
00192             C( 1, J ) = C( 1, J ) - SUM*T1
00193             C( 2, J ) = C( 2, J ) - SUM*T2
00194    40    CONTINUE
00195          GO TO 410
00196    50    CONTINUE
00197 *
00198 *        Special code for 3 x 3 Householder
00199 *
00200          V1 = CONJG( V( 1 ) )
00201          T1 = TAU*CONJG( V1 )
00202          V2 = CONJG( V( 2 ) )
00203          T2 = TAU*CONJG( V2 )
00204          V3 = CONJG( V( 3 ) )
00205          T3 = TAU*CONJG( V3 )
00206          DO 60 J = 1, N
00207             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J )
00208             C( 1, J ) = C( 1, J ) - SUM*T1
00209             C( 2, J ) = C( 2, J ) - SUM*T2
00210             C( 3, J ) = C( 3, J ) - SUM*T3
00211    60    CONTINUE
00212          GO TO 410
00213    70    CONTINUE
00214 *
00215 *        Special code for 4 x 4 Householder
00216 *
00217          V1 = CONJG( V( 1 ) )
00218          T1 = TAU*CONJG( V1 )
00219          V2 = CONJG( V( 2 ) )
00220          T2 = TAU*CONJG( V2 )
00221          V3 = CONJG( V( 3 ) )
00222          T3 = TAU*CONJG( V3 )
00223          V4 = CONJG( V( 4 ) )
00224          T4 = TAU*CONJG( V4 )
00225          DO 80 J = 1, N
00226             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00227      $            V4*C( 4, J )
00228             C( 1, J ) = C( 1, J ) - SUM*T1
00229             C( 2, J ) = C( 2, J ) - SUM*T2
00230             C( 3, J ) = C( 3, J ) - SUM*T3
00231             C( 4, J ) = C( 4, J ) - SUM*T4
00232    80    CONTINUE
00233          GO TO 410
00234    90    CONTINUE
00235 *
00236 *        Special code for 5 x 5 Householder
00237 *
00238          V1 = CONJG( V( 1 ) )
00239          T1 = TAU*CONJG( V1 )
00240          V2 = CONJG( V( 2 ) )
00241          T2 = TAU*CONJG( V2 )
00242          V3 = CONJG( V( 3 ) )
00243          T3 = TAU*CONJG( V3 )
00244          V4 = CONJG( V( 4 ) )
00245          T4 = TAU*CONJG( V4 )
00246          V5 = CONJG( V( 5 ) )
00247          T5 = TAU*CONJG( V5 )
00248          DO 100 J = 1, N
00249             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00250      $            V4*C( 4, J ) + V5*C( 5, J )
00251             C( 1, J ) = C( 1, J ) - SUM*T1
00252             C( 2, J ) = C( 2, J ) - SUM*T2
00253             C( 3, J ) = C( 3, J ) - SUM*T3
00254             C( 4, J ) = C( 4, J ) - SUM*T4
00255             C( 5, J ) = C( 5, J ) - SUM*T5
00256   100    CONTINUE
00257          GO TO 410
00258   110    CONTINUE
00259 *
00260 *        Special code for 6 x 6 Householder
00261 *
00262          V1 = CONJG( V( 1 ) )
00263          T1 = TAU*CONJG( V1 )
00264          V2 = CONJG( V( 2 ) )
00265          T2 = TAU*CONJG( V2 )
00266          V3 = CONJG( V( 3 ) )
00267          T3 = TAU*CONJG( V3 )
00268          V4 = CONJG( V( 4 ) )
00269          T4 = TAU*CONJG( V4 )
00270          V5 = CONJG( V( 5 ) )
00271          T5 = TAU*CONJG( V5 )
00272          V6 = CONJG( V( 6 ) )
00273          T6 = TAU*CONJG( V6 )
00274          DO 120 J = 1, N
00275             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00276      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
00277             C( 1, J ) = C( 1, J ) - SUM*T1
00278             C( 2, J ) = C( 2, J ) - SUM*T2
00279             C( 3, J ) = C( 3, J ) - SUM*T3
00280             C( 4, J ) = C( 4, J ) - SUM*T4
00281             C( 5, J ) = C( 5, J ) - SUM*T5
00282             C( 6, J ) = C( 6, J ) - SUM*T6
00283   120    CONTINUE
00284          GO TO 410
00285   130    CONTINUE
00286 *
00287 *        Special code for 7 x 7 Householder
00288 *
00289          V1 = CONJG( V( 1 ) )
00290          T1 = TAU*CONJG( V1 )
00291          V2 = CONJG( V( 2 ) )
00292          T2 = TAU*CONJG( V2 )
00293          V3 = CONJG( V( 3 ) )
00294          T3 = TAU*CONJG( V3 )
00295          V4 = CONJG( V( 4 ) )
00296          T4 = TAU*CONJG( V4 )
00297          V5 = CONJG( V( 5 ) )
00298          T5 = TAU*CONJG( V5 )
00299          V6 = CONJG( V( 6 ) )
00300          T6 = TAU*CONJG( V6 )
00301          V7 = CONJG( V( 7 ) )
00302          T7 = TAU*CONJG( V7 )
00303          DO 140 J = 1, N
00304             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00305      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00306      $            V7*C( 7, J )
00307             C( 1, J ) = C( 1, J ) - SUM*T1
00308             C( 2, J ) = C( 2, J ) - SUM*T2
00309             C( 3, J ) = C( 3, J ) - SUM*T3
00310             C( 4, J ) = C( 4, J ) - SUM*T4
00311             C( 5, J ) = C( 5, J ) - SUM*T5
00312             C( 6, J ) = C( 6, J ) - SUM*T6
00313             C( 7, J ) = C( 7, J ) - SUM*T7
00314   140    CONTINUE
00315          GO TO 410
00316   150    CONTINUE
00317 *
00318 *        Special code for 8 x 8 Householder
00319 *
00320          V1 = CONJG( V( 1 ) )
00321          T1 = TAU*CONJG( V1 )
00322          V2 = CONJG( V( 2 ) )
00323          T2 = TAU*CONJG( V2 )
00324          V3 = CONJG( V( 3 ) )
00325          T3 = TAU*CONJG( V3 )
00326          V4 = CONJG( V( 4 ) )
00327          T4 = TAU*CONJG( V4 )
00328          V5 = CONJG( V( 5 ) )
00329          T5 = TAU*CONJG( V5 )
00330          V6 = CONJG( V( 6 ) )
00331          T6 = TAU*CONJG( V6 )
00332          V7 = CONJG( V( 7 ) )
00333          T7 = TAU*CONJG( V7 )
00334          V8 = CONJG( V( 8 ) )
00335          T8 = TAU*CONJG( V8 )
00336          DO 160 J = 1, N
00337             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00338      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00339      $            V7*C( 7, J ) + V8*C( 8, J )
00340             C( 1, J ) = C( 1, J ) - SUM*T1
00341             C( 2, J ) = C( 2, J ) - SUM*T2
00342             C( 3, J ) = C( 3, J ) - SUM*T3
00343             C( 4, J ) = C( 4, J ) - SUM*T4
00344             C( 5, J ) = C( 5, J ) - SUM*T5
00345             C( 6, J ) = C( 6, J ) - SUM*T6
00346             C( 7, J ) = C( 7, J ) - SUM*T7
00347             C( 8, J ) = C( 8, J ) - SUM*T8
00348   160    CONTINUE
00349          GO TO 410
00350   170    CONTINUE
00351 *
00352 *        Special code for 9 x 9 Householder
00353 *
00354          V1 = CONJG( V( 1 ) )
00355          T1 = TAU*CONJG( V1 )
00356          V2 = CONJG( V( 2 ) )
00357          T2 = TAU*CONJG( V2 )
00358          V3 = CONJG( V( 3 ) )
00359          T3 = TAU*CONJG( V3 )
00360          V4 = CONJG( V( 4 ) )
00361          T4 = TAU*CONJG( V4 )
00362          V5 = CONJG( V( 5 ) )
00363          T5 = TAU*CONJG( V5 )
00364          V6 = CONJG( V( 6 ) )
00365          T6 = TAU*CONJG( V6 )
00366          V7 = CONJG( V( 7 ) )
00367          T7 = TAU*CONJG( V7 )
00368          V8 = CONJG( V( 8 ) )
00369          T8 = TAU*CONJG( V8 )
00370          V9 = CONJG( V( 9 ) )
00371          T9 = TAU*CONJG( V9 )
00372          DO 180 J = 1, N
00373             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00374      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00375      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
00376             C( 1, J ) = C( 1, J ) - SUM*T1
00377             C( 2, J ) = C( 2, J ) - SUM*T2
00378             C( 3, J ) = C( 3, J ) - SUM*T3
00379             C( 4, J ) = C( 4, J ) - SUM*T4
00380             C( 5, J ) = C( 5, J ) - SUM*T5
00381             C( 6, J ) = C( 6, J ) - SUM*T6
00382             C( 7, J ) = C( 7, J ) - SUM*T7
00383             C( 8, J ) = C( 8, J ) - SUM*T8
00384             C( 9, J ) = C( 9, J ) - SUM*T9
00385   180    CONTINUE
00386          GO TO 410
00387   190    CONTINUE
00388 *
00389 *        Special code for 10 x 10 Householder
00390 *
00391          V1 = CONJG( V( 1 ) )
00392          T1 = TAU*CONJG( V1 )
00393          V2 = CONJG( V( 2 ) )
00394          T2 = TAU*CONJG( V2 )
00395          V3 = CONJG( V( 3 ) )
00396          T3 = TAU*CONJG( V3 )
00397          V4 = CONJG( V( 4 ) )
00398          T4 = TAU*CONJG( V4 )
00399          V5 = CONJG( V( 5 ) )
00400          T5 = TAU*CONJG( V5 )
00401          V6 = CONJG( V( 6 ) )
00402          T6 = TAU*CONJG( V6 )
00403          V7 = CONJG( V( 7 ) )
00404          T7 = TAU*CONJG( V7 )
00405          V8 = CONJG( V( 8 ) )
00406          T8 = TAU*CONJG( V8 )
00407          V9 = CONJG( V( 9 ) )
00408          T9 = TAU*CONJG( V9 )
00409          V10 = CONJG( V( 10 ) )
00410          T10 = TAU*CONJG( V10 )
00411          DO 200 J = 1, N
00412             SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
00413      $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
00414      $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
00415      $            V10*C( 10, J )
00416             C( 1, J ) = C( 1, J ) - SUM*T1
00417             C( 2, J ) = C( 2, J ) - SUM*T2
00418             C( 3, J ) = C( 3, J ) - SUM*T3
00419             C( 4, J ) = C( 4, J ) - SUM*T4
00420             C( 5, J ) = C( 5, J ) - SUM*T5
00421             C( 6, J ) = C( 6, J ) - SUM*T6
00422             C( 7, J ) = C( 7, J ) - SUM*T7
00423             C( 8, J ) = C( 8, J ) - SUM*T8
00424             C( 9, J ) = C( 9, J ) - SUM*T9
00425             C( 10, J ) = C( 10, J ) - SUM*T10
00426   200    CONTINUE
00427          GO TO 410
00428       ELSE
00429 *
00430 *        Form  C * H, where H has order n.
00431 *
00432          GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
00433      $           370, 390 )N
00434 *
00435 *        Code for general N
00436 *
00437          CALL CLARF( SIDE, M, N, V, 1, TAU, C, LDC, WORK )
00438          GO TO 410
00439   210    CONTINUE
00440 *
00441 *        Special code for 1 x 1 Householder
00442 *
00443          T1 = ONE - TAU*V( 1 )*CONJG( V( 1 ) )
00444          DO 220 J = 1, M
00445             C( J, 1 ) = T1*C( J, 1 )
00446   220    CONTINUE
00447          GO TO 410
00448   230    CONTINUE
00449 *
00450 *        Special code for 2 x 2 Householder
00451 *
00452          V1 = V( 1 )
00453          T1 = TAU*CONJG( V1 )
00454          V2 = V( 2 )
00455          T2 = TAU*CONJG( V2 )
00456          DO 240 J = 1, M
00457             SUM = V1*C( J, 1 ) + V2*C( J, 2 )
00458             C( J, 1 ) = C( J, 1 ) - SUM*T1
00459             C( J, 2 ) = C( J, 2 ) - SUM*T2
00460   240    CONTINUE
00461          GO TO 410
00462   250    CONTINUE
00463 *
00464 *        Special code for 3 x 3 Householder
00465 *
00466          V1 = V( 1 )
00467          T1 = TAU*CONJG( V1 )
00468          V2 = V( 2 )
00469          T2 = TAU*CONJG( V2 )
00470          V3 = V( 3 )
00471          T3 = TAU*CONJG( V3 )
00472          DO 260 J = 1, M
00473             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
00474             C( J, 1 ) = C( J, 1 ) - SUM*T1
00475             C( J, 2 ) = C( J, 2 ) - SUM*T2
00476             C( J, 3 ) = C( J, 3 ) - SUM*T3
00477   260    CONTINUE
00478          GO TO 410
00479   270    CONTINUE
00480 *
00481 *        Special code for 4 x 4 Householder
00482 *
00483          V1 = V( 1 )
00484          T1 = TAU*CONJG( V1 )
00485          V2 = V( 2 )
00486          T2 = TAU*CONJG( V2 )
00487          V3 = V( 3 )
00488          T3 = TAU*CONJG( V3 )
00489          V4 = V( 4 )
00490          T4 = TAU*CONJG( V4 )
00491          DO 280 J = 1, M
00492             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00493      $            V4*C( J, 4 )
00494             C( J, 1 ) = C( J, 1 ) - SUM*T1
00495             C( J, 2 ) = C( J, 2 ) - SUM*T2
00496             C( J, 3 ) = C( J, 3 ) - SUM*T3
00497             C( J, 4 ) = C( J, 4 ) - SUM*T4
00498   280    CONTINUE
00499          GO TO 410
00500   290    CONTINUE
00501 *
00502 *        Special code for 5 x 5 Householder
00503 *
00504          V1 = V( 1 )
00505          T1 = TAU*CONJG( V1 )
00506          V2 = V( 2 )
00507          T2 = TAU*CONJG( V2 )
00508          V3 = V( 3 )
00509          T3 = TAU*CONJG( V3 )
00510          V4 = V( 4 )
00511          T4 = TAU*CONJG( V4 )
00512          V5 = V( 5 )
00513          T5 = TAU*CONJG( V5 )
00514          DO 300 J = 1, M
00515             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00516      $            V4*C( J, 4 ) + V5*C( J, 5 )
00517             C( J, 1 ) = C( J, 1 ) - SUM*T1
00518             C( J, 2 ) = C( J, 2 ) - SUM*T2
00519             C( J, 3 ) = C( J, 3 ) - SUM*T3
00520             C( J, 4 ) = C( J, 4 ) - SUM*T4
00521             C( J, 5 ) = C( J, 5 ) - SUM*T5
00522   300    CONTINUE
00523          GO TO 410
00524   310    CONTINUE
00525 *
00526 *        Special code for 6 x 6 Householder
00527 *
00528          V1 = V( 1 )
00529          T1 = TAU*CONJG( V1 )
00530          V2 = V( 2 )
00531          T2 = TAU*CONJG( V2 )
00532          V3 = V( 3 )
00533          T3 = TAU*CONJG( V3 )
00534          V4 = V( 4 )
00535          T4 = TAU*CONJG( V4 )
00536          V5 = V( 5 )
00537          T5 = TAU*CONJG( V5 )
00538          V6 = V( 6 )
00539          T6 = TAU*CONJG( V6 )
00540          DO 320 J = 1, M
00541             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00542      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 )
00543             C( J, 1 ) = C( J, 1 ) - SUM*T1
00544             C( J, 2 ) = C( J, 2 ) - SUM*T2
00545             C( J, 3 ) = C( J, 3 ) - SUM*T3
00546             C( J, 4 ) = C( J, 4 ) - SUM*T4
00547             C( J, 5 ) = C( J, 5 ) - SUM*T5
00548             C( J, 6 ) = C( J, 6 ) - SUM*T6
00549   320    CONTINUE
00550          GO TO 410
00551   330    CONTINUE
00552 *
00553 *        Special code for 7 x 7 Householder
00554 *
00555          V1 = V( 1 )
00556          T1 = TAU*CONJG( V1 )
00557          V2 = V( 2 )
00558          T2 = TAU*CONJG( V2 )
00559          V3 = V( 3 )
00560          T3 = TAU*CONJG( V3 )
00561          V4 = V( 4 )
00562          T4 = TAU*CONJG( V4 )
00563          V5 = V( 5 )
00564          T5 = TAU*CONJG( V5 )
00565          V6 = V( 6 )
00566          T6 = TAU*CONJG( V6 )
00567          V7 = V( 7 )
00568          T7 = TAU*CONJG( V7 )
00569          DO 340 J = 1, M
00570             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00571      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00572      $            V7*C( J, 7 )
00573             C( J, 1 ) = C( J, 1 ) - SUM*T1
00574             C( J, 2 ) = C( J, 2 ) - SUM*T2
00575             C( J, 3 ) = C( J, 3 ) - SUM*T3
00576             C( J, 4 ) = C( J, 4 ) - SUM*T4
00577             C( J, 5 ) = C( J, 5 ) - SUM*T5
00578             C( J, 6 ) = C( J, 6 ) - SUM*T6
00579             C( J, 7 ) = C( J, 7 ) - SUM*T7
00580   340    CONTINUE
00581          GO TO 410
00582   350    CONTINUE
00583 *
00584 *        Special code for 8 x 8 Householder
00585 *
00586          V1 = V( 1 )
00587          T1 = TAU*CONJG( V1 )
00588          V2 = V( 2 )
00589          T2 = TAU*CONJG( V2 )
00590          V3 = V( 3 )
00591          T3 = TAU*CONJG( V3 )
00592          V4 = V( 4 )
00593          T4 = TAU*CONJG( V4 )
00594          V5 = V( 5 )
00595          T5 = TAU*CONJG( V5 )
00596          V6 = V( 6 )
00597          T6 = TAU*CONJG( V6 )
00598          V7 = V( 7 )
00599          T7 = TAU*CONJG( V7 )
00600          V8 = V( 8 )
00601          T8 = TAU*CONJG( V8 )
00602          DO 360 J = 1, M
00603             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00604      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00605      $            V7*C( J, 7 ) + V8*C( J, 8 )
00606             C( J, 1 ) = C( J, 1 ) - SUM*T1
00607             C( J, 2 ) = C( J, 2 ) - SUM*T2
00608             C( J, 3 ) = C( J, 3 ) - SUM*T3
00609             C( J, 4 ) = C( J, 4 ) - SUM*T4
00610             C( J, 5 ) = C( J, 5 ) - SUM*T5
00611             C( J, 6 ) = C( J, 6 ) - SUM*T6
00612             C( J, 7 ) = C( J, 7 ) - SUM*T7
00613             C( J, 8 ) = C( J, 8 ) - SUM*T8
00614   360    CONTINUE
00615          GO TO 410
00616   370    CONTINUE
00617 *
00618 *        Special code for 9 x 9 Householder
00619 *
00620          V1 = V( 1 )
00621          T1 = TAU*CONJG( V1 )
00622          V2 = V( 2 )
00623          T2 = TAU*CONJG( V2 )
00624          V3 = V( 3 )
00625          T3 = TAU*CONJG( V3 )
00626          V4 = V( 4 )
00627          T4 = TAU*CONJG( V4 )
00628          V5 = V( 5 )
00629          T5 = TAU*CONJG( V5 )
00630          V6 = V( 6 )
00631          T6 = TAU*CONJG( V6 )
00632          V7 = V( 7 )
00633          T7 = TAU*CONJG( V7 )
00634          V8 = V( 8 )
00635          T8 = TAU*CONJG( V8 )
00636          V9 = V( 9 )
00637          T9 = TAU*CONJG( V9 )
00638          DO 380 J = 1, M
00639             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00640      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00641      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 )
00642             C( J, 1 ) = C( J, 1 ) - SUM*T1
00643             C( J, 2 ) = C( J, 2 ) - SUM*T2
00644             C( J, 3 ) = C( J, 3 ) - SUM*T3
00645             C( J, 4 ) = C( J, 4 ) - SUM*T4
00646             C( J, 5 ) = C( J, 5 ) - SUM*T5
00647             C( J, 6 ) = C( J, 6 ) - SUM*T6
00648             C( J, 7 ) = C( J, 7 ) - SUM*T7
00649             C( J, 8 ) = C( J, 8 ) - SUM*T8
00650             C( J, 9 ) = C( J, 9 ) - SUM*T9
00651   380    CONTINUE
00652          GO TO 410
00653   390    CONTINUE
00654 *
00655 *        Special code for 10 x 10 Householder
00656 *
00657          V1 = V( 1 )
00658          T1 = TAU*CONJG( V1 )
00659          V2 = V( 2 )
00660          T2 = TAU*CONJG( V2 )
00661          V3 = V( 3 )
00662          T3 = TAU*CONJG( V3 )
00663          V4 = V( 4 )
00664          T4 = TAU*CONJG( V4 )
00665          V5 = V( 5 )
00666          T5 = TAU*CONJG( V5 )
00667          V6 = V( 6 )
00668          T6 = TAU*CONJG( V6 )
00669          V7 = V( 7 )
00670          T7 = TAU*CONJG( V7 )
00671          V8 = V( 8 )
00672          T8 = TAU*CONJG( V8 )
00673          V9 = V( 9 )
00674          T9 = TAU*CONJG( V9 )
00675          V10 = V( 10 )
00676          T10 = TAU*CONJG( V10 )
00677          DO 400 J = 1, M
00678             SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 ) +
00679      $            V4*C( J, 4 ) + V5*C( J, 5 ) + V6*C( J, 6 ) +
00680      $            V7*C( J, 7 ) + V8*C( J, 8 ) + V9*C( J, 9 ) +
00681      $            V10*C( J, 10 )
00682             C( J, 1 ) = C( J, 1 ) - SUM*T1
00683             C( J, 2 ) = C( J, 2 ) - SUM*T2
00684             C( J, 3 ) = C( J, 3 ) - SUM*T3
00685             C( J, 4 ) = C( J, 4 ) - SUM*T4
00686             C( J, 5 ) = C( J, 5 ) - SUM*T5
00687             C( J, 6 ) = C( J, 6 ) - SUM*T6
00688             C( J, 7 ) = C( J, 7 ) - SUM*T7
00689             C( J, 8 ) = C( J, 8 ) - SUM*T8
00690             C( J, 9 ) = C( J, 9 ) - SUM*T9
00691             C( J, 10 ) = C( J, 10 ) - SUM*T10
00692   400    CONTINUE
00693          GO TO 410
00694       END IF
00695   410 RETURN
00696 *
00697 *     End of CLARFX
00698 *
00699       END
 All Files Functions