LAPACK 3.3.0

zlarfx.f

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