clarfx.f.html

来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 665 行 · 第 1/3 页

HTML
665
字号
         V5 = CONJG( V( 5 ) )
         T5 = TAU*CONJG( V5 )
         V6 = CONJG( V( 6 ) )
         T6 = TAU*CONJG( V6 )
         DO 120 J = 1, N
            SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
     $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J )
            C( 1, J ) = C( 1, J ) - SUM*T1
            C( 2, J ) = C( 2, J ) - SUM*T2
            C( 3, J ) = C( 3, J ) - SUM*T3
            C( 4, J ) = C( 4, J ) - SUM*T4
            C( 5, J ) = C( 5, J ) - SUM*T5
            C( 6, J ) = C( 6, J ) - SUM*T6
  120    CONTINUE
         GO TO 410
  130    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 7 x 7 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = CONJG( V( 1 ) )
         T1 = TAU*CONJG( V1 )
         V2 = CONJG( V( 2 ) )
         T2 = TAU*CONJG( V2 )
         V3 = CONJG( V( 3 ) )
         T3 = TAU*CONJG( V3 )
         V4 = CONJG( V( 4 ) )
         T4 = TAU*CONJG( V4 )
         V5 = CONJG( V( 5 ) )
         T5 = TAU*CONJG( V5 )
         V6 = CONJG( V( 6 ) )
         T6 = TAU*CONJG( V6 )
         V7 = CONJG( V( 7 ) )
         T7 = TAU*CONJG( V7 )
         DO 140 J = 1, N
            SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
     $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
     $            V7*C( 7, J )
            C( 1, J ) = C( 1, J ) - SUM*T1
            C( 2, J ) = C( 2, J ) - SUM*T2
            C( 3, J ) = C( 3, J ) - SUM*T3
            C( 4, J ) = C( 4, J ) - SUM*T4
            C( 5, J ) = C( 5, J ) - SUM*T5
            C( 6, J ) = C( 6, J ) - SUM*T6
            C( 7, J ) = C( 7, J ) - SUM*T7
  140    CONTINUE
         GO TO 410
  150    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 8 x 8 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = CONJG( V( 1 ) )
         T1 = TAU*CONJG( V1 )
         V2 = CONJG( V( 2 ) )
         T2 = TAU*CONJG( V2 )
         V3 = CONJG( V( 3 ) )
         T3 = TAU*CONJG( V3 )
         V4 = CONJG( V( 4 ) )
         T4 = TAU*CONJG( V4 )
         V5 = CONJG( V( 5 ) )
         T5 = TAU*CONJG( V5 )
         V6 = CONJG( V( 6 ) )
         T6 = TAU*CONJG( V6 )
         V7 = CONJG( V( 7 ) )
         T7 = TAU*CONJG( V7 )
         V8 = CONJG( V( 8 ) )
         T8 = TAU*CONJG( V8 )
         DO 160 J = 1, N
            SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
     $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
     $            V7*C( 7, J ) + V8*C( 8, J )
            C( 1, J ) = C( 1, J ) - SUM*T1
            C( 2, J ) = C( 2, J ) - SUM*T2
            C( 3, J ) = C( 3, J ) - SUM*T3
            C( 4, J ) = C( 4, J ) - SUM*T4
            C( 5, J ) = C( 5, J ) - SUM*T5
            C( 6, J ) = C( 6, J ) - SUM*T6
            C( 7, J ) = C( 7, J ) - SUM*T7
            C( 8, J ) = C( 8, J ) - SUM*T8
  160    CONTINUE
         GO TO 410
  170    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 9 x 9 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = CONJG( V( 1 ) )
         T1 = TAU*CONJG( V1 )
         V2 = CONJG( V( 2 ) )
         T2 = TAU*CONJG( V2 )
         V3 = CONJG( V( 3 ) )
         T3 = TAU*CONJG( V3 )
         V4 = CONJG( V( 4 ) )
         T4 = TAU*CONJG( V4 )
         V5 = CONJG( V( 5 ) )
         T5 = TAU*CONJG( V5 )
         V6 = CONJG( V( 6 ) )
         T6 = TAU*CONJG( V6 )
         V7 = CONJG( V( 7 ) )
         T7 = TAU*CONJG( V7 )
         V8 = CONJG( V( 8 ) )
         T8 = TAU*CONJG( V8 )
         V9 = CONJG( V( 9 ) )
         T9 = TAU*CONJG( V9 )
         DO 180 J = 1, N
            SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
     $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
     $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J )
            C( 1, J ) = C( 1, J ) - SUM*T1
            C( 2, J ) = C( 2, J ) - SUM*T2
            C( 3, J ) = C( 3, J ) - SUM*T3
            C( 4, J ) = C( 4, J ) - SUM*T4
            C( 5, J ) = C( 5, J ) - SUM*T5
            C( 6, J ) = C( 6, J ) - SUM*T6
            C( 7, J ) = C( 7, J ) - SUM*T7
            C( 8, J ) = C( 8, J ) - SUM*T8
            C( 9, J ) = C( 9, J ) - SUM*T9
  180    CONTINUE
         GO TO 410
  190    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 10 x 10 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = CONJG( V( 1 ) )
         T1 = TAU*CONJG( V1 )
         V2 = CONJG( V( 2 ) )
         T2 = TAU*CONJG( V2 )
         V3 = CONJG( V( 3 ) )
         T3 = TAU*CONJG( V3 )
         V4 = CONJG( V( 4 ) )
         T4 = TAU*CONJG( V4 )
         V5 = CONJG( V( 5 ) )
         T5 = TAU*CONJG( V5 )
         V6 = CONJG( V( 6 ) )
         T6 = TAU*CONJG( V6 )
         V7 = CONJG( V( 7 ) )
         T7 = TAU*CONJG( V7 )
         V8 = CONJG( V( 8 ) )
         T8 = TAU*CONJG( V8 )
         V9 = CONJG( V( 9 ) )
         T9 = TAU*CONJG( V9 )
         V10 = CONJG( V( 10 ) )
         T10 = TAU*CONJG( V10 )
         DO 200 J = 1, N
            SUM = V1*C( 1, J ) + V2*C( 2, J ) + V3*C( 3, J ) +
     $            V4*C( 4, J ) + V5*C( 5, J ) + V6*C( 6, J ) +
     $            V7*C( 7, J ) + V8*C( 8, J ) + V9*C( 9, J ) +
     $            V10*C( 10, J )
            C( 1, J ) = C( 1, J ) - SUM*T1
            C( 2, J ) = C( 2, J ) - SUM*T2
            C( 3, J ) = C( 3, J ) - SUM*T3
            C( 4, J ) = C( 4, J ) - SUM*T4
            C( 5, J ) = C( 5, J ) - SUM*T5
            C( 6, J ) = C( 6, J ) - SUM*T6
            C( 7, J ) = C( 7, J ) - SUM*T7
            C( 8, J ) = C( 8, J ) - SUM*T8
            C( 9, J ) = C( 9, J ) - SUM*T9
            C( 10, J ) = C( 10, J ) - SUM*T10
  200    CONTINUE
         GO TO 410
      ELSE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Form  C * H, where H has order n.
