Revert "* Bug #9789 fixed - Optimization: optim printing its termination status" 84/12684/1
Vincent COUVERT [Thu, 26 Sep 2013 15:51:59 +0000 (17:51 +0200)]
English must be imposed for tests.

This reverts commit 0f07e167539c90598ce690cda67de550e3bd24e9.

Change-Id: If6d9f202e0313c38b09d7a10768f6263e06fabc7

14 files changed:
scilab/CHANGES_5.5.X
scilab/modules/optimization/help/en_US/optim.xml
scilab/modules/optimization/sci_gateway/fortran/sci_f_optim.f
scilab/modules/optimization/tests/nonreg_tests/bug_3161.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_4433.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_4638.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9208.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9789.dia.ref [deleted file]
scilab/modules/optimization/tests/nonreg_tests/bug_9789.tst [deleted file]
scilab/modules/optimization/tests/unit_tests/optim_costflist.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_matrix.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_sourcec.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_sourcefortran1.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_sourcefortran2.dia.ref

index b32a37b..48147c4 100644 (file)
@@ -456,8 +456,6 @@ Bug Fixes
 
 * Bug #9780 fixed - gmres solver did not run with complex systems.
 
-* Bug #9789 fixed - optim() now prints termination information whatever the "imp" input argument is.
-
 * Bug #9821 fixed - getrelativefilename did not manage matrix of strings.
 
 * Bug #9851 fixed - Error message occurred because of a cut-off frequency of 0.25Hz with irr.
index b1e8707..70bc21f 100644 (file)
                 <term>"imp=iflag"</term>
                 <listitem>
                     <para>named argument used to set the trace mode (default
-                        <literal>imp=0</literal>, which only prints termination status). If <varname>imp</varname>
+                        <literal>imp=0</literal>, which prints no messages). If <varname>imp</varname>
                         is greater or equal to 1, more information are printed, depending on the
                         algorithm chosen. More precisely:
                     </para>
index 3120617..e0e7540 100644 (file)
@@ -1023,28 +1023,30 @@ c     commentaires finaux
       endif
 
  360  continue
-      if(indopt.eq.1) then
-         call writebufscioptim(buf,epsg)
-         call msgs(12,0)
-      elseif(indopt.eq.2) then
-         call writebufscioptim(buf,epsg)
-         call msgs(13,0)
-      elseif(indopt.eq.3)  then
-         call msgs(14,0)
-      elseif(indopt.eq.4)  then
-         call msgs(15,0)
-      elseif(indopt.eq.5)  then
-         call msgs(16,0)
-      elseif(indopt.eq.6)  then
-         call msgs(17,0)
-      elseif(indopt.eq.7)  then
-         call msgs(18,0)
-      elseif(indopt.eq.8)  then
-         call msgs(19,0)
-      elseif(indopt.eq.9)  then
-         call msgs(20,0)
-      elseif(indopt.ge.10)  then
-         call msgs(21,0)
+      if(imp.ne.0) then
+         if(indopt.eq.1) then
+            call writebufscioptim(buf,epsg)
+            call msgs(12,0)
+         elseif(indopt.eq.2) then
+            call writebufscioptim(buf,epsg)
+            call msgs(13,0)
+         elseif(indopt.eq.3)  then
+            call msgs(14,0)
+         elseif(indopt.eq.4)  then
+            call msgs(15,0)
+         elseif(indopt.eq.5)  then
+            call msgs(16,0)
+         elseif(indopt.eq.6)  then
+            call msgs(17,0)
+         elseif(indopt.eq.7)  then
+            call msgs(18,0)
+         elseif(indopt.eq.8)  then
+            call msgs(19,0)
+         elseif(indopt.eq.9)  then
+            call msgs(20,0)
+         elseif(indopt.ge.10)  then
+            call msgs(21,0)
+         endif
       endif
       return
       end
index d44f62e..c12804d 100644 (file)
@@ -4,7 +4,6 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- CLI SHELL MODE -->
 // <-- Non-regression test for bug 3161 -->
 //
 // <-- Bugzilla URL -->
