* Bug #9577 fixed - Optimization: setting neldermead_configure(-numberofvariables... 36/12436/2
Paul BIGNIER [Thu, 5 Sep 2013 13:38:20 +0000 (15:38 +0200)]
Setting neldermead_configure("-x0") does both.

Change-Id: If553352ee0b0d4775103b9433c1f1d9064b38a48

scilab/CHANGES_5.5.X
scilab/modules/optimization/help/en_US/neldermead/neldermead.xml
scilab/modules/optimization/macros/optimbase/optimbase_configure.sci
scilab/modules/optimization/tests/nonreg_tests/bug_9577.dia.ref [new file with mode: 0644]
scilab/modules/optimization/tests/nonreg_tests/bug_9577.tst [new file with mode: 0644]

index 5250576..eb04659 100644 (file)
@@ -355,6 +355,9 @@ Bug fixes
 
 * Bug #9459 fixed - Default values of the optional plot3d arguments were not documented.
 
+* Bug #9577 fixed - Setting neldermead_configure("-numberofvariables") is now optional,
+                    setting neldermead_configure("-x0") does it implicitly.
+
 * Bug #9601 fixed - Cylinder demo failed with a bad value.
 
 * Bug #9691 fixed - "imp" option of optim was poorly documented.
index 5e8e08c..f98d68c 100644 (file)
                                                 a 1-by-1 matrix of doubles, positive, integer value,
                                                 the number of variables to optimize (default numberofvariables = 0).
                                             </para>
+                                            <para>
+                                                This does not need to be set if <literal>-x0</literal> key has been set before,
+                                                because the <literal>-x0</literal> key sets <literal>-numberofvariables</literal>
+                                                to the size of the column vector <literal>x0</literal>.
+                                            </para>
                                         </listitem>
                                     </varlistentry>
                                     <varlistentry>
index a62df46..6b11553 100644 (file)
@@ -46,6 +46,7 @@ function this = optimbase_configure (this,key,value)
             error(errmsg);
         end
         this.x0 = value;
+        this.numberofvariables = n; // Setting x0 also sets the size of the system
     case "-maxfunevals" then
         optimbase_typereal ( value , "value" , 3 );
         optimbase_checkscalar ( "optimbase_configure" , value , "value" , 3 )
@@ -215,4 +216,3 @@ function optimbase_checkoption ( funname , var , varname , ivar , expectedopt )
         error(errmsg);
     end
 endfunction
-
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9577.dia.ref b/scilab/modules/optimization/tests/nonreg_tests/bug_9577.dia.ref
new file mode 100644 (file)
index 0000000..7f62ffa
--- /dev/null
@@ -0,0 +1,26 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9577 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9577
+//
+// <-- Short Description -->
+// neldermead_configure(): if -x0 is set, -numberofvariables is now optional.
+// It was redundant to call neldermead_configure(nm, "-numberofvariables", X) if
+// neldermead_configure(nm, "-x0", x0) had been set beforehand.
+//
+x0 = [1.2 1.9,1.5]';
+nm = neldermead_new ();
+nm = neldermead_configure(nm, "-x0", x0);
+numberOfVar = neldermead_cget(nm, "-numberofvariables");
+assert_checkequal(numberOfVar, 3);
diff --git a/scilab/modules/optimization/tests/nonreg_tests/bug_9577.tst b/scilab/modules/optimization/tests/nonreg_tests/bug_9577.tst
new file mode 100644 (file)
index 0000000..9e93969
--- /dev/null
@@ -0,0 +1,27 @@
+// =============================================================================
+// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
+// Copyright (C) 2013 - Scilab Enterprises - Paul Bignier
+//
+//  This file is distributed under the same license as the Scilab package.
+// =============================================================================
+//
+// <-- ENGLISH IMPOSED -->
+//
+// <-- CLI SHELL MODE -->
+//
+// <-- Non-regression test for bug 9577 -->
+//
+// <-- Bugzilla URL -->
+// http://bugzilla.scilab.org/show_bug.cgi?id=9577
+//
+// <-- Short Description -->
+// neldermead_configure(): if -x0 is set, -numberofvariables is now optional.
+// It was redundant to call neldermead_configure(nm, "-numberofvariables", X) if
+// neldermead_configure(nm, "-x0", x0) had been set beforehand.
+//
+
+x0 = [1.2 1.9,1.5]';
+nm = neldermead_new ();
+nm = neldermead_configure(nm, "-x0", x0);
+numberOfVar = neldermead_cget(nm, "-numberofvariables");
+assert_checkequal(numberOfVar, 3);