* Bug #12897 fixed - Optimization: rename "imp" into "iprint" 41/18541/2
Paul Bignier [Mon, 28 Apr 2014 13:25:04 +0000 (15:25 +0200)]
It is called that way because it comes from the n1qn1.f head comments,
which are in French ("imp" == "impression").

Voluntarily left the ICSE demos untouched because they don't even work yet:
https://codereview.scilab.org/#/c/14097/

Also, fixed the help examples & regened ref files

Change-Id: I5d07eaa1faaf57c69056b6693a0edac7266c490a

62 files changed:
scilab/CHANGES.md
scilab/modules/helptools/etc/images_md5.txt
scilab/modules/helptools/images/optim_1.png
scilab/modules/optimization/demos/optim/optim_output.sce
scilab/modules/optimization/demos/optim/optim_plot.sce
scilab/modules/optimization/help/en_US/nonlinearleastsquares/datafit.xml
scilab/modules/optimization/help/en_US/nonlinearleastsquares/leastsq.xml
scilab/modules/optimization/help/en_US/optim.xml
scilab/modules/optimization/help/en_US/qpsolve.xml
scilab/modules/optimization/macros/datafit.sci
scilab/modules/optimization/macros/leastsq.sci
scilab/modules/optimization/sci_gateway/cpp/sci_optim.cpp
scilab/modules/optimization/src/cpp/checkoptimerror.cpp
scilab/modules/optimization/src/fortran/fprf2.f
scilab/modules/optimization/src/fortran/gcbd.f
scilab/modules/optimization/src/fortran/n1fc1.f
scilab/modules/optimization/src/fortran/n1fc1a.f
scilab/modules/optimization/src/fortran/n1gc2.f
scilab/modules/optimization/src/fortran/n1gc2a.f
scilab/modules/optimization/src/fortran/n1gc2b.f
scilab/modules/optimization/src/fortran/n1qn1.f
scilab/modules/optimization/src/fortran/n1qn2.f
scilab/modules/optimization/src/fortran/n1qn2a.f
scilab/modules/optimization/src/fortran/n1qn3.f
scilab/modules/optimization/src/fortran/n1qn3a.f
scilab/modules/optimization/src/fortran/nlis0.f
scilab/modules/optimization/src/fortran/nlis2.f
scilab/modules/optimization/src/fortran/qnbd.f
scilab/modules/optimization/src/fortran/relvar.f
scilab/modules/optimization/src/fortran/rlbd.f
scilab/modules/optimization/src/fortran/shanph.f
scilab/modules/optimization/src/fortran/zgcbd.f
scilab/modules/optimization/src/fortran/zqnbd.f
scilab/modules/optimization/tests/nonreg_tests/bug_12702.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_12702.tst
scilab/modules/optimization/tests/nonreg_tests/bug_13243.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_13243.tst
scilab/modules/optimization/tests/nonreg_tests/bug_3056.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_3056.tst
scilab/modules/optimization/tests/nonreg_tests/bug_4433.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_4433.tst
scilab/modules/optimization/tests/nonreg_tests/bug_4925.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_4925.tst
scilab/modules/optimization/tests/nonreg_tests/bug_8805.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9538.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9688.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9688.tst
scilab/modules/optimization/tests/nonreg_tests/bug_9690.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9690.tst
scilab/modules/optimization/tests/nonreg_tests/bug_9697.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9697.tst
scilab/modules/optimization/tests/nonreg_tests/bug_9701.dia.ref
scilab/modules/optimization/tests/nonreg_tests/bug_9701.tst
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_myterminateobsolete.dia.ref
scilab/modules/optimization/tests/unit_tests/neldermead/neldermead_shapeX.dia.ref
scilab/modules/optimization/tests/unit_tests/neldermead/nmplot_rosenbrock.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_scilabscript.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_scilabscript.tst
scilab/modules/optimization/tests/unit_tests/optim_sourcec.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_sourcec.tst
scilab/modules/optimization/tests/unit_tests/optim_sourcefortran1.dia.ref
scilab/modules/optimization/tests/unit_tests/optim_sourcefortran1.tst

index ec3d65c..6df46e9 100644 (file)
@@ -341,6 +341,7 @@ Bug Fixes
 * [#12017](http://bugzilla.scilab.org/show_bug.cgi?id=12017): `figure.pixel_drawing_mode` is ignored for filled regular polygons and other shapes, still does not work for vectorial export (eps, pdf, etc).
 * [#12110](http://bugzilla.scilab.org/show_bug.cgi?id=12110): Unable to zoom multiple axes at once
 * [#12431](http://bugzilla.scilab.org/show_bug.cgi?id=12431): The page describing the `%helps` variable needed clarification.
+* [#12897](http://bugzilla.scilab.org/show_bug.cgi?id=12897): Renamed optim's "imp" argument to "iprint".
 * [#13794](http://bugzilla.scilab.org/show_bug.cgi?id=13794): Added polyline property "datatip_display_mode", allowing datatips to be displayed "always", "mouseclick" or "mouseover".
 * [#13166](http://bugzilla.scilab.org/show_bug.cgi?id=13166): `l` and `b` endian flags used with `mget` and `mgeti` were sticky
 * [#13375](http://bugzilla.scilab.org/show_bug.cgi?id=13375): If (Max - Min) == 1, then the multiple selection is not allowed.
index 2a1bd7a..6cc7c51 100644 (file)
@@ -1052,7 +1052,7 @@ odedc_1.png=dd2b2dedd27d1e31522bf03a071f1f52
 odedc_2.png=e200739457adb87740d6eda59334854b
 odedc_3.png=3d3d5ac8d7a133e26039e93609be5cd0
 odeoptions_1.png=12573ee6be852c456cf883e79dbea5f6
-optim_1.png=cafe7b8b2481c1d3de07a1a83c8c00f4
+optim_1.png=acf2f97c596c56782cb5cfa3ddb9de3a
 optim_sa_1.png=b2a6a1ff9fec247aba2e606e45387997
 ordmmd_en_US_1.png=65695a27c9eaf674ba4eac782ec20eba
 ordmmd_fr_FR_1.png=65695a27c9eaf674ba4eac782ec20eba
index 45f676c..2868c86 100644 (file)
Binary files a/scilab/modules/helptools/images/optim_1.png and b/scilab/modules/helptools/images/optim_1.png differ
index 72a77de..e48ca80 100644 (file)
@@ -38,7 +38,7 @@ function demo_optim_output()
 
     endfunction
 
-    [f, xopt] = optim(cost, x0, imp=-1)
+    [f, xopt] = optim(cost, x0, iprint=-1)
     //
     // Load this script into the editor
     //
index e0bdbc7..4a08165 100644 (file)
@@ -57,7 +57,7 @@ function demo_optim_plot()
     //
     // 4. Plot the optimization process, during optimization
     mprintf("Plot points during optimization...\n");
-    [ fopt , xopt ] = optim ( rosenbrock , x0 , imp = -1)
+    [ fopt , xopt ] = optim ( rosenbrock , x0 , iprint = -1)
 
 endfunction
 
index 9495108..5f79d12 100644 (file)
@@ -21,7 +21,7 @@
     </refnamediv>
     <refsynopsisdiv>
         <title>Syntax</title>
-        <synopsis>[p,err]=datafit([imp,] G [,DG],Z [,W],[contr],p0,[algo],[df0,[mem]],
+        <synopsis>[p,err]=datafit([iprint,] G [,DG],Z [,W],[contr],p0,[algo],[df0,[mem]],
             [work],[stop],['in'])
         </synopsis>
     </refsynopsisdiv>
         <title>Arguments</title>
         <variablelist>
             <varlistentry>
-                <term>imp</term>
+                <term>iprint</term>
                 <listitem>
                     <para>scalar argument used to set the trace mode.
-                        <literal>imp=0</literal> nothing (except errors) is reported,
-                        <literal>imp=1</literal> initial and final reports,
-                        <literal>imp=2</literal> adds a report per iteration,
-                        <literal>imp&gt;2</literal> add reports on linear search.
+                        <literal>iprint=0</literal> nothing (except errors) is reported,
+                        <literal>iprint=1</literal> initial and final reports,
+                        <literal>iprint=2</literal> adds a report per iteration,
+                        <literal>iprint&gt;2</literal> add reports on linear search.
                     </para>
                     <para>
                         <warning>
index 5422000..e72b81d 100644 (file)
@@ -28,7 +28,7 @@
             fopt=leastsq(fun, cstr, x0)
             fopt=leastsq(fun, dfun, cstr, x0)
             fopt=leastsq(fun, dfun, cstr, x0, algo)
-            fopt=leastsq([imp], fun [,dfun] [,cstr],x0 [,algo],[df0,[mem]],[stop])
+            fopt=leastsq([iprint], fun [,dfun] [,cstr],x0 [,algo],[df0,[mem]],[stop])
             [fopt,xopt] = leastsq(...)
             [fopt,xopt,gopt] =  = leastsq(...)
         </synopsis>
                 </listitem>
             </varlistentry>
             <varlistentry>
-                <term>imp</term>
+                <term>iprint</term>
                 <listitem>
                     <para>
                         scalar argument used to set the trace mode.
-                        <literal>imp=0</literal> nothing (except errors) is reported,
-                        <literal>imp=1</literal> initial and final reports,
-                        <literal>imp=2</literal> adds a report per iteration,
-                        <literal>imp&gt;2</literal> add reports on linear search. Warning,
+                        <literal>iprint=0</literal> nothing (except errors) is reported,
+                        <literal>iprint=1</literal> initial and final reports,
+                        <literal>iprint=2</literal> adds a report per iteration,
+                        <literal>iprint&gt;2</literal> add reports on linear search. Warning,
                         most of these reports are written on the Scilab standard
                         output.
                     </para>
@@ -423,7 +423,7 @@ plot(tt, yy, "b-")
 legend(["measure points", "fitted curve"]);
 xtitle("a simple fit with leastsq")
 
-// 3- how to get some information (we use imp=1)
+// 3- how to get some information (we use iprint=1)
 [f,xopt, gopt] = leastsq(1,list(myfun,tm,ym,wm),mydfun,x0)
 
 // 4- using the conjugate gradient (instead of quasi Newton)
index 546a1ea..f75f983 100644 (file)
@@ -24,7 +24,7 @@
         <title>Syntax</title>
         <synopsis>
             fopt = optim(costf, x0)
-            fopt = optim(costf [,&lt;contr&gt;],x0 [,algo] [,df0 [,mem]] [,work] [,&lt;stop&gt;] [,&lt;params&gt;] [,imp=iflag])
+            fopt = optim(costf [,&lt;contr&gt;],x0 [,algo] [,df0 [,mem]] [,work] [,&lt;stop&gt;] [,&lt;params&gt;] [,iprint=iflag])
             [fopt, xopt] = optim(...)
             [fopt, xopt, gopt] = optim(...)
             [fopt, xopt, gopt, work] = optim(...)
                 </listitem>
             </varlistentry>
             <varlistentry>
-                <term>"imp=iflag"</term>
+                <term>"iprint=iflag"</term>
                 <listitem>
                     <para>named argument used to set the trace mode (default
-                        <literal>imp=0</literal>, which prints no messages). If <varname>imp</varname>
+                        <literal>iprint=0</literal>, which prints no messages). If <varname>iprint</varname>
                         is greater or equal to 1, more information are printed, depending on the
                         algorithm chosen. More precisely:
                     </para>
                         </listitem>
                     </itemizedlist>
                     <para>
-                        If <varname>imp</varname> is lower than 0, then the cost function is evaluated every
+                        If <varname>iprint</varname> is lower than 0, then the cost function is evaluated every
                         <varname>-m</varname> iterations, with <literal>ind=1</literal>.
                     </para>
                 </listitem>
                 <term>iters</term>
                 <listitem>
                     <para>
-                        scalar, the number of iterations that is displayed when <literal>imp=2</literal>.
+                        scalar, the number of iterations that is displayed when <literal>iprint=2</literal>.
                     </para>
                 </listitem>
             </varlistentry>
                 <listitem>
                     <para>
                         scalar, the number of <literal>cost</literal> function evaluations
-                        that is displayed when <literal>imp=2</literal>.
+                        that is displayed when <literal>iprint=2</literal>.
                     </para>
                 </listitem>
             </varlistentry>
@@ -780,14 +780,14 @@ x0 = [1; -1; 1];
 [fopt, xopt, gopt] = optim(cost, "b", [-1; 0; 2], [0.5; 1; 4], x0, "gc", "ar", 3, 100, 1e-6, 1e-6, [1e-3; 1e-3; 1e-3])
 
 // Additional messages are printed in the console.
-[fopt, xopt] = optim(cost, x0, imp = 3)
+[fopt, xopt] = optim(cost, x0, iprint = 3)
 ]]>
         </programlisting>
     </refsection>
     <refsection>
         <title>Example: Print messages</title>
         <para>
-            The <literal>imp</literal> flag may take negative integer values,
+            The <literal>iprint</literal> flag may take negative integer values,
             say k. In that case, the cost function is called once every -k iterations.
             This allows to draw the function value or write a log file.
         </para>
@@ -809,12 +809,12 @@ function [f, g, ind] = cost(x, ind)
 endfunction
 
 x0 = [1; -1; 1];
-[fopt, xopt] = optim(cost, x0, imp = -1)
+[fopt, xopt] = optim(cost, x0, iprint = -1)
 ]]>
         </programlisting>
         <para>The previous script produces the following output.</para>
         <screen><![CDATA[
--->[fopt, xopt] = optim(cost, x0, imp = -1)
+-->[fopt, xopt] = optim(cost, x0, iprint = -1)
 f(x) = 6.5, |g(x)|=3.6055513
 f(x) = 2.8888889, |g(x)|=2.4037009
 f(x) = 9.861D-31, |g(x)|=1.404D-15
@@ -870,7 +870,7 @@ plot(x0(1), x0(2), "b.")
 plot(xopt(1), xopt(2), "r*")
 
 // 5. Plot the optimization process, during optimization
-[fopt, xopt] = optim (rosenbrockPlot, x0, imp = -1)
+[fopt, xopt] = optim (rosenbrockPlot, x0, iprint = -1)
 ]]>
         </programlisting>
         <scilab:image>
@@ -900,7 +900,7 @@ plot(xopt(1), xopt(2), "r*")
             contour (xdata, ydata, rosenbrockC, [1 10 100 500 1000])
             plot(x0(1), x0(2), "b.")
             plot(xopt(1), xopt(2), "r*")
-            [fopt, xopt] = optim (rosenbrockPlot, x0, imp = -1)
+            [fopt, xopt] = optim (rosenbrockPlot, x0, iprint = -1)
         </scilab:image>
 
     </refsection>
@@ -936,8 +936,8 @@ x0 = [-1.2 1.0];
             iterations
         </title>
         <para>
-            The <literal>imp</literal> option can take negative values. If the
-            <literal>imp</literal> is equal to <literal>m</literal> where
+            The <literal>iprint</literal> option can take negative values. If the
+            <literal>iprint</literal> is equal to <literal>m</literal> where
             <literal>m</literal> is a negative integer, then the cost function is
             evaluated every -<literal>m</literal> iterations, with the
             <literal>ind</literal> input argument equal to 1. The following example
@@ -971,7 +971,7 @@ _MYDATA_ = tlist (["MYDATA", "niter", "nfevals"]);
 _MYDATA_.niter = 0;
 _MYDATA_.nfevals = 0;
 
-[f, xopt] = optim(cost, x0, imp=-1);
+[f, xopt] = optim(cost, x0, iprint=-1);
 mprintf ("Number of function evaluations: %d\n", _MYDATA_.nfevals);
 mprintf ("Number of iterations: %d\n", _MYDATA_.niter);
        ]]></programlisting>
@@ -1009,7 +1009,7 @@ b = 2.0;
 c = 3.0;
 d = 4.0;
 costf = list (costfunction, a, b, c, d);
-[fopt, xopt] = optim (costf, x0, imp = 2)
+[fopt, xopt] = optim (costf, x0, iprint = 2)
 ]]>
         </programlisting>
         <para>In complex cases, the cost function may have so many parameters,
@@ -1052,7 +1052,7 @@ parameters.b = b;
 parameters.c = c;
 parameters.d = d;
 costf = list (costfunction, parameters);
-[fopt, xopt] = optim (costf, x0, imp = 2)
+[fopt, xopt] = optim (costf, x0, iprint = 2)
             ]]>
         </programlisting>
         <para>In the following example, the parameters are defined before the
@@ -1070,7 +1070,7 @@ a = 1.0;
 b = 2.0;
 c = 3.0;
 d = 4.0;
-[fopt, xopt] = optim (costfunction, x0, imp = 2)
+[fopt, xopt] = optim (costfunction, x0, iprint = 2)
 ]]>
         </programlisting>
         <para>While the previous example perfectly works, there is a risk that the
@@ -1099,7 +1099,7 @@ a = 1.0;
 b = 2.0;
 c = 3.0;
 d = 4.0;
-[fopt, xopt] = optim (costfunction, x0, imp = 2)
+[fopt, xopt] = optim (costfunction, x0, iprint = 2)
 ]]>
         </programlisting>
         <para>While the previous example perfectly works, there is a risk that the
@@ -1152,11 +1152,11 @@ mprintf("Numerical derivative:[%s]\n", strcat (string(gnd), " "));
             difference between the two gradient is enormous, which shows that the
             wrong formula has been used in the gradient.
         </para>
