clagtm.f.html
来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 258 行 · 第 1/2 页
HTML
258 行
<span class="comment">*</span><span class="comment">
</span> IF( ALPHA.EQ.ONE ) THEN
IF( <a name="LSAME.113"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'N'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B + A*X
</span><span class="comment">*</span><span class="comment">
</span> DO 60 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) + D( 1 )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) + D( 1 )*X( 1, J ) +
$ DU( 1 )*X( 2, J )
B( N, J ) = B( N, J ) + DL( N-1 )*X( N-1, J ) +
$ D( N )*X( N, J )
DO 50 I = 2, N - 1
B( I, J ) = B( I, J ) + DL( I-1 )*X( I-1, J ) +
$ D( I )*X( I, J ) + DU( I )*X( I+1, J )
50 CONTINUE
END IF
60 CONTINUE
ELSE IF( <a name="LSAME.131"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'T'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B + A**T * X
</span><span class="comment">*</span><span class="comment">
</span> DO 80 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) + D( 1 )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) + D( 1 )*X( 1, J ) +
$ DL( 1 )*X( 2, J )
B( N, J ) = B( N, J ) + DU( N-1 )*X( N-1, J ) +
$ D( N )*X( N, J )
DO 70 I = 2, N - 1
B( I, J ) = B( I, J ) + DU( I-1 )*X( I-1, J ) +
$ D( I )*X( I, J ) + DL( I )*X( I+1, J )
70 CONTINUE
END IF
80 CONTINUE
ELSE IF( <a name="LSAME.149"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'C'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B + A**H * X
</span><span class="comment">*</span><span class="comment">
</span> DO 100 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) + CONJG( D( 1 ) )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) + CONJG( D( 1 ) )*X( 1, J ) +
$ CONJG( DL( 1 ) )*X( 2, J )
B( N, J ) = B( N, J ) + CONJG( DU( N-1 ) )*
$ X( N-1, J ) + CONJG( D( N ) )*X( N, J )
DO 90 I = 2, N - 1
B( I, J ) = B( I, J ) + CONJG( DU( I-1 ) )*
$ X( I-1, J ) + CONJG( D( I ) )*
$ X( I, J ) + CONJG( DL( I ) )*
$ X( I+1, J )
90 CONTINUE
END IF
100 CONTINUE
END IF
ELSE IF( ALPHA.EQ.-ONE ) THEN
IF( <a name="LSAME.171"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'N'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B - A*X
</span><span class="comment">*</span><span class="comment">
</span> DO 120 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) - D( 1 )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) - D( 1 )*X( 1, J ) -
$ DU( 1 )*X( 2, J )
B( N, J ) = B( N, J ) - DL( N-1 )*X( N-1, J ) -
$ D( N )*X( N, J )
DO 110 I = 2, N - 1
B( I, J ) = B( I, J ) - DL( I-1 )*X( I-1, J ) -
$ D( I )*X( I, J ) - DU( I )*X( I+1, J )
110 CONTINUE
END IF
120 CONTINUE
ELSE IF( <a name="LSAME.189"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'T'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B - A'*X
</span><span class="comment">*</span><span class="comment">
</span> DO 140 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) - D( 1 )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) - D( 1 )*X( 1, J ) -
$ DL( 1 )*X( 2, J )
B( N, J ) = B( N, J ) - DU( N-1 )*X( N-1, J ) -
$ D( N )*X( N, J )
DO 130 I = 2, N - 1
B( I, J ) = B( I, J ) - DU( I-1 )*X( I-1, J ) -
$ D( I )*X( I, J ) - DL( I )*X( I+1, J )
130 CONTINUE
END IF
140 CONTINUE
ELSE IF( <a name="LSAME.207"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( TRANS, <span class="string">'C'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Compute B := B - A'*X
</span><span class="comment">*</span><span class="comment">
</span> DO 160 J = 1, NRHS
IF( N.EQ.1 ) THEN
B( 1, J ) = B( 1, J ) - CONJG( D( 1 ) )*X( 1, J )
ELSE
B( 1, J ) = B( 1, J ) - CONJG( D( 1 ) )*X( 1, J ) -
$ CONJG( DL( 1 ) )*X( 2, J )
B( N, J ) = B( N, J ) - CONJG( DU( N-1 ) )*
$ X( N-1, J ) - CONJG( D( N ) )*X( N, J )
DO 150 I = 2, N - 1
B( I, J ) = B( I, J ) - CONJG( DU( I-1 ) )*
$ X( I-1, J ) - CONJG( D( I ) )*
$ X( I, J ) - CONJG( DL( I ) )*
$ X( I+1, J )
150 CONTINUE
END IF
160 CONTINUE
END IF
END IF
RETURN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> End of <a name="CLAGTM.231"></a><a href="clagtm.f.html#CLAGTM.1">CLAGTM</a>
</span><span class="comment">*</span><span class="comment">
</span> END
</pre>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?