Reduce workspace size of xSYEQUB, xHEEQUB
authorChristoph Conrads <gitlab@christoph-conrads.name>
Tue, 20 Sep 2016 14:01:08 +0000 (16:01 +0200)
committerChristoph Conrads <gitlab@christoph-conrads.name>
Thu, 29 Sep 2016 14:59:48 +0000 (16:59 +0200)
- give correct minimum workspace size in the parameter description
- {s,d}SYEQUB, xHEEQUB: use WORK(N+1:2*N) instead of WORK(2N+1:3*N)

SRC/cheequb.f
SRC/csyequb.f
SRC/dsyequb.f
SRC/ssyequb.f
SRC/zheequb.f
SRC/zsyequb.f

index f5a721a19cf9767cf14c5a264a14b3068bf1418f..59b32c0524b25cbfd3dd007095b83c3629730c2b 100644 (file)
@@ -98,7 +98,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX array, dimension (3*N)
+*>          WORK is COMPLEX array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO
          AVG = AVG / N
 
          STD = 0.0E0
-         DO I = 2*N+1, 3*N
-            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         DO I = N+1, 2*N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
          END DO
-         CALL CLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         CALL CLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
          STD = SCALE * SQRT( SUMSQ / N )
 
          IF ( STD .LT. TOL * AVG ) GOTO 999
index 81a97cd6910194916d264f6c0b0b4a62c6115fe1..7b6de6f15699098294dfcff19aeca6a6d7c0a38d 100644 (file)
@@ -98,7 +98,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX array, dimension (3*N)
+*>          WORK is COMPLEX array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO
index 3a5c87a84f948ccd8f6b6680ee41ad5f21228812..7a54950360d53ac6f50837a4ca7d02a7c878baca 100644 (file)
@@ -97,7 +97,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is DOUBLE PRECISION array, dimension (3*N)
+*>          WORK is DOUBLE PRECISION array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO
          AVG = AVG / N
 
          STD = 0.0D0
-         DO I = 2*N+1, 3*N
-            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         DO I = N+1, 2*N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
          END DO
-         CALL DLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         CALL DLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
          STD = SCALE * SQRT( SUMSQ / N )
 
          IF ( STD .LT. TOL * AVG ) GOTO 999
index 7316e92672a16cd30452ad31d5805873e215dfdc..56dfca844def62346b98060fbd4448c09e2a6777 100644 (file)
@@ -97,7 +97,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is REAL array, dimension (3*N)
+*>          WORK is REAL array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO
          AVG = AVG / N
 
          STD = 0.0E0
-         DO I = 2*N+1, 3*N
-            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         DO I = N+1, 2*N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
          END DO
-         CALL SLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         CALL SLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
          STD = SCALE * SQRT( SUMSQ / N )
 
          IF ( STD .LT. TOL * AVG ) GOTO 999
index eee3fdb0c2e86b15c20139224c6b750035c66418..1e06299a9315a0428fbe35ee5a12dc06f262a975 100644 (file)
@@ -98,7 +98,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX*16 array, dimension (3*N)
+*>          WORK is COMPLEX*16 array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO
          AVG = AVG / N
 
          STD = 0.0D0
-         DO I = 2*N+1, 3*N
-            WORK( I ) = S( I-2*N ) * WORK( I-2*N ) - AVG
+         DO I = N+1, N
+            WORK( I ) = S( I-N ) * WORK( I-N ) - AVG
          END DO
-         CALL ZLASSQ( N, WORK( 2*N+1 ), 1, SCALE, SUMSQ )
+         CALL ZLASSQ( N, WORK( N+1 ), 1, SCALE, SUMSQ )
          STD = SCALE * SQRT( SUMSQ / N )
 
          IF ( STD .LT. TOL * AVG ) GOTO 999
index 7f2e1e8a9eea1d020ffae05b352021361660bedc..847f5064e1fb1feb79b0f92afc40057a474733bf 100644 (file)
@@ -98,7 +98,7 @@
 *>
 *> \param[out] WORK
 *> \verbatim
-*>          WORK is COMPLEX*16 array, dimension (3*N)
+*>          WORK is COMPLEX*16 array, dimension (2*N)
 *> \endverbatim
 *>
 *> \param[out] INFO