-        <programlisting role="example"><![CDATA[
+        <screen><![CDATA[
 Exact derivative:[-638 -88]
 Numerical derivative:[-215.6 -88]
 ]]>
-        </programlisting>
+        </screen>
     </refsection>
     <refsection>
         <title>Example: C function</title>
@@ -1174,7 +1174,7 @@ Numerical derivative:[-215.6 -88]
         <programlisting role="example"><![CDATA[
 // External function written in C (C compiler required)
 // write down the C code (Rosenbrock problem)
-C=['#include &lt;math.h&gt;'
+C=['#include <math.h>'
 'double sq(double x)'
 '{ return x*x;}'
 'void rosenc(int *ind, int *n, double *x, double *f, double *g, '
@@ -1185,12 +1185,12 @@ C=['#include &lt;math.h&gt;'
 '  p=td[0];'
 '  if (*ind==2||*ind==4) {'
 '    *f=1.0;'
-'    for (i=1;i&lt;*n;i++)'
+'    for (i=1;i<*n;i++)'
 '      *f+=p*sq(x[i]-sq(x[i-1]))+sq(1.0-x[i]);'
 '  }'
 '  if (*ind==3||*ind==4) {'
 '    g[0]=-4.0*p*(x[1]-sq(x[0]))*x[0];'
-'    for (i=1;i&lt;*n-1;i++)'
+'    for (i=1;i<*n-1;i++)'
 '      g[i]=2.0*p*(x[i]-sq(x[i-1]))-4.0*p*(x[i+1]-sq(x[i]))*x[i]-2.0*(1.0-x[i]);'
 '    g[*n-1]=2.0*p*(x[*n-1]-sq(x[*n-2]))-2.0*(1.0-x[*n-1]);'
 '  }'
@@ -1235,7 +1235,7 @@ F = ['      subroutine rosenf(ind, n, x, f, g, ti, tr, td)'
 '        if(n.gt.2) then'
 '          do i=2,n-1'
 '            g(i)=2.0d0*p*(x(i)-x(i-1)**2)-4.0d0*p*(x(i+1)-x(i)**2)*x(i)'
-'     &amp;           -2.0d0*(1.0d0-x(i))'
+'     &           -2.0d0*(1.0d0-x(i))'
 '          enddo'
 '        endif'
 '        g(n)=2.0d0*p*(x(n)-x(n-1)**2)-2.0d0*(1.0d0-x(n))'
@@ -1287,7 +1287,7 @@ p = 100;
 fortransource = ['      subroutine rosenf(ind,n,x,f,g,izs,rzs,dzs)'
 'C     -------------------------------------------'
 'c     Example of cost function given by a subroutine'
-'c     if n&lt;=2 returns ind=0'
+'c     if n<=2 returns ind=0'
 'c     f.bonnans, oct 86'
 '      implicit double precision (a-h,o-z)'
 '      real rzs(1)'
@@ -1327,7 +1327,7 @@ fortransource = ['      subroutine rosenf(ind,n,x,f,g,izs,rzs,dzs)'
 '        ip1=i+1'
 '        g(i)=2.0d+0*dzs(1)*(x(i)-x(im1)**2)'
 '30      g(i)=g(i) -4.0d+0*dzs(1)*(x(ip1)-x(i)**2)*x(i) - '
-'     &amp;        2.0d+0*(1.0d+0-x(i))'
+'     &        2.0d+0*(1.0d+0-x(i))'
 '      g(n)=2.0d+0*dzs(1)*(x(n)-x(nm1)**2) - 2.0d+0*(1.0d+0-x(n))'
 '      return'
 '      end'];
@@ -1366,19 +1366,19 @@ x0 = 1.2 * ones(1, 5);
             instructions, which allows the compiler to import the "nird"
             symbol.
         </para>
-        <programlisting role="example"><![CDATA[
+        <screen><![CDATA[
 fortransource = ['subroutine rosenf(ind,n,x,f,g,izs,rzs,dzs)'
 'cDEC$ IF DEFINED (FORDLL)'
 'cDEC$ ATTRIBUTES DLLIMPORT:: /nird/'
 'cDEC$ ENDIF'
 'C     -------------------------------------------'
 'c     Example of cost function given by a subroutine'
-'c     if n&lt;=2 returns ind=0'
+'c     if n<=2 returns ind=0'
 'c     f.bonnans, oct 86'
 '      implicit double precision (a-h,o-z)'
 [etc...]
 ]]>
-        </programlisting>
+        </screen>
     </refsection>
     <refsection>
         <title>Example: Fortran function with tab saving
@@ -1444,7 +1444,7 @@ fortransource = ['      subroutine rosenf(ind,n,x,f,g,izs,rzs,dzs)'
 '        ip1=i+1'
 '        g(i)=2.0d+0*dzs(1)*(x(i)-x(im1)**2)'
 '30      g(i)=g(i) -4.0d+0*dzs(1)*(x(ip1)-x(i)**2)*x(i) - '
-'     &amp;        2.0d+0*(1.0d+0-x(i))'
+'     &        2.0d+0*(1.0d+0-x(i))'
 '      g(n)=2.0d+0*dzs(1)*(x(n)-x(nm1)**2) - 2.0d+0*(1.0d+0-x(n))'
 '      return'
 '      end'];
index a5c78a1..bd78619 100644 (file)
             the compiled qp_solve primitive. It is provided as a facility, in order to
             be a direct replacement for the former quapro solver : indeed, the qpsolve
             solver has been designed so that it provides the same interface, that is,
-            the same input/output arguments. But the x0 and imp input arguments are
+            the same input/output arguments. But the x0 and iprint input arguments are
             available in quapro, but not in qpsolve.
         </para>
     </refsection>
index f65bb58..bfcd23a 100644 (file)
@@ -10,9 +10,9 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 //
-function [p,err]=datafit(imp,G,varargin)
+function [p,err]=datafit(iprint,G,varargin)
     //
-    //         [p,err]=datafit([imp,] G [,DG],Z [,W],...)
+    //         [p,err]=datafit([iprint,] G [,DG],Z [,W],...)
     //
     //         Function used for fitting data to a model.
     // For a given function G(p,z), this function finds the best vector
@@ -52,10 +52,10 @@ function [p,err]=datafit(imp,G,varargin)
 
     [lhs,rhs]=argn(0)
 
-    if type(imp)<>1 then
+    if type(iprint)<>1 then
         varargin(0)=G
-        G=imp
-        imp=0
+        G=iprint
+        iprint=0
     end
 
     if type(G)==15 then
@@ -183,7 +183,7 @@ function [p,err]=datafit(imp,G,varargin)
     " g=0*p;"
     "end"])
 
-    [err,p]=optim(costf,varargin(:),imp=imp)
+    [err,p]=optim(costf,varargin(:),iprint=iprint)
 
 
 endfunction
index 007a5e2..5489c63 100644 (file)
@@ -10,7 +10,7 @@
 // For more information, see the COPYING file which you should have received
 // along with this program.
 
-function [f,x,g]=leastsq(imp,fun,varargin)
+function [f,x,g]=leastsq(iprint,fun,varargin)
 
     //                                                        n     p
     //   min sum (fun(x).^2)    where fun is a function from R  to R
@@ -18,10 +18,10 @@ function [f,x,g]=leastsq(imp,fun,varargin)
     //
     // [f]=fun(x) computes the value f of the function at the point x
     // and the gradient g of f at x g(i,j)=Dfi/dxj
-    if type(imp)<>1 then
+    if type(iprint)<>1 then
         varargin(0)=fun
-        fun=imp
-        imp=0
+        fun=iprint
+        iprint=0
     end
 
     if type(fun)==15 then
@@ -101,6 +101,6 @@ function [f,x,g]=leastsq(imp,fun,varargin)
         "g=2*(gf''*ff(:))"])
     end
 
-    [f,x,g]=optim(%opt,varargin(:),imp=imp)
+    [f,x,g]=optim(%opt,varargin(:),iprint=iprint)
 endfunction
 
index cba4a32..9624dbd 100644 (file)
@@ -91,7 +91,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
     int iWorkSizeI  = 0;
     int iNitv       = 0;
     int io          = 0; // not used in scilab 6 and more
-    int iImp        = 0;
+    int iPrint        = 0;
     int iZero       = 0;
     int iOne        = 1;
     double df0      = 1;
@@ -122,24 +122,24 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
         // get optionals
         for (const auto& o : opt)
         {
-            // "imp"
-            if (o.first == L"imp")
+            // "iprint"
+            if (o.first == L"iprint")
             {
                 if (o.second->isDouble() == false)
                 {
-                    Scierror(999, _("%s: Wrong type for input argument #%s: A scalar expected.\n"), "optim", "imp");
+                    Scierror(999, _("%s: Wrong type for input argument #%s: A scalar expected.\n"), "optim", "iprint");
                     throw ast::ScilabException();
                 }
 
-                types::Double* pDblImp = o.second->getAs<types::Double>();
+                types::Double* pDblPrint = o.second->getAs<types::Double>();
 
-                if (pDblImp->isScalar() == false)
+                if (pDblPrint->isScalar() == false)
                 {
-                    Scierror(999, _("%s: Wrong type for input argument #%s: A scalar expected.\n"), "optim", "imp");
+                    Scierror(999, _("%s: Wrong type for input argument #%s: A scalar expected.\n"), "optim", "iprint");
                     throw ast::ScilabException();
                 }
 
-                iImp = (int)pDblImp->get(0);
+                iPrint = (int)pDblPrint->get(0);
             }
             // "nap"
             else if (o.first == L"nap")
@@ -653,7 +653,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
                     Scierror(134, _("%s: Problem with initial constants in simul.\n"), "optim");
                     throw ast::ScilabException();
                 }
-            
+
                 if (piIzs)
                 {
                     delete[] piIzs;
@@ -785,7 +785,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
             double dEpsg1 = dEpsg;
 
             C2F(n1qn1)(costf, &iSizeX0, pdblX0, &dF, pdblG,
-                       pdblVar, &dEpsg, &iMode, &iItMax, &iNap, &iImp, &io, pdblWork,
+                       pdblVar, &dEpsg, &iMode, &iItMax, &iNap, &iPrint, &io, pdblWork,
                        piIzs, pfRzs, pdblDzs);
 
             dEpsg = sqrt(dEpsg);
@@ -804,7 +804,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
                 iIndOpt = 5;
             }
 
-            if (checkOptimError(iArret, iIndOpt, iImp, dEpsg))
+            if (checkOptimError(iArret, iIndOpt, iPrint, dEpsg))
             {
                 throw ast::ScilabException();
             }
@@ -853,7 +853,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
             iIndSim = 4;
             costf(&iIndSim, &iSizeX0, pDblX0->get(), &dF, pdblG, piIzs, pfRzs, pdblDzs);
             C2F(n1qn3)( costf, C2F(fuclid), C2F(ctonb), C2F(ctcab), &iSizeX0, pdblX0,
-                        &dF, pdblG, &dxmin, &df0, &dEpsg, &iImp, &io, &iMode, &iItMax,
+                        &dF, pdblG, &dxmin, &df0, &dEpsg, &iPrint, &io, &iMode, &iItMax,
                         &iNap, pdblWork, &iWorkSize, piIzs, pfRzs, pdblDzs);
 
             switch (iMode)
@@ -884,7 +884,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
                     iIndOpt = 9;
             }
 
-            if (checkOptimError(iArret, iIndOpt, iImp, dEpsg))
+            if (checkOptimError(iArret, iIndOpt, iPrint, dEpsg))
             {
                 throw ast::ScilabException();
             }
@@ -913,7 +913,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
             }
 
             C2F(n1fc1)(costf, C2F(fuclid), &iSizeX0, pdblX0, &dF, pdblG,
-                       pdblEpsx, &df0, &dEpsf, &dTol, &iImp, &io, &iMode,
+                       pdblEpsx, &df0, &dEpsf, &dTol, &iPrint, &io, &iMode,
                        &iItMax, &iNap, &iMem, piWork, pdblWork, pdblWork2,
                        piIzs, pfRzs, pdblDzs);
 
@@ -941,7 +941,7 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
                     iIndOpt = 9;
             }
 
-            if (checkOptimError(iArret, iIndOpt, iImp, dEpsg))
+            if (checkOptimError(iArret, iIndOpt, iPrint, dEpsg))
             {
                 throw ast::ScilabException();
             }
@@ -957,11 +957,11 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
             }
 
             iIndOpt = 1 + pDblWork ? 1 : 0;
-            C2F(qnbd)(&iIndOpt, costf, &iSizeX0, pdblX0, &dF, pdblG, &iImp, &io, &dTol, &iNap,
+            C2F(qnbd)(&iIndOpt, costf, &iSizeX0, pdblX0, &dF, pdblG, &iPrint, &io, &dTol, &iNap,
                       &iItMax, &dEpsf, &dEpsg, pdblEpsx, &df0, pdblBinf, pdblBsub,
                       &iNfac, pdblWork, &iWorkSize, piWork, &iWorkSizeI, piIzs, pfRzs, pdblDzs);
 
-            if (checkOptimError(iArret, iIndOpt, iImp, dEpsg))
+            if (checkOptimError(iArret, iIndOpt, iPrint, dEpsg))
             {
                 throw ast::ScilabException();
             }
@@ -989,11 +989,11 @@ types::Function::ReturnValue sci_optim(types::typed_list &in, types::optional_li
 
             iIndOpt = 1;
             C2F(gcbd)(&iIndOpt, costf, C2F(optim).nomsub, &iSizeX0, pdblX0, &dF, pdblG,
-                      &iImp, &io, &dTol, &iNap, &iItMax, &dEpsf, &dEpsg, pdblEpsx, &df0,
+                      &iPrint, &io, &dTol, &iNap, &iItMax, &dEpsf, &dEpsg, pdblEpsx, &df0,
                       pdblBinf, pdblBsub, &iNfac, pdblWork, &iWorkSize, piWork, &iWorkSizeI,
                       piIzs, pfRzs, pdblDzs);
 
-            if (checkOptimError(iArret, iIndOpt, iImp, dEpsg))
+            if (checkOptimError(iArret, iIndOpt, iPrint, dEpsg))
             {
                 throw ast::ScilabException();
             }
index 9b728f9..6aae7d0 100644 (file)
@@ -22,9 +22,9 @@ extern "C" {
 #include "configvariable_interface.h"
 }
 // return 0 = ok, return 1 = error
-int checkOptimError(int iarret, int indopt, int imp, double dEpsg)
+int checkOptimError(int iarret, int indopt, int iprint, double dEpsg)
 {
-    if (iarret || (imp == 0 && indopt > 0))
+    if (iarret || (iprint == 0 && indopt > 0))
     {
         return 0;
     }
index ec4fb0a..0979c0c 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -10,8 +10,8 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine fprf2(iflag,ntot,nv,io,zero,s2,eps,al,imp,u,eta,mm1,jc,
-     &                 ic,r,a,e,rr,xpr,y,w1,w2)
+      subroutine fprf2(iflag,ntot,nv,io,zero,s2,eps,al,iprint,u,eta,mm1,
+     &                 jc,ic,r,a,e,rr,xpr,y,w1,w2)
 c
       implicit double precision (a-h,o-z)
       common /fprf2c/ u1,nc
@@ -49,13 +49,13 @@ C
 C
 C
 C
-C      imp > 5    one prints final information
+C      iprint > 5    one prints final information
 C
 C
-C      imp > 6    one prints information at each iteration
+C      iprint > 6    one prints information at each iteration
 C
 C
-C      imp > 7    one prints also
+C      iprint > 7    one prints also
 C
 C                - at each iteration the choleski matrix
 C                - and the initial information such as (pi,pj) ...
@@ -81,12 +81,12 @@ C
       gama = .99d0
       dzero = 10.d0 * zero
 C                     initial printouts
-      if (imp .gt. 7) call n1fc1o(io,21,nt1,mm1,i3,i4,i5,deps,d2,a,r)
+      if (iprint .gt. 7) call n1fc1o(io,21,nt1,mm1,i3,i4,i5,deps,d2,a,r)
 C
 C                     initial point
 C
  100  if (iflag .ne. 3) goto 110
-      if (imp .gt. 6) call n1fc1o(io,22,nv,i2,i3,i4,jc,d1,d2,d3,d4)
+      if (iprint .gt. 6) call n1fc1o(io,22,nv,i2,i3,i4,jc,d1,d2,d3,d4)
       j0 = nt1
       ps = u1 * (a(nt1)-deps)
       ment = (nt1-1) * mm1
@@ -94,7 +94,7 @@ C
         jk = ment + jc(k)
  103  ps = ps + xpr(k)*r(jk)
       if (ps .lt. s2) goto 107
-      if (imp .gt. 0) call n1fc1o(io,23,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,23,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       iflag = 1
       return
  107  nv = nv + 1
@@ -120,7 +120,7 @@ C           initialize with one feasible gradient
         jc(2) = j
  150  continue
       if (jc(2) .gt. 0) goto 160
-      if (imp .gt. 0) call n1fc1o(io,24,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,24,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       iflag = 2
       return
  160  j = jc(2)
@@ -138,14 +138,14 @@ C           initialize with one feasible gradient
       xpr(2) = 1.d0
       u1 = 0.d0
       u2 = -r(jj)
-      if (imp .gt. 6) call n1fc1o(io,25,j,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 6) call n1fc1o(io,25,j,i2,i3,i4,i5,d1,d2,d3,d4)
 C
 C                 stopping criterion
 C
  200  iterpr = iterpr + 1
-      if (imp .gt. 6) call n1fc1o(io,26,nv,i2,i3,i4,i5,d1,d2,d3,xpr)
+      if (iprint .gt. 6) call n1fc1o(io,26,nv,i2,i3,i4,i5,d1,d2,d3,xpr)
       if (iterpr .le. itmax) goto 205
-      if (imp .gt. 0) call n1fc1o(io,27,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,27,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       iflag = 4
       return
  205  s2 = (-deps)*u1 - u2
@@ -211,21 +211,21 @@ C                     now the remaining ones
  280  nc = nc + 1
       nv = nv + 1
       jc(nv) = j0
-      if (imp .gt. 6) call n1fc1o(io,28,j0,i2,i3,i4,i5,s2,sp,d3,d4)
+      if (iprint .gt. 6) call n1fc1o(io,28,j0,i2,i3,i4,i5,s2,sp,d3,d4)
       goto 300
 C         first set of optimality conditions satisfied
  290  if (u1 .ge. (-dble(float(nv)))*dzero) goto 900
       j0 = 1
       nv = nv + 1
       jc(nv) = 1
-      if (imp .gt. 6) call n1fc1o(io,29,i1,i2,i3,i4,i5,s2,u1,d3,d4)
+      if (iprint .gt. 6) call n1fc1o(io,29,i1,i2,i3,i4,i5,s2,u1,d3,d4)
 C
 C               augmenting r
 C
  300  nv1 = nv - 1
       do 305 k = 1,nv1
         if (jc(k) .ne. j0) goto 305
-        if (imp .gt. 0) call n1fc1o(io,30,j0,i2,i3,i4,i5,d1,d2,d3,d4)
+        if (iprint .gt. 0) call n1fc1o(io,30,j0,i2,i3,i4,i5,d1,d2,d3,d4)
         iflag = 3
         return
  305  continue
@@ -264,7 +264,7 @@ C          solving the corral-system
 C
  400  k = k00
       if (k .gt. nv) goto 430
-      if (imp .gt. 7) call n1fc1o(io,31,nv,mm1,i3,i4,i5,d1,d2,rr,r)
+      if (iprint .gt. 7) call n1fc1o(io,31,nv,mm1,i3,i4,i5,d1,d2,rr,r)
  410  j = jc(k)
       ps1 = a(j)
       ps2 = e(j)
@@ -332,7 +332,7 @@ C           interpolating between x and y
         ps = teta*xpr(k) + (1.d0-teta)*y(k)
         if (ps .le. dzero) ps = 0.d0
  570  xpr(k) = ps
-      if (imp .le. 6) goto 600
+      if (iprint .le. 6) goto 600
       ps1 = 0.d0
       ps2 = 0.d0
       do 580 k = 1,nv
@@ -354,7 +354,7 @@ C
       w12s = 0.d0
       l = jc(k0)
       if (l .ne. 1) nc = nc - 1
-      if (imp .gt. 6) call n1fc1o(io,32,k0,l,i3,i4,i5,y(k0),ps1,ps2,d4)
+      if (iprint.gt.6) call n1fc1o(io,32,k0,l,i3,i4,i5,y(k0),ps1,ps2,d4)
       if (k0 .gt. nv) goto 400
       k1 = k0 - 1
       do 620 k = k0,nv
@@ -397,7 +397,7 @@ C
         if (j .ne. 0) al(j) = xpr(k)
  940  continue
       u = u1
-      if (imp .le. 5) return
+      if (iprint .le. 5) return
       call n1fc1o(io,34,nc,nv,i3,i4,jc,s2,sp,u1,d4)
       return
       end
index 70d0a58..873a046 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) 1985 - INRIA - F. BONNANS
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine gcbd(indgc,simul,nomf,n,x,f,g,imp,io,zero,
+      subroutine gcbd(indgc,simul,nomf,n,x,f,g,iprint,io,zero,
      &napmax,itmax,epsf,epsg,epsx,df0,binf,bsup,nfac,
      &vect,nvect,ivect,nivect,izs,rzs,dzs)
 c!but
@@ -59,7 +59,7 @@ c     n dim de x                                                 e
 c     x variables a optimiser (controle)                          es
 c     f valeur du critere                                         s
 c     g gradient de f                                             s
-c     imp si =0 pas d impression
+c     iprint si =0 pas d impression
 c             1  impressions en debut etfin dexecution
 c             2  3 lignes a chaque iteration
 c             >=3 nombreuses impressions    e
@@ -170,7 +170,7 @@ c
       ialg(9)=12
 c
 c---- initial printing
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
          write (bufstr,900)
          call basout(io_out, io, bufstr(1:lnblnk(bufstr)))
          write (bufstr,901) n
@@ -183,7 +183,7 @@ c---- initial printing
          call basout(io_out, io, bufstr(1:lnblnk(bufstr)))
          write (bufstr,905) napmax
          call basout(io_out, io, bufstr(1:lnblnk(bufstr)))
-         write (bufstr,906) imp
+         write (bufstr,906) iprint
          call basout(io_out, io, bufstr(1:lnblnk(bufstr)))
       endif
 900   format (" gcdb: entry point")
@@ -192,17 +192,17 @@ c---- initial printing
 903   format (5x,"relative precision on g (epsg):",d9.2)
 904   format (5x,"maximal number of iterations (itmax):",i6)
 905   format (5x,"maximal number of simulations (napmax):",i6)
-906   format (5x,"printing level (imp):",i4)
+906   format (5x,"printing level (iprint):",i4)
 c
 c     verification des entrees
       ii=min(n,napmax,itmax)
       if(ii.gt.0)go to 10
       indgc=-11
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123) indgc
         call basout(io ,lp ,bufstr(1:lnblnk(bufstr)))
       endif
-      
+
 123   format(' gcbd : return with indgc=',i8)
       return
 10    aa=min(zero,epsg,df0)
@@ -210,7 +210,7 @@ c     verification des entrees
 11    aa=min(aa,epsx(i))
       if(aa.gt.0.0d+0) goto 12
       indgc=-12
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123) indgc
         call basout(io ,lp ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -252,8 +252,9 @@ c
       endif
 c
       call zgcbd(simul,n,binf,bsup,x,f,g,zero,napmax,itmax,indgc,ivect
-     &(nindic),nfac,imp,io,epsx,epsf,epsg,vect(ndir),df0,vect(ndiag),
-     &vect(nx2),izs,rzs,dzs,vect(ny),vect(ns),vect(nz),vect(nys),
-     &vect(nzs),nt,ivect(nindex),vect(nd),vect(ng),alg,ialg,nomf)
+     &(nindic),nfac,iprint,io,epsx,epsf,epsg,vect(ndir),df0,
+     &vect(ndiag),vect(nx2),izs,rzs,dzs,vect(ny),vect(ns),vect(nz),
+     &vect(nys),vect(nzs),nt,ivect(nindex),vect(nd),vect(ng),alg,ialg,
+     &nomf)
       return
       end
index 2889f05..1f063d2 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -10,8 +10,8 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine n1fc1(simul,prosca,n,xn,fn,g,dxmin,df1,epsf,zero,imp,
-     &                 io,mode,iter,nsim,memax,iz,rz,dz,izs,rzs,dzs)
+      subroutine n1fc1(simul,prosca,n,xn,fn,g,dxmin,df1,epsf,zero,
+     &              iprint,io,mode,iter,nsim,memax,iz,rz,dz,izs,rzs,dzs)
 C          dimension iz=2*(memax+1)
 C          dimension rz=5*n+(n+4)*memax
 C          dimension dz=(memax+9)*memax+8
@@ -53,18 +53,18 @@ C
       niz = 2 * (memax+1)
       nrz = nq + n*memax - 1
       ndz = nw2 + memax
-      if (imp .gt. 0) call n1fc1o(io,2,n,memax,niz,nrz,ndz,d1,d2,d3,d4)
+      if (iprint.gt.0) call n1fc1o(io,2,n,memax,niz,nrz,ndz,d1,d2,d3,d4)
       do 110 i = 1,niz
  110  iz(i) = 0
       do 120 i = 1,nrz
  120  rz(i) = 0.d0
       do 130 i = 1,ndz
  130  dz(i) = 0.d0
-      call n1fc1a(simul,prosca,n,mode,xn,fn,g,df1,epsf,dxmin,imp,zero,
-     &            io,ntot,iter,nsim,memax,rz(ns),rz(ngd),rz(nx),rz(nsa),
-     &            rz(ngg),rz(nal),rz(naps),rz(nanc),rz(npoids),rz(nq),
-     &            iz(njc),iz(nic),dz(nr),dz(na),dz(ne),dz(nrr),dz(nxga),
-     &            dz(ny),dz(nw1),dz(nw2),izs,rzs,dzs)
+      call n1fc1a(simul,prosca,n,mode,xn,fn,g,df1,epsf,dxmin,iprint,
+     &            zero,io,ntot,iter,nsim,memax,rz(ns),rz(ngd),rz(nx),
+     &            rz(nsa),rz(ngg),rz(nal),rz(naps),rz(nanc),rz(npoids),
+     &            rz(nq),iz(njc),iz(nic),dz(nr),dz(na),dz(ne),dz(nrr),
+     &            dz(nxga),dz(ny),dz(nw1),dz(nw2),izs,rzs,dzs)
       iz(1) = ntot
  999  return
       end
index ec2e4cb..5c8d3ea 100644 (file)
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine n1fc1a(simul,prosca,n,mode,xn,fn,g,df0,eps0,dx,imp,
+      subroutine n1fc1a(simul,prosca,n,mode,xn,fn,g,df0,eps0,dx,iprint,
      &                  zero,io,ntot,iter,nsim,memax,s,gd,x,sa,gg,al,
      &                  aps,anc,poids,q,jc,ic,r,a,e,rr,xga,y,w1,w2,izs,
      &                  rzs,dzs)
@@ -32,8 +32,8 @@ C                5 max simulations
 C                6 impossible d'aller au dela de dx
 C                7 fprf2 mis en echec
 C                8 on commence a boucler
-C      imp
-C                <0 indic=1 toutes les -imp iterations
+C      iprint
+C                <0 indic=1 toutes les -iprint iterations
 C                0 pas d'impressions
 C                1 impressions initiales et finales
 C                2 impressions a chaque convergence
@@ -93,24 +93,24 @@ C
       call prosca(n,g,g,ps,izs,rzs,dzs)
       if (ps .gt. 0.d0) goto 60
       mode = 2
-      if (imp .ne. 0) call n1fc1o(io,3,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .ne. 0) call n1fc1o(io,3,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       goto 900
  60   diam2 = 100. * df0 * df0 / ps
       eta2 = 1.d-2 * eps0 * eps0 / diam2
       ap = zero * df0 / diam2
-      if (imp .gt. 2) call n1fc1o(io,4,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 2) call n1fc1o(io,4,i1,i2,i3,i4,i5,d1,d2,d3,d4)
 C
 C              boucle
 C
  100  iter = iter + 1
       itimp = itimp + 1
       if (iter .lt. itmax) goto 110
-      if (imp .gt. 0) call n1fc1o(io,5,iter,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,5,iter,i2,i3,i4,i5,d1,d2,d3,d4)
       mode = 4
       goto 900
  110  ntot = ntot + 1
       if (logic .eq. 3) ro = ro * dsqrt(s2)
-      if (itimp .ne. -imp) goto 200
+      if (itimp .ne. -iprint) goto 200
       itimp = 0
       indic = 1
       call simul(indic,n,xn,f,g,izs,rzs,dzs)
@@ -123,13 +123,13 @@ C
       eps = dmax1(eps,eps0)
       call fremf2(prosca,iflag,n,ntot,nta,memax1,q,poids,e,a,r,izs,rzs,
      &            dzs)
-      call fprf2(iflag,ntot,nv,io,zero,s2,eps,al,imp,u,eta2,memax1,jc,
-     &           ic,r,a,e,rr,xga,y,w1,w2)
+      call fprf2(iflag,ntot,nv,io,zero,s2,eps,al,iprint,u,eta2,memax1,
+     &           jc,ic,r,a,e,rr,xga,y,w1,w2)
 C
 C         fin anormale de fprf2
 C
       if (iflag .eq. 0) goto 250
-      if (imp .gt. 0) call n1fc1o(io,6,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,6,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       mode = 7
       goto 900
  250  nta = ntot
@@ -142,7 +142,7 @@ C                                alors nr g est "nul")
 C
       if (nv .lt. n+2) goto 260
       eta2 = dmax1(eta2,10.d0*s2)
-      if (imp .ge. 2) call n1fc1o(io,7,i1,i2,i3,i4,i5,eta2,d2,d3,d4)
+      if (iprint .ge. 2) call n1fc1o(io,7,i1,i2,i3,i4,i5,eta2,d2,d3,d4)
  260  if (s2 .gt. eta2) goto 300
 C
 C         calcul de la precision
@@ -152,10 +152,10 @@ C         calcul de la precision
         if (j .gt. 0) z = z + xga(k)*poids(j)
  270  continue
       epsm = dmin1(eps,z)
-      if (imp.ge.2) call n1fc1o(io,8,iter,nsim,i3,i4,i5,fn,epsm,s2,d4)
+      if(iprint.ge.2) call n1fc1o(io,8,iter,nsim,i3,i4,i5,fn,epsm,s2,d4)
       if (epsm .gt. eps0) goto 280
       mode = 1
-      if (imp .gt. 0) call n1fc1o(io,9,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,9,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       goto 900
 C
 C         diminution de epsilon
@@ -168,9 +168,9 @@ C
 C                 suite des iterations
 C                    impressions
 C
- 300  if (imp .gt. 3) call n1fc1o(io,10,i1,i2,i3,i4,i5,d1,d2,d3,d4)
-      if (imp .gt. 2) call n1fc1o(io,11,iter,nsim,nv,i4,i5,fn,eps,s2,u)
-      if (imp .ge. 6) call n1fc1o(io,12,ntot,i2,i3,i4,i5,d1,d2,d3,poids)
+ 300  if (iprint .gt. 3) call n1fc1o(io,10,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint.gt.2) call n1fc1o(io,11,iter,nsim,nv,i4,i5,fn,eps,s2,u)
+      if(iprint.ge.6) call n1fc1o(io,12,ntot,i2,i3,i4,i5,d1,d2,d3,poids)
 C                test de non-pivotage
       if (logic .ne. 3) goto 350
       z = 0.d0
@@ -178,7 +178,7 @@ C                test de non-pivotage
         z1 = s(i) - sa(i)
  310  z = z + z1*z1
       if (z .gt. 10.d0*zero*zero*s2) goto 350
-      if (imp .gt. 0) call n1fc1o(io,13,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint .gt. 0) call n1fc1o(io,13,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       mode = 8
       goto 900
 C
@@ -204,11 +204,11 @@ C                 calcul de la resolution minimale, fonction de dx
       tmin = 1.d0 / tmin
       if (iter .eq. 1) roa = ro
       call nlis2(simul,prosca,n,xn,fn,fpn,ro,tmin,tmax,s,s2,g,gd,alfa,
-     &           beta,imp,io,logic,nsim,napmax,x,tol,ap,tps,tnc,gg,izs,
-     &           rzs,dzs)
+     &         beta,iprint,io,logic,nsim,napmax,x,tol,ap,tps,tnc,gg,izs,
+     &         rzs,dzs)
       if (logic.eq.0 .or. logic.eq.2 .or. logic.eq.3) goto 380
 C                 sortie par anomalie dans nlis2
-      if (imp .le. 0) goto 375
+      if (iprint .le. 0) goto 375
       if (logic.eq.6 .or. logic.lt.0)
      &  call n1fc1o(io,14,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       if (logic .eq. 4) call n1fc1o(io,15,i1,i2,i3,i4,i5,d1,d2,d3,d4)
@@ -231,7 +231,7 @@ C              1ere iteration, ajustement de ap, diam et eta
       ajust = ro / roa
       if (logic .ne. 3) diam2 = diam2 * ajust * ajust
       if (logic .ne. 3) eta2 = eta2 / (ajust*ajust)
-      if (imp .ge. 2) call n1fc1o(io,18,i1,i2,i3,i4,i5,diam2,eta2,ap,d4)
+      if(iprint.ge.2) call n1fc1o(io,18,i1,i2,i3,i4,i5,diam2,eta2,ap,d4)
  390  mm = memax - 1
       if (logic .eq. 2) mm = memax - 2
       if (ntot .le. mm) goto 400
@@ -242,10 +242,10 @@ C
      &           ic,izs,rzs,dzs)
       iflag = 1
       nta = ntot
-      if (imp .ge. 2)
+      if (iprint .ge. 2)
      &  call n1fc1o(io,19,iter,nsim,ntot,i4,i5,fn,d2,d3,d4)
 C
- 400  if (imp .ge. 5) call n1fc1o(io,20,logic,i2,i3,i4,i5,ro,tps,tnc,d4)
+ 400  if(iprint.ge.5) call n1fc1o(io,20,logic,i2,i3,i4,i5,ro,tps,tnc,d4)
       if (logic .eq. 3) goto 500
 C
 C                 iteration de descente
index a10bc2b..37191a9 100644 (file)
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine n1gc2 (simul,prosca,n,x,f,g,dxmin,df1,epsrel,imp,io,
+      subroutine n1gc2 (simul,prosca,n,x,f,g,dxmin,df1,epsrel,iprint,io,
      /                  mode,niter,nsim,rz,nrz,izs,rzs,dzs)
       implicit double precision (a-h,o-z)
 c!but
@@ -34,18 +34,18 @@ c declaration des tableaux
       integer izs(*)
 c declaration des scalaires
       double precision   f, epsrel, dxmin, df1
-      integer   n, nrz, imp, nsim, mode
+      integer   n, nrz, iprint, nsim, mode
       integer    id, ix, ig, iaux, ih, memh
       character bufstr*(4096)
 c
       external    simul, prosca
 c
-      if (imp .gt. 0) then
+      if (iprint .gt. 0) then
       
       write(bufstr,1) n
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr))) 
       
-      write(bufstr,11) nrz,niter,nsim,imp
+      write(bufstr,11) nrz,niter,nsim,iprint
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr))) 
       
       write(bufstr,12) epsrel,df1,dxmin
@@ -59,7 +59,7 @@ c
      / dxmin.le.zero .or. df1.le.zero
      / .or. epsrel.le.zero .or. epsrel.gt.un ) then
       mode=2
-      if (imp .gt. 0) then
+      if (iprint .gt. 0) then
         write(bufstr,3)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -84,11 +84,11 @@ c
       endif
 c
 c appel du sous-programme n1gc2a qui effectue la reelle optimisation
-      call n1gc2a(simul,prosca,n,x,f,g,dxmin,df1,epsrel,imp,io,
+      call n1gc2a(simul,prosca,n,x,f,g,dxmin,df1,epsrel,iprint,io,
      /            niter,nsim,mode,memh,rz(id),rz(ix),rz(ig),
      /            rz(iaux),rz(ih),izs,rzs,dzs)
 c
-100   if (imp .gt. 0) then
+100   if (iprint .gt. 0) then
       if (mode .eq. 3) then
       write(bufstr,2)
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
index d9946d6..c495752 100644 (file)
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine n1gc2a(simul,prosca,n,x,f,g,dx,df1,eps,imp,io,
+      subroutine n1gc2a(simul,prosca,n,x,f,g,dx,df1,eps,iprint,io,
      /                  niter,nsim,info,memh,d,xx,gg,tabaux,h,
      /                  izs,rzs,dzs)
       implicit double precision (a-h,o-z)
@@ -28,7 +28,7 @@ c declaration des scalaires
       double precision   dg1, dg, alpha, normg0, aux1, aux2, mu, eta,
      / omega, normg, gcarre, ggcarr, nu, sigma, sscalg, uscalg,
      / sscaek
-      integer  n, memh, imp, io, nsim, niter, info
+      integer  n, memh, iprint, io, nsim, niter, info
       integer  memuti, nrzuti, memsup, m, retour, iter,
      /   ntotap, nmisaj, i, iu, is, ieta, inu, j, kj, k, kp1
       logical  gc, iterqn, intfor, redfor, redem, termi
@@ -48,7 +48,7 @@ c
       if (memh .ge. memuti) then
       gc=.false.
       nrzuti=memuti+4*n
-      if (imp .gt. 1) then 
+      if (iprint .gt. 1) then 
       write(bufstr,1) nrzuti
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -62,7 +62,7 @@ c m est le nombre de mises a jour admissible
 c memuti est ici le nombre de places memoire utilisees pour stocker h
       memuti=m * memsup
       nrzuti=memuti+4*n
-      if (imp .gt. 1) then
+      if (iprint .gt. 1) then
         write(bufstr,2) m
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         write(bufstr,3) nrzuti
@@ -145,10 +145,10 @@ c
       xx(j)=x(j)
       gg(j)=g(j)
 6000  continue
-      call n1gc2b(n,simul,prosca,xx,f,dg,alpha,d,x,g,imp,io,retour,
+      call n1gc2b(n,simul,prosca,xx,f,dg,alpha,d,x,g,iprint,io,retour,
      /           ntotap,nsim,intfor,dx,eps,izs,rzs,dzs)
 c
-      if (imp .gt. 3) then
+      if (iprint .gt. 3) then
       write(bufstr,6003)
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -156,7 +156,7 @@ c
       info=6
       return
       else if (retour .eq. 1) then
-      if (imp .gt. 1) then
+      if (iprint .gt. 1) then
         write(bufstr,6002) iter,ntotap
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -166,7 +166,7 @@ c calcul de (g,g)
       if((i .gt. 1) .and. gc) ggcarr=gcarre
       call prosca(n,g,g,gcarre,izs,rzs,dzs)
       normg=sqrt(gcarre)
-      if (imp .gt. 2) then
+      if (iprint .gt. 2) then
         write(bufstr,6001)iter,ntotap,f
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -365,7 +365,7 @@ c test:la direction de recherche est elle bien de descente
       call prosca(n,d,g,dg1,izs,rzs,dzs)
       if (dg1 .ge. zero) then
       info=7
-      if (imp .gt. 1) then
+      if (iprint .gt. 1) then
         write(bufstr,10101) dg1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
index c991a18..9ebd938 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine n1gc2b(n,simul,prosca,xinit,f,dg,alpha,d,
-     /                  xfinal,gfinal,imp,io,retour,ntotap,nsim,
+     /                  xfinal,gfinal,iprint,io,retour,ntotap,nsim,
      /                  intfor,dx,eps,izs,rzs,dzs)
 c
       implicit double precision (a-h,o-z)
@@ -29,7 +29,7 @@ c declarations des tableaux
 c declarations des scalaires
       double precision f, finit, dg, alpha, eps, dx, ap, dp, fp,
      /                  aux1, aux2, pas, at, dal, bsup, delta
-      integer  n, imp, io, retour, nsim, ntotap, nappel, indic, j
+      integer  n, iprint, io, retour, nsim, ntotap, nappel, indic, j
       logical  intfor, maxpas, rfinie, accept, encadr, depas
       external prosca, simul
       character bufstr*(4096)
@@ -42,7 +42,7 @@ c initialisations
       ap=zero
       fp=finit
       dp=dg
-      if (imp .gt. 3) then
+      if (iprint .gt. 3) then
          write(bufstr,1) alpha, dg
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -52,7 +52,7 @@ c calcul de la longueur du pas
 c test d'erreur dans la recherche lineaire
 1000  continue
       if (alpha * pas .le. dx) then
-      if (imp .gt. 3) then
+      if (iprint .gt. 3) then
         write(bufstr,1001)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -75,7 +75,7 @@ c calculs de f et g en ce point
       ntotap=ntotap + 1
       if (indic .lt. 0) then
       depas=.true.
-      if (imp . gt. 3) then
+      if (iprint . gt. 3) then
         write(bufstr,2001) alpha,indic
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
@@ -92,7 +92,7 @@ c calculs de f et g en ce point
 c calcul de la derivee suivant d au point xfinal
       call prosca(n,d,gfinal,dal,izs,rzs,dzs)
 c
-      if (imp .gt. 3) then
+      if (iprint .gt. 3) then
         aux2=f - finit
         write(bufstr,2002) alpha, aux2, dal
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
index 07252b7..9923791 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine n1qn1 (simul,n,x,f,g,var,eps,
-     1     mode,niter,nsim,imp,lp,zm,izs,rzs,dzs)
+     1     mode,niter,nsim,iprint,lp,zm,izs,rzs,dzs)
 c
 c!but
 c     minimisation d une fonction reguliere sans contraintes
@@ -51,7 +51,7 @@ c     niter (e-s)  : en entree nombre maximal d'iterations : en sortie nombre
 c                    d'iterations reellement effectuees.
 c     nsim (e-s)  : en entree nombre maximal d'appels a simul (c'est a dire
 c         avec indic = 4). en sortie le nombre de tels appels reellement faits.
-c      imp (e)   : contro^le les messages d'impression :
+c      iprint (e)   : contro^le les messages d'impression :
 c                  0 rien n'est imprime
 c                  = 1 impressions initiales et finales
 c                  = 2 une impression par iteration (nombre d'iterations,
@@ -60,7 +60,7 @@ c                  >=3 informations supplementaires sur les recherches
 c                      lineaires ;
 c                      tres utile pour detecter les erreurs dans le gradient.
 c      lp (e)    : le numero du canal de sortie, i.e. les impressions
-c                  commandees par imp sont faites par write (lp, format).
+c                  commandees par iprint sont faites par write (lp, format).
 c     zm     : memoire de travail pour n1qn1 de   dimension n*(n+13)/2.
 c     izs,rzs,dzs memoires reservees au simulateur (cf doc)
 c
@@ -70,16 +70,16 @@ c!
       real rzs(*)
       character bufstr*(4096)
       external simul
-      if (imp.gt.0) then
+      if (iprint.gt.0) then
          call basout(io, lp, '')
          call basout(io, lp, 
      $    '***** enters -qn code- (without bound cstr)')
 
-         write(bufstr,750)n,eps,imp
+         write(bufstr,750)n,eps,iprint
          call basout(io ,lp ,bufstr(1:lnblnk(bufstr)))
 
 750     format('dimension=',i10,', epsq=',e24.16,
-     $ ', verbosity level: imp=',i10)
+     $ ', verbosity level: iprint=',i10)
 
 
          
@@ -102,9 +102,9 @@ c!
       nxb=nga+n
       ngb=nxb+n
       call n1qn1a (simul,n,x,f,g,var,eps,mode,
-     1 niter,nsim,imp,lp,zm,zm(nd),zm(nw),zm(nxa),zm(nga),
+     1 niter,nsim,iprint,lp,zm,zm(nd),zm(nw),zm(nxa),zm(nga),
      2 zm(nxb),zm(ngb),izs,rzs,dzs)
-      if (imp.gt.0) then
+      if (iprint.gt.0) then
        write(bufstr,753) sqrt(eps)
        call basout(io ,lp ,bufstr(1:lnblnk(bufstr)))
 753    format('***** leaves -qn code-, gradient norm=',e24.16)
index c88351b..3a3205c 100644 (file)
@@ -11,7 +11,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine n1qn2 (simul,prosca,n,x,f,g,dxmin,df1,epsg,impres,io,
+      subroutine n1qn2 (simul,prosca,n,x,f,g,dxmin,df1,epsg,iprint,io,
      /                  mode,niter,nsim,dz,ndz,izs,rzs,dzs)
 c!But
 c     Minimisation sans contrainte par un algorithme
@@ -40,7 +40,7 @@ c     3) une routine, appelee prosca par n1qn2, qui realise le produit
 c        scalaire de deux vecteurs, ce produit scalaire doit etre
 c        celui utilise pour calculer le gradient de f dans simul.
 c!Liste d'appel
-c     subroutine n1qn2 (simul,prosca,n,x,f,g,dxmin,df1,epsg,impres,io,
+c     subroutine n1qn2 (simul,prosca,n,x,f,g,dxmin,df1,epsg,iprint,io,
 c    /                  mode,niter,nsim,dz,ndz,izs,rzs,dzs)
 c
 c     Dans la description des arguments qui suit, (e) signifie que
@@ -102,9 +102,9 @@ c                convergence est atteinte en x(k) et s'arrete en mode 1
 c                si E(k) := |g(k)|/|g(1)| < epsg, ou g(1) et g(k) sont
 c                les gradients au point d'entree et a l'iteration k,
 c                respectivement. En sortie, epsg = E(k).
-c     impres(e): Scalaire du type integer qui controle les sorties.
+c     iprint(e): Scalaire du type integer qui controle les sorties.
 c                <0:  Rien n'est imprime et n1qn2 appelle le simulateur
-c                     avec indic=1 toutes les (-impres) iterations.
+c                     avec indic=1 toutes les (-iprint) iterations.
 c                =0:  Rien n'est imprime.
 c                >=1: Impressions initiales et finales, messages
 c                     d'erreurs.
@@ -121,7 +121,7 @@ c                     et l'angle de la direction de descente d(k) avec
 c                     -g(k).
 c     io(e):     Scalaire du type integer qui sera pris comme numero
 c                de canal de sortie pour les impressions controlees
-c                par impres.
+c                par iprint.
 c     mode(s):   Scalaire du type integer donnant le mode de sortie de
 c                n1qn2.
 c                <0: Impossibilite de poursuivre la recherche lineaire
@@ -183,7 +183,7 @@ c-----------------------------------------------------------------------
 c
 c     arguments
 c
-      integer n,impres,io,mode,niter,nsim,ndz,izs(*)
+      integer n,iprint,io,mode,niter,nsim,ndz,izs(*)
       real rzs(*)
       double precision x(*),f,g(*),dxmin,df1,epsg,dz(*)
       double precision dzs(*)
@@ -198,7 +198,7 @@ c
 c
 c---- impressions initiales et controle des arguments
 c
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
          write (bufstr,900)
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          
@@ -220,7 +220,7 @@ c
          write (bufstr,9006) nsim
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          
-         write (bufstr,9006) impres
+         write (bufstr,9006) iprint
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
 900   format (' n1qn2: point d''entree')
@@ -230,11 +230,11 @@ c
 9004  format (5x,'precision relative en g (epsg)         :',d9.2)
 9005  format (5x,'nombre maximal d''iterations (niter)    :',i6)
 9006  format (5x,'nombre maximal d''appels a simul (nsim) :',i6)
-9007  format (5x,'niveau d''impression (impres)           :',i4)
+9007  format (5x,'niveau d''impression (iprint)           :',i4)
       if (n.le.0.or.niter.le.0.or.nsim.le.0.or.dxmin.le.0.0d+0
      /    .or.epsg.le.0.0d+0.or.epsg.gt.1.0d+0) then
           mode=2
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,901)
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -243,7 +243,7 @@ c
       endif
       if (ndz.lt.5*n+1) then
           mode=2
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,902)
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -257,7 +257,7 @@ c
       l1memo=2*n+1
       m=ndzu/l1memo
       ndzu=m*l1memo+3*n
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,903) ndz
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         write (bufstr,9031) ndzu
@@ -278,14 +278,14 @@ c
 c---- appel du code d'optimisation
 c
       call n1qn2a (simul,prosca,n,x,f,g,dxmin,df1,epsg,
-     /             impres,io,mode,niter,nsim,m,
+     /             iprint,io,mode,niter,nsim,m,
      /             dz(id),dz(igg),dz(iaux),
      /             dz(ialpha),dz(iybar),dz(isbar),izs,rzs,dzs)
 c
 c---- impressions finales
 c
 904   continue
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,905) 
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         write (bufstr,9051) mode
@@ -306,7 +306,7 @@ c
       r1=sqrt(ps)
       call prosca (n,g,g,ps,izs,rzs,dzs)
       r2=sqrt(ps)
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,906) r1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         
index e50b211..087ef3c 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine n1qn2a (simul,prosca,n,x,f,g,dxmin,df1,epsg,
-     /                   impres,io,mode,niter,nsim,m,
+     /                   iprint,io,mode,niter,nsim,m,
      /                   d,gg,aux,alpha,ybar,sbar,izs,rzs,dzs)
 c
 c----
@@ -22,7 +22,7 @@ c----
 c
 c     arguments
 c
-      integer n,impres,io,mode,niter,nsim,m,izs(*)
+      integer n,iprint,io,mode,niter,nsim,m,izs(*)
       real rzs(*)
       double precision x(n),f,g(n),dxmin,df1,epsg,d(n),gg(n),aux(n),
      /     alpha(m),ybar(n,m),sbar(n,m)
@@ -50,7 +50,7 @@ c
       isim=1
       call prosca (n,g,g,ps,izs,rzs,dzs)
       gnorm=sqrt(ps)
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,900) f,gnorm
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -64,18 +64,18 @@ c
       do 10 i=1,n
           d(i)=-g(i)*precon
 10    continue
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
         write(bufstr,899) precon
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 899   format (' n1qn2a: direction de descente -g: precon = ',d10.3)
-      if (impres.eq.3) then
+      if (iprint.eq.3) then
           write(bufstr,901)
           call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
           write(bufstr,9010)
           call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
-      if (impres.eq.4) then
+      if (iprint.eq.4) then
         write(bufstr,901)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -93,29 +93,29 @@ c
 c---- debut de l'iteration. on cherche x(k+1) de la forme x(k) + t*d,
 c     avec t > 0. on connait d.
 c
-c     Si impres<0 et l'itération est un multiple de -impres,
+c     Si iprint<0 et l'itération est un multiple de -iprint,
 c     alors on appelle la fonction fournie, avec indic=1.
 c
 100   iter=iter+1
-      if (impres.lt.0) then
-          if(mod(iter,-impres).eq.0) then
+      if (iprint.lt.0) then
+          if(mod(iter,-iprint).eq.0) then
               indic=1
               call simul (indic,n,x,f,g,izs,rzs,dzs)
 c             error in user function
               if(indic.eq.0) goto 1000
           endif
       endif
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
         write(bufstr,901)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 901   format (1x,79('-'))
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
         write(bufstr,9010)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 9010  format (1x,' ')
-      if (impres.ge.3) then
+      if (iprint.ge.3) then
         write (bufstr,902) iter,isim
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
 
@@ -132,7 +132,7 @@ c             error in user function
 c
 c     ---- recherche lineaire et nouveau point x(k+1)
 c
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
         write (bufstr,903)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -149,7 +149,7 @@ c
       d1=hp0
 c
       call nlis0 (n,simul,prosca,x,f,d1,t,tmin,tmax,d,g,rm1,rm2,
-     /           impres,io,moderl,isim,nsim,aux,izs,rzs,dzs)
+     /           iprint,io,moderl,isim,nsim,aux,izs,rzs,dzs)
 c
 c         ---- nlis0 renvoie les nouvelles valeurs de x, f et g
 c
