annotate scripts/optimization/optimset.m @ 15063:36cbcc37fdb8

Refactor configure.ac to make it more understandable. Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests. * configure.ac, m4/acinclude.m4: Use common syntax for messages in config.h Correct typos, refer to libraries in all caps, use two spaces after period. Follow Autoconf guidelines and place general tests before specific tests.
author Rik <rik@octave.org>
date Tue, 31 Jul 2012 10:28:51 -0700
parents f8bb15f6a19b
children 049e8bbff782
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 13836
diff changeset
1 ## Copyright (C) 2007-2012 John W. Eaton
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
2 ## Copyright (C) 2009 VZLU Prague
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
3 ##
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
4 ## This file is part of Octave.
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
5 ##
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
6 ## Octave is free software; you can redistribute it and/or modify it
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
7 ## under the terms of the GNU General Public License as published by
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6227
diff changeset
8 ## the Free Software Foundation; either version 3 of the License, or (at
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6227
diff changeset
9 ## your option) any later version.
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
10 ##
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
11 ## Octave is distributed in the hope that it will be useful, but
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
12 ## WITHOUT ANY WARRANTY; without even the implied warranty of
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
13 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
14 ## General Public License for more details.
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
15 ##
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
16 ## You should have received a copy of the GNU General Public License
7016
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6227
diff changeset
17 ## along with Octave; see the file COPYING. If not, see
93c65f2a5668 [project @ 2007-10-12 06:40:56 by jwe]
jwe
parents: 6227
diff changeset
18 ## <http://www.gnu.org/licenses/>.
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
19
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
20 ## -*- texinfo -*-
10793
be55736a0783 Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents: 10635
diff changeset
21 ## @deftypefn {Function File} {} optimset ()
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
22 ## @deftypefnx {Function File} {} optimset (@var{par}, @var{val}, @dots{})
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
23 ## @deftypefnx {Function File} {} optimset (@var{old}, @var{par}, @var{val}, @dots{})
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
24 ## @deftypefnx {Function File} {} optimset (@var{old}, @var{new})
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
25 ## Create options struct for optimization functions.
13797
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
26 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
27 ## Valid parameters are:
14366
b76f0740940e doc: Periodic grammar check of documentation.
Rik <octave@nomad.inbox5.com>
parents: 14363
diff changeset
28 ##
14898
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
29 ## @table @asis
13797
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
30 ## @item AutoScaling
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
31 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
32 ## @item ComplexEqn
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
33 ##
14898
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
34 ## @item Display
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
35 ## Request verbose display of results from optimizations. Values are:
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
36 ##
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
37 ## @table @asis
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
38 ## @item "off" [default]
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
39 ## No display.
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
40 ##
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
41 ## @item "iter"
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
42 ## Display intermediate results for every loop iteration.
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
43 ##
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
44 ## @item "final"
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
45 ## Display the result of the final loop iteration.
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
46 ##
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
47 ## @item "notify"
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
48 ## Display the result of the final loop iteration if the function has
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
49 ## failed to converge.
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
50 ## @end table
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
51 ##
13797
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
52 ## @item FinDiffType
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
53 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
54 ## @item FunValCheck
14387
966ec84e7858 doc: Update optimset docstring with details of FunValCheck option.
Rik <octave@nomad.inbox5.com>
parents: 14366
diff changeset
55 ## When enabled, display an error if the objective function returns an invalid
14898
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
56 ## value (a complex number, NaN, or Inf). Must be set to "on" or "off"
14387
966ec84e7858 doc: Update optimset docstring with details of FunValCheck option.
Rik <octave@nomad.inbox5.com>
parents: 14366
diff changeset
57 ## [default]. Note: the functions @code{fzero} and @code{fminbnd} correctly
966ec84e7858 doc: Update optimset docstring with details of FunValCheck option.
Rik <octave@nomad.inbox5.com>
parents: 14366
diff changeset
58 ## handle Inf values and only complex values or NaN will cause an error in this
966ec84e7858 doc: Update optimset docstring with details of FunValCheck option.
Rik <octave@nomad.inbox5.com>
parents: 14366
diff changeset
59 ## case.
13797
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
60 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
61 ## @item GradObj
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
62 ## When set to "on", the function to be minimized must return a second argument
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
63 ## which is the gradient, or first derivative, of the function at the point
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
64 ## @var{x}. If set to "off" [default], the gradient is computed via finite
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
65 ## differences.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
66 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
67 ## @item Jacobian
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
68 ## When set to "on", the function to be minimized must return a second argument
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
69 ## which is the Jacobian, or first derivative, of the function at the point
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
70 ## @var{x}. If set to "off" [default], the Jacobian is computed via finite
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
71 ## differences.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
72 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
73 ## @item MaxFunEvals
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
74 ## Maximum number of function evaluations before optimization stops.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
75 ## Must be a positive integer.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
76 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
77 ## @item MaxIter
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
78 ## Maximum number of algorithm iterations before optimization stops.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
79 ## Must be a positive integer.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
80 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
81 ## @item OutputFcn
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
82 ## A user-defined function executed once per algorithm iteration.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
83 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
84 ## @item TolFun
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
85 ## Termination criterion for the function output. If the difference in the
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
86 ## calculated objective function between one algorithm iteration and the next
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
87 ## is less than @code{TolFun} the optimization stops. Must be a positive
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
88 ## scalar.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
89 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
90 ## @item TolX
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
91 ## Termination criterion for the function input. If the difference in @var{x},
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
92 ## the current search point, between one algorithm iteration and the next is
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
93 ## less than @code{TolX} the optimization stops. Must be a positive scalar.
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
94 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
95 ## @item TypicalX
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
96 ##
5289d7c2460d optimset.m: Document valid parameters for optimization functions.
Carnë Draug <carandraug+dev@gmail.com>
parents: 11523
diff changeset
97 ## @item Updating
14898
f8bb15f6a19b doc: Add "Display" option to optimset documentation.
Andy Adler <andy@analyti.ca>
parents: 14387
diff changeset
98 ## @end table
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
99 ## @end deftypefn
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
100
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
101 function retval = optimset (varargin)
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
102
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
103 nargs = nargin ();
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
104
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
105 ## Add more as needed.
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
106 opts = __all_opts__ ();
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
107
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
108 if (nargs == 0)
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
109 if (nargout == 0)
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
110 ## Display possibilities.
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
111 puts ("\nAll possible optimization options:\n\n");
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
112 printf (" %s\n", opts{:});
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
113 puts ("\n");
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
114 else
13183
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
115 ## Return struct with all options initialized to []
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
116 retval = cell2struct (repmat ({[]}, size (opts)), opts, 2);
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
117 endif
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
118 elseif (nargs == 1 && ischar (varargin{1}))
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
119 ## Return defaults for named function.
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
120 fcn = varargin{1};
8596
8833c0b18eb2 enable default settings queries in optim funcs
Jaroslav Hajek <highegg@gmail.com>
parents: 8304
diff changeset
121 try
11407
ed827ffa5a43 optimset, optimget, __all_opts__: consistently use lower case for storing and searching options
John W. Eaton <jwe@octave.org>
parents: 11346
diff changeset
122 retval = feval (fcn, "defaults");
8596
8833c0b18eb2 enable default settings queries in optim funcs
Jaroslav Hajek <highegg@gmail.com>
parents: 8304
diff changeset
123 catch
10635
d1978e7364ad Print name of function in error() string messages.
Rik <octave@nomad.inbox5.com>
parents: 8920
diff changeset
124 error ("optimset: no defaults for function `%s'", fcn);
8598
11cf7bc4a871 fix invalid block end
Jaroslav Hajek <highegg@gmail.com>
parents: 8596
diff changeset
125 end_try_catch
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
126 elseif (nargs == 2 && isstruct (varargin{1}) && isstruct (varargin{2}))
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
127 ## Set slots in old from nonempties in new. Should we be checking
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
128 ## to ensure that the field names are expected?
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
129 old = varargin{1};
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
130 new = varargin{2};
6227
4c252a611d47 [project @ 2007-01-05 20:23:59 by jwe]
jwe
parents: 6226
diff changeset
131 fnames = fieldnames (old);
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
132 ## skip validation if we're in the internal query
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
133 validation = ! isempty (opts);
11407
ed827ffa5a43 optimset, optimget, __all_opts__: consistently use lower case for storing and searching options
John W. Eaton <jwe@octave.org>
parents: 11346
diff changeset
134 lopts = tolower (opts);
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
135 for [val, key] = new
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
136 if (validation)
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
137 ## Case insensitive lookup in all options.
11451
48cb431db87b optimset: remove "i" option from call to lookup
John W. Eaton <jwe@octave.org>
parents: 11407
diff changeset
138 i = lookup (lopts, tolower (key));
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
139 ## Validate option.
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
140 if (i > 0 && strcmpi (opts{i}, key))
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
141 ## Use correct case.
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
142 key = opts{i};
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
143 else
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
144 warning ("unrecognized option: %s", key);
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
145 endif
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
146 endif
6227
4c252a611d47 [project @ 2007-01-05 20:23:59 by jwe]
jwe
parents: 6226
diff changeset
147 old.(key) = val;
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
148 endfor
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
149 retval = old;
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
150 elseif (rem (nargs, 2) && isstruct (varargin{1}))
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
151 ## Set values in old from name/value pairs.
11121
134d357e1c03 optimization/optimset.m: Use cell2struct instead of struct to handle cell arrays as options
Olaf Till <olaf.till@uni-jena.de>
parents: 10793
diff changeset
152 pairs = reshape (varargin(2:end), 2, []);
134d357e1c03 optimization/optimset.m: Use cell2struct instead of struct to handle cell arrays as options
Olaf Till <olaf.till@uni-jena.de>
parents: 10793
diff changeset
153 retval = optimset (varargin{1}, cell2struct (pairs(2, :), pairs(1, :), 2));
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
154 elseif (rem (nargs, 2) == 0)
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
155 ## Create struct. Default values are replaced by those specified by
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
156 ## name/value pairs.
11121
134d357e1c03 optimization/optimset.m: Use cell2struct instead of struct to handle cell arrays as options
Olaf Till <olaf.till@uni-jena.de>
parents: 10793
diff changeset
157 pairs = reshape (varargin, 2, []);
134d357e1c03 optimization/optimset.m: Use cell2struct instead of struct to handle cell arrays as options
Olaf Till <olaf.till@uni-jena.de>
parents: 10793
diff changeset
158 retval = optimset (struct (), cell2struct (pairs(2, :), pairs(1, :), 2));
6226
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
159 else
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
160 print_usage ();
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
161 endif
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
162
984d85191d0d [project @ 2007-01-05 18:41:24 by jwe]
jwe
parents:
diff changeset
163 endfunction
8647
06f5dd901f30 implement registering of optimization options
Jaroslav Hajek <highegg@gmail.com>
parents: 8598
diff changeset
164
13183
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
165
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
166 %!assert (optimget (optimset ("tolx", 1e-2), "tOLx"), 1e-2)
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
167 %!assert (isfield (optimset ("tolFun", 1e-3), "TolFun"))
13183
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
168
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
169 %!error (optimset ("%NOT_A_REAL_FUNCTION_NAME%"))
cc1fd6a58151 optimset.m: When called with 1 output argument, return a struct with all possible options initialized to [].
Rik <octave@nomad.inbox5.com>
parents: 11523
diff changeset
170