@@ -27,7 +26,5 @@ p0=[3;5;10];
 p = [];
 err = [];
 [p,err]=datafit(G,Z,p0);
-Optim stops: maximum number of calls to f is reached.
-
 if p == [] then bugmes();quit;end;
 if err == [] then bugmes();quit;end;
index a98855f..72a3659 100644 (file)
@@ -4,7 +4,6 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- CLI SHELL MODE -->
 // <-- Non-regression test for bug 4433 -->
 //
 // <-- Bugzilla URL -->
@@ -17,25 +16,5 @@ for i=1:10
   deff('[y,dy,imp] = testfunc(x,imp)','y=sum(x.^2); dy = 2*x;');
   x0=40*ones(100,1);
   [f,xo]=optim(testfunc,x0,algo='gc',imp=0);
-end  
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
+end
 // =============================================================================
index ee1793a..e942d1c 100644 (file)
@@ -4,7 +4,6 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- CLI SHELL MODE -->
 // <-- Non-regression test for bug 4638 -->
 //
 // <-- Bugzilla URL -->
@@ -243,9 +242,10 @@ function [y, dy, ind] = optim_test(x,ind)
   Ainv = inv(A);
 endfunction
 [f_opt, x_opt] = optim(optim_test,ones(10,1));
-hello from optim_test
-hello from optim_test
-hello from optim_test
-Norm of projected gradient lower than   0.0000000D+00.
+hellofromoptim_test
+
+hellofromoptim_test
+
+hellofromoptim_test
 
 // =============================================================================
index 87ff92c..870c244 100644 (file)
@@ -29,16 +29,10 @@ function [f, g, ind] = costfunction(x, ind, a, b, c, d)
 endfunction
 costf = list ( costfunction , a , b , c, d );
 [fopt, xopt, w, g, iters, evals, err] = optim ( costf , x0 );
-Norm of projected gradient lower than   0.0000000D+00.
-
 assert_checkequal([iters evals err], [10 11 1]);
 [fopt, xopt, w, g, iters, evals, err] = optim ( costf , x0 , "ar",nap=5 );
-Optim stops: maximum number of calls to f is reached.
-
 assert_checkequal([iters evals err], [4 5 4]);
 [fopt, xopt, w, g, iters, evals, err] = optim ( costf , x0 , "ar",nap=100,iter=5 );
-Optim stops: maximum number of iterations is reached.
-
 assert_checkequal([iters evals err], [6 7 5]);
 // Example 2
 x0 = [-1.2 1.0];