@@ -167,7 +167,7 @@ c             ---- descente bloquee sur tmax
 c                  [sortie rare (!!) d'apres le code de nlis0]
 c
               mode=3
-              if (impres.ge.1) then
+              if (iprint.ge.1) then
                 write(bufstr,904) iter
                 call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
                 endif
@@ -201,7 +201,7 @@ c
       call prosca(n,g,g,ps,izs,rzs,dzs)
       eps1=sqrt(ps)/gnorm
 c
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
         write (bufstr,905) eps1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -212,7 +212,7 @@ c
       endif
       if (iter.eq.niter) then
           mode=4
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,906) iter
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -222,7 +222,7 @@ c
       endif
       if (isim.ge.nsim) then
           mode=5
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,907) iter,isim
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -249,7 +249,7 @@ c
       call prosca (n,ybar(1,jmax),sbar(1,jmax),d1,izs,rzs,dzs)
       if (d1.le.0.0d+0) then
           mode=7
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,908) iter,d1
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -263,7 +263,7 @@ c         ---- precon: facteur de mise a l'echelle
 c
       call prosca (n,ybar(1,jmax),ybar(1,jmax),ps,izs,rzs,dzs)
       precon=d1/ps
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
         write (bufstr,909) d1,precon
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -292,7 +292,7 @@ c
       call prosca (n,d,g,hp0,izs,rzs,dzs)
       if (hp0.ge.0.0d+0) then
           mode=7
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,910) iter,hp0
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -301,7 +301,7 @@ c
      /             'descente: (g,d) = ',d12.5)
           goto 1000
       endif
