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