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 f5a721a..59b32c0 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 81a97cd..7b6de6f 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 3a5c87a..7a54950 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 7316e92..56dfca8 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 eee3fdb..1e06299 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 7f2e1e8..847f506 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