55* Online html documentation available at
66* http://www.netlib.org/lapack/explore-html/
77*
8- * > \htmlonly
98* > Download CGSVJ0 + dependencies
109* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/cgsvj0.f">
1110* > [TGZ]</a>
1211* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/cgsvj0.f">
1312* > [ZIP]</a>
1413* > <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/cgsvj0.f">
1514* > [TXT]</a>
16- * > \endhtmlonly
1715*
1816* Definition:
1917* ===========
193191* > \author Univ. of Colorado Denver
194192* > \author NAG Ltd.
195193*
196- * > \ingroup complexOTHERcomputational
194+ * > \ingroup gsvj0
197195*
198196* > \par Further Details:
199197* =====================
@@ -321,7 +319,7 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
321319*
322320* .. Row-cyclic Jacobi SVD algorithm with column pivoting ..
323321*
324- EMPTSW = ( N* ( N-1 ) ) / 2
322+ EMPTSW = ( N / 2 ) * ( N-1 + MOD ( N, 2 ) )
325323 NOTROT = 0
326324*
327325* .. Row-cyclic pivot strategy with de Rijk's pivoting ..
@@ -499,7 +497,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
499497 T = HALF / THETA
500498 CS = ONE
501499
502- CALL CROT( M, A(1 ,p), 1 , A(1 ,q), 1 ,
500+ CALL CROT( M, A(1 ,p), 1 , A(1 ,q),
501+ $ 1 ,
503502 $ CS, CONJG (OMPQ)* T )
504503 IF ( RSVEC ) THEN
505504 CALL CROT( MVL, V(1 ,p), 1 ,
@@ -528,7 +527,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
528527 AAPP = AAPP* SQRT ( MAX ( ZERO,
529528 $ ONE- T* AQOAP* AAPQ1 ) )
530529*
531- CALL CROT( M, A(1 ,p), 1 , A(1 ,q), 1 ,
530+ CALL CROT( M, A(1 ,p), 1 , A(1 ,q),
531+ $ 1 ,
532532 $ CS, CONJG (OMPQ)* SN )
533533 IF ( RSVEC ) THEN
534534 CALL CROT( MVL, V(1 ,p), 1 ,
@@ -541,14 +541,17 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
541541* .. have to use modified Gram-Schmidt like transformation
542542 CALL CCOPY( M, A( 1 , p ), 1 ,
543543 $ WORK, 1 )
544- CALL CLASCL( ' G' , 0 , 0 , AAPP, ONE, M,
544+ CALL CLASCL( ' G' , 0 , 0 , AAPP, ONE,
545+ $ M,
545546 $ 1 , WORK, LDA,
546547 $ IERR )
547- CALL CLASCL( ' G' , 0 , 0 , AAQQ, ONE, M,
548+ CALL CLASCL( ' G' , 0 , 0 , AAQQ, ONE,
549+ $ M,
548550 $ 1 , A( 1 , q ), LDA, IERR )
549551 CALL CAXPY( M, - AAPQ, WORK, 1 ,
550552 $ A( 1 , q ), 1 )
551- CALL CLASCL( ' G' , 0 , 0 , ONE, AAQQ, M,
553+ CALL CLASCL( ' G' , 0 , 0 , ONE, AAQQ,
554+ $ M,
552555 $ 1 , A( 1 , q ), LDA, IERR )
553556 SVA( q ) = AAQQ* SQRT ( MAX ( ZERO,
554557 $ ONE- AAPQ1* AAPQ1 ) )
@@ -563,7 +566,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
563566 $ THEN
564567 IF ( ( AAQQ.LT. ROOTBIG ) .AND.
565568 $ ( AAQQ.GT. ROOTSFMIN ) ) THEN
566- SVA( q ) = SCNRM2( M, A( 1 , q ), 1 )
569+ SVA( q ) = SCNRM2( M, A( 1 , q ),
570+ $ 1 )
567571 ELSE
568572 T = ZERO
569573 AAQQ = ONE
@@ -715,7 +719,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
715719 IF ( ABS ( THETA ).GT. BIGTHETA ) THEN
716720 T = HALF / THETA
717721 CS = ONE
718- CALL CROT( M, A(1 ,p), 1 , A(1 ,q), 1 ,
722+ CALL CROT( M, A(1 ,p), 1 , A(1 ,q),
723+ $ 1 ,
719724 $ CS, CONJG (OMPQ)* T )
720725 IF ( RSVEC ) THEN
721726 CALL CROT( MVL, V(1 ,p), 1 ,
@@ -742,7 +747,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
742747 AAPP = AAPP* SQRT ( MAX ( ZERO,
743748 $ ONE- T* AQOAP* AAPQ1 ) )
744749*
745- CALL CROT( M, A(1 ,p), 1 , A(1 ,q), 1 ,
750+ CALL CROT( M, A(1 ,p), 1 , A(1 ,q),
751+ $ 1 ,
746752 $ CS, CONJG (OMPQ)* SN )
747753 IF ( RSVEC ) THEN
748754 CALL CROT( MVL, V(1 ,p), 1 ,
@@ -756,15 +762,18 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
756762 IF ( AAPP.GT. AAQQ ) THEN
757763 CALL CCOPY( M, A( 1 , p ), 1 ,
758764 $ WORK, 1 )
759- CALL CLASCL( ' G' , 0 , 0 , AAPP, ONE,
765+ CALL CLASCL( ' G' , 0 , 0 , AAPP,
766+ $ ONE,
760767 $ M, 1 , WORK,LDA,
761768 $ IERR )
762- CALL CLASCL( ' G' , 0 , 0 , AAQQ, ONE,
769+ CALL CLASCL( ' G' , 0 , 0 , AAQQ,
770+ $ ONE,
763771 $ M, 1 , A( 1 , q ), LDA,
764772 $ IERR )
765773 CALL CAXPY( M, - AAPQ, WORK,
766774 $ 1 , A( 1 , q ), 1 )
767- CALL CLASCL( ' G' , 0 , 0 , ONE, AAQQ,
775+ CALL CLASCL( ' G' , 0 , 0 , ONE,
776+ $ AAQQ,
768777 $ M, 1 , A( 1 , q ), LDA,
769778 $ IERR )
770779 SVA( q ) = AAQQ* SQRT ( MAX ( ZERO,
@@ -773,15 +782,18 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
773782 ELSE
774783 CALL CCOPY( M, A( 1 , q ), 1 ,
775784 $ WORK, 1 )
776- CALL CLASCL( ' G' , 0 , 0 , AAQQ, ONE,
785+ CALL CLASCL( ' G' , 0 , 0 , AAQQ,
786+ $ ONE,
777787 $ M, 1 , WORK,LDA,
778788 $ IERR )
779- CALL CLASCL( ' G' , 0 , 0 , AAPP, ONE,
789+ CALL CLASCL( ' G' , 0 , 0 , AAPP,
790+ $ ONE,
780791 $ M, 1 , A( 1 , p ), LDA,
781792 $ IERR )
782793 CALL CAXPY( M, - CONJG (AAPQ),
783794 $ WORK, 1 , A( 1 , p ), 1 )
784- CALL CLASCL( ' G' , 0 , 0 , ONE, AAPP,
795+ CALL CLASCL( ' G' , 0 , 0 , ONE,
796+ $ AAPP,
785797 $ M, 1 , A( 1 , p ), LDA,
786798 $ IERR )
787799 SVA( p ) = AAPP* SQRT ( MAX ( ZERO,
@@ -797,7 +809,8 @@ SUBROUTINE CGSVJ0( JOBV, M, N, A, LDA, D, SVA, MV, V, LDV, EPS,
797809 $ THEN
798810 IF ( ( AAQQ.LT. ROOTBIG ) .AND.
799811 $ ( AAQQ.GT. ROOTSFMIN ) ) THEN
800- SVA( q ) = SCNRM2( M, A( 1 , q ), 1 )
812+ SVA( q ) = SCNRM2( M, A( 1 , q ),
813+ $ 1 )
801814 ELSE
802815 T = ZERO
803816 AAQQ = ONE
0 commit comments