-      if (impres.ge.5) then
+      if (iprint.ge.5) then
           call prosca (n,g,g,ps,izs,rzs,dzs)
           ps=sqrt(ps)
           call prosca (n,d,d,ps2,izs,rzs,dzs)
index 30a1366..1089bf5 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine n1qn3 (simul,prosca,ctonb,ctcab,n,x,f,g,dxmin,df1,
-     /                  epsg,impres,io,mode,niter,nsim,dz,ndz,
+     /                  epsg,iprint,io,mode,niter,nsim,dz,ndz,
      /                  izs,rzs,dzs)
 c
 c     n1qn3, version 1.0, septembre 1988.
@@ -63,7 +63,7 @@ c----
 c
 c         arguments
 c
-      integer n,impres,io,mode,niter,nsim,ndz,izs(1)
+      integer n,iprint,io,mode,niter,nsim,ndz,izs(1)
       real rzs(1)
       double precision x(1),f,g(1),dxmin,df1,epsg,dz(1),dzs(1)
       external simul,prosca,ctonb,ctcab
@@ -77,7 +77,7 @@ c
 c
 c---- impressions initiales et controle des arguments
 c
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
          write (bufstr,900) 
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          write (bufstr,901) n
@@ -92,7 +92,7 @@ c
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          write (bufstr,906) nsim
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
-         write (bufstr,907) impres
+         write (bufstr,907) iprint
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
 900   format (" n1qn3: entry point")
@@ -102,11 +102,11 @@ c
 904   format (5x,"relative precision on g (epsg):",d9.2)
 905   format (5x,"maximal number of iterations (niter):",i6)
 906   format (5x,"maximal number of simulations (nsim):",i6)
-907   format (5x,"printing level (impres):",i4)
+907   format (5x,"printing level (iprint):",i4)
       if (n.le.0.or.niter.le.0.or.nsim.le.0.or.dxmin.le.0.d0
      /    .or.epsg.le.0.d0.or.epsg.gt.1.d0) then
           mode=2
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,910)
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -115,7 +115,7 @@ c
       endif
       if (ndz.lt.6*n+1) then
           mode=2
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,920)
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -129,7 +129,7 @@ c
       l1memo=2*n+1
       m=ntravu/l1memo
       ntravu=m*l1memo+4*n
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,930) ndz
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         write (bufstr,931) ntravu
@@ -154,13 +154,13 @@ c
 c---- appel du code d"optimisation
 c
       call n1qn3a (simul,prosca,ctonb,ctcab,n,x,f,g,dxmin,df1,epsg,
-     /             impres,io,mode,niter,nsim,m,dz(id),dz(igg),dz(iprec),
+     /             iprint,io,mode,niter,nsim,m,dz(id),dz(igg),dz(iprec),
      /             dz(iaux),dz(ialpha),dz(iybar),dz(isbar),izs,rzs,dzs)
 c
 c---- impressions finales
 c
 940   continue
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,950) 
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         
@@ -186,7 +186,7 @@ c
       r1=sqrt(ps)
       call prosca (n,g,g,ps,izs,rzs,dzs)
       r2=sqrt(ps)
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
         write (bufstr,960) r1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         
index 17bcb82..82dd00e 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine n1qn3a (simul,prosca,ctonb,ctcab,n,x,f,g,dxmin,df1,
-     /                   epsg,impres,io,mode,niter,nsim,m,d,gg,diag,aux,
+     /                   epsg,iprint,io,mode,niter,nsim,m,d,gg,diag,aux,
      /                   alpha,ybar,sbar,izs,rzs,dzs)
 c----
 c
@@ -21,7 +21,7 @@ c----
 c
 c         arguments
 c
-      integer n,impres,io,mode,niter,nsim,m,izs(1)
+      integer n,iprint,io,mode,niter,nsim,m,izs(1)
       real rzs(1)
       double precision x(n),f,g(n),dxmin,df1,epsg,d(n),gg(n),diag(n),
      /    aux(n),alpha(m),ybar(n,m),sbar(n,m),dzs(1)
@@ -48,7 +48,7 @@ c
 c
       call prosca (n,g,g,ps,izs,rzs,dzs)
       gnorm=sqrt(ps)
-      if (impres.ge.1) then
+      if (iprint.ge.1) then
 
         write (bufstr,900) f
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
@@ -65,18 +65,18 @@ c
       do 10 i=1,n
           d(i)=-g(i)*precos
 10    continue
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
         write(bufstr,899) precos
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 899   format (" n1qn3a: descent direction -g: precon = ",d10.3)
-      if (impres.eq.3) then
+      if (iprint.eq.3) then
           write(bufstr,901)
           call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
           write(bufstr,9010)
           call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       endif
-      if (impres.eq.4) then
+      if (iprint.eq.4) then
         write(bufstr,901)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -94,29 +94,29 @@ c
 c---- debut de l'iteration. On cherche x(k+1) de la forme x(k) + t*d,
 c     avec t > 0. On connait d.
 c
-c     Si impres<0 et l'itération est un multiple de -impres,
+c     Si iprint<0 et l'itération est un multiple de -iprint,
 c     alors on appelle la fonction fournie, avec indic=1.
 c
 100   iter=iter+1
-      if (impres.lt.0) then
-          if(mod(iter,-impres).eq.0) then
+      if (iprint.lt.0) then
+          if(mod(iter,-iprint).eq.0) then
               indic=1
               call simul (indic,n,x,f,g,izs,rzs,dzs)
 c             error in user function
               if(indic.eq.0) goto 1000
           endif
       endif
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
         write(bufstr,901)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 901   format (1x,79("-"))
-      if (impres.ge.3) then
+      if (iprint.ge.3) then
         write(bufstr,9010)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 9010  format (1x,' ')
-      if (impres.ge.2) then
+      if (iprint.ge.2) then
         write (bufstr,902) iter,isim,f,hp0
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -129,7 +129,7 @@ c             error in user function
 c
 c     ---- recherche lineaire et nouveau point x(k+1)
 c
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
         write (bufstr,903)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -146,7 +146,7 @@ c
       r1=hp0
 c
       call nlis0 (n,simul,prosca,x,f,r1,t,tmin,tmax,d,g,rm2,rm1,
-     /           impres,io,moderl,isim,nsim,aux,izs,rzs,dzs)
+     /           iprint,io,moderl,isim,nsim,aux,izs,rzs,dzs)
 c
 c          ---- nlis0 renvoie les nouvelles valeurs de x, f et g
 c
@@ -164,7 +164,7 @@ c             ---- descente bloquee sur tmax
 c                  [sortie rare (!!) d'apres le code de nlis0]
 c
               mode=3
-              if (impres.ge.1) then
+              if (iprint.ge.1) then
                 write(bufstr,904) iter
                 call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
                 endif
@@ -198,7 +198,7 @@ c
       call prosca(n,g,g,ps,izs,rzs,dzs)
       eps1=sqrt(ps)/gnorm
 c
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
         write (bufstr,905) eps1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -209,7 +209,7 @@ c
       endif
       if (iter.eq.niter) then
           mode=4
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,906) iter
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -219,7 +219,7 @@ c
       endif
       if (isim.gt.nsim) then
           mode=5
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,907) iter,isim
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -244,7 +244,7 @@ c
               sbar(i,jmax)=t*d(i)
               ybar(i,jmax)=g(i)-gg(i)
 400       continue
-          if (impres.ge.4) then
+          if (iprint.ge.4) then
               call prosca (n,sbar(1,jmax),sbar(1,jmax),ps,izs,rzs,dzs)
               dk1=sqrt(ps)
               if (iter.gt.1) then
@@ -259,7 +259,7 @@ c
           ys=ps
           if (ys.le.0.d0) then
               mode=7
-              if (impres.ge.1) then
+              if (iprint.ge.1) then
                 write (bufstr,908) iter,ys
                 call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
                 endif
@@ -268,7 +268,7 @@ c
      & d12.5,27x,"is not positive")
               goto 1000
           endif
-          if (impres.ge.4) then
+          if (iprint.ge.4) then
             write(bufstr,909)
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -299,7 +299,7 @@ c
               do 398 i=1,n
                   r1=r1+diag(i)*aux(i)**2
 398           continue
-              if (impres.ge.4) then
+              if (iprint.ge.4) then
                   write (bufstr,915) 1.d0/r1
                   call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
 915               format(5x,"fitting the ellipsoid: factor ",d10.3)
@@ -321,7 +321,7 @@ c
      /                          -(gg(i)/diag(i))**2/den)
 403           continue
           endif
-          if (impres.ge.4) then
+          if (iprint.ge.4) then
               preco=0.d0
               do 406 i=1,n
                   preco=preco+diag(i)
@@ -355,7 +355,7 @@ c
       call prosca (n,d,g,hp0,izs,rzs,dzs)
       if (hp0.ge.0.d+0) then
           mode=7
-          if (impres.ge.1) then
+          if (iprint.ge.1) then
             write (bufstr,913) iter
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             write (bufstr,9130) hp0
@@ -366,7 +366,7 @@ c
      /             "descent direction: (g,d) = ",d12.5)
           goto 1000
       endif
-      if (impres.ge.4) then
+      if (iprint.ge.4) then
           call prosca (n,g,g,ps,izs,rzs,dzs)
           ps=dsqrt(ps)
           call prosca (n,d,d,ps2,izs,rzs,dzs)
index 8c85d28..05290fa 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine nlis0 (n,simul,prosca,xn,fn,fpn,t,tmin,tmax,d,g,
-     /                  amd,amf,imp,io,logic,nap,napmax,x,izs,rzs,dzs)
+     /                 amd,amf,iprint,io,logic,nap,napmax,x,izs,rzs,dzs)
 c
 c     nlis0 + minuscules + commentaires
 c     ---------------------------------
@@ -30,7 +30,7 @@ c
 c --- arguments
 c
       external simul,prosca
-      integer n,imp,io,logic,nap,napmax,izs(*)
+      integer n,iprint,io,logic,nap,napmax,izs(*)
       real rzs(*)
       double precision xn(n),fn,fpn,t,tmin,tmax,d(n),g(n),amd,amf,x(n)
       double precision dzs(*)
@@ -74,7 +74,7 @@ c
       if (t.gt.tmin) go to 20
       t=tmin
       if (t.le.tmax) go to 20
-      if (imp.gt.0) then
+      if (iprint.gt.0) then
         write (bufstr,1007)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -88,7 +88,7 @@ c
           t=tmax
           logic=1
       endif
-      if (imp.ge.3) then
+      if (iprint.ge.3) then
         write (bufstr,1000) fpn,d2,tmin,tmax
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -133,7 +133,7 @@ c
           td=t
           indicd=indic
           logic=0
-          if (imp.ge.3) then
+          if (iprint.ge.3) then
             write (bufstr,1004) t,indic
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -154,7 +154,7 @@ c
           fpd=fp
           indicd=indic
           logic=0
-          if(imp.ge.3) then
+          if(iprint.ge.3) then
             write (bufstr,1002) t,ffn,fp
             call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
             endif
@@ -163,7 +163,7 @@ c
 c
 c     --- test 1 ok, donc deuxieme test de Wolfe
 c
-      if(imp.ge.3) then
+      if(iprint.ge.3) then
         write (bufstr,1003) t,ffn,fp
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -258,7 +258,7 @@ c
       fn=fg
       do 930 i=1,n
   930 xn(i)=xn(i)+tg*d(i)
-  940 if (imp.le.0) go to 999
+  940 if (iprint.le.0) go to 999
       write (bufstr,1001)
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
       write (bufstr,1005) tg,fg,fpg
index 3c79980..a3d60e2 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine nlis2 (simul,prosca,n,xn,fn,fpn,t,tmin,tmax,d,d2,g,gd,
-     1     amd,amf,imp,io,logic,nap,napmax,x,tol,a,tps,tnc,gg,izs,rzs
+     1     amd,amf,iprint,io,logic,nap,napmax,x,tol,a,tps,tnc,gg,izs,rzs
      $     ,dzs)
 c
 c cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
@@ -33,7 +33,7 @@ c        5          retour a l'utilisateur
 c        6          non hemi-derivable (au-dela de dx)
 c        < 0        contrainte implicite active
 c
-c        imp
+c        iprint
 c                   =0 pas d'impressions
 c                   >0 message en cas de fin anormale
 c                   >3 informations pour chaque essai de t
@@ -67,7 +67,7 @@ c          elimination d'un t initial ridiculement petit
       if (t.gt.tmin) go to 20
       t=tmin
       if (t.le.tmax) go to 20
