[Scipy-svn] r2109 - trunk/Lib/optimize/cobyla

scipy-svn at scipy.org scipy-svn at scipy.org
Mon Jul 17 17:51:17 EDT 2006


Author: oliphant
Date: 2006-07-17 16:51:13 -0500 (Mon, 17 Jul 2006)
New Revision: 2109

Modified:
   trunk/Lib/optimize/cobyla/trstlp.f
Log:
More print statements.

Modified: trunk/Lib/optimize/cobyla/trstlp.f
===================================================================
--- trunk/Lib/optimize/cobyla/trstlp.f	2006-07-17 20:22:07 UTC (rev 2108)
+++ trunk/Lib/optimize/cobyla/trstlp.f	2006-07-17 21:51:13 UTC (rev 2109)
@@ -2,6 +2,7 @@
       SUBROUTINE TRSTLP (N,M,A,B,RHO,DX,IFULL,IACT,Z,ZDOTA,VMULTC,
      1  SDIRN,DXNEW,VMULTD,IPRINT)
       IMPLICIT DOUBLE PRECISION (A-H,O-Z)
+      DOUBLE PRECISION TEMP
       DIMENSION A(N,*),B(*),DX(*),IACT(*),Z(N,*),ZDOTA(*),
      1  VMULTC(*),SDIRN(*),DXNEW(*),VMULTD(*)
 C
@@ -104,6 +105,7 @@
           DO 80 I=1,N
    80     OPTNEW=OPTNEW-DX(I)*A(I,MCON)
       END IF
+      PRINT *, ' ICOUNT, OPTNEW, OPTOLD = ', ICOUNT, OPTNEW, OPTOLD
       IF (ICOUNT .EQ. 0 .OR. OPTNEW .LT. OPTOLD) THEN
           OPTOLD=OPTNEW
           NACTX=NACT
@@ -126,8 +128,9 @@
       KK=IACT(ICON)
       DO 90 I=1,N
    90 DXNEW(I)=A(I,KK)
-      TOT=0.0d0
+      TOT=0.0D0
       K=N
+      print *, '   k, nact, dxnew =', k, nact, (dxnew(i),i=1,n)
   100 IF (K .GT. NACT) THEN
           SP=0.0d0
           SPABS=0.0d0
@@ -137,9 +140,11 @@
   110     SPABS=SPABS+DABS(TEMP)
           ACCA=SPABS+0.1d0*DABS(SP)
           ACCB=SPABS+0.2d0*DABS(SP)
-          IF (SPABS .GE. ACCA .OR. ACCA .GE. ACCB) SP=0.0d0
-          IF (TOT .EQ. 0.0d0) THEN
+          print *, '   sp, spabs, acca, accb', sp, spabs, acca, accb
+          IF ((SPABS .GE. ACCA) .OR. (ACCA .GE. ACCB)) SP=0.0D0
+          IF (TOT .EQ. 0.0D0) THEN
               TOT=SP
+              print *, '   simple tot = ', tot
           ELSE
               KP=K+1
               TEMP=DSQRT(SP*SP+TOT*TOT)
@@ -150,6 +155,7 @@
               TEMP=ALPHA*Z(I,K)+BETA*Z(I,KP)
               Z(I,KP)=ALPHA*Z(I,KP)-BETA*Z(I,K)
   120         Z(I,K)=TEMP
+              print *, '   k, alpha, beta, tot', k, alpha, beta, tot
           END IF
           K=K-1
           GOTO 100
@@ -159,7 +165,7 @@
 C     active set.
 C
       IF (IPRINT .EQ. 3) THEN
-         PRINT *, 'TOT, NACT, ICON = ', TOT, NACT, ICON
+         PRINT *, '*TOT, NACT, ICON = ', TOT, NACT, ICON
       END IF
       IF (TOT .NE. 0.0d0) THEN
           NACT=NACT+1
@@ -438,6 +444,8 @@
   470 VMULTC(K)=DMAX1(0.0d0,TEMP*VMULTC(K)+RATIO*VMULTD(K))
       PRINT *, '  3. VMULTC = ', (VMULTC(I),I=1,M+1)
       IF (MCON .EQ. M) RESMAX=RESOLD+RATIO*(RESMAX-RESOLD)
+      PRINT *, ' RESMAX, MCON, M, ICON = ', 
+     1    RESMAX, MCON, M, ICON
 C
 C     If the full step is not acceptable then begin another iteration.
 C     Otherwise switch to stage two or end the calculation.




More information about the Scipy-svn mailing list