cggbak.f.html
来自「famous linear algebra library (LAPACK) p」· HTML 代码 · 共 245 行 · 第 1/2 页
HTML
245 行
ELSE IF( .NOT.RIGHTV .AND. .NOT.LEFTV ) THEN
INFO = -2
ELSE IF( N.LT.0 ) THEN
INFO = -3
ELSE IF( ILO.LT.1 ) THEN
INFO = -4
ELSE IF( N.EQ.0 .AND. IHI.EQ.0 .AND. ILO.NE.1 ) THEN
INFO = -4
ELSE IF( N.GT.0 .AND. ( IHI.LT.ILO .OR. IHI.GT.MAX( 1, N ) ) )
$ THEN
INFO = -5
ELSE IF( N.EQ.0 .AND. ILO.EQ.1 .AND. IHI.NE.0 ) THEN
INFO = -5
ELSE IF( M.LT.0 ) THEN
INFO = -8
ELSE IF( LDV.LT.MAX( 1, N ) ) THEN
INFO = -10
END IF
IF( INFO.NE.0 ) THEN
CALL <a name="XERBLA.124"></a><a href="xerbla.f.html#XERBLA.1">XERBLA</a>( <span class="string">'<a name="CGGBAK.124"></a><a href="cggbak.f.html#CGGBAK.1">CGGBAK</a>'</span>, -INFO )
RETURN
END IF
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Quick return if possible
</span><span class="comment">*</span><span class="comment">
</span> IF( N.EQ.0 )
$ RETURN
IF( M.EQ.0 )
$ RETURN
IF( <a name="LSAME.134"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( JOB, <span class="string">'N'</span> ) )
$ RETURN
<span class="comment">*</span><span class="comment">
</span> IF( ILO.EQ.IHI )
$ GO TO 30
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward balance
</span><span class="comment">*</span><span class="comment">
</span> IF( <a name="LSAME.142"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( JOB, <span class="string">'S'</span> ) .OR. <a name="LSAME.142"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( JOB, <span class="string">'B'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward transformation on right eigenvectors
</span><span class="comment">*</span><span class="comment">
</span> IF( RIGHTV ) THEN
DO 10 I = ILO, IHI
CALL CSSCAL( M, RSCALE( I ), V( I, 1 ), LDV )
10 CONTINUE
END IF
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward transformation on left eigenvectors
</span><span class="comment">*</span><span class="comment">
</span> IF( LEFTV ) THEN
DO 20 I = ILO, IHI
CALL CSSCAL( M, LSCALE( I ), V( I, 1 ), LDV )
20 CONTINUE
END IF
END IF
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward permutation
</span><span class="comment">*</span><span class="comment">
</span> 30 CONTINUE
IF( <a name="LSAME.164"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( JOB, <span class="string">'P'</span> ) .OR. <a name="LSAME.164"></a><a href="lsame.f.html#LSAME.1">LSAME</a>( JOB, <span class="string">'B'</span> ) ) THEN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward permutation on right eigenvectors
</span><span class="comment">*</span><span class="comment">
</span> IF( RIGHTV ) THEN
IF( ILO.EQ.1 )
$ GO TO 50
DO 40 I = ILO - 1, 1, -1
K = RSCALE( I )
IF( K.EQ.I )
$ GO TO 40
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
40 CONTINUE
<span class="comment">*</span><span class="comment">
</span> 50 CONTINUE
IF( IHI.EQ.N )
$ GO TO 70
DO 60 I = IHI + 1, N
K = RSCALE( I )
IF( K.EQ.I )
$ GO TO 60
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
60 CONTINUE
END IF
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> Backward permutation on left eigenvectors
</span><span class="comment">*</span><span class="comment">
</span> 70 CONTINUE
IF( LEFTV ) THEN
IF( ILO.EQ.1 )
$ GO TO 90
DO 80 I = ILO - 1, 1, -1
K = LSCALE( I )
IF( K.EQ.I )
$ GO TO 80
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
80 CONTINUE
<span class="comment">*</span><span class="comment">
</span> 90 CONTINUE
IF( IHI.EQ.N )
$ GO TO 110
DO 100 I = IHI + 1, N
K = LSCALE( I )
IF( K.EQ.I )
$ GO TO 100
CALL CSWAP( M, V( I, 1 ), LDV, V( K, 1 ), LDV )
100 CONTINUE
END IF
END IF
<span class="comment">*</span><span class="comment">
</span> 110 CONTINUE
<span class="comment">*</span><span class="comment">
</span> RETURN
<span class="comment">*</span><span class="comment">
</span><span class="comment">*</span><span class="comment"> End of <a name="CGGBAK.218"></a><a href="cggbak.f.html#CGGBAK.1">CGGBAK</a>
</span><span class="comment">*</span><span class="comment">
</span> END
</pre>
</body>
</html>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?