-      if (imp.gt.0) call n1fc1o(io,35,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if (iprint.gt.0) call n1fc1o(io,35,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       tmin=tmax
    20 if (fn+t*fpn.lt.fn+0.9d0*t*fpn) go to 30
       t=2.d0*t
@@ -76,7 +76,7 @@ c
    30 if(t.lt.tmax) go to 40
       t=tmax
       logic=1
-   40 if (imp.ge.4) call n1fc1o(io,36,i1,i2,i3,i4,i5,fpn,d2,tmin,tmax)
+   40 if(iprint.ge.4) call n1fc1o(io,36,i1,i2,i3,i4,i5,fpn,d2,tmin,tmax)
       do 50 i=1,n
    50 x(i)=xn(i)+t*d(i)
 c
@@ -86,7 +86,7 @@ c
       if(nap.le.napmax) go to 150
 c                sortie par maximum de simulations
       logic=4
-      if(imp.ge.4) call n1fc1o(io,37,nap,i2,i3,i4,i5,d1,d2,d3,d4)
+      if(iprint.ge.4) call n1fc1o(io,37,nap,i2,i3,i4,i5,d1,d2,d3,d4)
       if (tg.eq.0.d0) go to 999
       fn=fg
       do 120 i=1,n
@@ -102,7 +102,7 @@ c                arret demande par l'utilisateur
       fn=f
       do 170 i=1,n
   170 xn(i)=x(i)
-      if(imp.ge.4)call n1fc1o(io,38,i1,i2,i3,i4,i5,d1,d2,d3,d4)
+      if(iprint.ge.4)call n1fc1o(io,38,i1,i2,i3,i4,i5,d1,d2,d3,d4)
       go to 999
 c
 c                les tests elementaires sont faits, on y va
@@ -112,7 +112,7 @@ c
       td=t
       indicd=indic
       logic=0
-      if (imp.ge.4) call n1fc1o(io,39,indic,i2,i3,i4,i5,t,d2,d3,d4)
+      if (iprint.ge.4) call n1fc1o(io,39,indic,i2,i3,i4,i5,t,d2,d3,d4)
       t=tg+0.1d0*(td-tg)
       go to 905
 c
@@ -129,7 +129,7 @@ c         test de descente (premiere inegalite pour un pas serieux)
   230 gd(i)=g(i)
       indicd=indic
       logic=0
-      if(imp.ge.4) call n1fc1o(io,40,i1,i2,i3,i4,i5,t,ffn,fp,d4)
+      if(iprint.ge.4) call n1fc1o(io,40,i1,i2,i3,i4,i5,t,ffn,fp,d4)
       if(tg.ne.0.) go to 500
 c                tests pour un pas nul (si tg=0)
       if(fpd.lt.tesd) go to 500
@@ -141,7 +141,7 @@ c                tests pour un pas nul (si tg=0)
       go to 999
 c
 c                    descente
-  300 if(imp.ge.4) call n1fc1o(io,41,i1,i2,i3,i4,i5,t,ffn,fp,d4)
+  300 if(iprint.ge.4) call n1fc1o(io,41,i1,i2,i3,i4,i5,t,ffn,fp,d4)
 c
 c         test de derivee (deuxieme inegalite pour un pas serieux)
       if(fp.lt.tesd) go to 320
@@ -273,7 +273,7 @@ c                arret sur dx ou de secours
       do 960 i=1,n
       xn(i)=xn(i)+tg*d(i)
   960 g(i)=gg(i)
-  970 if (imp.le.0) go to 999
+  970 if (iprint.le.0) go to 999
       if (logic.lt.0) call n1fc1o(io,42,logic,i2,i3,i4,i5,d1,d2,d3,d4)
       if (logic.eq.6) call n1fc1o(io,42,logic,i2,i3,i4,i5,d1,d2,d3,d4)
       go to 999
index 28ebe98..38cb9a2 100644 (file)
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine qnbd(indqn,simul,n,x,f,g,imp,io,zero,
+      subroutine qnbd(indqn,simul,n,x,f,g,iprint,io,zero,
      & napmax,itmax,epsf,epsg,epsx,df0,binf,bsup,nfac,
      & trav,ntrav,itrav,nitrav,izs,rzs,dzs)
 c!but
@@ -33,7 +33,7 @@ c     rlbd,satur   recherche lineaire avec bornes
 c
 c!liste d'appel
 c
-c     subroutine qnbd(indqn,simul,n,x,f,g,imp,io,zero,
+c     subroutine qnbd(indqn,simul,n,x,f,g,iprint,io,zero,
 c    & napmax,itmax,epsf,epsg,epsx,df0,binf,bsup,nfac,
 c    & trav,ntrav,itrav,nitrav,izs,rzs,dzs)
 c
@@ -76,7 +76,7 @@ c     napmax nombre maximum d appels de simul                               e
 c     itmax nombre maximum d iterations de descente               e
 c     itrav vect travail dim nitrav=2n , se decompose en indic et izig
 c     nfac nombre de variables factorisees                  (e si indqn=2)  s
-c     imp facteur d impression                                              e
+c     iprint facteur d impression                                              e
 c         varie de 0 (pas d impressions) a 3 (nombreuses impressions)
 c     io numero du fichier de resultats                                     e
 c     epsx vect dim n precision sur x                                       e
@@ -110,11 +110,11 @@ c
       external simul
 c
 c---- initial printing
-      if(imp.ge.1) then
+      if(iprint.ge.1) then
          call basout(io_out, io, '')
          write(bufstr,1010)
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
-         write(bufstr,750) n,epsg,imp
+         write(bufstr,750) n,epsg,iprint
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          write(bufstr,751) itmax
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
@@ -124,7 +124,7 @@ c---- initial printing
      $    '------------------------------------------------')
 1010    format(' *********** qnbd (with bound cstr) ****************')
 750     format('dimension=',i10,', epsq=',e24.16,
-     $ ', verbosity level: imp=',i10)
+     $ ', verbosity level: iprint=',i10)
 751     format('max number of iterations allowed: iter=',i10)
 752     format('max number of calls to costf allowed: nap=',i10)
       endif
@@ -154,7 +154,7 @@ c     decoupage du vecteur trav
       n4=n3+n
       n5=n4+n-1
       if(ntrav.lt.n5) then
-         if(imp.gt.0) then
+         if(iprint.gt.0) then
            write(bufstr,110)ntrav,n5
            call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
            endif
@@ -165,7 +165,7 @@ c     decoupage du vecteur trav
       ni1=n+1
       if(nitrav.lt.2*n) then
          ni2=2*n
-         if(imp.gt.0) then
+         if(iprint.gt.0) then
            write(bufstr,111)nitrav,ni2
            call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
            endif
@@ -174,7 +174,7 @@ c     decoupage du vecteur trav
          return
       endif
       call zqnbd(indqn,simul,trav(1),n,binf,bsup,x,f,g,zero,napmax,
-     &itmax,itrav,itrav(ni1),nfac,imp,io,epsx,epsf,epsg,trav(n1),
+     &itmax,itrav,itrav(ni1),nfac,iprint,io,epsx,epsf,epsg,trav(n1),
      &trav(n2),trav(n3),trav(n4),df0,ig,in,irel,izag,iact,
      &epsrel,ieps1,izs,rzs,dzs)
       return
index 6bff16f..f174c90 100644 (file)
@@ -10,7 +10,7 @@ c and continues to be available under such terms.
 c For more information, see the COPYING file which you should have received
 c along with this program.
 c
-      subroutine relvar(ind,n,x,binf,bsup,x2,g,diag,imp,io,ibloc,izag,
+      subroutine relvar(ind,n,x,binf,bsup,x2,g,diag,iprint,io,ibloc,izag,
      &iter,nfac,irit)
 c
 c     determination des variables a relacher par meth bertsekas
@@ -28,7 +28,7 @@ c     calcul eps1
       eps1=0.
       do 20 i=1,n
 20    eps1=eps1 + abs(x2(i)-x(i))
-      if(imp.gt.2) then
+      if(iprint.gt.2) then
         write(bufstr,322) eps1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -58,7 +58,7 @@ c     on defactorise si necessaire
       idfac=idfac+1
       nfac=nfac-1
       ind=1
-      if(imp.ge.4) then
+      if(iprint.ge.4) then
         write(bufstr,336)k,x(k)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -73,13 +73,13 @@ c     on factorise
       ifac=ifac+1
       nfac=nfac+1
       ibloc(k)=-iter
-      if(imp.ge.4) then
+      if(iprint.ge.4) then
         write(bufstr,339)k
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 339   format(' on factorise l indice ',i3)
 340   continue
-      if(imp.ge.2.and.(ifac.gt.0.or.idfac.gt.0)) then
+      if(iprint.ge.2.and.(ifac.gt.0.or.idfac.gt.0)) then
         write(io,350)ifac,idfac,nfac
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
index a7baf0a..e42a8d5 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine rlbd(indrl,n,simul,x,binf,bsup,f,hp,t,tmax,d,gn,
-     &  tproj,amd,amf,imp,io,zero,nap,napmax,xn,izs,rzs,dzs)
+     &  tproj,amd,amf,iprint,io,zero,nap,napmax,xn,izs,rzs,dzs)
 c
 c!but
 c       subroutine de recherche lineaire pour des problemes avec
@@ -26,7 +26,7 @@ c     de dichotomie, d interpolation lineaire sur les derivees ou
 c     d interpolation cubique.
 c
 c!impressions
-c      si imp > 2 , rlbd fournit les impressions suivantes :
+c      si iprint > 2 , rlbd fournit les impressions suivantes :
 c
 c      la premiere ligne indique :
 c      t      premiere valeur de t fournie en liste d' appel
@@ -49,7 +49,7 @@ c     proj et satur (bibl. modulopt)
 c!liste d appel
 c
 c      subroutine rlbd(indrl,n,simul,proj,x,binf,bsup,f,hp,t,tmax,d,gn,
-c     &  tproj,amd,amf,imp,io,zero,nap,napmax,xn,izs,rzs,dzs)
+c     &  tproj,amd,amf,iprint,io,zero,nap,napmax,xn,izs,rzs,dzs)
 c
 c      e;s;e,s:parametres initialises en entree,en sortie,en entree et
 c              en sortie
@@ -81,7 +81,7 @@ c      d:direction de descente                             (e)
 c      gn: gradient de f en xn                             (e,s)
 c      tproj:plus petit pas saturant une nouvelle contrainte(e,s)
 c      amf,amd:constantes du test de wolfe                 (e)
-c      imp<=2:pas d'impression                             (e)
+c      iprint<=2:pas d'impression                             (e)
 c         >=3:une impression par calcul de simul           (e)
 c      io:numero du fichier resultat                       (e)
 c      zero:proche du zero machine                         (e)
@@ -170,7 +170,7 @@ c     calcul de tproj:plus petit point de discontinuite de h'(t)
       icop=i
 7     continue
 c
-      if (imp.ge.3) then
+      if (iprint.ge.3) then
         write (bufstr,14050) tproj,tmax,hp
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -198,7 +198,7 @@ c     calcul de xn,de fn et de gn
       call simul (indic,n,xn,fn,gn,izs,rzs,dzs)
       nap=nap+1
       if (indic.lt.0) then
-         if (imp.ge.3) then
+         if (iprint.ge.3) then
            write (bufstr,16000) indic,t
            call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
            endif
@@ -270,7 +270,7 @@ c      calcul du pas saturant toutes les bornes:tmaxp
       end if
 c
 c     toutes les variables sont saturees
-      if (imp.ge.3) then
+      if (iprint.ge.3) then
         write (bufstr,3330) tmaxp
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -473,7 +473,7 @@ c        dans le cas quadratique prendre extrp plus grand
 785   t=text
       var2='e  '
 800   f11=fn-f
-      if (imp.ge.3.and.indic.gt.0) then
+      if (iprint.ge.3.and.indic.gt.0) then
         write (bufstr,15000)var2,ta1,f11,hpn,h1,t1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -525,7 +525,7 @@ c
       h1=(fn-fa1)/t1
       hp=hpd
       f0=f-f0
-      if (imp.ge.3) then
+      if (iprint.ge.3) then
         write (bufstr,15020)t,f0,hpd,h1,t1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
index 081ca6d..295c7fb 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
 
-      subroutine shanph(diag,n,nt,np,y,s,ys,scal,index,io,imp)
+      subroutine shanph(diag,n,nt,np,y,s,ys,scal,index,io,iprint)
 c     mise a l echelle de diag par la methode de shanno-phua
 c     calcul du facteur d echelle scal
 c      diag=(y,(diag-1)y)/(y,s)*diag
@@ -25,7 +25,7 @@ c
       do 203 i=1,n
 203   cof=cof + y(inp,i)**2/diag(i)
       cof=cof/ys(inp)
-      if(imp.gt.3) then
+      if(iprint.gt.3) then
         write(bufstr,1203) cof
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
index c1b1d7d..3ad847c 100644 (file)
@@ -1,6 +1,6 @@
 c Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
 c Copyright (C) INRIA
-c 
+c
 c Copyright (C) 2012 - 2016 - Scilab Enterprises
 c
 c This file is hereby licensed under the terms of the GNU GPL v2.0,
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine zgcbd(simul,n,binf,bsup,x,f,g,zero,napmax,itmax,indgc
-     &  ,ibloc,nfac,imp,io,epsx,epsf,epsg,dir,df0,diag,x2,
+     &  ,ibloc,nfac,iprint,io,epsx,epsf,epsg,dir,df0,diag,x2,
      &izs,rzs,dzs,y,s,z,ys,zs,nt,index,wk1,wk2,alg,ialg,nomf)
 c
       implicit double precision (a-h,o-z)
@@ -26,7 +26,7 @@ c
       external simul
       character bufstr*(4096)
 c
-      if(imp.ge.4) then
+      if(iprint.ge.4) then
         write(bufstr,10000)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
 10000 format (' dans gcbd. algorithme utilise: ')
@@ -50,7 +50,7 @@ c
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 10004 format ('  mise a echelle de diag seulement a la 2e iter')
-      if(ialg(4).eq.1) then 
+      if(ialg(4).eq.1) then
         write(bufstr,10005)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -65,7 +65,7 @@ c
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 10007 format ('      relachememt de variables a toutes les iteration')
-      if(ialg(6).eq.2) then 
+      if(ialg(6).eq.2) then
         write(bufstr,10008)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -155,7 +155,7 @@ c
       if(indsim.gt.0)go to 99
       indgc=-1
       if(indsim.eq.0)indgc=0
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indgc
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -196,7 +196,7 @@ c
       if(indgc.eq.1.or.indgc.ge.100)go to 150
       if(indgc.eq.2)go to 180
       indgc=-13
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123) indgc
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -224,7 +224,7 @@ c     bouclage
          go to 900
       endif
 201   continue
-      if(imp.ge.2) then
+      if(iprint.ge.2) then
         write(bufstr,1210)iter,f
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -246,7 +246,7 @@ c     correction powell sur y si (y,s) trop petit
 260   bss=bss + diag(i)*s(inp,i)**2
       bss2=param*bss
       if(ys(inp).gt.bss2)go to 290
-      if(imp.gt.2) then 
+      if(iprint.gt.2) then
         write(bufstr,1270) ys(inp)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -259,7 +259,7 @@ c     correction powell sur y si (y,s) trop petit
 c     verif correction powell (facultatif; faire go to 300)
       ys1=ddot(n,s(inp,1),1,y(inp,1),1)
       ys1=abs(bss2-ys1)/bss2
-      if(imp.gt.2) then
+      if(iprint.gt.2) then
         write(bufstr,1280) ys1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -271,7 +271,7 @@ c mise a jour de diag
      &  call bfgsd(diag,n,nt,np,y,s,ys,condm,param,zero,index)
 c
       if(ialg(3).eq.1.or.(ialg(3).eq.2.and.iter.eq.2))
-     &  call shanph(diag,n,nt,np,y,s,ys,scal,index,io,imp)
+     &  call shanph(diag,n,nt,np,y,s,ys,scal,index,io,iprint)
 c
       call majz(n,np,nt,y,s,z,ys,zs,diag,index)
 c
@@ -286,9 +286,9 @@ c          relachement si irit=1 (sinon irit=0)
       if(ialg(6).eq.11.and.diff.le.difrit*alg(6))irit=1
       if(irit.eq.1) nred=nred+1
 c    ----choix des variables a relacher
-      imp1=imp
+      iprint1=iprint
 301   if(ialg(7).eq.1)call relvar(ind,n,x,binf,bsup,x2,g,diag,
-     &  imp,io,ibloc,izag,iter,nfac,irit)
+     &  iprint,io,ibloc,izag,iter,nfac,irit)
 c
 c
 c     section 4 expression de dir
@@ -316,7 +316,7 @@ c
             icycl=icycl+1
             np=0
             lb=1
-            if(imp.gt.2) then
+            if(iprint.gt.2) then
               write(bufstr,1000) icycl
               call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
               endif
@@ -352,7 +352,7 @@ c     calcul de la derivee dans la direction dir
          go to 900
       endif
 c     restauration dir
-      if(imp.ge.3) then 
+      if(iprint.ge.3) then
          write(bufstr,1712)dfp,zero
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
@@ -376,8 +376,8 @@ c     pas initial suivant idee fletcher
       amf=0.10d+0
 c
       call rlbd(indrl,n,simul,x,binf,bsup,f,dfp,t,tmax,dir,g,tproj,
-     &  amd,amf,imp,io,zero,nap,napm1,x2,izs,rzs,dzs)
-      if(imp.gt.2) then
+     &  amd,amf,iprint,io,zero,nap,napm1,x2,izs,rzs,dzs)
+      if(iprint.gt.2) then
         write(bufstr,750)indrl,t,f
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -390,7 +390,7 @@ c
          if(indsim.le.0)then
             indgc=-3
             if(indsim.eq.0)indgc=0
-            if(imp.gt.0) then
+            if(iprint.gt.0) then
               write(bufstr,123)indgc
               call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
               endif
@@ -404,21 +404,21 @@ c
          if(indrl.eq.-3)indgc=13
          if(indrl.eq.-4)indgc=12
          if(indrl.le.-1000)indgc=11
-         if(imp.gt.0) then
+         if(iprint.gt.0) then
            write(bufstr,123)indgc
            call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
            endif
          go to 900
       endif
-      if(imp.ge.5) then
+      if(iprint.ge.5) then
          do 760 i=1,n
-760      if(imp.gt.2) write(io,777)i,x(i),g(i),dir(i)
+760      if(iprint.gt.2) write(io,777)i,x(i),g(i),dir(i)
 777      format(' i=',i2,' xgd ',3f11.4)
-         
+
       endif
 c
       if(nap.lt.napmax)go to 758
-      if(imp.gt.0)  then
+      if(iprint.gt.0)  then
         write(bufstr,755)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -431,7 +431,7 @@ c     section 8 test de convergence
       do 805 i=1,n
       if(abs(x(i)-wk1(i)).gt.epsx(i))go to 806
 805   continue
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,1805)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -442,7 +442,7 @@ c     calcul grad residuel,norme l2
 806   continue
       difg=rednor(n,binf,bsup,x,epsx,g)
       diff=fn-f
-      if(imp.ge.2) then
+      if(iprint.ge.2) then
         write(bufstr,860)epsg,difg,epsf,diff,nap
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -488,11 +488,11 @@ c
 c      fin des calculs
 900   if(indrl.eq.0)indgc=0
       if(indgc.eq.1.and.indrl.le.0)  indgc=indrl
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
          write(bufstr,123)indgc
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
-      if(imp.ge.1.and.indrl.le.zero) then
+      if(iprint.ge.1.and.indrl.le.zero) then
         write(bufstr,1910)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         write(bufstr,1911) indrl
@@ -500,7 +500,7 @@ c      fin des calculs
         endif
 1910  format(' arret impose par la recherche lineaire. cf notice rlbd')
 1911  format(' indicateur de rlbd=',i6)
-      if(imp.ge.1) then
+      if(iprint.ge.1) then
         write(bufstr,950)f,difg,nap,iter,indgc
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -512,7 +512,7 @@ c     autres impressions finales
       if(iter.gt.0) zrl=dble(nap)/dble(iter)
 2000  format('     nom    n       f        norm2g   nf   iter  rl/it ',
      &          ' irl   cpu  cycl   red')
-     
+
       write(bufstr,2001)nomf,f,difg,nap,iter,zrl,irl
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
 2001  format(1x,a6,2e11.4,2i5,f6.2,i5)
index be7673a..ec7b9d9 100644 (file)
@@ -11,7 +11,7 @@ c For more information, see the COPYING file which you should have received
 c along with this program.
 c
       subroutine zqnbd(indqn,simul,dh,n,binf,bsup,x,f,g,zero,napmax,
-     &itmax,indic,izig,nfac,imp,io,epsx,epsf,epsg,x1,x2,g1,dir,df0,
+     &itmax,indic,izig,nfac,iprint,io,epsx,epsf,epsg,x1,x2,g1,dir,df0,
      &ig,in,irel,izag,iact,epsrel,ieps1,izs,rzs,dzs)
 c
       implicit double precision (a-h,o-z)
@@ -23,7 +23,7 @@ c
      &izs(*)
       external simul,proj
 c
-      if(imp.lt.4)go to 3
+      if(iprint.lt.4)go to 3
       write(bufstr,1020)izag,ig,in,irel,iact,epsrel
       call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
 1020  format(' qnbd :  izag,ig,in,irel,iact,epsrel=',5i3,f11.4)
@@ -91,13 +91,13 @@ c
       if(indqn.eq.1)go to 10
       if(indqn.eq.2)go to 30
 c     erreur
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,105)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 105   format(' qnbd  : valeur non admissible de indqn  ',i5)
       indqn=-105
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -123,7 +123,7 @@ c     iter nombre d iterations de descente
       if(indsim.le.0)then
       indqn=-1
       if(indsim.eq.0)indqn=0
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -146,18 +146,18 @@ c     d ou cst=som((y(i)*(dx))**2))/(2*df0)
       iconv=0
 200   iter=iter +1
       if(iter.le.itmax)go to 202
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,1202)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 1202  format(' qnbd : maximum d iterations atteint')
       indqn=5
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
       return
-202   if(imp.ge.2) then
+202   if(iprint.ge.2) then
          write(bufstr,1210)iter,f
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
@@ -177,7 +177,7 @@ c      dh=(y,y)/(y,s)*id
       do 203 i=1,n
 203   cof2=cof2 + g1(i)**2
       cof2=cof2/cof1
-      if(imp.gt.3) then
+      if(iprint.gt.3) then
         write(bufstr,1203)cof2
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -285,7 +285,7 @@ c     calcul sig1 pour 2eme mise a jour
       do 271 i=1,n
 271   sig1=sig1+dir(i)*x2(i)
       if(sig1.gt.0.0d+0)go to 272
-      if(imp.gt.2) then
+      if(iprint.gt.2) then
         write(bufstr,1272)sig1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -294,7 +294,7 @@ c
 c     ******************************************************
       indqn=8
       if(iter.eq.1)indqn=-5
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -302,7 +302,7 @@ c     ******************************************************
 272      sig1=-1.0d+0/sig1
 c     truc powell si (y,s) negatif
       if(cof1.gt.zero)go to 277
-      if(imp.gt.2) then
+      if(iprint.gt.2) then
         write(bufstr,1270)cof1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -326,14 +326,14 @@ c      premiere mise a jour de dh
       call calmaj(dh,n,dir,sig1,x2,ir,mk,epsmc,nfac)
       if(ir.ne.nfac)go to 280
       go to 300
-280   if(imp.gt.0) then
+280   if(iprint.gt.0) then
          write(bufstr,282)
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
 282   format(' qnbd : pb dans appel majour')
       indqn=8
       if(iter.eq.1)indqn=-5
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -356,7 +356,7 @@ c
       eps1=min(eps0,eps1)
       if(ieps1.eq.1)eps1=0.0d+0
       if(ieps1.eq.2)eps1=eps1*1.0d+4
-      if(imp.gt.3) then
+      if(iprint.gt.3) then
          write(bufstr,322)eps1
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
@@ -376,7 +376,7 @@ c     si irit=1 on peut relacher des variables
       irit=0
       if(difg1.le.epsrel*difg0)irit=1
       if(irel.eq.0.or.iter.eq.1)irit=1
-      if(irit*irel.gt.0.and.imp.gt.3) then
+      if(irit*irel.gt.0.and.iprint.gt.3) then
         write(bufstr,1320)difg0,epsrel,difg1
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -404,7 +404,7 @@ c     on defactorise si necessaire
       if(ic.gt.nfac)go to 340
       idfac=idfac+1
       mode=-1
-      if(imp.ge.4) then
+      if(iprint.ge.4) then
         write(bufstr,336)k
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -412,14 +412,14 @@ c     on defactorise si necessaire
       izig(k)=izig(k) + izag
       call ajour(mode,n,k,nfac,dh,x2,indic)
       if(mode.eq.0) go to 340
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,333)mode
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 333   format(' qnbd : pb dans ajour. mode=',i3)
       indqn=8
       if(iter.eq.1)indqn=-5
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -433,26 +433,26 @@ c     on factorise
       if(ifac.ge.n3.and.iter.gt.1)go to 340
       if(abs(g(k)).le.gr)go to 340
       ifac=ifac+1
-      if(imp.ge.4) then
+      if(iprint.ge.4) then
         write(bufstr,339)k
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 339   format(' on factorise l indice ',i3)
       call ajour(mode,n,k,nfac,dh,x2,indic)
       if(mode.eq.0)go to 340
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,333)mode
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
       indqn=8
       if(iter.eq.1)indqn=-5
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
       return
 340   continue