</span><span class="comment">*</span><span class="comment">
</span>         GO TO ( 210, 230, 250, 270, 290, 310, 330, 350,
     $           370, 390 )N
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Code for general N
</span><span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        w := C * v
</span><span class="comment">*</span><span class="comment">
</span>         CALL CGEMV( <span class="string">'No transpose'</span>, M, N, ONE, C, LDC, V, 1, ZERO,
     $               WORK, 1 )
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        C := C - tau * w * v'
</span><span class="comment">*</span><span class="comment">
</span>         CALL CGERC( M, N, -TAU, WORK, 1, V, 1, C, LDC )
         GO TO 410
  210    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 1 x 1 Householder
</span><span class="comment">*</span><span class="comment">
</span>         T1 = ONE - TAU*V( 1 )*CONJG( V( 1 ) )
         DO 220 J = 1, M
            C( J, 1 ) = T1*C( J, 1 )
  220    CONTINUE
         GO TO 410
  230    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 2 x 2 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = V( 1 )
         T1 = TAU*CONJG( V1 )
         V2 = V( 2 )
         T2 = TAU*CONJG( V2 )
         DO 240 J = 1, M
            SUM = V1*C( J, 1 ) + V2*C( J, 2 )
            C( J, 1 ) = C( J, 1 ) - SUM*T1
            C( J, 2 ) = C( J, 2 ) - SUM*T2
  240    CONTINUE
         GO TO 410
  250    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 3 x 3 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = V( 1 )
         T1 = TAU*CONJG( V1 )
         V2 = V( 2 )
         T2 = TAU*CONJG( V2 )
         V3 = V( 3 )
         T3 = TAU*CONJG( V3 )
         DO 260 J = 1, M
            SUM = V1*C( J, 1 ) + V2*C( J, 2 ) + V3*C( J, 3 )
            C( J, 1 ) = C( J, 1 ) - SUM*T1
            C( J, 2 ) = C( J, 2 ) - SUM*T2
            C( J, 3 ) = C( J, 3 ) - SUM*T3
  260    CONTINUE
         GO TO 410
  270    CONTINUE
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment">        Special code for 4 x 4 Householder
</span><span class="comment">*</span><span class="comment">
</span>         V1 = V( 1 )
         T1 = TAU*CONJG( V1 )

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?