version 1.18, 2018/05/29 07:17:55
|
version 1.19, 2023/08/07 08:38:53
|
Line 101
|
Line 101
|
*> \author Univ. of Colorado Denver |
*> \author Univ. of Colorado Denver |
*> \author NAG Ltd. |
*> \author NAG Ltd. |
* |
* |
*> \date December 2016 |
|
* |
|
*> \ingroup doubleOTHERauxiliary |
*> \ingroup doubleOTHERauxiliary |
* |
* |
*> \par Further Details: |
*> \par Further Details: |
Line 136
|
Line 134
|
* ===================================================================== |
* ===================================================================== |
SUBROUTINE DLACN2( N, V, X, ISGN, EST, KASE, ISAVE ) |
SUBROUTINE DLACN2( N, V, X, ISGN, EST, KASE, ISAVE ) |
* |
* |
* -- LAPACK auxiliary routine (version 3.7.0) -- |
* -- LAPACK auxiliary routine -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- LAPACK is a software package provided by Univ. of Tennessee, -- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- |
* December 2016 |
|
* |
* |
* .. Scalar Arguments .. |
* .. Scalar Arguments .. |
INTEGER KASE, N |
INTEGER KASE, N |
Line 160
|
Line 157
|
* .. |
* .. |
* .. Local Scalars .. |
* .. Local Scalars .. |
INTEGER I, JLAST |
INTEGER I, JLAST |
DOUBLE PRECISION ALTSGN, ESTOLD, TEMP |
DOUBLE PRECISION ALTSGN, ESTOLD, TEMP, XS |
* .. |
* .. |
* .. External Functions .. |
* .. External Functions .. |
INTEGER IDAMAX |
INTEGER IDAMAX |
Line 171
|
Line 168
|
EXTERNAL DCOPY |
EXTERNAL DCOPY |
* .. |
* .. |
* .. Intrinsic Functions .. |
* .. Intrinsic Functions .. |
INTRINSIC ABS, DBLE, NINT, SIGN |
INTRINSIC ABS, DBLE, NINT |
* .. |
* .. |
* .. Executable Statements .. |
* .. Executable Statements .. |
* |
* |
Line 199
|
Line 196
|
EST = DASUM( N, X, 1 ) |
EST = DASUM( N, X, 1 ) |
* |
* |
DO 30 I = 1, N |
DO 30 I = 1, N |
X( I ) = SIGN( ONE, X( I ) ) |
IF( X(I).GE.ZERO ) THEN |
|
X(I) = ONE |
|
ELSE |
|
X(I) = -ONE |
|
END IF |
ISGN( I ) = NINT( X( I ) ) |
ISGN( I ) = NINT( X( I ) ) |
30 CONTINUE |
30 CONTINUE |
KASE = 2 |
KASE = 2 |
Line 232
|
Line 233
|
ESTOLD = EST |
ESTOLD = EST |
EST = DASUM( N, V, 1 ) |
EST = DASUM( N, V, 1 ) |
DO 80 I = 1, N |
DO 80 I = 1, N |
IF( NINT( SIGN( ONE, X( I ) ) ).NE.ISGN( I ) ) |
IF( X(I).GE.ZERO ) THEN |
|
XS = ONE |
|
ELSE |
|
XS = -ONE |
|
END IF |
|
IF( NINT( XS ).NE.ISGN( I ) ) |
$ GO TO 90 |
$ GO TO 90 |
80 CONTINUE |
80 CONTINUE |
* REPEATED SIGN VECTOR DETECTED, HENCE ALGORITHM HAS CONVERGED. |
* REPEATED SIGN VECTOR DETECTED, HENCE ALGORITHM HAS CONVERGED. |
Line 244
|
Line 250
|
$ GO TO 120 |
$ GO TO 120 |
* |
* |
DO 100 I = 1, N |
DO 100 I = 1, N |
X( I ) = SIGN( ONE, X( I ) ) |
IF( X(I).GE.ZERO ) THEN |
|
X(I) = ONE |
|
ELSE |
|
X(I) = -ONE |
|
END IF |
ISGN( I ) = NINT( X( I ) ) |
ISGN( I ) = NINT( X( I ) ) |
100 CONTINUE |
100 CONTINUE |
KASE = 2 |
KASE = 2 |