-      if(imp.ge.2) then
+      if(iprint.ge.2) then
         write(bufstr,350)ifac,idfac,nfac
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -498,14 +498,14 @@ c     dans le nouveau syst d indices
 411   x2(i)=v
 412   continue
       if(ir.eq.nfac)go to 660
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,650)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 650   format(' qnbd : pb num dans mult par inverse')
       indqn=7
       if(iter.eq.1)indqn=-6
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -540,14 +540,14 @@ c     ifp =1 si fpn trop petit. on prend alors d=-g
 710   fpn=fpn + g(i)*dir(i)
       if(fpn.gt.0.0d+0) then
          if(ifp.eq.1) then
-            if(imp.gt.0) then
+            if(iprint.gt.0) then
               write(bufstr,1705) fpn
               call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
               endif
 1705        format(' qnbd : arret fpn non negatif=',d11.4)
             indqn=6
             if(iter.eq.1)indqn=-3
-            if(imp.gt.0) then
+            if(iprint.gt.0) then
               write(bufstr,123)indqn
               call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
               endif
@@ -578,7 +578,7 @@ c     amd,amf tests sur h'(t) et diff
       napm1=nap + napm
       if(napm1.gt.napmax)napm1=napmax
       call rlbd(indrl,n,simul,x,binf,bsup,fn,fpn,t,tmax,dir,g,
-     & tproj,amd,amf,imp,io,zero,nap,napm1,x2,izs,rzs,dzs)
+     & tproj,amd,amf,iprint,io,zero,nap,napm1,x2,izs,rzs,dzs)
       if(indrl.ge.10)then
          indsim=4
          nap=nap + 1
@@ -586,7 +586,7 @@ c     amd,amf tests sur h'(t) et diff
          if(indsim.le.0)then
             indqn=-3
             if(indsim.eq.0)indqn=0
-            if(imp.gt.0) then
+            if(iprint.gt.0) then
               write(bufstr,123)indqn
               call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
               endif
@@ -599,14 +599,14 @@ c     amd,amf tests sur h'(t) et diff
          if(indrl.eq.-3)indqn=13
          if(indrl.eq.-4)indqn=12
          if(indrl.le.-1000)indqn=11
-         if(imp.gt.0) then
+         if(iprint.gt.0) then
            write(bufstr,123)indqn
            call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
            endif
          return
       endif
 c
-753   if(imp.lt.6)go to 778
+753   if(iprint.lt.6)go to 778
       do 760 i=1,n
 760      write(bufstr,777)i,x(i),g(i),dir(i)
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
@@ -615,13 +615,13 @@ c
 778   continue
       if(nap.lt.napmax)go to 758
       f=fn
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,755)napmax
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 755   format(' qnbd : retour cause max appels simul',i9)
       indqn=4
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -633,13 +633,13 @@ c
       if(abs(x(i)-x1(i)).gt.epsx(i))go to 806
 805   continue
       f=fn
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,1805)
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 1805  format(' qnbd : retour apres convergence de x')
       indqn=3
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -666,7 +666,7 @@ c
       df0=-diff
       if(irit.eq.1)difg0=difg1
       f=fn
-      if(imp.ge.2) then
+      if(iprint.ge.2) then
          write(bufstr,860)epsg,difg,epsf,diff,nap
          call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
          endif
@@ -674,12 +674,12 @@ c
      &,'  nap=',i3)
       if(diff.lt.epsf)then
       indqn=2
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,1865)diff
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 1865  format(' qnbd : retour cause decroissance f trop petite=',d11.4)
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
@@ -687,12 +687,12 @@ c
       endif
       if(difg.gt.epsg)go to 200
       indqn=1
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,1900)difg
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
 1900  format(' qnbd : retour cause gradient projete petit=',d11.4)
-      if(imp.gt.0) then
+      if(iprint.gt.0) then
         write(bufstr,123)indqn
         call basout(io_out ,io ,bufstr(1:lnblnk(bufstr)))
         endif
index 7e64161..0a0ad1a 100644 (file)
@@ -38,8 +38,8 @@ function [f, g, ind] = rosenbrockCostVariableStep(x, ind)
 endfunction
 x0 = [-1.2 1.0];
 lines(0);
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , iprint=printval);
 end
  n1qn3: entry point
      dimension of the problem (n):     2
@@ -48,7 +48,7 @@ end
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   1
+     printing level (iprint):   1
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -73,7 +73,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   2
+     printing level (iprint):   2
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -140,7 +140,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   3
+     printing level (iprint):   3
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -302,7 +302,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   4
+     printing level (iprint):   4
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -793,7 +793,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   5
+     printing level (iprint):   5
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1276,8 +1276,8 @@ optim: Optimization stops because too small variations for x.
      f         =  0.53783322D-16
      norm of x =  0.74770897D-13
 optim: Optimization stops because too small variations for x.
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , iprint=printval);
 end
  n1qn3: entry point
      dimension of the problem (n):     2
@@ -1286,7 +1286,7 @@ end
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   1
+     printing level (iprint):   1
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1311,7 +1311,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   2
+     printing level (iprint):   2
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1378,7 +1378,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   3
+     printing level (iprint):   3
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1561,7 +1561,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   4
+     printing level (iprint):   4
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -2073,7 +2073,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   5
+     printing level (iprint):   5
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
index 997250e..1e2ea02 100644 (file)
@@ -43,10 +43,10 @@ endfunction
 x0 = [-1.2 1.0];
 lines(0);
 
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , iprint=printval);
 end
 
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , iprint=printval);
 end
index 97a9f1b..be4ed17 100644 (file)
@@ -14,7 +14,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=13243
 //
 // <-- Short Description -->
-// optim() with "gc" option failed when imp<0.
+// optim() with "gc" option failed when iprint<0.
 function f = problem1(x)
     f = sum((x-(1:length(x))').^2);
 endfunction
@@ -31,12 +31,12 @@ endfunction
 // Initial guess:
 x0 = 1*ones(5, 1);
 // Perform optimization:
-[fopt, xopt] = optim(myoptfuncfixedstep, x0, "gc", imp=-1);
+[fopt, xopt] = optim(myoptfuncfixedstep, x0, "gc", iprint=-1);
 optim: Norm of projected gradient lower than 0.
 assert_checkequal(fopt, 0);
 assert_checkequal(xopt', 1:5);
 // Perform optimization:
-[fopt, xopt] = optim(myoptfuncvariablestep, x0, "gc", imp=-1);
+[fopt, xopt] = optim(myoptfuncvariablestep, x0, "gc", iprint=-1);
 optim: Norm of projected gradient lower than 0.
 assert_checkequal(fopt, 0);
 assert_checkequal(xopt', 1:5);
index 40376c9..5060cab 100644 (file)
@@ -14,7 +14,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=13243
 //
 // <-- Short Description -->
-// optim() with "gc" option failed when imp<0.
+// optim() with "gc" option failed when iprint<0.
 
 function f = problem1(x)
     f = sum((x-(1:length(x))').^2);
@@ -35,13 +35,13 @@ endfunction
 x0 = 1*ones(5, 1);
 
 // Perform optimization:
-[fopt, xopt] = optim(myoptfuncfixedstep, x0, "gc", imp=-1);
+[fopt, xopt] = optim(myoptfuncfixedstep, x0, "gc", iprint=-1);
 
 assert_checkequal(fopt, 0);
 assert_checkequal(xopt', 1:5);
 
 // Perform optimization:
-[fopt, xopt] = optim(myoptfuncvariablestep, x0, "gc", imp=-1);
+[fopt, xopt] = optim(myoptfuncvariablestep, x0, "gc", iprint=-1);
 
 assert_checkequal(fopt, 0);
 assert_checkequal(xopt', 1:5);
index 58ece86..437af63 100644 (file)
@@ -20,24 +20,24 @@ global iter;
 global to_record;
 // Rastrigin test function
 function [f,df,ind] = myf(x,ind)
-  global xn_1;
-  global iter;
-  global to_record;
-  global fn_1;
-  global gn_1;
-  if to_record then
-    xn_1($+1) = x;
-    printf("myf: ||xn(1) - xn_1(1)|| = %f - ||xn(2) - xn_1(2)|| = %f - iter = %d",norm(xn_1($)(1)-xn_1($-1)(1)),norm(xn_1($)(2)-xn_1($-1)(2)),iter);
-  end
-  iter = iter + 1;
-  f = x(1)^2+x(2)^2-cos(12*x(1))-cos(18*x(2));
-  df(1,1) = 2*x(1) - 12*sin(12*x(1));
-  df(2,1) = 2*x(2) - 18*sin(18*x(1));
-  if to_record then
-    fn_1($+1) = f;
-    gn_1($+1) = df;
-    printf(" - ||fn - fn_1|| = %f - ||gn - gn_1|| = %f\n",norm(fn_1($)-fn_1($-1)),norm(gn_1($)-gn_1($-1)));
-  end
+    global xn_1;
+    global iter;
+    global to_record;
+    global fn_1;
+    global gn_1;
+    if to_record then
+        xn_1($+1) = x;
+        printf("myf: ||xn(1) - xn_1(1)|| = %f - ||xn(2) - xn_1(2)|| = %f - iter = %d",norm(xn_1($)(1)-xn_1($-1)(1)),norm(xn_1($)(2)-xn_1($-1)(2)),iter);
+    end
+    iter = iter + 1;
+    f = x(1)^2+x(2)^2-cos(12*x(1))-cos(18*x(2));
+    df(1,1) = 2*x(1) - 12*sin(12*x(1));
+    df(2,1) = 2*x(2) - 18*sin(18*x(1));
+    if to_record then
+        fn_1($+1) = f;
+        gn_1($+1) = df;
+        printf(" - ||fn - fn_1|| = %f - ||gn - gn_1|| = %f\n",norm(fn_1($)-fn_1($-1)),norm(gn_1($)-gn_1($-1)));
+    end
 endfunction
 Min = [-1;-1];
 Max = [1;1];
@@ -51,15 +51,12 @@ gn_1 = list();
 [f_tmp, df_tmp, ind] = myf(x0,1);
 fn_1($+1) = f_tmp;
 gn_1($+1) = df_tmp
- gn_1  =
+ gn_1  = 
        gn_1(1)
-  - 1.1934401  
-    17.095542  
+  -1.1934401
+   17.095542
 to_record = %f;
-[fopt,xopt,gopt]=optim(myf,x0,algo="nd","ar",nap=20,iter=10,epsg=1e-1,epsf=1e-1,epsx=[1e-2;1e-2],imp=0);
+[fopt,xopt,gopt]=optim(myf,x0,algo="nd","ar",nap=20,iter=10,epsg=1e-1,epsf=1e-1,epsx=[1e-2;1e-2],iprint=0);
 list_to_plot = xn_1;
 xn_1 = list();
 to_record = %F;
@@ -67,9 +64,9 @@ x = Min(1):(Max(1)-Min(1))/20:Max(1);
 y = Min(2):(Max(2)-Min(2))/20:Max(2);
 [X,Y]=meshgrid(x,y);
 for i=1:size(X,1)
-  for j=1:size(X,2)
-    [Z(i,j),tmp1,tmp2] = myf([X(i,j);Y(i,j)],1);
-  end
+    for j=1:size(X,2)
+        [Z(i,j),tmp1,tmp2] = myf([X(i,j);Y(i,j)],1);
+    end
 end
 scf();
 drawlater;
@@ -79,6 +76,6 @@ _axes = get("current_axes");
 _axes.data_bounds = [Min(1) Max(1) Min(2) Max(2)];
 xtitle("myf","x1","x2");
 for i=1:length(list_to_plot)
-  plot(list_to_plot(i)(1),list_to_plot(i)(2),"ko");
+    plot(list_to_plot(i)(1),list_to_plot(i)(2),"ko");
 end
 drawnow;
index 0665bd0..2411ca0 100644 (file)
@@ -26,26 +26,26 @@ global to_record;
 // Rastrigin test function
 
 function [f,df,ind] = myf(x,ind)
-  global xn_1;
-  global iter;
-  global to_record;
-  global fn_1;
-  global gn_1;
-
-  if to_record then
-    xn_1($+1) = x;
-    printf("myf: ||xn(1) - xn_1(1)|| = %f - ||xn(2) - xn_1(2)|| = %f - iter = %d",norm(xn_1($)(1)-xn_1($-1)(1)),norm(xn_1($)(2)-xn_1($-1)(2)),iter);
-  end
-
-  iter = iter + 1;
-  f = x(1)^2+x(2)^2-cos(12*x(1))-cos(18*x(2));
-  df(1,1) = 2*x(1) - 12*sin(12*x(1));
-  df(2,1) = 2*x(2) - 18*sin(18*x(1));
-  if to_record then
-    fn_1($+1) = f;
-    gn_1($+1) = df;
-    printf(" - ||fn - fn_1|| = %f - ||gn - gn_1|| = %f\n",norm(fn_1($)-fn_1($-1)),norm(gn_1($)-gn_1($-1)));
-  end
+    global xn_1;
+    global iter;
+    global to_record;
+    global fn_1;
+    global gn_1;
+
+    if to_record then
+        xn_1($+1) = x;
+        printf("myf: ||xn(1) - xn_1(1)|| = %f - ||xn(2) - xn_1(2)|| = %f - iter = %d",norm(xn_1($)(1)-xn_1($-1)(1)),norm(xn_1($)(2)-xn_1($-1)(2)),iter);
+    end
+
+    iter = iter + 1;
+    f = x(1)^2+x(2)^2-cos(12*x(1))-cos(18*x(2));
+    df(1,1) = 2*x(1) - 12*sin(12*x(1));
+    df(2,1) = 2*x(2) - 18*sin(18*x(1));
+    if to_record then
+        fn_1($+1) = f;
+        gn_1($+1) = df;
+        printf(" - ||fn - fn_1|| = %f - ||gn - gn_1|| = %f\n",norm(fn_1($)-fn_1($-1)),norm(gn_1($)-gn_1($-1)));
+    end
 endfunction
 
 Min = [-1;-1];
@@ -66,7 +66,7 @@ gn_1($+1) = df_tmp
 
 to_record = %f;
 
-[fopt,xopt,gopt]=optim(myf,x0,algo="nd","ar",nap=20,iter=10,epsg=1e-1,epsf=1e-1,epsx=[1e-2;1e-2],imp=0);
+[fopt,xopt,gopt]=optim(myf,x0,algo="nd","ar",nap=20,iter=10,epsg=1e-1,epsf=1e-1,epsx=[1e-2;1e-2],iprint=0);
 
 list_to_plot = xn_1;
 xn_1 = list();
@@ -78,9 +78,9 @@ y = Min(2):(Max(2)-Min(2))/20:Max(2);
 [X,Y]=meshgrid(x,y);
 
 for i=1:size(X,1)
-  for j=1:size(X,2)
-    [Z(i,j),tmp1,tmp2] = myf([X(i,j);Y(i,j)],1);
-  end
+    for j=1:size(X,2)
+        [Z(i,j),tmp1,tmp2] = myf([X(i,j);Y(i,j)],1);
+    end
 end
 
 scf();
@@ -92,7 +92,7 @@ _axes.data_bounds = [Min(1) Max(1) Min(2) Max(2)];
 xtitle("myf","x1","x2");
 
 for i=1:length(list_to_plot)
-  plot(list_to_plot(i)(1),list_to_plot(i)(2),"ko");
+    plot(list_to_plot(i)(1),list_to_plot(i)(2),"ko");
 end
 
 drawnow;
index aff9980..6f93d8c 100644 (file)
@@ -14,8 +14,8 @@
 // problem using optim. On some examples, the optim function makes scilab hangs.
 // =============================================================================
 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);
+    deff("[y,dy,iprint] = testfunc(x,iprint)","y=sum(x.^2); dy = 2*x;");
+    x0=40*ones(100,1);
+    [f,xo]=optim(testfunc,x0,algo="gc",iprint=0);
 end
 // =============================================================================
index ecae4fe..6b25ed3 100644 (file)
@@ -16,8 +16,8 @@
 // problem using optim. On some examples, the optim function makes scilab hangs.
 // =============================================================================
 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  
+    deff("[y,dy,iprint] = testfunc(x,iprint)","y=sum(x.^2); dy = 2*x;");
+    x0=40*ones(100,1);
+    [f,xo]=optim(testfunc,x0,algo="gc",iprint=0);
+end
 // =============================================================================
index 4cbf66d..c72c380 100644 (file)
 //
 // <-- Short Description -->
 // this example with optim crashs 'optim' on windows (release mode)
-// 
+//
 // =============================================================================
 xref=[1;2;3];
 x0=[1;-1;1];
 function [f,g,ind] = cost(x,ind)
-  f=0.5*norm(x-xref)^2;
-  g=x-xref;
+    f=0.5*norm(x-xref)^2;
+    g=x-xref;
 endfunction
-[f,xopt]=optim(cost,x0,imp=3)
+[f,xopt]=optim(cost,x0,iprint=3)
 ***** enters -qn code- (without bound cstr)
-dimension=         3, epsq=  0.2220446049250313E-15, verbosity level: imp=         3
+dimension=         3, epsq=  0.2220446049250313E-15, verbosity level: iprint=         3
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
@@ -42,9 +42,9 @@ max number of calls to costf allowed: nap=       100
 ***** leaves -qn code-, gradient norm=  0.0000000000000000E+00
 optim: Norm of projected gradient lower than 0.
  xopt  = 
-    1.
-    2.
-    3.
+   1.
+   2.
+   3.
  f  = 
-    0.
+   0.
 // =============================================================================
index 5535e34..e369159 100644 (file)
 //
 // <-- Short Description -->
 // this example with optim crashs 'optim' on windows (release mode)
-// 
+//
 // =============================================================================
 xref=[1;2;3];
 x0=[1;-1;1];
 function [f,g,ind] = cost(x,ind)
-  f=0.5*norm(x-xref)^2;
-  g=x-xref;
+    f=0.5*norm(x-xref)^2;
+    g=x-xref;
 endfunction
-[f,xopt]=optim(cost,x0,imp=3)
+[f,xopt]=optim(cost,x0,iprint=3)
 // =============================================================================
index 3ccc905..58c9ed1 100644 (file)
@@ -43,11 +43,11 @@ function stop = myoutputcmd(state, data)
 endfunction
 xopt = [1;1]
  xopt  = 
-    1.
-    1.
+   1.
+   1.
 fopt = 0
  fopt  = 
-    0.
+   0.
 x0 = [-1.2 1.0];
 lower_bounds = [-2 -2];
 upper_bounds = [2. 2.];
index 1bdae06..ce38cd0 100644 (file)
@@ -150,7 +150,6 @@ function [ f , c , index ] = largesmallpolygon ( x , index )
     end
 endfunction
 Warning : redefining function: largesmallpolygon       . Use funcprot(0) to avoid this message
-
 nv = 6;
 rand("seed" , 0);
 [A,r,t] = findlargestpolygon (nv);
index bd0f1f3..bd1d398 100644 (file)
@@ -14,7 +14,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9688
 //
 // <-- Short Description -->
-// optim could crash when "imp" option was < 0
+// optim could crash when "iprint" option was < 0
 //
 function [ f , g , ind ] = woodFG ( x , ind )
     f = []
@@ -36,6 +36,6 @@ function [ f , g , ind ] = woodFG ( x , ind )
 endfunction
 x0 = [-3 -1 -3 -1];
 refMsg = msprintf(_("%s: Wrong type for output argument #%d: Real scalar expected.\n"), "woodFG", 1);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""qn"", imp=-1);", refMsg);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""gc"", imp=-1);", refMsg);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""nd"", imp=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""qn"", iprint=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""gc"", iprint=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""nd"", iprint=-1);", refMsg);
index cf0e8d5..889b5a0 100644 (file)
@@ -14,7 +14,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9688
 //
 // <-- Short Description -->
-// optim could crash when "imp" option was < 0
+// optim could crash when "iprint" option was < 0
 //
 function [ f , g , ind ] = woodFG ( x , ind )
     f = []
@@ -37,6 +37,6 @@ endfunction
 x0 = [-3 -1 -3 -1];
 
 refMsg = msprintf(_("%s: Wrong type for output argument #%d: Real scalar expected.\n"), "woodFG", 1);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""qn"", imp=-1);", refMsg);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""gc"", imp=-1);", refMsg);
-assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""nd"", imp=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""qn"", iprint=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""gc"", iprint=-1);", refMsg);
+assert_checkerror("[ fopt, xopt, gopt ] = optim ( woodFG, x0, ""nd"", iprint=-1);", refMsg);
index 976a5fa..541f257 100644 (file)
@@ -15,7 +15,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9690
 //
 // <-- Short Description -->
-// optim(): option "imp"=5 could crash Scilab
+// optim(): option "iprint"=5 could crash Scilab
 //
 function f = rosenbrock(x)
     f = 100.0 * (x(2)-x(1)^2)^2 + (1-x(1))^2;
@@ -40,8 +40,8 @@ function [f, g, ind] = rosenbrockCostVariableStep(x, ind)
 endfunction
 x0 = [-1.2 1.0];
 lines(0);
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , iprint=printval);
 end
  n1qn3: entry point
      dimension of the problem (n):     2
@@ -50,7 +50,7 @@ end
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   1
+     printing level (iprint):   1
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -75,7 +75,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   2
+     printing level (iprint):   2
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -142,7 +142,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   3
+     printing level (iprint):   3
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -304,7 +304,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   4
+     printing level (iprint):   4
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -795,7 +795,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   5
+     printing level (iprint):   5
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1278,8 +1278,8 @@ optim: Optimization stops because too small variations for x.
      f         =  0.53783322D-16
      norm of x =  0.74770897D-13
 optim: Optimization stops because too small variations for x.
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , iprint=printval);
 end
  n1qn3: entry point
      dimension of the problem (n):     2
@@ -1288,7 +1288,7 @@ end
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   1
+     printing level (iprint):   1
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1313,7 +1313,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   2
+     printing level (iprint):   2
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1380,7 +1380,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   3
+     printing level (iprint):   3
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -1563,7 +1563,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   4
+     printing level (iprint):   4
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -2075,7 +2075,7 @@ optim: Optimization stops because too small variations for x.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   5
+     printing level (iprint):   5
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
index d9db6f3..f4efcb7 100644 (file)
@@ -15,7 +15,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9690
 //
 // <-- Short Description -->