@@ -50,14 +44,8 @@ function [f, g, ind] = rosenbrockCost2(x, ind)
     g = derivative ( rosenbrock , x.' , order = 4 );
 endfunction
 [fopt, xopt, w, g, iters, evals, err] = optim ( rosenbrockCost2 , x0 );
-End of optimization.
-
 assert_checkequal([iters evals err], [37 50 9]);
 [fopt, xopt, w, g, iters, evals, err] = optim ( rosenbrockCost2 , x0 , "ar",nap=10 );
-Optim stops: maximum number of calls to f is reached.
-
 assert_checkequal([iters evals err], [8 10 4]);
 [fopt, xopt, w, g, iters, evals, err] = optim ( rosenbrockCost2 , x0 , "ar",nap=100,iter=10 );
-Optim stops: maximum number of iterations is reached.
-
 assert_checkequal([iters evals err], [11 14 5]);
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9789.dia.ref b/scilab/modules/optimization/tests/nonreg_tests/bug_9789.dia.ref
deleted file mode 100644 (file)
index faa90fc..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//
-// <-- CLI SHELL MODE -->
-//
-// <-- Non-regression test for bug 9789 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=9789
-//
-// <-- Short Description -->
-// optim prints its termination status even when "imp" is not given,
-// so the user is informed of the final state of the optimization.
-//
-function [ f , g , ind ] = woodFG ( x , ind )
-    if ind == 2 | ind == 3 | ind == 4 then
-        A = x(2)-x(1)^2
-        B = x(4)-x(3)^2
-    end
-    if ind == 2 | ind == 4 then
-        f = 100*A^2+(1-x(1))^2+90*B^2+(1-x(3))^2+...
-        10.1*((x(2)-1)^2+(x(4)-1)^2)+19.8*(x(2)-1)*(x(4)-1)
-    end
-    if ind == 3 | ind == 4 then
-        g(1) = -2*(200*x(1)*A+1.-x(1))
-        g(2) = 2*(100*A+10.1*(x(2)-1)+9.9*(x(4)-1))
-        g(3) = -2*(180*x(3)*B+1.-x(3))
-        g(4) = 2*(90*B+10.1*(x(4)-1)+9.9*(x(2)-1))
-    end
-endfunction
-x0 = [-3 -1 -3 -1];
-[ fopt , xopt ] = optim ( woodFG , x0 );
-Optim stops: maximum number of calls to f is reached.
-
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9789.tst b/scilab/modules/optimization/tests/nonreg_tests/bug_9789.tst
deleted file mode 100644 (file)
index cb93f38..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// =============================================================================
-// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
-//
-//  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-//
-// <-- CLI SHELL MODE -->
-//
-// <-- Non-regression test for bug 9789 -->
-//
-// <-- Bugzilla URL -->
-// http://bugzilla.scilab.org/show_bug.cgi?id=9789
-//
-// <-- Short Description -->
-// optim prints its termination status even when "imp" is not given,
-// so the user is informed of the final state of the optimization.
-//
-
-function [ f , g , ind ] = woodFG ( x , ind )
-    if ind == 2 | ind == 3 | ind == 4 then
-        A = x(2)-x(1)^2
-        B = x(4)-x(3)^2
-    end
-    if ind == 2 | ind == 4 then
-        f = 100*A^2+(1-x(1))^2+90*B^2+(1-x(3))^2+...
-        10.1*((x(2)-1)^2+(x(4)-1)^2)+19.8*(x(2)-1)*(x(4)-1)
-    end
-    if ind == 3 | ind == 4 then
-        g(1) = -2*(200*x(1)*A+1.-x(1))
-        g(2) = 2*(100*A+10.1*(x(2)-1)+9.9*(x(4)-1))
-        g(3) = -2*(180*x(3)*B+1.-x(3))
-        g(4) = 2*(90*B+10.1*(x(4)-1)+9.9*(x(2)-1))
-    end
-endfunction
-x0 = [-3 -1 -3 -1];
-
-[ fopt , xopt ] = optim ( woodFG , x0 );
index c916ad3..be83dae 100644 (file)
@@ -1,10 +1,9 @@
 // =============================================================================
 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
-// Copyright (C) 2008 - INRIA - Michael Baudin
+// Copyright (C) ????-2008 - INRIA - Michael Baudin
 //
 //  This file is distributed under the same license as the Scilab package.
-// =============================================================================
-// <-- CLI SHELL MODE -->
+//
 // optim_costflist.tst --
 //   Test the optim command in the case where the cost function is a list.
 //
@@ -12,7 +11,7 @@
 // In the following case, costf is equal to list(sipn,sip2,ne,nc,cpen)
 // where sipn is a function.
 // The case is even more complex, since the 3d argument
-// of sipn is the dummy argument sip1, which is, in turn, 
+// of sipn is the dummy argument sip1, which is, in turn,
 // a function which real value is sip2.
 // penalization (see doc)
 //
@@ -21,24 +20,24 @@ function [f,g,ind]=sip2(x,ind)
   f= [ x(1)+x(2)-1, -x(1), (x(1)^2+x(2)^2)/2]
   g= [ 1, -1, x(1); 1,  0, x(2)]
 endfunction
-cpen=50; 
-ne=1; 
+cpen=50;
+ne=1;
 nc=2;
-bi=[0 0]; 
+bi=[0 0];
 bs=[2 2];
 function [fpen,gpen,ind]=sipn(x,ind,sip1,ne,nc,cpen)
   [f,g,indic]=sip1(x,ind)
-  if indic < 0 then 
+  if indic < 0 then
     ind=indic
     return
   end
-  if nc >ne then 
+  if nc >ne then
     for i=ne+1:nc
       f(i)=max([0 f(i)])
     end
   end
   fpen=f(nc+1) + cpen*norm(f(1:nc))^2/2';
-  if ind==2 then 
+  if ind==2 then
     return
   end
   gpen=g(:,nc+1)
@@ -49,7 +48,7 @@ function [fpen,gpen,ind]=sipn(x,ind,sip1,ne,nc,cpen)
   end
   if nc > ne then
     for i=ne+1:nc
-      if f(i) > 0 then 
+      if f(i) > 0 then
          gpen=gpen + cpen*f(i)*g(:,i)
       end
     end
@@ -57,6 +56,4 @@ function [fpen,gpen,ind]=sipn(x,ind,sip1,ne,nc,cpen)
 endfunction
 [f,x,g]=optim(list(sipn,sip2,ne,nc,cpen),...
               'b',bi,bs,[1 1],'ar',20,20,1.e-15);
-Norm of projected gradient lower than   0.1000000D-14.
-
 if norm(x-[0.5 0.5]) + norm(g) > 0.1 then bugmes();quit;end
index 6534895..849818e 100644 (file)
@@ -4,7 +4,6 @@
 //
 //  This file is distributed under the same license as the Scilab package.
 // =============================================================================
-// <-- CLI SHELL MODE -->
 //
 // optim_matrix.tst --
 //   Test the optim command when the optimized unknown is a matrix.
@@ -18,8 +17,6 @@ A=rand(2,2);
 b=eye(A);
 x0=eye(2,2);
 [f,X,g]=optim(ndsim1,x0);
-Norm of projected gradient lower than   0.9402179D-16.
-
 if norm(X-inv(A))>Leps then bugmes();quit;end
 // Test #2
 // The expected solution of the problem is the solution of Ax=b
@@ -28,8 +25,6 @@ A=rand(2,2);
 b=[1;0];
 Ai=inv(A);
 [f,x,g]=optim(ndsim2,[1;0],'nd');
-End of optimization.
-
 if norm(x-Ai(:,1))>Leps then bugmes();quit;end
 // Test #3
 deff('[f,g,ind]=ndsim3(x,ind)', [
index 1a67236..da1ee3e 100644 (file)
@@ -59,8 +59,6 @@ chdir(cur_dir);
 valtd=100;
 // Test with default solver and default settings.
 [f,x,g]=optim('rosenc',x0,'td',valtd);
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 // Test with all solvers
 solverlist=["gc" "qn" "nd"];
@@ -68,12 +66,6 @@ for solver=solverlist
   [f,x,g]=optim('rosenc',x0,solver,'td',valtd);
   if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 end
-Optim stops: maximum number of calls to f is reached.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-End of optimization.
-
 // Test all verbose levels with all possible solvers
 verboselevels=[0];
 for verbose=verboselevels
@@ -82,9 +74,3 @@ for verbose=verboselevels
     if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
   end
 end
-Optim stops: maximum number of calls to f is reached.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-End of optimization.
-
index 01f83cf..102b837 100644 (file)
@@ -61,20 +61,12 @@ chdir(cur_dir);
 x0 = 1.2*ones(n, 1);
 valtd = 100;
 [f, xo, go] = optim('rosenf', x0, 'td', valtd);
-Norm of projected gradient lower than   0.0000000D+00.
-
 // Test with all solvers
 solverlist = ["gc" "qn" "nd"];
 for solver = solverlist
   [f, x, g] = optim('rosenf', x0, solver, 'td', valtd);
   if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 end
-Optim stops: maximum number of calls to f is reached.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-End of optimization.
-
 // Test all verbose levels with all possible solvers
 verboselevels = [0];
 for verbose = verboselevels
@@ -83,11 +75,5 @@ for verbose = verboselevels
     if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
   end
 end
-Optim stops: maximum number of calls to f is reached.
-
-Norm of projected gradient lower than   0.0000000D+00.
-
-End of optimization.
-
 // Clean-up
 ulink();
index 233ebaf..960184f 100644 (file)
@@ -91,130 +91,70 @@ xopt = .1*bs;
 // Solve the problem
 //
 [f, x, g] = optim('rosenf', x0, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'gc', 'in');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 //
 [f, x, g] = optim('rosenf', x0, 'nd', 'in');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'qn', 1, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'gc', 1, 50, 'in');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 //
 [f, x ,g] = optim('rosenf', x0, 'nd', 1,50, 'in');
-Optimization stops because too small variations for x.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x1, g] =optim('rosenf', x0,  'ar', 100, 6, 'in');
-Optim stops: maximum number of iterations is reached.
-
 [f, x, g, to] = optim('rosenf', x0,  'ar', 100, 3, 'in');
-Optim stops: maximum number of iterations is reached.
-
 [f, x, g, to] = optim('rosenf', x , to, 'ar', 100, 3, 'in');
-Optim stops: maximum number of iterations is reached.
-
 if norm(x-x1)/norm(x-xopt) > 0.1 then  bugmes();quit;end
 [f, x1, g] = optim('rosenf', 'b', bi, bs, x0, 'ar', 100, 6, 'in');
-Optim stops: maximum number of iterations is reached.
-
 [f, x, g, to] = optim('rosenf', 'b', bi, bs, x0, 'ar', 100, 3, 'in');
-Optim stops: maximum number of iterations is reached.
-
 [f, x, g]   =optim('rosenf', 'b', bi, bs, x, to, 'ar', 100, 3, 'in');
-Optim stops: too small variations in gradient direction.
-
 if norm(x-x1)/norm(x-xopt) > 0.1 then  bugmes();quit;end
 //
 // Test all possible stop criteria settings
 //
 [f, x, g] = optim('rosenf', x0, 'ar', 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'ar', 100, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'ar', 100, 100, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'ar', 100, 100, %eps, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'ar', 100, 100, %eps, %eps, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'ar', 100, 100, 10.*%eps, %eps, epsx, 'in');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', x0, 'gc', 'ar', 100, 100, %eps, %eps, epsx, 'in');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 //
 [f, x, g] = optim('rosenf', 'b', bi, bs, x0, 'in');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', 'b', bi, bs, x0, 'gc', 'in');
-at last iteration f decreases by less than   0.2220446D-15.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x] = optim('rosenf', 'b', bi, bs, x0, 'ar', 100, 100, 1.d-8, 'in');
-Norm of projected gradient lower than   0.1000000D-07.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g] = optim('rosenf', ..
 'b', bi, bs, x0, 'gc', 'ar', 100, 100, %eps, %eps, epsx, 'in');
-at last iteration f decreases by less than   0.2220446D-15.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, to, td] = optim('rosenf', x0, 'in', 'sd');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, ti] = optim('rosenf', x0, 'gc', 'in', 'si');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, to, ti, td] = optim('rosenf', x0, to, 'in', 'si', 'sd');
-Norm of projected gradient lower than   0.0000000D+00.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, td] = optim('rosenf', ..
 'b', bi, bs, x0, 'gc', 'ar', 100, 100, %eps, %eps, epsx, 'in', 'sd');
-at last iteration f decreases by less than   0.2220446D-15.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, ti] = optim('rosenf', x0, 'gc', 'ar', 100, 100, %eps, 'in', 'si');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f, x, g, ti, td] = optim('rosenf', ..
 x0, 'gc', 'ar', 100, 100, %eps, 'in', 'si', 'sd');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 [f,  x,  g,  ti,  td] = optim('rosenf', ..
 x0, 'gc', 'ar', 100, 100, %eps, 'in', 'ti', ti, 'td', td, 'si', 'sd');
-Optim stops: maximum number of calls to f is reached.
-
 if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 // Clean-up
 ulink();