-// optim(): option "imp"=5 could crash Scilab
+// optim(): option "iprint"=5 could crash Scilab
 //
 function f = rosenbrock(x)
     f = 100.0 * (x(2)-x(1)^2)^2 + (1-x(1))^2;
@@ -44,10 +44,10 @@ endfunction
 x0 = [-1.2 1.0];
 lines(0);
 
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostFixedStep , x0 , "gc" , iprint=printval);
 end
 
-for impval = 1:5
-    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , imp=impval);
+for printval = 1:5
+    [ fopt , xopt ] = optim ( rosenbrockCostVariableStep , x0 , "gc" , iprint=printval);
 end
index 50b6499..31b7256 100644 (file)
@@ -15,7 +15,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9697
 //
 // <-- Short Description -->
-// The optim/"qn" /"gc" with bounds and imp=1 did not print the basic information of the problem.
+// The optim/"qn" /"gc" with bounds and iprint=1 did not print the basic information of the problem.
 //
 function [f, g, ind] = woodFG(x, ind)
     if ind == 2 | ind == 3 | ind == 4 then
@@ -40,23 +40,23 @@ endfunction
 x0 = [-3 -1 -3 -1];
 binf = [-10 -10 -10 -10];
 bsup = [0 0 0 0];
-[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "qn", imp=1);
+[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "qn", iprint=1);
  *********** qnbd (with bound cstr) ****************
-dimension=         4, epsq=  0.2220446049250313E-15, verbosity level: imp=         1
+dimension=         4, epsq=  0.2220446049250313E-15, verbosity level: iprint=         1
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
  qnbd : retour cause gradient projete petit= 0.0000D+00
  qnbd : indqn=       1
 optim: Norm of projected gradient lower than 2.22045e-16.
-[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "gc", imp=1);
+[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "gc", iprint=1);
  gcdb: entry point
      dimension of the problem (n):     4
      expected decrease for f (df0): 0.10D+01
      relative precision on g (epsg): 0.22D-15
      maximal number of iterations (itmax):   100
      maximal number of simulations (napmax):   100
-     printing level (imp):   1
+     printing level (iprint):   1
  gcbd : retour avec indgc=       1
- f,norme grad,nap,iter,indgc= 0.4200E+02 0.0000E+00     4     3     1
+ f,norme grad,nap,iter,indgc= 0.4200E+02 0.0000E+00    16   -11     1
 optim: Norm of projected gradient lower than 2.22045e-16.
index 87406f7..3ca64dc 100644 (file)
@@ -15,7 +15,7 @@
 // http://bugzilla.scilab.org/show_bug.cgi?id=9697
 //
 // <-- Short Description -->
-// The optim/"qn" /"gc" with bounds and imp=1 did not print the basic information of the problem.
+// The optim/"qn" /"gc" with bounds and iprint=1 did not print the basic information of the problem.
 //
 
 function [f, g, ind] = woodFG(x, ind)
@@ -43,5 +43,5 @@ x0 = [-3 -1 -3 -1];
 binf = [-10 -10 -10 -10];
 bsup = [0 0 0 0];
 
-[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "qn", imp=1);
-[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "gc", imp=1);
+[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "qn", iprint=1);
+[fopt, xopt, gopt] = optim(woodFG, "b", binf, bsup, x0, "gc", iprint=1);
index feb0c66..3c521dd 100644 (file)
@@ -29,6 +29,6 @@ function [f, g, ind] = optimCost(x, ind, n)
 endfunction
 n = 50000;
 x0 = ones(n, 1);
-try optim(list(optimCost, n), x0, "qn", "ar",1000,1000, imp=2); catch msg = lasterror(); end
+try optim(list(optimCost, n), x0, "qn", "ar",1000,1000, iprint=2); catch msg = lasterror(); end
 refMsg = msprintf(_("Can not allocate %.2f MB memory.\n"), (n * ((n+13) / 2) * 8) / 1e6);
 assert_checkequal(msg(1), refMsg);
index b1b4a43..43cf10e 100644 (file)
@@ -32,6 +32,6 @@ endfunction
 n = 50000;
 x0 = ones(n, 1);
 
-try optim(list(optimCost, n), x0, "qn", "ar",1000,1000, imp=2); catch msg = lasterror(); end
+try optim(list(optimCost, n), x0, "qn", "ar",1000,1000, iprint=2); catch msg = lasterror(); end
 refMsg = msprintf(_("Can not allocate %.2f MB memory.\n"), (n * ((n+13) / 2) * 8) / 1e6);
 assert_checkequal(msg(1), refMsg);
index 8706720..982a03b 100644 (file)
@@ -49,14 +49,12 @@ nm = neldermead_configure(nm,"-tolxmethod",%f);
 nm = neldermead_configure(nm,"-tolsimplexizemethod",%f);
 nm = neldermead_configure(nm,"-myterminateflag",%t);
 WARNING: Option -myterminateflag is obsolete.
-         Please use -outputcommand instead.
-         This feature will be permanently removed in Scilab 5.4.1
-
+WARNING: Please use -outputcommand instead.
+WARNING: This feature will be permanently removed in Scilab 5.4.1
 nm = neldermead_configure(nm,"-myterminate",mystoppingrule2);
 WARNING: Option -myterminate is obsolete.
-         Please use -outputcommand instead.
-         This feature will be permanently removed in Scilab 5.4.1
-
+WARNING: Please use -outputcommand instead.
+WARNING: This feature will be permanently removed in Scilab 5.4.1
 //
 // Check cget
 value = neldermead_cget(nm,"-myterminateflag");
index 3e95631..d646828 100644 (file)
@@ -73,160 +73,160 @@ nm = neldermead_configure(nm,"-maxiter",10);
 nm = neldermead_configure(nm,"-method","box");
 nm = neldermead_configure(nm,"-nbineqconst",3);
 nm = neldermead_search(nm, "off");
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.
-    0.
-    0.
-    0.
-    1.
-    0.575
-    0.575
-    0.575
-  - 1.3
-    0.575
-    0.575
-    0.575
-  - 1.3
-    0.4125
-    0.4125
-    0.4125
-  - 0.65
-    0.8121875
-    0.8121875
-  - 1.0628125
-  - 0.37375
-    0.8121875
-    0.8121875
-  - 1.0628125
-  - 0.37375
-    0.5826562
-    0.5826562
-  - 0.4798437
-  - 0.268125
-    1.1472148
-  - 0.7277852
-  - 0.0387227
-  - 0.5279219
-    0.823002
-  - 0.239498
-  - 0.0277793
-  - 0.3787266
-    0.823002
-  - 0.239498
-  - 0.0277793
-  - 0.3787266
-  - 0.254559
-    0.4345035
-  - 0.0546958
-  - 0.7456896
-  - 0.254559
-    0.4345035
-  - 0.0546958
-  - 0.7456896
-  - 0.1934109
-  - 0.4081375
-    0.8135612
-  - 0.6717268
-  - 0.1934109
-  - 0.4081375
-    0.8135612
-  - 0.6717268
-    0.0259124
-  - 0.1281306
-    0.4480337
-  - 0.5576654
-  - 0.1944957
-  - 0.497797
-  - 0.3260538
-  - 0.1221969
-  - 0.1944957
-  - 0.497797
-  - 0.3260538
-  - 0.1221969
-  - 1.3132094
-    0.2012786
-    0.0748015
-  - 0.3273479
-  - 1.3132094
-    0.2012786
-    0.0748015
-  - 0.3273479
-  - 0.7094975
-    0.0767113
-    0.0458113
-  - 0.3418679
-  - 0.1739697
-  - 0.8806538
-    0.1675844
-    0.3819016
-  - 0.1739697
-  - 0.8806538
-    0.1675844
-    0.3819016
-  - 0.196745
-  - 0.508979
-    0.1047661
-    0.0632345
-    0.712283
-  - 0.7522959
-    0.0708243
-    0.0898673
-    0.712283
-  - 0.7522959
-    0.0708243
-    0.0898673
-    0.3104755
-  - 0.5180113
-    0.0637554
-  - 0.0321448
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.
+   0.
+   0.
+   0.
+   1.
+   0.575
+   0.575
+   0.575
+  -1.3
+   0.575
+   0.575
+   0.575
+  -1.3
+   0.4125
+   0.4125
+   0.4125
+  -0.65
+   0.8121875
+   0.8121875
+  -1.0628125
+  -0.37375
+   0.8121875
+   0.8121875
+  -1.0628125
+  -0.37375
+   0.5826562
+   0.5826562
+  -0.4798437
+  -0.268125
+   1.1472148
+  -0.7277852
+  -0.0387227
+  -0.5279219
+   0.823002
+  -0.239498
+  -0.0277793
+  -0.3787266
+   0.823002
+  -0.239498
+  -0.0277793
+  -0.3787266
+  -0.254559
+   0.4345035
+  -0.0546958
+  -0.7456896
+  -0.254559
+   0.4345035
+  -0.0546958
+  -0.7456896
+  -0.1934109
+  -0.4081375
+   0.8135612
+  -0.6717268
+  -0.1934109
+  -0.4081375
+   0.8135612
+  -0.6717268
+   0.0259124
+  -0.1281306
+   0.4480337
+  -0.5576654
+  -0.1944957
+  -0.497797
+  -0.3260538
+  -0.1221969
+  -0.1944957
+  -0.497797
+  -0.3260538
+  -0.1221969
+  -1.3132094
+   0.2012786
+   0.0748015
+  -0.3273479
+  -1.3132094
+   0.2012786
+   0.0748015
+  -0.3273479
+  -0.7094975
+   0.0767113
+   0.0458113
+  -0.3418679
+  -0.1739697
+  -0.8806538
+   0.1675844
+   0.3819016
+  -0.1739697
+  -0.8806538
+   0.1675844
+   0.3819016
+  -0.196745
+  -0.508979
+   0.1047661
+   0.0632345
+   0.712283
+  -0.7522959
+   0.0708243
+   0.0898673
+   0.712283
+  -0.7522959
+   0.0708243
+   0.0898673
+   0.3104755
+  -0.5180113
+   0.0637554
+  -0.0321448
 nm = neldermead_destroy(nm);
index ac52c1d..a40abe0 100644 (file)
@@ -47,11 +47,11 @@ nm = nmplot_search(nm);
 optimbase_terminate: Exiting: Maximum number of iterations has been exceeded
          - increase MaxIter option.
 // Plot the contours of the cost function and the simplex history
-xmin = -2.0; 
-xmax = 2.0 ; 
-ymin = -2.0 ; 
-ymax = 2.0 ; 
-nx = NP ; 
+xmin = -2.0;
+xmax = 2.0 ;
+ymin = -2.0 ;
+ymax = 2.0 ;
+nx = NP ;
 ny = NP;
 [nm , xdata , ydata , zdata ] = nmplot_contour ( nm , ...
   xmin , xmax , ymin , ymax , nx , ny );
@@ -62,17 +62,17 @@ nmplot_simplexhistory ( nm );
 drawnow();
 close(f);
 f = scf();
-mytitle = "Function Value Average" ; 
+mytitle = "Function Value Average" ;
 myxlabel = "Iterations";
 nmplot_historyplot ( nm , fbarfn , mytitle , myxlabel);
 close(f);
 f = scf();
-mytitle = "Minimum Function Value" ; 
+mytitle = "Minimum Function Value" ;
 myxlabel = "Iterations";
 nmplot_historyplot ( nm , foptfn , mytitle , myxlabel);
 close(f);
 f = scf();
-mytitle = "Maximum Oriented length" ; 
+mytitle = "Maximum Oriented length" ;
 myxlabel = "Iterations";
 nmplot_historyplot ( nm , sigmafn , mytitle , myxlabel);
 close(f);
index 6157323..3b24688 100644 (file)
 // <-- ENGLISH IMPOSED -->
 // <-- NO CHECK REF -->
 //
-// Do not check ref, because imp option create output messages
+// Do not check ref, because iprint option create output messages
 // which contains lots of floating point values which may
 // be slightly different across platforms, without being bugs.
 //
 // optim_script.tst --
-//   Test the optim command with the Rosenbrock test case 
+//   Test the optim command with the Rosenbrock test case
 //   in the case where the cost function is a Scilab function.
 //   The expected solution is x=(1,...,1) where f(x)=0
 //
@@ -27,13 +27,13 @@ xopt=[1 1];
 fopt = 0.0;
 gopt = [0.0 0.0];
 function [ f , g , ind ] = rosenbrock ( x , ind )
-  if ind == 2 | ind == 4 then
-    f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  end
-  if ind == 2 | ind == 4 then
-    g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
-    g(2) = 200. * ( x(2) - x(1)**2 )
-  end
+    if ind == 2 | ind == 4 then
+        f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
+    end
+    if ind == 2 | ind == 4 then
+        g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
+        g(2) = 200. * ( x(2) - x(1)**2 )
+    end
 endfunction
 //
 // Configure the test so that verbose message do not interrupt the test.
@@ -46,38 +46,38 @@ assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,x0,'qn','ar',50);
+[f,x,g]=optim(rosenbrock,x0,"qn","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with hot-restart array tr
-[f,x,g,tr]=optim(rosenbrock,x0,'qn','ar',50);
+[f,x,g,tr]=optim(rosenbrock,x0,"qn","ar",50);
 [f,x,g]=optim(rosenbrock,x0,tr);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,x0,'qn','ar', 50 , 100 );
+[f,x,g]=optim(rosenbrock,x0,"qn","ar", 50 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=0);
-// imp = 1 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=1);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=0);
+// iprint = 1 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=1);
 ***** enters -qn code- (without bound cstr)
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         1
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         1
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
  iter num   38, nb calls=  46, f=  0.000
 ***** leaves -qn code-, gradient norm=  0.0000000000000000E+00
 optim: Norm of projected gradient lower than 0.
-// imp = 2 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=2);
+// iprint = 2 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=2);
 ***** enters -qn code- (without bound cstr)
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         2
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         2
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
@@ -121,10 +121,10 @@ max number of calls to costf allowed: nap=       100
  iter num   38, nb calls=  46, f=  0.000
 ***** leaves -qn code-, gradient norm=  0.0000000000000000E+00
 optim: Norm of projected gradient lower than 0.
-// imp = 3 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=3);
+// iprint = 3 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=3);
 ***** enters -qn code- (without bound cstr)
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         3
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         3
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
@@ -250,24 +250,24 @@ max number of calls to costf allowed: nap=       100
  iter num   38, nb calls=  46, f=  0.000
 ***** leaves -qn code-, gradient norm=  0.0000000000000000E+00
 optim: Norm of projected gradient lower than 0.
-// Negative imp : call back the cost function with ind = 0 each -imp iteration
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=-5);
+// Negative iprint : call back the cost function with ind = 0 each -iprint iteration
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=-5);
 optim: Norm of projected gradient lower than 0.
 //
 // 2. Test unconstrained Limited Memory BFGS
-[f,x,g]=optim(rosenbrock,x0,'gc');
+[f,x,g]=optim(rosenbrock,x0,"gc");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g]=optim(rosenbrock,x0,'gc','ar',50);
+[f,x,g]=optim(rosenbrock,x0,"gc","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=1);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=1);
  n1qn3: entry point
      dimension of the problem (n):     2
      absolute precision on x (dxmin): 0.22D-15
@@ -275,7 +275,7 @@ assert_checkalmostequal ( g , gopt , [] , Leps );
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   1
+     printing level (iprint):   1
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -290,8 +290,8 @@ assert_checkalmostequal ( g , gopt , [] , Leps );
      f         =  0.00000000D+00
      norm of x =  0.00000000D+00
 optim: Norm of projected gradient lower than 0.
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=2);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=2);
  n1qn3: entry point
      dimension of the problem (n):     2
      absolute precision on x (dxmin): 0.22D-15
@@ -299,7 +299,7 @@ optim: Norm of projected gradient lower than 0.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   2
+     printing level (iprint):   2
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -355,8 +355,8 @@ optim: Norm of projected gradient lower than 0.
      f         =  0.00000000D+00
      norm of x =  0.00000000D+00
 optim: Norm of projected gradient lower than 0.
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=3);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=3);
  n1qn3: entry point
      dimension of the problem (n):     2
      absolute precision on x (dxmin): 0.22D-15
@@ -364,7 +364,7 @@ optim: Norm of projected gradient lower than 0.
      relative precision on g (epsg): 0.95D-18
      maximal number of iterations (niter):   100
      maximal number of simulations (nsim):   100
-     printing level (impres):   3
+     printing level (iprint):   3
      allocated memory (nrz) :     58
      used memory :                58
      number of updates :          10
@@ -515,31 +515,31 @@ optim: Norm of projected gradient lower than 0.
 optim: Norm of projected gradient lower than 0.
 //
 // 3. Test unconstrained non-differentiable method
-[f,x,g]=optim(rosenbrock,x0,'nd');
+[f,x,g]=optim(rosenbrock,x0,"nd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,x0,'nd','ar',100);
+[f,x,g]=optim(rosenbrock,x0,"nd","ar",100);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,x0,'nd','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,x0,"nd","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=1);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=1);
 entry in n1fc1 . n=   2 memax= 10  
 minimal array sizes: iz(    22)  rz(    70)  dz(   198)
 n1fc1      Incorrect end of fprf2
 optim: End of optimization.
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=2);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=2);
 entry in n1fc1 . n=   2 memax= 10  
 minimal array sizes: iz(    22)  rz(    70)  dz(   198)
  n1fc1            diam1= 0.739D+00    eta2= 0.000D+00    ap= 0.299D-28
@@ -553,8 +553,8 @@ n1fc1   eta2 assigned to  0.444D-14
  n1fc1     33   90   0.1890964D-06   faisceau reduit a  2 gradients
 n1fc1      Incorrect end of fprf2
 optim: End of optimization.
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=3);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=3);
 entry in n1fc1 . n=   2 memax= 10  
 minimal array sizes: iz(    22)  rz(    70)  dz(   198)
 n1fc1      1    1   0.2420000D+02  0.10D+01  0.54D+05  0.00D+00  2
@@ -606,35 +606,35 @@ n1fc1      Incorrect end of fprf2
 optim: End of optimization.
 //
 // 4. Test bound-constrained BFGS
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn');
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn','ar',50);
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=1);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=1);
  *********** qnbd (with bound cstr) ****************
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         1
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         1
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
  qnbd : indqn=      13
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=2);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=2);
  *********** qnbd (with bound cstr) ****************
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         2
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         2
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
@@ -782,10 +782,10 @@ max number of calls to costf allowed: nap=       100
  qnbd : iter= 48  f=  0.7741575D-24
  qnbd : nbre fact  0 defact  0 total var factorisees  2
  qnbd : indqn=      13
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=3);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=3);
  *********** qnbd (with bound cstr) ****************
-dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: imp=         3
+dimension=         2, epsq=  0.2220446049250313E-15, verbosity level: iprint=         3
 max number of iterations allowed: iter=       100
 max number of calls to costf allowed: nap=       100
 ------------------------------------------------
@@ -1090,45 +1090,45 @@ d   t= 0.5000E-06 h= 0.3717E-25 dh/dt= 0.1781E-18 dfh/dt= 0.2790E-18 dt-0.5E-06
  qnbd : indqn=      13
 //
 // 5. Test bound-constrained Limited Memory BFGS
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc');
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc','ar',100);
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc","ar",100);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=1);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=1);
  gcdb: entry point
      dimension of the problem (n):     2
      expected decrease for f (df0): 0.10D+01
      relative precision on g (epsg): 0.22D-15
      maximal number of iterations (itmax):   100
      maximal number of simulations (napmax):   100
-     printing level (imp):   1
+     printing level (iprint):   1
  gcbd max appels simul
  gcbd : retour avec indgc=       4
  f,norme grad,nap,iter,indgc= 0.6214E-20 0.8448E-10   100    43     4
 optim: Optim stops: maximum number of calls to f is reached.
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=2);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=2);
  gcdb: entry point
      dimension of the problem (n):     2
      expected decrease for f (df0): 0.10D+01
      relative precision on g (epsg): 0.22D-15
      maximal number of iterations (itmax):   100
      maximal number of simulations (napmax):   100
-     printing level (imp):   2
+     printing level (iprint):   2
  dans gcbd  iter=  1  f=  0.2420000D+02
  gcbd. epsg,difg= 0.2220D-15 0.7159D+02  epsf,diff= 0.0000D+00 0.1784D+02  nap=  2
  dans gcbd  iter=  2  f=  0.6363632D+01
@@ -1218,15 +1218,15 @@ optim: Optim stops: maximum number of calls to f is reached.
  gcbd : retour avec indgc=       4
  f,norme grad,nap,iter,indgc= 0.6214E-20 0.8448E-10   100    43     4
 optim: Optim stops: maximum number of calls to f is reached.
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=3);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=3);
  gcdb: entry point
      dimension of the problem (n):     2
      expected decrease for f (df0): 0.10D+01
      relative precision on g (epsg): 0.22D-15
      maximal number of iterations (itmax):   100
      maximal number of simulations (napmax):   100
-     printing level (imp):   3
+     printing level (iprint):   3
  dans gcbd  iter=  1  f=  0.2420000D+02
  relvar1. valeur de eps1=  0.1020000D+02
    redemarrage. icycl=    2
@@ -1557,19 +1557,19 @@ d   t= 0.3894E+01 h=-0.3634E-24 dh/dt= 0.1157E-22 dfh/dt=-0.9333E-25 dt 0.4E+01
 optim: Optim stops: maximum number of calls to f is reached.
 //
 // 6. Test "sd", "si", "td", "ti" options
-[f,x,g,td]=optim(rosenbrock,x0,'sd');
+[f,x,g,td]=optim(rosenbrock,x0,"sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti]=optim(rosenbrock,x0,'si');
+[f,x,g,ti]=optim(rosenbrock,x0,"si");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti,td]=optim(rosenbrock,x0,'si','sd');
+[f,x,g,ti,td]=optim(rosenbrock,x0,"si","sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti,td]=optim(rosenbrock,x0,"ti",[2 2 2],"td",[1.1 1.1 1.1],'si','sd');
+[f,x,g,ti,td]=optim(rosenbrock,x0,"ti",[2 2 2],"td",[1.1 1.1 1.1],"si","sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
index 072266c..419bf44 100644 (file)
 // <-- ENGLISH IMPOSED -->
 // <-- NO CHECK REF -->
 //
-// Do not check ref, because imp option create output messages
+// Do not check ref, because iprint option create output messages
 // which contains lots of floating point values which may
 // be slightly different across platforms, without being bugs.
 //
 // optim_script.tst --
-//   Test the optim command with the Rosenbrock test case 
+//   Test the optim command with the Rosenbrock test case
 //   in the case where the cost function is a Scilab function.
 //   The expected solution is x=(1,...,1) where f(x)=0
 //
@@ -30,13 +30,13 @@ xopt=[1 1];
 fopt = 0.0;
 gopt = [0.0 0.0];
 function [ f , g , ind ] = rosenbrock ( x , ind )
-  if ind == 2 | ind == 4 then
-    f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
-  end
-  if ind == 2 | ind == 4 then
-    g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
-    g(2) = 200. * ( x(2) - x(1)**2 )
-  end
+    if ind == 2 | ind == 4 then
+        f = 100.0 *(x(2)-x(1)^2)^2 + (1-x(1))^2;
+    end
+    if ind == 2 | ind == 4 then
+        g(1) = - 400. * ( x(2) - x(1)**2 ) * x(1) -2. * ( 1. - x(1) )
+        g(2) = 200. * ( x(2) - x(1)**2 )
+    end
 endfunction
 //
 // Configure the test so that verbose message do not interrupt the test.
@@ -49,142 +49,142 @@ assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,x0,'qn','ar',50);
+[f,x,g]=optim(rosenbrock,x0,"qn","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with hot-restart array tr
-[f,x,g,tr]=optim(rosenbrock,x0,'qn','ar',50);
+[f,x,g,tr]=optim(rosenbrock,x0,"qn","ar",50);
 [f,x,g]=optim(rosenbrock,x0,tr);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,x0,'qn','ar', 50 , 100 );
+[f,x,g]=optim(rosenbrock,x0,"qn","ar", 50 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=0);
-// imp = 1 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=1);
-// imp = 2 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=2);
-// imp = 3 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=3);
-// Negative imp : call back the cost function with ind = 0 each -imp iteration
-[f,x,g]=optim(rosenbrock,x0,'qn',imp=-5);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=0);
+// iprint = 1 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=1);
+// iprint = 2 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=2);
+// iprint = 3 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=3);
+// Negative iprint : call back the cost function with ind = 0 each -iprint iteration
+[f,x,g]=optim(rosenbrock,x0,"qn",iprint=-5);
 //
 // 2. Test unconstrained Limited Memory BFGS
-[f,x,g]=optim(rosenbrock,x0,'gc');
+[f,x,g]=optim(rosenbrock,x0,"gc");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g]=optim(rosenbrock,x0,'gc','ar',50);
+[f,x,g]=optim(rosenbrock,x0,"gc","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=1);
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=2);
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'gc',imp=3);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=1);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=2);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"gc",iprint=3);
 //
 // 3. Test unconstrained non-differentiable method
-[f,x,g]=optim(rosenbrock,x0,'nd');
+[f,x,g]=optim(rosenbrock,x0,"nd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,x0,'nd','ar',100);
+[f,x,g]=optim(rosenbrock,x0,"nd","ar",100);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,x0,'nd','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,x0,"nd","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=1);
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=2);
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,x0,'nd',imp=3);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=1);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=2);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,x0,"nd",iprint=3);
 
 //
 // 4. Test bound-constrained BFGS
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn');
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn','ar',50);
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn","ar",50);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=1);
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=2);
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'qn',imp=3);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=1);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=2);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"qn",iprint=3);
 //
 // 5. Test bound-constrained Limited Memory BFGS
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc');
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc','ar',100);
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc","ar",100);
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
 // Test with maximum number of call to cost function, maximum number of iterations
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc','ar', 100 , 100 );
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc","ar", 100 , 100 );
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-// Test with various imp levels
-// imp = 0 : No messages
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=0);
-// imp = 1,2 : one line at start, one line at end
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=1);
-// imp = 3 : one line by iteration
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=2);
-// imp = 4 : one line by iteration + one line by line search
-[f,x,g]=optim(rosenbrock,'b',bi,bs,x0,'gc',imp=3);
+// Test with various iprint levels
+// iprint = 0 : No messages
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=0);
+// iprint = 1,2 : one line at start, one line at end
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=1);
+// iprint = 3 : one line by iteration
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=2);
+// iprint = 4 : one line by iteration + one line by line search
+[f,x,g]=optim(rosenbrock,"b",bi,bs,x0,"gc",iprint=3);
 //
 // 6. Test "sd", "si", "td", "ti" options
-[f,x,g,td]=optim(rosenbrock,x0,'sd');
+[f,x,g,td]=optim(rosenbrock,x0,"sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti]=optim(rosenbrock,x0,'si');
+[f,x,g,ti]=optim(rosenbrock,x0,"si");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti,td]=optim(rosenbrock,x0,'si','sd');
+[f,x,g,ti,td]=optim(rosenbrock,x0,"si","sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
-[f,x,g,ti,td]=optim(rosenbrock,x0,"ti",[2 2 2],"td",[1.1 1.1 1.1],'si','sd');
+[f,x,g,ti,td]=optim(rosenbrock,x0,"ti",[2 2 2],"td",[1.1 1.1 1.1],"si","sd");
 assert_checkalmostequal ( x , xopt , Leps );
 assert_checkalmostequal ( f , fopt , [] , Leps );
 assert_checkalmostequal ( g , gopt , [] , Leps );
index da1ee3e..14d0ced 100644 (file)
@@ -9,7 +9,7 @@
 // <-- ENGLISH IMPOSED -->
 // optim.tst --
 //   Test the optim command with the Rosenbrock test case
-//   in the case where the cost function is provided as a Fortran 
+//   in the case where the cost function is provided as a Fortran
 //   routine.
 //   The "genros" function is defined in optimization/sci_gateway/fortran/Ex-optim.f
 //
@@ -28,49 +28,49 @@ cur_dir = pwd();
 chdir(TMPDIR);
 // External function written in C (C compiler required)
 // write down the C code (Rosenbrock problem)
-C=['#include <math.h>'
-'double sq(double x)'
-'{ return x*x;}'
-'void rosenc(int *ind, int *n, double *x, double *f, double *g, '
-'                                int *ti, float *tr, double *td)'
-'{'
-'  double p;'
-'  int i;'
-'  p=td[0];'
-'  if (*ind==2||*ind==4) {'
-'    *f=1.0;'
-'    for (i=1;i<*n;i++)'
-'      *f+=p*sq(x[i]-sq(x[i-1]))+sq(1.0-x[i]);'
-'  }'
-'  if (*ind==3||*ind==4) {'
-'    g[0]=-4.0*p*(x[1]-sq(x[0]))*x[0];'
-'    for (i=1;i<*n-1;i++)'
-'      g[i]=2.0*p*(x[i]-sq(x[i-1]))-4.0*p*(x[i+1]-sq(x[i]))*x[i]-2.0*(1.0-x[i]);'
-'    g[*n-1]=2.0*p*(x[*n-1]-sq(x[*n-2]))-2.0*(1.0-x[*n-1]);'
-'  }'
-'}'];
-mputl(C,'rosenc.c');
+C=["#include <math.h>"
+"double sq(double x)"
+"{ return x*x;}"
+"void rosenc(int *ind, int *n, double *x, double *f, double *g, "
+"                                int *ti, float *tr, double *td)"
+"{"
+"  double p;"
+"  int i;"
+"  p=td[0];"
+"  if (*ind==2||*ind==4) {"
+"    *f=1.0;"
+"    for (i=1;i<*n;i++)"
+"      *f+=p*sq(x[i]-sq(x[i-1]))+sq(1.0-x[i]);"
+"  }"
+"  if (*ind==3||*ind==4) {"
+"    g[0]=-4.0*p*(x[1]-sq(x[0]))*x[0];"
+"    for (i=1;i<*n-1;i++)"
+"      g[i]=2.0*p*(x[i]-sq(x[i-1]))-4.0*p*(x[i+1]-sq(x[i]))*x[i]-2.0*(1.0-x[i]);"
+"    g[*n-1]=2.0*p*(x[*n-1]-sq(x[*n-2]))-2.0*(1.0-x[*n-1]);"
+"  }"
+"}"];
+mputl(C,"rosenc.c");
 // compile the C code
-libpath=ilib_for_link('rosenc','rosenc.c',[],'c');
+libpath=ilib_for_link("rosenc","rosenc.c",[],"c");
 // incremental linking
 exec loader.sce;
 chdir(cur_dir);
 //solve the problem
 valtd=100;
 // Test with default solver and default settings.
-[f,x,g]=optim('rosenc',x0,'td',valtd);
+[f,x,g]=optim("rosenc",x0,"td",valtd);
 if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 // Test with all solvers
 solverlist=["gc" "qn" "nd"];
 for solver=solverlist
-  [f,x,g]=optim('rosenc',x0,solver,'td',valtd);
-  if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
+    [f,x,g]=optim("rosenc",x0,solver,"td",valtd);
+    if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
 end
 // Test all verbose levels with all possible solvers
 verboselevels=[0];
 for verbose=verboselevels
-  for solver=solverlist
-    [f,x,g]=optim('rosenc',x0,solver,'td',valtd,imp=verbose);
-    if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
-  end
+    for solver=solverlist
+        [f,x,g]=optim("rosenc",x0,solver,"td",valtd,iprint=verbose);
+        if abs(f-1+norm(x-xopt) ) > Leps then bugmes();quit;end
+    end
 end
index 1ae43f6..b33c624 100644 (file)
@@ -11,7 +11,7 @@
 
 // optim.tst --
 //   Test the optim command with the Rosenbrock test case
-//   in the case where the cost function is provided as a Fortran 
+//   in the case where the cost function is provided as a Fortran
 //   routine.
 //   The "genros" function is defined in optimization/sci_gateway/fortran/Ex-optim.f
 //
@@ -32,50 +32,49 @@ cur_dir = pwd();
 chdir(TMPDIR);
 // External function written in C (C compiler required)
 // write down the C code (Rosenbrock problem)
-C=['#include <math.h>'
-'double sq(double x)'
-'{ return x*x;}'
-'void rosenc(int *ind, int *n, double *x, double *f, double *g, '
-'                                int *ti, float *tr, double *td)'
-'{'
-'  double p;'
-'  int i;'
-'  p=td[0];'
-'  if (*ind==2||*ind==4) {'
-'    *f=1.0;'
-'    for (i=1;i<*n;i++)'
-'      *f+=p*sq(x[i]-sq(x[i-1]))+sq(1.0-x[i]);'
-'  }'
-'  if (*ind==3||*ind==4) {'
-'    g[0]=-4.0*p*(x[1]-sq(x[0]))*x[0];'
-'    for (i=1;i<*n-1;i++)'
-'      g[i]=2.0*p*(x[i]-sq(x[i-1]))-4.0*p*(x[i+1]-sq(x[i]))*x[i]-2.0*(1.0-x[i]);'
-'    g[*n-1]=2.0*p*(x[*n-1]-sq(x[*n-2]))-2.0*(1.0-x[*n-1]);'
-'  }'
-'}'];
-mputl(C,'rosenc.c');
+C=["#include <math.h>"
+"double sq(double x)"
+"{ return x*x;}"
+"void rosenc(int *ind, int *n, double *x, double *f, double *g, "
+"                                int *ti, float *tr, double *td)"
+"{"
+"  double p;"
+"  int i;"
+"  p=td[0];"
+"  if (*ind==2||*ind==4) {"
+"    *f=1.0;"
+"    for (i=1;i<*n;i++)"
+"      *f+=p*sq(x[i]-sq(x[i-1]))+sq(1.0-x[i]);"
+"  }"
+"  if (*ind==3||*ind==4) {"
+"    g[0]=-4.0*p*(x[1]-sq(x[0]))*x[0];"
+"    for (i=1;i<*n-1;i++)"
+"      g[i]=2.0*p*(x[i]-sq(x[i-1]))-4.0*p*(x[i+1]-sq(x[i]))*x[i]-2.0*(1.0-x[i]);"
+"    g[*n-1]=2.0*p*(x[*n-1]-sq(x[*n-2]))-2.0*(1.0-x[*n-1]);"
+"  }"
+"}"];
+mputl(C,"rosenc.c");
 // compile the C code
-libpath=ilib_for_link('rosenc','rosenc.c',[],'c');
+libpath=ilib_for_link("rosenc","rosenc.c",[],"c");
 // incremental linking
 exec loader.sce;
 chdir(cur_dir);
 //solve the problem
 valtd=100;
 // Test with default solver and default settings.
-[f,x,g]=optim('rosenc',x0,'td',valtd);
+[f,x,g]=optim("rosenc",x0,"td",valtd);
 if abs(f-1+norm(x-xopt) ) > Leps then pause,end
 // Test with all solvers
 solverlist=["gc" "qn" "nd"];
 for solver=solverlist
-  [f,x,g]=optim('rosenc',x0,solver,'td',valtd);
-  if abs(f-1+norm(x-xopt) ) > Leps then pause,end
+    [f,x,g]=optim("rosenc",x0,solver,"td",valtd);
+    if abs(f-1+norm(x-xopt) ) > Leps then pause,end
 end
 // Test all verbose levels with all possible solvers
 verboselevels=[0];
 for verbose=verboselevels
-  for solver=solverlist
-    [f,x,g]=optim('rosenc',x0,solver,'td',valtd,imp=verbose);
-    if abs(f-1+norm(x-xopt) ) > Leps then pause,end
-  end
+    for solver=solverlist
+        [f,x,g]=optim("rosenc",x0,solver,"td",valtd,iprint=verbose);
+        if abs(f-1+norm(x-xopt) ) > Leps then pause,end
+    end
 end
-
index 102b837..c002ddc 100644 (file)
@@ -27,53 +27,53 @@ chdir(TMPDIR);
 //
 // External function written in Fortran (Fortran compiler required)
 // write down the Fortran  code (Rosenbrock problem)
-F=[ '      subroutine rosenf(ind, n, x, f, g, ti, tr, td)'
-'      integer ind,n,ti(*)'
-'      double precision x(n),f,g(n),td(*)'
-'      real tr(*)'
-'c'
-'      double precision y,p'
-'      p=td(1)'
-'      if (ind.eq.2.or.ind.eq.4) then'
-'        f=1.0d0'
-'        do i=2,n'
-'          f=f+p*(x(i)-x(i-1)**2)**2+(1.0d0-x(i))**2'
-'        enddo'
-'      endif'
-'      if (ind.eq.3.or.ind.eq.4) then'
-'        g(1)=-4.0d0*p*(x(2)-x(1)**2)*x(1)'
-'        if(n.gt.2) then'
-'          do i=2,n-1'
-'            g(i)=2.0d0*p*(x(i)-x(i-1)**2)-4.0d0*p*(x(i+1)-x(i)**2)*x(i)'
-'     &           -2.0d0*(1.0d0-x(i))'
-'          enddo'
-'        endif'
-'        g(n)=2.0d0*p*(x(n)-x(n-1)**2)-2.0d0*(1.0d0-x(n))'
-'      endif'
-'      return'
-'      end'];
-mputl(F,TMPDIR + '/rosenf.f');
+F=[ "      subroutine rosenf(ind, n, x, f, g, ti, tr, td)"
+"      integer ind,n,ti(*)"
+"      double precision x(n),f,g(n),td(*)"
+"      real tr(*)"
+"c"
+"      double precision y,p"
+"      p=td(1)"
+"      if (ind.eq.2.or.ind.eq.4) then"
+"        f=1.0d0"
+"        do i=2,n"
+"          f=f+p*(x(i)-x(i-1)**2)**2+(1.0d0-x(i))**2"
+"        enddo"
+"      endif"
+"      if (ind.eq.3.or.ind.eq.4) then"
+"        g(1)=-4.0d0*p*(x(2)-x(1)**2)*x(1)"
+"        if(n.gt.2) then"
+"          do i=2,n-1"
+"            g(i)=2.0d0*p*(x(i)-x(i-1)**2)-4.0d0*p*(x(i+1)-x(i)**2)*x(i)"
+"     &           -2.0d0*(1.0d0-x(i))"
+"          enddo"
+"        endif"
+"        g(n)=2.0d0*p*(x(n)-x(n-1)**2)-2.0d0*(1.0d0-x(n))"
+"      endif"
+"      return"
+"      end"];
+mputl(F,TMPDIR + "/rosenf.f");
 // compile the Fortran code
-ilib_for_link('rosenf', 'rosenf.f', [], 'f');
+ilib_for_link("rosenf", "rosenf.f", [], "f");
 exec loader.sce;
 chdir(cur_dir);
 //solve the problem
 x0 = 1.2*ones(n, 1);
 valtd = 100;
-[f, xo, go] = optim('rosenf', x0, 'td', valtd);
+[f, xo, go] = optim("rosenf", x0, "td", valtd);
 // 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
+    [f, x, g] = optim("rosenf", x0, solver, "td", valtd);
+    if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
 end
 // Test all verbose levels with all possible solvers
 verboselevels = [0];
 for verbose = verboselevels
-  for solver = solverlist
-    [f,x,g] = optim('rosenf', x0, solver, 'td', valtd, imp = verbose);
-    if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
-  end
+    for solver = solverlist
+        [f,x,g] = optim("rosenf", x0, solver, "td", valtd, iprint = verbose);
+        if abs(f - 1 + norm(x - xopt) ) > Leps then bugmes();quit;end
+    end
 end
 // Clean-up
 ulink();
index b653bcf..7538f51 100644 (file)
@@ -31,55 +31,55 @@ chdir(TMPDIR);
 //
 // External function written in Fortran (Fortran compiler required)
 // write down the Fortran  code (Rosenbrock problem)
-F=[ '      subroutine rosenf(ind, n, x, f, g, ti, tr, td)'
-'      integer ind,n,ti(*)'
-'      double precision x(n),f,g(n),td(*)'
-'      real tr(*)'
-'c'
-'      double precision y,p'
-'      p=td(1)'
-'      if (ind.eq.2.or.ind.eq.4) then'
-'        f=1.0d0'
-'        do i=2,n'
-'          f=f+p*(x(i)-x(i-1)**2)**2+(1.0d0-x(i))**2'
-'        enddo'
-'      endif'
-'      if (ind.eq.3.or.ind.eq.4) then'
-'        g(1)=-4.0d0*p*(x(2)-x(1)**2)*x(1)'
-'        if(n.gt.2) then'
-'          do i=2,n-1'
-'            g(i)=2.0d0*p*(x(i)-x(i-1)**2)-4.0d0*p*(x(i+1)-x(i)**2)*x(i)'
-'     &           -2.0d0*(1.0d0-x(i))'
-'          enddo'
-'        endif'
-'        g(n)=2.0d0*p*(x(n)-x(n-1)**2)-2.0d0*(1.0d0-x(n))'
-'      endif'
-'      return'
-'      end'];
+F=[ "      subroutine rosenf(ind, n, x, f, g, ti, tr, td)"
+"      integer ind,n,ti(*)"
+"      double precision x(n),f,g(n),td(*)"
+"      real tr(*)"
+"c"
+"      double precision y,p"
+"      p=td(1)"
+"      if (ind.eq.2.or.ind.eq.4) then"
+"        f=1.0d0"
+"        do i=2,n"
+"          f=f+p*(x(i)-x(i-1)**2)**2+(1.0d0-x(i))**2"
+"        enddo"
+"      endif"
+"      if (ind.eq.3.or.ind.eq.4) then"
+"        g(1)=-4.0d0*p*(x(2)-x(1)**2)*x(1)"
+"        if(n.gt.2) then"
+"          do i=2,n-1"
+"            g(i)=2.0d0*p*(x(i)-x(i-1)**2)-4.0d0*p*(x(i+1)-x(i)**2)*x(i)"
+"     &           -2.0d0*(1.0d0-x(i))"
+"          enddo"
+"        endif"
+"        g(n)=2.0d0*p*(x(n)-x(n-1)**2)-2.0d0*(1.0d0-x(n))"
+"      endif"
+"      return"
+"      end"];
 
 
-mputl(F,TMPDIR + '/rosenf.f');
+mputl(F,TMPDIR + "/rosenf.f");
 // compile the Fortran code
-ilib_for_link('rosenf', 'rosenf.f', [], 'f');
+ilib_for_link("rosenf", "rosenf.f", [], "f");
 exec loader.sce;
 chdir(cur_dir);
 //solve the problem
 x0 = 1.2*ones(n, 1);
 valtd = 100;
-[f, xo, go] = optim('rosenf', x0, 'td', valtd);
+[f, xo, go] = optim("rosenf", x0, "td", valtd);
 // 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 pause, end
+    [f, x, g] = optim("rosenf", x0, solver, "td", valtd);
+    if abs(f - 1 + norm(x - xopt) ) > Leps then pause, end
 end
 // Test all verbose levels with all possible solvers
 verboselevels = [0];
 for verbose = verboselevels
-  for solver = solverlist
-    [f,x,g] = optim('rosenf', x0, solver, 'td', valtd, imp = verbose);
-    if abs(f - 1 + norm(x - xopt) ) > Leps then pause,end
-  end
+    for solver = solverlist
+        [f,x,g] = optim("rosenf", x0, solver, "td", valtd, iprint = verbose);
+        if abs(f - 1 + norm(x - xopt) ) > Leps then pause,end
+    end
 end
 // Clean-up
 ulink();